2007年01月10日
ロック (lock) についての詳しい解説記事
Informix Dynamic Serverでの、ロック情報の読み取り方についてのとても良い説明が掲載されています。あるユーザー・セッション(アプリケーション)が原因と思われるデッドロック状態を解析し、onstat を上手に使って、その出力を読みこなしながら犯人を突き止めたりする方法が簡潔にまとめられています。
(これがパート1)
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0609herber/index.html
(そしてこちらがパート2)
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0701herber/index.html
管理者向けのマニュアルの中身が頭にこびりついているような人にはすでにおなじみの内容ですね。
( UPDATED 2007-12-29: もう少しアプリケーション開発者寄りの記事も公開されています。こちらは日本語です。)
(これがパート1)
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0609herber/index.html
(そしてこちらがパート2)
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0701herber/index.html
管理者向けのマニュアルの中身が頭にこびりついているような人にはすでにおなじみの内容ですね。
( UPDATED 2007-12-29: もう少しアプリケーション開発者寄りの記事も公開されています。こちらは日本語です。)
なお、この資料には、ロックの追いかけ方そのものの他にいくつか裏技的なテクニックが、公式には紹介されていないようなものも含めて説明されています。
その中には、特定のエラーが発生した時にデータベース・サーバーにデバッグ情報 ( af ファイル ) を吐き出させる方法なんかが紹介されています。これを使うと、たとえば、SQL エラー番号 -201 (これは「文法エラー」ですね)がどこかで発生したらデータベース・サーバーを一時停止させ、さらにデバッグ情報を吐き出させる、という指定ができます。吐き出されたデバッグ情報にはその時点で実行されようとしていたSQL文をはじめ、多くの内部情報が含まれています。
アプリケーション開発者にも役に立つと思いますが、何しろ af ファイルを吐いてエンジンが一時停止するような機能です。乱用は良くありません。DB管理者に告げずにこの機能を使ったりすれば、管理者が飛んでくること間違いありません。(ただ、この機能を使える=設定できるのもDB管理者 = "informix" だけですが..)ですので、このBLOGではその機能の使用方法は紹介しません。もし、どうしても知りたい、という方は、上記の URL (パート2) の文書中に説明がありますので探してみてください。
その中には、特定のエラーが発生した時にデータベース・サーバーにデバッグ情報 ( af ファイル ) を吐き出させる方法なんかが紹介されています。これを使うと、たとえば、SQL エラー番号 -201 (これは「文法エラー」ですね)がどこかで発生したらデータベース・サーバーを一時停止させ、さらにデバッグ情報を吐き出させる、という指定ができます。吐き出されたデバッグ情報にはその時点で実行されようとしていたSQL文をはじめ、多くの内部情報が含まれています。
アプリケーション開発者にも役に立つと思いますが、何しろ af ファイルを吐いてエンジンが一時停止するような機能です。乱用は良くありません。DB管理者に告げずにこの機能を使ったりすれば、管理者が飛んでくること間違いありません。(ただ、この機能を使える=設定できるのもDB管理者 = "informix" だけですが..)ですので、このBLOGではその機能の使用方法は紹介しません。もし、どうしても知りたい、という方は、上記の URL (パート2) の文書中に説明がありますので探してみてください。
Posted by oninit at 23:22│Comments(0)
│IBM Webサイトにある情報
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。