IBM Support

CONFIGデータベースを外部のDB2に移行したところ、フェデレーションが失敗する

Troubleshooting


Problem

CONFIGデータベースを外部のDB2に移行したところ、フェデレーションが失敗するようになった。
ランタイムサーバーのログに次のエラーが記録されている。

[11/15/22, 22:33:12:608 JST] 00000027 fim.war.runtime.liberty.LibertyRuntimeServletContextListener I java.lang.RuntimeException: com.ibm.db2.jcc.am.SqlException: Operation not allowed for reason code "1" on table "DB2INST1.ISAM_AUDIT_HANDLERS".. SQLCODE=-668, SQLSTATE=57016, DRIVER=4.28.11

Cause

CONFIGデータベースの移行が失敗しているため、エラーとなっています。
移行を行うアプライアンスが古いバージョンからアップグレードを行なってきた場合に、内部CONFIGデータベースの一部のテーブルの列の順番が新規でインストールしたアプライアンスと異なることがあります。これは新しい列は常に最後に追加されるためです。

Diagnosing The Problem

このエラーはDB2のテーブルのデータ制約に違反していることを示しています。制約を満たしていないテーブルを検索し、このテーブルが一覧に含まれていることを確認します。

DB2のコマンドラインから、CONFIGデータベースに接続し、次のSQLを実行します。

SELECT tabschema,tabname,status,access_mode
FROM syscat.tables
WHERE status != 'N' AND access_mode != 'F'

次の2つのテーブルが一覧に表示されます。

  • ISAM_AUDIT_HANDLERS
  • ISAM_AUDIT_CONFIG_PROPERTIES

Resolving The Problem

1. cluster_config_db2.sql の次の行を入れ替えます。 (IS_JSONが最後の列になります)
IS_JSON CHAR(1) DEFAULT 'N' NOT NULL,
HANDLER_TYPE VARCHAR(256) NOT NULL,
2. 外部CONFIGデータベースを再作成します。

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB24","label":"Security Software"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSESHP","label":"IBM Security Verify Access Appliance"},"ARM Category":[{"code":"a8m0z000000cxuMAAQ","label":"Security Verify Access-\u003EAdvanced Access Control"},{"code":"a8m0z000000cxugAAA","label":"Security Verify Access-\u003EFederation"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.0.0"}]

Document Information

Modified date:
14 December 2022

UID

ibm16848185