IBM Support

[Db2] DIA8102C の Severe メッセージが db2diag.log へ 5 分おきに表示されることがある

Question & Answer


Question

db2diag.log に以下のようなメッセージが 5 分おきに出力されます。原因と解決策について教えてください。
2020-08-19-11.18.21.433507+540 I10908227E688         LEVEL: Severe
PID     : 28589                TID : 139769552037632 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000            DB   : TEST943
APPHDL  : 0-27                 APPID: *LOCAL.db2inst1.200819021823
AUTHID  : DB2INST1             HOSTNAME: db2server.example.com
EDUID   : 66                   EDUNAME: db2agent (TEST943) 0
FUNCTION: DB2 UDB, base sys utilities, sqeApplication::SetupCodePageInfo, probe:200
RETCODE : ZRC=0x800F005B=-2146500517=SQLO_NOTABLE "No conversion table exists"
          DIA8102C Conversion table not loaded. Source code page "819", Target
          code page "897", method "", handle "".

Cause

これは LANG=C (819) のアプリケーションが、コード・セット IBM-943 のデータベースへ接続を試行して SQL0332N で失敗しているログです。
自身のアプリケーションに心当たりがない場合 db2acd (autonomic computing daemon) が LANG=C で IBM-943 データベースへ接続している可能性があります。
以下のように ps コマンドで db2acd の環境変数 LANG=C となっており IBM-943 や IBM-954 データベースが存在する場合この問題が発生します。
$ ps auxeww | grep db2acd
db2inst1 28652 0.1 0.2 661064 33192 ? Sl 11:13 0:13 db2acd 0 ,0,0,0,1,0,0,00000000,0,0,0,0000000000000000,0000000000000000,00000000,00000000,00000000,00000000,00000000,00000000,0000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000003534aa000,0000000000000000,0000000000000000,1,0,0,,,,,a80164,14,1e014,2,0,1,0000000000041fc0,0x240000000,0x240000000,1600000,6438006,2,6988013 DB2_HOME=/home/db2inst1/sqllib DB2LIB=/home/db2inst1/sqllib/lib HOME=/home/db2inst1 PWD=/home/db2inst1 DB2INSTANCE=db2inst1 DB2LPORT=0 DB2NODE=0 HOSTNAME=db2server.example.com LANG=C USER=db2inst1
.....
db2diag.log に以下のように db2acd が IBM-943 データベースへの接続に失敗したエラーが出力されています。
2020-08-19-11.18.21.436574+540 I10910892E443         LEVEL: Warning
PID     : 28652                TID : 140185316620032 PROC : db2acd 0
INSTANCE: db2inst1             NODE : 000
HOSTNAME: db2server.example.com
FUNCTION: DB2 UDB, Health Monitor, HmonMainCB::refreshDbAutonomicSwitches, probe:160
MESSAGE : Failed connecting to database "TEST943 "
DATA #1 : Hexdump, 4 bytes
0x00007F7F6FFFB27C : B4FE FFFF

Answer

db2acd は Db2 インスタンス起動時の環境変数を継承するため、db2strat が LANG=C の環境で実行されていた場合に今回のようなエラーが発生します。LANG=ja_JP.utf8 のような環境で db2start を実行した場合、UTF-8 と IBM-943 は互換性があるため、今回のエラーは発生しません。​
そのため ​LANG=ja_JP.utf8 などが設定された環境で Db2 インスタンスを起動してください。

障害モニターやクラスター・マネージャーがインスタンスの起動を制御している場合、Db2 のレジストリ変数でコードページに UTF-8 を設定できます。
インスタンス・オーナーで以下のコマンドを実行します。(次回 Db2 起動時から有効になります。​)
db2set  DB2CODEPAGE=1208 ​

注:DB2CODEPAGE を db2set で設定すると、該当インスタンスのすべての Db2 アプリケーションに影響を与えるため、設定にあたっては細心の注意が必要です。たとえば、実際のアプリケーションのコード・ページと、DB2CODEPAGE で設定したコード・ページが一致しない場合、文字化けやデータ破壊の問題が発生します。

関連情報
[Db2] データベース接続時に SQL0332N を防ぐ方法

[{"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":"a8m500000008PkdAAE","label":"Connectivity"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"}],"Version":"All Version(s)"}]

Document Information

Modified date:
03 April 2024

UID

ibm16262073