0

db2 データベースに接続する websphere コンソールにアプリケーションをデプロイしています。インストールされる jdk は IBM JDK です。オンライン画面から特定のケースを実行すると、エラーが表示されます:

UnsupportedEncodingException . ERRCODE = -4220

ログを確認すると、以下のエラーが根本的な原因のようです。

Caused by: java.io.UnsupportedEncodingException: Cp037
at sun.io.Converters.getConverterClass(Converters.java:319)
at sun.io.Converters.newConverter(Converters.java:373)
at sun.io.ByteToCharConverter.getConverter(ByteToCharConverter.java:98)
at com.ibm.db2.jcc.am.r.<init>(r.java:10)

分析: IBM db2 ドライバーのように見えます -db2jcc4.jar基礎となる JDK の特定の文字エンコード/デコード jar ( charsets.jarだと思います) を呼び出して、この jar によって消費され、文字列形式にデコードされるバッファーのストリームを渡します。

しかし、上記のログが示すように、呼び出されるライブラリは oracle jdk. ByteToCharConverterクラスは oracle jdk ライブラリの rt.jar にあります。IBM の websphere サーバーのインストールに組み込まれている IBM jdk を使用しています。また、OS 上の JAVA_HOME パスは IBM JDK のみに設定され、websphere コンソールでは、環境変数の下で、JAVA_HOME は websphere サーバー内の IBM JDK のルート パスとして設定されます。

エンコーディングがどのように行われるかを伝えるために、Websphere コンソールで特定のパラメーターを設定する必要がありますか? これをどのように乗り越えるかわかりません。どんな助けでも大歓迎です。

編集

db2jcc バージョン

IBM Data Server Driver for JDBC and SQLJ 4.18.60

Java -バージョン

java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 8.0.6.26 - pxa6480sr6fp26-20210216_01(SR6 FP26))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20210216_465732 (JIT enabled, AOT enabled)
OpenJ9   - e5f4f96
OMR      - 999051a
IBM      - 358762e)
JCL - 20210108_01 based on Oracle jdk8u281-b09
4

0 に答える 0