IBM Support

[Db2] DB2 Connect ゲートウェイを介したOS/400 V5R2 (又はそれ以上のバージョン) への JDBC アプリケーションが -4499 エラーを受ける問題の回避策

Question & Answer


Question

Websphere (以下WAS) <=> DB2 Connect ゲートウェイ <=> DB2 for AS/400 の環境下で JDBC アプリケーションが -4499 エラーで実行できないのはなぜですか?

Answer

JCC ドライバーの DB2 Connect ゲートウェイを介した DB2 for AS/400 V5R2 (又はそれ以上のバージョン) への接続に関する機知の制限事項です。
DB2 Connect ゲートウェイを介さずに OS/400 V5R2 (又はそれ以上のバージョン) へ直接接続はできますが、DB2 Connect ゲートウェイを介す場合に接続できないことがあります。

以下はこの現象がおきたときの参考 JCC トレースです ( ERRORCODE=-4499 と、DDM パラメーターの値がサポートされていません。 ("invalid DDM parameter") が記録されています)。
  • [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   [jcc] BEGIN TRACE_DIAGNOSTICS
    [14/10/03 14:19:24:563 JST] 000000bc logwriter     3   [jcc][t4] 4DE0   2020202020202020  2020202020202020                    ................
    [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   [jcc][Thread:WebContainer : 3][SQLException@4fece456] java.sql.SQLException
    [14/10/03 14:19:24:563 JST] 000000bc logwriter     3   [jcc][t4] 4DF0   2020202020202020  2020202020202020                    ................
    [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   [jcc][Thread:WebContainer : 3][SQLException@4fece456] SQL state  = 58017
    [14/10/03 14:19:24:563 JST] 000000bc logwriter     3   [jcc][t4] 4E00   0020202020202020  2020202020202020  .                 ................
    [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   [jcc][Thread:WebContainer : 3][SQLException@4fece456] Error code = -4499
    [14/10/03 14:19:24:563 JST] 000000bc logwriter     3   [jcc][t4] 4E10   2020202020003100  2020202020202020       .1.          ................
    [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   [jcc][Thread:WebContainer : 3][SQLException@4fece456] Message    = [jcc][t4][20107][11277][3.65.97] DDM パラメーターの値がサポートされていません。  DDM パラメーターのコード・ポイントにサポートされない値があります: 0x2414。
    [14/10/03 14:19:24:563 JST] 000000bc logwriter     3   [jcc][t4] 4E20   2020202020202020  2020202020202020                    ................
    [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   入力ホスト変数が、サーバーのサポートする範囲内にない可能性があります。 ERRORCODE=-4499, SQLSTATE=58017
    [14/10/03 14:19:24:563 JST] 000000bc logwriter     3   [jcc][t4] 4E30   2020202020202020  2020202020202020                    ................
    [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   [jcc][Thread:WebContainer : 3][SQLException@4fece456] Stack trace follows
    [14/10/03 14:19:24:563 JST] 000000bc logwriter     3   [jcc][t4] 4E40   2020202020202020  2020202020202020                    ................
    [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   com.ibm.db2.jcc.am.DisconnectNonTransientException: [jcc][t4][20107][11277][3.65.97] DDM パラメーターの値がサポートされていません。 DDM パラメーターのコード・ポイントにサポートされない値があります: 0x2414。
    [14/10/03 14:19:24:563 JST] 000000bc logwriter     3   [jcc][t4] 4E50   2020202020202020  2020202020202020                    ................
    [14/10/03 14:19:24:563 JST] 000000b6 logwriter     3   入力ホスト変数が、サーバーのサポートする範囲内にない可能性があります。 ERRORCODE=-4499, SQLSTATE=58017



  •  

ロケールの設定により上記の文字列は異なりますが、 ERRORCODE, SQLSTATE そして code [11277] は変わりません。

以下はこの現象がおきたときの参考 db2diag.log の関連するエラー "Invalid SQL statement length" です。
  • 2014-10-02-18.13.42.106000+540 E284129F828          LEVEL: Error
    PID     : 1360                 TID : 312            PROC : db2syscs.exe
    INSTANCE: DB2INST1              NODE : 000           DB   : SAMPLEDB
    APPHDL  : 0-365                APPID:
    AUTHID  : DB2INST1                HOSTNAME:
    EDUID   : 312                  EDUNAME: db2agentg (SAMPLEDB)
    FUNCTION: DB2 UDB, DRDA Application Server, sqljsParseSqlSttGrpNOC, probe:419
    MESSAGE : DIA5000C A DRDA AS token "RECOVERABLE" was detected.  The diagnostic
              data returned is (SRVDGN): "FUNCTION ID = 0050 , PROBE POINT = 0419 ,
              TRACE POINT = 0015 , SUBCODE1 = FFFFFFFF804B0095, SUBCODE2 =
              00000000000000BE, SUBCODE3 = 00000000000000BE, ERROR MSG = Parser:
              Invalid SQL statement length".

    2014-10-02-18.13.42.152000+540 I284959F676          LEVEL: Error
    PID     : 1360                 TID : 312            PROC : db2syscs.exe
    INSTANCE: DB2INST1              NODE : 000           DB   : SAMPLEDB
    APPHDL  : 0-365                APPID:
    AUTHID  : DB2INST1                HOSTNAME:
    EDUID   : 312                  EDUNAME: db2agentg (SAMPLEDB)
    FUNCTION: DB2 UDB, DRDA Application Server, sqljsParseSqlSttGrpNOC, probe:15
    MESSAGE : ZRC=0x804B0095=-2142568299=SQLJS_VALNSP "VALUE ERROR"
    DATA #1 : DDM Object, PD_TYPE_DDM_OBJECT, 16 bytes

            data length : 190
            codepoint   : 0x2414 ( SQLSTT )
            length      : 194 ( COMPLETE )

    2014-10-02-18.13.42.184000+540 I285637F171        LEVEL: Error
    PID:1360 TID:312 NODE:000 Title: **** DRDA ASCB ****
    Dump File:D:\DB2PROFS\DB2INST1\1360.312.000.dump.bin

その WAS/JDBC アプリケーションから実行できない SQL は CLP からは問題なく実行できると考えられます。
また、この問題を起こす SQL を JDBC Type4 で直接 DB2 for AS/400 へ実行する小さな JDBC プログラムを作成することにより、直接接続した場合にはこの問題が生じないことが確認できます。

この事象の解決策は、DB2 Connect ゲートウェイを介さずに JDBC Type4 にて直接 DB2 for AS/400へアプリケーションが接続するようにすることです。
WAS の場合、DB2 Connect ゲートウェイの代わりに Type4 データソースへ DB2 for AS/400 のデータベース名、ホスト名、DRDA のポート番号の設定が必要です。
WAS と AS/400 間の TCP/IP 接続にファイアーウォールなどが影響を与えていないか確認してください。
これらの設定を使用した新規データソースを作成すれば WAS のテストコネクションオプションにて簡単に確認することが可能だと考えられます。
この新規データソースにて接続が確認できれば、この設定と同じように既存のアプリを設定することが有効な回避策となります。

この環境下でのライセンスに関しては、新たに DB2 Connect Personal Edition を購入する必要はありません。
DB2 Connect Unlimited Edition から WAS サーバへ db2jcc_license_cisuz.jar をコピーするだけです。
この場合、ライセンスファイル (db2jcc_license_cisuz.jar) を AS/400 へ接続するすべての JCC クライアントにコピーする必要があります。

注: この挙動は将来断り無く変更されることがあります。この Technote の内容が有効か否かは上記のメッセージを JCC トレースと db2diag.log で確認することにより可能です。

[{"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Programming Interface - JCC","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"9.7;10.1;10.5","Edition":"Advanced Enterprise Server;Advanced Workgroup Server;Enterprise Server;Workgroup Server","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
08 December 2022

UID

swg21691247