IBM Support

[Db2] V11.1: Java ストアード・プロシージャー が NoClassDefFoundError を発生する場合がある

Question & Answer


Question

Db2 V9.7 から V11.1 へアップグレードしました。なぜ Db2 V11.1 Java ストアード・プロシージャー が PowerClassLoader を見つけられないエラーが発生するのですか?

Cause

製品に含まれる db2java.zip を手動で除去した場合の期待される動作です。

Answer

以下のようなメッセージが Db2 V11.1 の db2diag.log に書かれる場合があります。



     
  • 2017-05-17-13.15.12.609355+540 I48192085A779        LEVEL: Error
    PID     : 18350522             TID : 1              PROC :
    INSTANCE: db2inst1             NODE : 000
    HOSTNAME: DB2INST1
    EDUID   : 1
    FUNCTION: DB2 UDB, BSU Java support, sqlejLogEarlyException, probe:11029
    DATA #1 : String, 476 bytes
    java.lang.NoClassDefFoundError: COM.ibm.db2.app.classloader.PowerClassLoader
    Caused by: java.lang.ClassNotFoundException:
            COM.ibm.db2.app.classloader.PowerClassLoader
            at java.net.URLClassLoader.findClass(URLClassLoader.java:607)
            at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:844)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:823)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:803)

このメッセージは Db2 V11.1 の環境で "COM.ibm.db2.app.classloader.PowerClassLoader" クラスを含んでいる db2java.zip が CLASSPATH に無い場合に書かれます。Db2 V9.7/V10.1/V10.5 の場合には db2java.zip が CLASSPATH に無い場合でも書かれません。

この V11.1 と V9.7/V10.1/V10.5 の動作の違いは V11.1 にて行われた Db2 Java ストアード・プロシージャーへの機能拡張に起因しています。

このメッセージが表示された場合には $INSTHOME/sqllib/java 下に db2java.zip ファイルがインストールされていることを確認してください。

以下の Db2 V10.1 のマニュアルには 「Db2 V8.2 にて db2java.zip が非推奨になりました」と記載されています。
V10.1, DB2 JDBC Type 2 ドライバーの廃止
-----
詳細
db2java.zip ファイルにパッケージされていた DB2 JDBC Type 2 ドライバー
(Linux、UNIX、および Windows 用) はバージョン 8.2 で非推奨になりました。
-----

しかし db2java.zip ファイルは Db2 V11.1 の Java ストアード・プロシージャー機能に必要ですのでファイル名の変更、移動は行わないでください。

注:
この挙動は将来断り無く変更されることがあります。このテックノートの内容が有効か否かは
db2java.zip を別の名前に変更、Java ストアード・プロシージャーを実行することにより
確認できます。

将来のリリースにてデザイン変更を希望される場合には弊社担当営業へリクエストいただく
ことが可能です。英語になりますが、お客様ご自身で機能拡張のリクエストがこちらの
サイトから可能です https://www.ibm.com/developerworks/rfe/

[{"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Routines (SP \u0026 UDF) - Java","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"11.1","Edition":"Advanced Enterprise Server;Advanced Workgroup Server;Enterprise Server;Workgroup Server","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
29 November 2022

UID

swg22010721