2002-07-10 (Wed)
▲ 帰宅すると
玄関前で三毛猫が待っててくれた!
▲ BEA Developers Conference 2002
ここ二日ほど参加。すでに話題の中心は新技術、新機能よりも保守、運用、適用範囲の拡大、開発プロセスに向いているようだ。収穫をつらつらメモ。
▲ JRockit
Intelプラットフォーム最強 JavaVM。いつでもJITがON(つまりインタプリタモードが無い)。JavaスレッドをOSネイティブスレッドにマップ可能。Hot-Spotは適宜検出して積極的に最適化リコンパイル。サーバサイド向けに最適化(メモリマネージ、スレッドマネージ、IOに比重が置かれる)。Windows と Linuxに対応。新 Core になった Intel の Xeon のハイパースレディングとの組み合わせが最強。
▲ WebLogic Internals
WebLogicServerのスレッドアーキテクチャ。Listenスレッド(非SSL/SSL)がソケットを開いてコネクションを待ち、accept した接続を Socket リーダースレッドへ渡す。Socketリーダーは接続を適切な実行キューへと振り分ける。
Listenスレッド>Socketリーダスレッド>実行スレッド(実行キュー)
- 実行キュー
- 管理用RMIキュー … APがハングしても管理の続行を可能にするため専用キューが用意される。管理サーバ、管理対象サーバ間のインタラクション。JMXクライアント、weblogic.Admin
- 管理コンソール用 HTTP キュー
- レプリケーションキュー … クラスタ環境でのレプリカ。HTTPセッション、ステートフルセッションBean。
- マルチキャストキュー … クラスタ環境でのマルチキャスト処理。ハートビート、クラスタワイドJNDI。
- JMSディスパッチャキュー … JMSのフロントエンド、バックエンド処理
- 非同期トランザクションキュー … トランザクションの実行を調整(XAプロトコル)。2フェーズコミット実行。
- デフォルトキュー … すべてのユーザーリクエスト(T3,HTTP,RMI,IIOP,Web Services)。Socketリーダ。タイマージョブ(ユーザー定義はdeprecated)。
- 内部スレッド
- Listenスレッド
- Application Pollerスレッド … 開発者モードのみで存在。開発中のアプリケーションファイルの更新を監視。開発者モードはこのスレッドのために負荷が高い。
- Transaction Timeout スレッド … タイムアウトしたトランザクションを定期的にロールバック。
- MultiCastソケットリーダスレッド … 分散環境で必要。マルチキャストデータを受信。
- Socketリーダスレッド … Pure-Java 実装とネイティブ実装を選択できる。通常ネイティブ実装にするべき(WebLogicもネイティブなとこあるんだな)。
- Timer High Priority スレッド … 高優先度のタイマジョブ実行、ハートビートとか
- Timer Low Priority スレッド … 低優先度のタイマジョブを実行
▲ スレッドダンブ
ハングの解析に有効
- UNIX: kill -3(SIGQUIT)をプロセスに送る
- Windows: CTRL-Break (NTサービスとして起動していると不可能)
- 間隔を空けて複数回採取する
% ./startWebLogic.sh > console.log 2>&1
▲ ユーザー定義の実行キュー
ミッションクリティカルなアプリケショーションに専用の実行キューを用意してスループットを向上させることができる。デットロック対策にもなる場合もある。欠点はIdelスレッドが増加することと、スレッドダンプが複雑化すること。
config.xmlにて<ExecuteQueue>でキューを作成。web.xmlでサーブレットに割り当てたり、ejbc で所定の EJB にユーザー定義実行キューを結びつけることができる。
▲ スレッド関連トラブル
JDBCのDriverManager#getConnectionはデットロックの危険性あり。使用しない。JNDIからのDataSourceを推奨。
▲ ヒープが十分あるのにOutOfMemoryErrorが発生
1.3.x以上の VM なら Permanent Generation不足の可能性あり。Permanent Generation とは GC されないオブジェクトに割り当てられるメモリ領域。サーバサイドシステムでは肥大化する傾向がある。
▲ java weblogic.i18ntools.CatInfo
指定のIDのエラーメッセージを出力してくれる。日本語のエラー番号から英語のエラーメッセージを出力させて AskBEA などで検索できる。6.1でも使える。
2003-07-10 (Thu)
▲ はやしくんプレ壮行会
昨夜。参加者 himi, はやし,ひきた,ko。
- ビアライゼのビールは流石にかなりウマい。のみまくりよい気分。
- himi 、HHK Pro を買ってご満悦。
- はやしくんから Qt/XEmacs を見せてもらう。重〜い。*1
- 閉店間際まで飲み明かして二次会は蕎麦屋そじ坊。
- 終電早いひきたはそうそうに仕上げ蕎麦を食べて離脱。
- 鶴姫ガンガンのんでたらいつのまにか himi の終電リミット。蕎麦屋でそばを食べずして3人で帰宅。
- ギリギリだった himi はダッシュで風のように去る。
- 余裕があるはやしくんと ko は、改札でゆっくりお別れ。また呑もう。
- 山手線に乗り込みひとごごちと思ったところで himi から電話。
- 「終電ロスト〜」
- 気が付くと二人で築地の 24h 営業のお寿司屋さんにて寿司をパクついていた。
- 実に旨い。また来よう。
- 5:00 近くに店を出る。外はもう明るい。
楽しいけど、himi さんと呑むとなんでこう限界まで挑戦するようなハメになるのか。平日なのに。^^;;
今日は仕事ムリムリ。
*1 重いとか以前の問題だったが。
▲ Meadow の読み方 (2)
kawachoさんありがとう。いつも日記楽しみに見てます。
これ
<URL:http://dictionary.goo.ne.jp/search.php?MT=meadow&kind=ej>
いいね。official からもリンクしておこうかな。
# 山本 [関連しそうなツールです。スレッドダンプの解析やヒープ容量/GCのチューニングにどうぞ。 http://yusuke...]