WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化

データ・アクセスの問題 - DB2 データベース

この項目では、DB2 データベースにアクセスする際のトラブルシューティングのヒントを提供しています。

DB2 データベースへのアクセス時に、どのような問題が発生しましたか?

SQL0567N "DB2ADMIN" is not a valid authorization ID. SQLSTATE=42602

DB2 Universal Database (UDB) にアクセスしようとしてこのエラーが発生した場合は、 以下のようにします。
  1. 管理コンソール内のデータ・ソース・プロパティー・ページに入力されているユーザー名およびパスワードが正しいことを確認します。
  2. ユーザー ID およびパスワードの前後および途中にブランク文字が含まれていないことを確認します。

SQL0805N Package package-name was not found

この例外の原因としては、以下のことが考えられます。
DB2 Universal Database (UDB) 上でこの問題を解決するには、 問題のデータベースに接続中に db2cmd インターフェースを使用して、次のように一回限りの手順を実行します。
  1. DB2 bind @db2ubind.lst blocking all grant public
  2. DB2 bind @db2cli.lst blocking all grant public

db2ubind.lst ファイルおよび db2cli.lst ファイルは 、DB2 インストール・ルートの bnd ディレクトリーにあります。 このディレクトリーからコマンドを実行します。

SQL0805N Package "NULLID.SQLLC300" was not found. SQLSTATE=51002

このエラーが発生する理由としては、次のようなものが考えられます。
  • 基礎となっているデータベースが除去され、再作成されました。
  • DB2 がアップグレードされましたが、そのパッケージが正しく再バインドされていません。

この問題を解決するには、bnd ディレクトリーに ある db2cli.lst スクリプトを実行して、DB2 パッケージを再バインドします。 例えば、db2>@db2cli.lst のようにします。

SQL30082N Attempt to establish connection failed with security reason "17" ("UNSUPPORTED FUNCTION') SQLSTATE=08001

このエラーは、クライアントから指定されたセキュリティーのメカニズムが、このサーバーには有効でない場合に発生することがあります。いくつかの典型的な例を以下に示します。
  • クライアントが、パスワード変更機能に対応していないサーバーに、 新規パスワードの値を送信しました。
  • クライアントが、パスワード暗号化に対応していないサーバーに、 SERVER_ENCRYPT 認証情報を送信しました。
  • クライアントが、ユーザー ID のみによる認証に対応していないサー バーに、ユーザー ID (パスワードは送信しない) を送信しました。
  • クライアントが認証タイプの指定を行わず、サーバーがサポート対象 のタイプに応答しません。これは、クライアントが選択できない複数のタイプを戻すサーバーを含む場合があります。

この問題を解決するには、クライアントおよびサーバーが同じセキュリティー・メカニズムを使用しているかどうかを確認します。 例えば、これがユーザーのデータ・ソース上のエラーである場合、ユーザー ID とパスワードまたは認証エイリアスの割り当てを行ったかどうかを確認します。

ErrorCode -99,999 および SQLState 58004 の SQLException で、WAS40 タイプのデータ・ソースを使用した、Java の "StaleConnectionException: COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0119E Unexpected system failure. SQLSTATE=58004"

XA モード (2 フェーズ・コミット) で実行中に、 予期しないシステム障害が頻繁に発生します。 以下のような原因が考えられます。
  • 無効なユーザー名またはパスワードが入力された。
  • データベース名が間違っている。
  • いくつかの DB2 パッケージが破壊された。
ユーザー名またはパスワードの問題があるかどうかを判別するには 、db2diag.log ファイルを参照して、実際のエラー・メッセージおよび SQL コードを表示してください。 SQLCODE -1403 を含む次のようなメッセージでは、無効なユーザー ID またはパスワードが示されます。
2002-07-26-14.19.32.762905   Instance:db2inst1   Node:000
PID:9086(java)   Appid:*LOCAL.db2inst1.020726191932
XA DTP Support  sqlxa_open   Probe:101
DIA4701E Database "POLICY2" could not be opened for distributed transaction processing.
String Title: XA Interface SQLCA  PID:9086 Node:000
SQLCODE = -1403
以下の方法で、これらの問題を解決します。
  1. ユーザー名とパスワードを訂正します。GUI でデータ・ソースのパスワードを指定する場合は 、Bean で指定するユーザー名とパスワードが正しいことを確認してください。 Bean で指定するユーザー名とパスワードは、 データ・ソースの作成時に指定されたものを上書きします。
  2. 正確なデータベース名を使用する。
  3. 以下のようにして、パッケージ (bnd ディレクトリーにある) を再バインドする。
    db2connect to dbname
    c:¥SQLLIB¥bnd>DB2 bind @db2ubind.lst blocking all grant public
    c:¥SQLLIB¥bnd>DB2 bind @db2cli.lst blocking all grant public
  4. ¥WebSphere¥AppServer¥properties¥wsj2cdpm.properties ファイルのユーザー ID とパスワードが正しいことを確認します。

CLI0119E System error. SQLSTATE=58004 - DSRA8100 : Unable to get a XAconnection or DSRA0011E: Exception: COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0119E Unexpected system failure. SQLSTATE=5800

DB2 Universal Database (UDB) データ・ソースにアクセスしようとしてこのエラーが発生した場合は、以下のようにします。
  1. 管理コンソール内のデータ・ソース・プロパティー・ページで、データ・ソースに正しいデータベース名が指定されていることを確認します。
  2. カスタム・プロパティー・ページで、ユーザー名とパスワードのカスタム・プロパティーを確認します。 これらが正しいことを確認してください。
  3. ユーザー ID およびパスワードの前後または途中にブランク文字が含まれていないことを確認します。
  4. があることを確認します。
  5. 基礎となる SQL エラー用の例外リスト全体を表示し、DBM ベンダーのメッセージ解説でそれを調べてください。

Red Hat Linux 上で DB2 の実行中にこのエラーが生じた場合は 、max queues system wide パラメーターが低すぎるために 、DB2 がトランザクションの完了に必要なリソースを獲得できないことを示します。 この問題が生じると、例外 J2CA0046E および DSRA0010E に続いて、 例外 DSRA8100E が出されることがあります。

この問題を解決するには 、/proc/sys/kernal/msgmni ファイルを編集して 、max queues system wide パラメーターの値が 128 より大きい値にしてください。

COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code "2". SQLSTATE=40001

この問題の原因は、 特に DB2 データ・ソースへのアクセス中に次のようなエラーが発生した場合は、 おそらく、アプリケーションに起因する DB2 のデッドロックです。
ERROR CODE: -911
COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0911N
The current transaction has been rolled back because of a deadlock or timeout.
Reason code "2".  SQLSTATE=40001
問題を診断するには、以下のようにします。
  1. 以下の DB2 コマンドを実行する。
    1. db2 update monitor switches using LOCK ON
    2. db2 get snapshot for LOCKS on dbName >
    ここで、directory_name¥lock_snapshot.log には DB2 ロック情報が含まれます。
  2. db2 update monitor switches using LOCK OFF を実行して、モニターのロックをオフにする。
デッドロックがあるかどうかを確認するには、以下のようにします。
  1. ロック待機状況のアプリケーション・ハンドルを探してから、 ロックを保留しているエージェントの ID を探して、そのエージェントの ID を確認する。
  2. そのハンドルに移動し、そのハンドルがロック待機状況を持っているか、 およびそのハンドルに対するロックを保留するエージェントの ID を持っているかを確認する。 それが以前のものと同じエージェント ID である場合は、 循環ロック (デッドロック) であることが分かります。
この問題を解決するには、以下のようにします。
  1. アプリケーションを検査し、並行アクセスが必要でない場合は、制限の少ない分離レベルを使用する。
  2. accessIntent 値を変更して分離レベルを下げる場合は、注意して行う。 これを変更すると、データ保全性の問題が生じることがあります。
  3. DB2/UDB バージョン 7.2 以前のリリースの場合、Bean メソッド上で定義される accessIntent が極めて限定的で ある場合 (例えば PessimisticUpdate など) は、不要なデッドロックを排除するために DB2 コマンド行ウィンドウか ら DB2_RR_TO_RS フラグを設定することができます。DB@_RR_TO_RS を設定すると、以下のような 2 つの影響を与えます。
    • 選択した分離レベルが RR である場合、これは効果的に RS へとダウングレードされます。
    • 別の分離レベルを選択し、DB2_RR_TO_RS 設定をオンにすると、 スキャンは、削除済みでコミットされていない行は、スキャン対象であってもスキップします。 スキップ動作は、RR、読み取り固定 (RS)、およびカーソル固定 (CS) 分離レベルに影響を与えます。

    例えば、トランザクション A が column1=10 の行を削除し、 トランザクション B が column1>8 かつ column1<12 にスキャンを行うというシナリオがあるとします。 DB2_RR_TO_RS をオフにした場合、トランザクション B はトランザクション A がコミットまたはロールバックするまで待機します。 トランザクション A がロールバックすると、column1=10 の行は、トランザクション B の照会の結果セットに組み込まれます。 DB2_RR_TO_RS をオンにした場合、 トランザクション B はトランザクション A がコミットまたはロールバックするまで待機しません。 トランザクション B は、削除された行を含まない照会結果を即時に受け取ります。 DB2_RR_TO_RS を設定すると、ロック動作が効果的に変更され、 デッドロックが回避されます。

"COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource" がデータ・ソース ([data-source-name]) に見つかりません

このエラーは、メッセージ「DSRA8040I: DataSource への接続に失敗しました。」で表示されます。

このエラーは、通常、DB2 JDBC Driver のクラスパスは 正しく ${DB2_JDBC_DRIVER_PATH}/db2java.zip に設定されているが、 環境変数 DB2_JDBC_DRIVER_PATH が設定されていない場合に生じます。

このエラーは、DB2 バージョン 7.1 または 7.2 を使用している場 合、および usejdbc2 をまだ稼働していない場合に起こる場合があります。お客様のパスは正しいにもかかわらず、このエラーが表示される場合は、問題が考えられます。

この問題を確認するには、以下を行います。
  1. WebSphere 変数の管理」パネルに移動します。
  2. 環境」を選択して、 変数 DB2_JDBC_DRIVER_PATH のエントリーがないことを確認してください。

この問題を解決するには、 変数 DB2_JDBC_DRIVER_PATH のdb2java.zip ファイルを含んでいるディレクトリー・パスに設定して、追加します。

フィールドの 1 つにある 255 文字を超えるエンティティーについてパブリッシュまたは照会が行われようとしたときに、エラー 10500 (E_Fatal) が戻る。 [z/OS]

このエラーは通常、フィールドの 1 つにある 255 文字を超えるエンティティーについてパブリッシュまたは照会が行われようとしたときに起こります。 英語以外の文字が使用されている場合はあまりはっきりしません。255 文字が表示される前に本当の限界に達するからです。

この問題を修正するには、DB2 Version 7 on z/OS を使う際の制限として受け入れます。255 文字の制限を越えないでください。

java.sql.SQLException: Failure in loading T2 native library db2jcct2 DSRA0010E: SQL State = null, Error Code = -99,999

メッセージ「Failure in loading」は、以下の 2 つのうちの 1 つを示します。
  • 通常これは、マシンが DB2 をインストール後にリブートされなかっ た場合に発生します。エラーの発生したマシンをリブートし、再試行してください。
  • WebSphere Application Server を稼働しているユーザーに対して、DB2 コン テキストが正常にセットアップされていません。db2profile ファイルをマシンに調達し、環境が DB2 ネイティブ・ライブラリーへのポインターを含むことを確認してください。

データ・ソースのインプリメンテーション ・タイプが XA である場合に、データベースにロック競合例外が発生する

注: ロック競合例外は、 さまざまな要因により発生する場合がありますので、ロック競合問題が起こ りうる原因を除去する方針として、以下の説明および推奨される対応を 考慮してください。
症状 ロック競合例外が、ご使用のアプリケーションがインプリメンテ ーション・タイプ XA のデータ・ソース経由でアクセスする DB2 データベースに発生します。
問題 ご使用のアプリケーションは、終了 (e) 状態にある XA トラン ザクションによりロックされているデータベース・レコードにアクセスしよ うとしていますが、トランザクション・マネージャーで準備済みにはできま せん。
説明 終了するが、準備できない DB2 への XA トランザクション は、終了 (e) 状態になります。未確定 なものは考慮されない ため、トランザクション・マネージャーは、このトランザクションをリカバリーすることはできません。DB2 はそのトランザクションを、未確定トランザクションのリストに戻しません。

DB2 はまた、トランザクションを即時にロールバックせず、データベースへのすべての接続が解除されるまで待機します。 この待機の間、トランザクションはデータベースのロック状態を保持し続けます。アプリケーション・サーバーがロールバックを 許可するデータベースからのすべての接続を切断するわけではない場合は、終了したトランザクションは、 同じデータベース・レコードをロックしたままの状態を維持します。 ご使用のアプリケーションが、これらのロックされたレコードにアクセス しようとすると、DB2 でロック競合例外が発生します。

推奨される対応 DB2 バージョン 8.2 は、定義済み DB2 サーバーに接続するサン プル・アプリケーションと共に配送され、これらの終了した特定のトランザクションのリストを取得するために使用可能な DB2 API を使用します。アプリケーションは、アプリケーションがこれらのトランザクションをロールバックバックした後で、総時間の指定を可能にする構成設定を提供します。 DB2 バージョン 8.2 の sqllib/samples/db2xamon.c デ ィレクトリーにあるサンプル・アプリケーションを見付けて、実行しま す。

混合リリース・セルで DB2 Universal Datasource の使用を試みる場合に発生する例外 "DSRA8050W: 指定された DataStoreHelper クラスを検出できません" が発生します。

このエラーは通常、 WebSphere Application Server バージョン 6.0 以降を旧バージョンと併用して使用し、DB2 Universal Datasource を旧バージョンで作成しようとした場合に発生します。

これは、DB2 Universal Datasource が、バージョン 5 およびそれ以前のバージョンで使用できないにもかかわらず、バージョン 6 の管理コンソールが作成を許可することが原因で発生する場合があります。

この問題を修正するには、バージョン 6.0 以降でデータ・ソースを作成します。

WebSphere Application Server もインストールされている Windows マシン上の DB2 にアクセスしようとして、「'SYSTEM' is not a valid authorization ID」というメッセージを受信しました。

症状 バックエンドとして DB2 を使用している Windows インストール上の WebSphere Application Server の場合、JVM ログ内に以下の例外が示されます。
java.sql.SQLException: [IBM][CLI Driver] SQL0567N  "SYSTEM" is not a valid authorization ID.  SQLSTATE=42602 DSRA0010E: SQL State = 42602, Error Code = -567
       at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException
              (Unknown Source)
       at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code
               (Unknown Source)
       at COM.ibm.db2.jdbc.app.DB2Connection.connect(Unknown Source)
       at COM.ibm.db2.jdbc.app.DB2Connection.<init>(Unknown Source)
       at COM.ibm.db2.jdbc.app.DB2ReusableConnection.<init>(Unknown Source)
       at COM.ibm.db2.jdbc.DB2PooledConnection.getConnection(Unknown Source)
       at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getConnection(WSRdbDataSource.java:1035)
at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:937)
at com.ibm.ejs.j2c.poolmanager.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:1502)
問題 この例外は、WebSphere Application Server が DB2 サーバーのクライアントである構成の場合に発生します。 基本的な問題は、Windows 上の WebSphere Application Server と DB2 の間の権限の競合です。これは、アプリケーションがユーザー ID およびパスワードを提供することなしに DB2 に接続しようとして起こります。
説明 DB2 クライアントと DB2 データベースが同じマシン上で実行されているときは、DB2 はクライアントがユーザー ID およびパスワードなしで接続することを許可します。 接続はクライアント・プロセスを所有するユーザーのクレデンシャルの下で行われます。この場合はアプリケーション・サーバー JVM です。 ただし、WebSphere Application Server が Windows サービスとして実行されていて、「Log on as」オプションが「Local System Account」に設定されている場合は、アプリケーション・サーバー JVM は SYSTEM と呼ばれる特定の Windows ユーザーのサブコンポーネントとしてカテゴリー化されています。 このユーザーは DB2 に接続することを許可されていないので、先に示した例外という結果になります。
推奨される対応 以下の 2 つのオプションがあります。
  • WebSphere Application Server サービスを、This accountLog on as オプションを使用するように変更し、DB2 と接続するアクセス権を提供します。 または
  • アプリケーション・サーバーを構成して、コンテナー管理、またはコンポーネント管理の認証を使用して、DB2 接続上のクレデンシャルを提供します。

1 フェーズ・トランザクション・ロールバック後の DB2 Universal JDBC driver タイプ 4 での XA 準備呼び出しにおける XAException: XAER_NOTA

症状

DB2 v8.2 で使用可能な DB2 Universal JDBC driver タイプ 4 XA を使用しているアプリケーションの場合、接続が失敗し、XAER_NOTA XAException エラーが発生する可能性があります。 以下のコード・ブロックは、この例外の例です。
J2CA0027E: トランザクション ID {XidImpl 内で、
dataSource jdbc/SDOSVT から XA リソース・アダプターで prepare を
呼び出しているときに、例外が発生しました。: formatId(57415344),
gtrid_length(36), bqual_length(54),
data(000000ff5191398200000001000000296cac5c42fe3c6838631cbaafc8b5a9253b846544
000000ff5191398200000001000000296cac5c42fe3c6838631cbaafc8b5a9253b8465440000000
10000000000000000000000000002)}:
javax.transaction.xa.XAException: XAER_NOTA
at com.ibm.db2.jcc.a.xb.a(xb.java:1682)
at com.ibm.db2.jcc.a.xb.a(xb.java:841)
at com.ibm.db2.jcc.a.xb.prepare(xb.java:812)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.prepare
 (WSRdbXaResourceImpl.java:837)
...

問題

DB2 Universal JDBC driver タイプ 4 XA 接続が、 AutoCommit が false に設定されたローカル・トランザクションなどの単一フェーズ・トランザクションで使用されており、その単一フェーズ・トランザクションがロールバックされた場合、prepare 呼び出し上での、2 フェーズ・トランザクションにおける次の接続の使用は失敗します。

DB2 Universal JDBC driver タイプ 4 XA サポートの問題により、 XA の prepare 呼び出しが失敗します。 この問題は、単一フェーズ・トランザクションがコミット済みの場合、および DB2 Universal JDBC Driver をタイプ 2 モードで使用している場合は発生しません。

解決策

DB2 バージョン 8.2 修正パッケージ 1 にアップグレードします。これは、バージョン 8.1 修正パッケージ 8 と同じです。これらのリリースで使用可能な Universal JDBC Driver XA により、前述のタイプ 4 モードでの問題が解決されます。

JDBC ドライバーのファイル・バージョンの非互換性により、アプリケーション・クライアントで java.rmi.MarshalException が記録される

症状

J2EE アプリケーション・クライアントを含むアプリケーションの場合、アプリケーション・サーバーのクライアント・ログ・ファイルで以下のエラー・メッセージが表示されます。
java.rmi.MarshalException: CORBA MARSHAL
0x4942f89a No; nested exception is:
org.omg.CORBA.MARSHAL: Unable to read value from
underlying bridge : Mismatched serialization
UIDs : Source (Rep.
IDRMI:com.ibm.db2.jcc.c.SqlException:63EEE52211DCD763:82CE0C0DA2B0A000)
 = 82CE0C0DA2B0A000 whereas Target (Rep. IDRMI:com.ibm.db2.jcc.c.SqlException:63EEE52211DCD763:91C6171BC645E41B)
 = 91C6171BC645E41B  vmcid: 0x4942f000  minor code:
2202  completed: No 

問題

アプリケーション・クライアント・マシンおよびご使用のアプリケーション・サーバー上の db2jcc.jar ファイルが、相互に互換性のないバージョンの DB2 のものか、データ・ストアとして機能するバージョンの DB2 と互換性がありません。

解決策

アプリケーション・クライアント・マシン、ご使用のアプリケーション・サーバー、およびご使用の DB2 サーバー上の db2jcc.jar ファイルを確認します。 クライアント・マシンおよびアプリケーション・サーバー上では、 DB2 サーバーと互換性のある同じバージョンのファイルをインストールします。

データベース障害によって、DB2 Universal driver タイプ 4 を使用するアプリケーションで問題になる -99999 例外が引き起こされる

症状

DB2 Universal driver タイプ 4 を使用して DB2 または Cloudscape Network Server へのアクセスを試み、データベースが障害を起こした場合、データベース・サーバーがすべての JDBC getConnection 要求に対して 汎用 -99999 例外を出します。 以下のコードの抜粋で例が示されているこの例外は、アプリケーションで予期しない振る舞いを引き起こす可能性があります。

java.sql.SQLException: IO Exception opening socket to
	server bs8.rchland.ibm.com on port 1527.
The DB2 Server may be down.DSRA0010E: SQL State = null,
	Error Code = -99,999DSRA0010E: SQL State = null,
Error Code = -99,999
at com.ibm.db2.jcc.b.a.<init>(a.java:125)
at com.ibm.db2.jcc.b.b.a(b.java:1011)
at com.ibm.db2.jcc.c.l.<init>(l.java:197)
at com.ibm.db2.jcc.b.b.<init>(b.java:258)
at com.ibm.db2.jcc.DB2PooledConnection.
	<init>(DB2PooledConnection.java:44)
at com.ibm.db2.jcc.DB2ConnectionPoolDataSource.getPooledConnectionX
	(DB2ConnectionPoolDataSource.java:80)
at com.ibm.db2.jcc.DB2ConnectionPoolDataSource.getPooledConnection
	(DB2ConnectionPoolDataSource.java:45)
at com.ibm.ws.rsadapter.DSConfigurationHelper$1.run
	(DSConfigurationHelper.java:945)

問題

DB2 Universal Driver の一部のバージョンでタイプ 4 モードで実行中に、データベース障害に対して、WebSphere Application Server が失効した接続例外にマップできる特定のエラー・コードではなく、汎用例外が発生します。 この問題は、DB2 8.1 修正パッケージ 6 または 7、および DB2 8.2 に関連付けられたバージョンのドライバーで発生します。

解決策

DB2 バージョン 8.2 修正パッケージ 1 にアップグレードします。これは、バージョン 8.1 修正パッケージ 8 と同じです。前述のシナリオでの有効なエラー・コードが用意されています。 WebSphere Application Server は、このエラー・コードを予想通りに StaleConnectionException にマップします。

DB2 Universal JDBC Driver を使用している場合に Linux 上の DB2 にアクセスできない

症状

Linux 環境の WebSphere Application Server で、DB2 Universal JDBC Driver を使用して Linux 上の DB2 にアクセスするアプリケーションが、データベースに接続できない可能性があります。 データベース・サーバーが、アプリケーション・サーバーのエラー・ログに以下の例外を出すことがあります。

問題

Linux 上の DB2 で Universal JDBC Driver を使用するように構成するプロセスが完了しません。

解決策

64 ビット Linux 上で実行中の DB2 へのアクセスに使用される DB2 レガシー CLI ベースのタイプ 2 ドライバーでテスト接続操作が失敗する

症状

AMD OpteronTM プロセッサーを使用して 64 ビット Linux 上で DB2 を実行する場合、DB2 レガシー CLI ベースのタイプ 2 ドライバーを使用して構成されたデータ・ソースのテスト接続操作が失敗します。 WebSphere Application Server 管理コンソールで以下のエラー・メッセージが表示されます。
 [3/8/05 16:27:19:020 CST] 0000003c DataSourceCon E DSRA8040I:
DataSource への接続に失敗しました。
 "" を検出しました。: java.lang.UnsatisfiedLinkError:
COM/ibm/db2/jdbc/app/DB2Connection.SQLConnect
 (Ljava/lang/String;II)I

問題

ご使用の 64 ビット DB2 バージョン 8.1 修正パッケージ 8 が、ADM64 プラットフォーム上で DB2 レガシー CLI ベースのタイプ 2 ドライバーをサポートしていません。 このバージョンの DB2 には、このドライバーで必要になるライブラリー libdb2jdbc.so がありません。

解決策

DB2 v8.1 を修正パッケージ 9 にアップグレードしてください。

コンテナー管理される永続 Bean 内の VARCHAR FOR BIT DATA 列で、不正な型変換が行われる

DB2 のテーブルに VARCHAR FOR BIT DATA 列が定義されている、コンテナー管理される永続 (CMP) タイプの Enterprise Bean を、DB2 ユニバーサル JDBC タイプ 4 ドライバーにデプロイしてデータを永続化させると、実行時に、不正な型変換を示す SQLException がスローされます。この例外が発生するのは、DB2 ユニバーサル JDBC タイプ 4 ドライバーを使用し、deferPrepares プロパティーを true に設定している場合だけです。deferPrepares プロパティーを true に設定している場合は、DB2 ユニバーサル JDBC タイプ 4 ドライバーは、標準の JDBC データ・マッピングを使用します。

現在のところ、生成されてデプロイ済みのコードは、標準の JDBC 仕様のマッピングには準拠していません。実行時の失敗は、実行用に Enterprise Bean を準備したツールにおける問題が原因です。

この例外を受け取らないようにするには、以下のいずれかのオプションを選択してください。
  • データ・ソース構成で、deferPrepares プロパティーを false に設定する。
  • テーブルに VARCHAR FOR BIT DATA または LONG VARCHAR FOR BIT DATA 列がある場合には、DB2 ユニバーサル JDBC タイプ 4 ドライバーを使用しない。DB2 の既存の CLI ベースの JDBC Driver を使用して、データを永続化してください。詳細は、DB2 V8.1 の readme を参照してください。



参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/rtrb_dsaccess3.html