IBM Support

[Db2] バージョンアップやフィックスパック適用後、イベント・モニターが利用できないことがある

Question & Answer


Question

Db2 のバージョン・アップや、フィックスパック適用後、イベント・モニターの起動が SQL20155N で失敗したり、db2diag.log に SQLM_RC_MCMISS や ADM2014W が記録されることがあります。 これはなぜでしょう?どうすれば回復できますか?

Cause

Db2 のバージョンやフィックスパックが上がると、イベント・モニター表の形式が変更されることがあります。
たとえば、新しいモニター項目を記録するための列が増えたり、既存の列定義が拡張されることがあります。
新しいバージョンやフィックスパックで必須とされる列が、既存のイベント・モニター表に存在しなかったり、互換性がない場合、イベント・モニターは SQL20155N で起動しません。このとき、db2diag.log には以下のようなエントリーが記録されます。
2017-04-27-18.32.04.902750+540 I2952173A670         LEVEL: Error
PID     : 33488946             TID : 10327          PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
APPHDL  : 0-598                APPID: *LOCAL.db2inst1.170427093152
AUTHID  : DB2INST1             HOSTNAME: host01
EDUID   : 10327                EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, database monitor, sqmSharedRecordTypeArray::activateSqlEvmon, probe:90
CALLED  : DB2 UDB, database monitor, sqmSqlTarget::validateTable
RETCODE : ZRC=0x840D002A=-2079522774=SQLM_RC_MCMISS
          "a mandatory column is missing"
DATA #1 : String, 10 bytes
LOCKEVMON
また、新しいバージョンやフィックスパックで列定義が変更された結果、イベント・データが欠落する可能性を警告する ADM2014W が管理通知ログや db2diag.log に記録されます。
2017-07-31-15.09.00.857955+600 E2123A743            LEVEL: Warning
PID     : 64879                TID : 4391939598608  PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
APPHDL  : 0-239                APPID: *LOCAL.db2inst1.170731050801
AUTHID  : DB2INST1             HOSTNAME: host01
EDUID   : 408                  EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, database monitor, sqmSqlTarget::validateTable, probe:60
MESSAGE : ADM2014W  The Event Monitor "LOCKEVMON" detected on table
          "LOCKEVMON" (ID "9") that the size of the column "EVENT_TYPE" is
          smaller than the default size of "128".  Therefore, contents will be
          truncated to the user specified size.

Answer

イベント・モニターのデータを表に記録しているシステムで、Db2 のバージョン・アップや、フィックスパック適用を行った場合、以下の手順でイベント・モニター表の形式を更新してください。
  1. DBADM 権限のユーザーで対象データベースに接続します。
    db2 connect to <database_name>
  2. EVMON_UPGRADE_TABLES プロシージャーを実行してイベント表を更新します。
    db2 "call evmon_upgrade_tables(null, null, null, ?, ?, ?)"
運用上の考慮点
  • EVMON_UPGRADE_TABLES プロシージャーの詳細な実行結果を取得するには、事前にユーザー一時表スペースを作成する必要があります。
    db2 create user temporary tablespace usertmp1
    db2 "call evmon_upgrade_tables(null, null, null, ?, ?, ?)"
    
      Value of output parameters
      --------------------------
      Parameter Name  : NUM_EVMONS_EVALUATED
      Parameter Value : 3
    
      Parameter Name  : NUM_EVMONS_TO_UPGRADE
      Parameter Value : 1
    
      Parameter Name  : NUM_EVMONS_UPGRADED
      Parameter Value : 1
    
    
      Result set 1
      --------------
    <SESSION.EVMON_UPGRADE_TABLES_RESULTSET の結果が表示されます。>
  • データベースに登録されているイベント・モニターと、イベント表が対応するバージョンの一覧は以下の SQL で表示できます。
    db2 connect to <database_name>
    db2 "select evmonname, versionnumber from syscat.eventmonitors where target_type in ('U','T')"
    
    EVMONNAME       VERSIONNUMBER
    --------------- -------------
    LOCKEVMON            11010202
    
      1 record(s) selected.
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PknAAE","label":"Install\/Migrate\/Upgrade"},{"code":"a8m500000008PmIAAU","label":"Monitors-\u003EEvent Monitor"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"All Versions"}]

Document Information

Modified date:
26 August 2023

UID

swg22010662