Db2 イベントモニターの作成
イベントモニターの種類
イベント・モニターの種類は LOCKING、ACTIVITIES、STATEMENTS、UNIT OF WORK、PACKAGE CACHE、CONNECTIONS、DATABASE、BUFFERPOOLS、TABLESPACES、STATISTICS、THRESHOLD VIOLATIONS、CHANGE HISTORY と様々な種類がありますが、今回は LOCKING、UOW、STATISTICS を作成し、フォーマットまで実施していきます。
イベント・モニターの作成
デフォルトのロック・モニター削除
デフォルトでは、各データベースで、推奨されない詳細なデッドロック・イベント・モニター DB2DETAILDEADLOCK が作成され、データベースがアクティブになるときに開始されます。 ロック・イベント・モニターを使用してデッドロックを検出する場合は、 DB2DETAILDEADLOCK イベント・モニターを無効にすることを検討してください。DB2DETAILDEADLOCK イベント・モニターが アクティブなまま、ロック・イベント・モニターでもデッドロック情報を収集すると、 両方のイベント・モニターがデータを収集することになり、 パフォーマンスに重大な影響を与える可能性があります。
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_11.5.0/com.ibm.db2.luw.admin.mon.doc/doc/c0054136.html
マニュアルに従いデフォルトのロック・イベント・モニターを停止後に削除します。
$ db2 "SET EVENT MONITOR DB2DETAILDEADLOCK STATE 0" $ db2 "DROP EVENT MONITOR DB2DETAILDEADLOCK" $ db2 "SELECT SUBSTR(EVMONNAME,1,20) AS EVMONNAME, TARGET_TYPE,SUBSTR(TARGET,1,20) AS TARGET FROM SYSCAT.EVENTMONITORS" EVMONNAME TARGET_TYPE TARGET -------------------- ----------- -------------------- 0 レコードが選択されました。
エベント・モニター作成
LOCKING、UOW、STATISTICS のイベント・モニターを作成します。
$ db2 "CREATE EVENT MONITOR EVM_LOCK FOR LOCKING WRITE TO UNFORMATTED EVENT TABLE MANUALSTART" $ db2 "CREATE EVENT MONITOR EVM_UOW FOR UNIT OF WORK WRITE TO UNFORMATTED EVENT TABLE MANUALSTART" $ db2 "SELECT SUBSTR(E1.EVMONNAME,1,20) AS EVMONNAME, E1.TARGET_TYPE, SUBSTR(E2.TYPE,1,20) FROM SYSCAT.EVENTMONITORS AS E1, SYSCAT.EVENTS AS E2 WHERE E1.EVMONNAME=E2.EVMONNAME" EVMONNAME TARGET_TYPE 3 -------------------- ----------- -------------------- EVM_LOCK U LOCKING EVM_UOW U UOW 2 レコードが選択されました。
イベント・モニター開始
作成したイベント・モニターを開始します。すでに開始済みの場合 “SQL1615W” のメッセージの出力があります。
$ db2 "SET EVENT MONITOR EVM_LOCK STATE 1" $ db2 "SET EVENT MONITOR EVM_UOW STATE 1"
イベント・モニター停止
開始したイベント・モニターを停止します。すでに停止済みの場合 “SQL1615W” のメッセージの出力があります。
$ db2 "SET EVENT MONITOR EVM_LOCK STATE 0" $ db2 "SET EVENT MONITOR EVM_UOW STATE 0"