CONNECT TO [データベース名] USER [ユーザID] USING [パスワード] CREATE EVENT MONITOR [イベントモニター名] FOR LOCKING WRITE TO UNFORMATTED EVENT TABLE SET EVENT MONITOR [イベントモニター名] STATE 1
db2 => CONNECT TO [データベース名] USER [ユーザID] USING [パスワード] データベース接続情報 データベース・サーバー = DB2/NT 9.7.1 SQL 許可 ID = [ユーザID] ローカル・データベース別名 = [データベース名] db2 => CREATE EVENT MONITOR [イベントモニター名] FOR LOCKING WRITE TO UNFORMATTED EVENT TABLE DB20000I SQL コマンドが正常に完了しました。 db2 => SET EVENT MONITOR [イベントモニター名] STATE 1 DB20000I SQL コマンドが正常に完了しました。
SELECT EVMONNAME ,CASE WHEN EVENT_MON_STATE(EVMONNAME) = 0 THEN '非活動' WHEN EVENT_MON_STATE(EVMONNAME) = 1 THEN '活動' END AS EVMONACTIVE FROM SYSCAT.EVENTMONITORS WHERE EVMONNAME = '[イベントモニター名]'
※動的にデータベース構成パラメータの設定を変更するには、接続が必要。
-- ロック待機イベント UPDATE DB CFG FOR [データベース名] USING MON_LOCKWAIT HIST_AND_VALUES UPDATE DB CFG FOR [データベース名] USING MON_LW_THRESH 10000000 -- ロックタイムアウトイベント UPDATE DB CFG FOR [データベース名] USING MON_LOCKTIMEOUT HIST_AND_VALUES -- デッドロックイベント UPDATE DB CFG FOR [データベース名] USING MON_DEADLOCK HIST_AND_VALUES
-- ロック待機イベント UPDATE DB CFG FOR [データベース名] USING MON_LOCKWAIT NONE UPDATE DB CFG FOR [データベース名] USING MON_LW_THRESH 5000000 -- ロックタイムアウトイベント UPDATE DB CFG FOR [データベース名] USING MON_LOCKTIMEOUT NONE -- デッドロックイベント UPDATE DB CFG FOR [データベース名] USING MON_DEADLOCK WITHOUT_HIST
db2evmonfmtは、イベントモニターログ取得用ツールとして提供されています。
ログを取得するためには、Javaファイル「[DB2インストールパス]\SQLLIB\samples\java\jdbc\db2evmonfmt.java」からdb2evmonfmtツールを事前に生成する必要があります。
作業ディレクトリを作成、移動(例⇒C:\work) C:\>mkdir work C:\>cd work [DB2インストールパス]\SQLLIB\samples\java\jdbcから下記ファイルを作業ディレクトリにコピー ・db2evmonfmt.java ・DB2EvmonLocking.xsl ・DB2EvmonPkgCache.xsl ・DB2EvmonPkgCacheStmt.xsl ・DB2EvmonUOW.xsl ・DB2LockReportHTML.xsl C:\work>copy "[DB2インストールパス]\SQLLIB\samples\java\jdbc\db2evmonfmt.java" "C:\work" C:\work>copy "[DB2インストールパス]\SQLLIB\samples\java\jdbc\DB2EvmonLocking.xsl" "C:\work" C:\work>copy "[DB2インストールパス]\SQLLIB\samples\java\jdbc\DB2EvmonPkgCache.xsl" "C:\work" C:\work>copy "[DB2インストールパス]\SQLLIB\samples\java\jdbc\DB2EvmonPkgCacheStmt.xsl" "C:\work" C:\work>copy "[DB2インストールパス]\SQLLIB\samples\java\jdbc\DB2EvmonUOW.xsl" "C:\work" C:\work>copy "[DB2インストールパス]\SQLLIB\samples\java\jdbc\DB2LockReportHTML.xsl" "C:\work" PATH環境変数を変更 C:\work>set PATH=[DB2インストールパス]\SQLLIB\java\jdk\bin;%path% コンパイル C:\work>javac db2evmonfmt.java
C:\work>java db2evmonfmt -help USAGE: db2evmonfmt -d-ue [ -u userid -p passwd ] < -fxml | -ftext [-ss stylesheet] > [ -id ] [ -type ] [ -hours ] ・ ・ ・
C:\>java db2evmonfmt -d [データベース名] -ue [イベントモニター名] -u [ユーザID] -p [パスワード] -ftext -type lockwait -hours 24 SELECT evmon.xmlreport FROM TABLE ( EVMON_FORMAT_UE_TO_XML( 'LOG_TO_FILE' ,FOR EACH ROW OF ( SELECT * FROM [イベントモニタ ー名] ORDER BY EVENT_ID ,EVENT_TIMESTAMP ,EVENT_TYPE ,MEMBER ) ) ) AS evmon ------------------------------------------------------- Event ID : 1 Event Type : [イベント種類] Event Timestamp : [イベント時刻] Partition of detection : 0 ------------------------------------------------------- ・ ・ ・
CONNECT TO [データベース名] USER [ユーザID] USING [パスワード] SET EVENT MONITOR [イベントモニター名] STATE 0 DROP EVENT MONITOR [イベントモニター名]
db2 => CONNECT TO [データベース名] USER [ユーザID] USING [パスワード] データベース接続情報 データベース・サーバー = DB2/NT 9.7.1 SQL 許可 ID = [ユーザID] ローカル・データベース別名 = [データベース名] db2 => SET EVENT MONITOR [イベントモニター名] STATE 0 DB20000I SQL コマンドが正常に完了しました。 db2 => DROP EVENT MONITOR [イベントモニター名] DB20000I SQL コマンドが正常に完了しました。