2010年7月30日金曜日

Oracle JdbcConnectionのclose問題

AdvancedQueuingを扱っていて、JMSConnection#close()でThreadがHANGするので調査したところ、どうもOracleのJDBCの古いもの(ojdbc14以前)のバグの様でojdbc5以降でHANGしなくなっているようだ。
以下に、関連情報を載せるが、close()自体は成功しても実際のTCP-Connectionは解放されないため、調査続行中:

1) 2009/12 Thread stuck waiting on java.net.SocketInputStream.socketRead : Weblogic
http://objectmix.com/weblogic/532984-thread-stuck-waiting-java-net-socketinputstream-socketread.html

ojdbcのバグだから新しいのを使え;
Hangした時に以下のSQLを実行する;

select
vse.username, vse.osuser, vse.status, vse.sql_address, vs.piece, vs.sql_text
from v$sqltext_with_newlines vs, v$session vse
where vse.sql_address = vs.address and vse.status = 'ACTIVE'
order by sql_address, piece


2) 2003/01-2006/12 thread deadlock but no other thread holds lock??
http://forums.sun.com/thread.jspa?threadID=343023

DaemonThreadからclose()すればいい;

3) 2003/08-2009/04 Thread Hangs at SocketInputStream.read
http://www.dbforums.com/oracle/894519-thread-hangs-socketinputstream-read.html

TableSpaceが不足した場合に発生する;


4) 2009/09 JDBC insert query to Oracle sometimes hangs
http://dbaspot.com/forums/oracle-server/19570-jdbc-insert-query-oracle-sometimes-hangs.html

複数のInsertによるブロック;

5) 2004/06 ds.getConnection( )返ってこない
http://otn.oracle.co.jp/forum/message.jspa?messageID=11004716

DBCPの設定とOracle-SharedServerの設定の問題?;
v$session周りを調べると共有サーバに設定してあるのですが、server列がNONEだったりSHAREDだったりまちまち;

共有サーバの設定値を具体的には、
alter system set shared_servers=5 scope=both;
にすると、ds.getConnection()で待つことなく正常に返ってくるようになりました。
接続セッション数は40くらいだったのですが、マニュアルには
「shared_serversの値1に対し10セッションで安定する」みたいです。

6) 2003/02-2010/06 JDBC conneciton hanging at SocketInputStream.socketRead
http://forums.oracle.com/forums/thread.jspa?messageID=4354229


FierWallの影響か?;

7) 2008/11 Deadlocks with Oracle
http://old.nabble.com/Deadlocks-with-Oracle-td20378297.html

古いojdbcのバグ?;
I'm rather certain the patches are included in 10.2.0.3 patchset

2010年7月28日水曜日

教材開発指針

自分の得意な形式にする

■トラブル解決型学習
・トラブルが発生し、その解決を通して学習する
・流れの一例
1)導入:イラスト、アニメーションなど
 状況説明:場所や組織、自分の役割、発生している現象、これまでの経緯など
2)ディスカッション:グループ分け、発表
 目的の確認:何の為に行動するのか、なぜそう思うか
 調査方針の作成:何をどこまで進めるか、役割は何か、何を仮定するか
3)資料の収集:グループ作業
 何を集めるべきか、なぜか、何をすれば集まるか
 誰、何の力を借りるべきか
4)分析、考察:
 どこに着目するか、どこの統計処理をすべきか
 何が分かるか、何が不足しているか、
 仮定との食い違いはないか、説明できうるか
 さらに調査が必要か、
5)整理と報告:グループ発表
 調査の経緯と収集した資料、分析・考察の結果と結論

2010年7月14日水曜日

アイデアソン

ログビューワ:
 縦横で設定した範囲の折りたたみができる
 例)左端から、XXのカラムまでを折り畳む
 例)XXサーバに関するログの行を折り畳む

作業表に入れる項目:
 日付、目的、完了基準、消費時間
 指示(6W2H)、リソース(機材、ソフト)
 作業環境(H/W, O/S, N/W,,,)
 意見や感想

半透明の看板:
 景色を遮断しないで広告をだせる

自動糸通し:
 糸側と穴側の双方が自走して相手を捜してつなげる=>狭い場所での配線

ピンポイントヒートガン:
 ピンポイントで高熱の空気を発射できる
 ドライヤーのように広範囲に熱を拡散しないで加熱処理ができる

IDバンク:
 共通モバイルクーポン
 1回登録すると、複数のショップで使用できる

スキルマップ:
 クイズに答えて作成する
 知識:事実を確認できる
 理解:メタ情報をTPOに合わせて選択できる
 技術:一定の時間内で水準を満たす作業ができる
 表現:伝達、説明できる

セキュリティブリッジ:
 FireWallで守られた2つのドメインを結合するDMZサーバ
 一切の発信接続を禁止して、必要な業務処理を実行できる

ソフトの開発とは;
 DSLを作成すること
 DSLとDSL間の解釈器を作成すること

無騒音発電機:
 燃料電池で発電するので、モータを使用しない

寿命とは:
 壊れそうも無いものが寿命を迎える理由は?

グレゴリオ暦の1月1日は自然科学的な意味があるのか:
 どうもなさそう、ローマは法治主義でカレンダー(ローマ時代は月初日のこと)は恣意的にきめられた

音による位置合わせ器:
 縦横高さを音で表現して離れた物体の位置的な同期を容易にする

局所と大局:
 局所の最適より大局の最適をもとめるべき

Drupal 6.17J on TurnKey LAMP

 すんなりインストールできたが、php-gdのバージョンが古いようなので、ubuntu から更新をかける。

apt-get update
apt-get install php5-gd


cron も設定する。

bash
mv scripts .scripts
cd .scripts
vi cron-curl.sh
example.com => localhost
export EDITOR=vi
crontab -e
45 3 * * * /home/korabo/drupal/.scripts/cron-curl.sh


続いて、CleanURL(?p=xxx がなくなって、RESU風になる):この辺はJoomlaの方が格段に簡単だ。

apache/mod-rewrite を有効か(webmin)
.htaccess を確認すると、以下の様な設定がある
RewriteEngine on
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
状況によってはコメント部分を設定する必要があるようだ。

TurnKey Linux LAMP インストール

 TurnKey は Ubuntu 8.04.3 LTS ベースのLinuxディストリで、LAMP/LAPP/Drupal/Joomalなどすぐに使用できるような形でパッケージングされている。
 基本はUbuntuServer+shellinabox/Webmin(/PhpMyAdmin)なので、X11などのGUIはないが、その分サイズがコンパクトである。
 メモリー256M以上、HDD必要量
VirtualBoxにインストする場合は、VMwaremの構成に合わせて、NetはAMDを指定し、SCSIはLSI-Logicにする。

*AMD Phenom or Barcelona-level Opteron CPU の場合は、「IO APIC」をONにすること

VMwareのRemoteDeskを使用する場合は、以下をxxx.vmxに追加
RemoteDisplay.vnc.enabled = "TRUE"
RemoteDisplay.vnc.password = "password"
RemoteDisplay.vnc.port = "6910"

2010年7月13日火曜日

アイデアソン:トレーニング

思いついてメモしていたアイデアを記録

■方針
・ナチュラルプランニング(GTD):目的からスタート
 *「7つの習慣」では「Begin with the End in Mind」を「目的を持って始める」と訳している
 自然に行っている思考の流れで以下の5段階
  1)目的と価値を見極める
  2)結果をイメージ
  3)プレスト:あれこれ思いつき連想
  4)思考の整理
  5)行動の決定
 *陥りがちなのは、リアクション型プランニング:タスクからスタート
  頑張れば達成できる、もっと頑張ろう

・習得レベルの方針
知らない=>知っている=>成果を出せる
概念として知る:習得期 解説やクイズ
体験として知る:訓練期 事例研究、課題解決

・DMD(Diff that makes Diff)を押さえる:つまり、ポイントとなる部分を明確にする

■テキストに書くべきこと
・目的と目標を想起させる
・知識の整理:クイズ、穴埋め、3択
・課題の解決:事例研究、推理ゲーム、ロールプレイ

例)
1)知識の整理
 XXとは何か?3択クイズ
 ZZするにはどれが一番いいか?
2)ポイントの指摘
 共通するのは、、、
 重点は、、、
3)課題の提示
 XXの問題が発生している
4)解決方法の検討
 優先してすべきことは何か
5)調査と仮説
 実際の調査を実施
 仮説を立てて検証方法を検討
6)検証作業
 実際の作業
7)まとめ
 作業概要のまとめ
8)復習クイズ
 繰り返すことで印象を深化させる

■モチベーション向上の為に
プレゼント
資格付与
資格取得への保証

2010年7月12日月曜日

VMware Server でVMが表示されないときは

Webの管理画面でログインすると、
「server not responding ...」
となってVM一覧が出てこない場合の対処。

ログインユーザを「__vmware__」グループに所属させる。
これだけだったのかーーー!

参考にしたページ:How To Fix: The VMware Infrastructure Web Service at "http://localhost:8222/sdk" is not responding (Connection Refused).