この項目では、SQL サーバー・データ・ソースにアクセスする際のトラブルシューティングのヒントを提供しています。
ERROR CODE: 20001 SQL STATE: HY000 java.sql.SQLException: [Microsoft][SQLServer JDBC Driver] [SQLServer]xa_open (0) returns -3 at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) ... at com.microsoft.jdbcx.sqlserver.SQLServerDataSource.getXAConnection(Unknown Source) ...
Java Transaction API (JTA) フィーチャーのストアード・プロシージャーが Microsoft SQL Server 上にインストールされていないと、このエラーが生じることがあります。
この問題を解決するには、ConnectJDBC インストール・ガイドに従って、JTA フィーチャーのストアード・プロシージャーのインストールを繰り返します。
症状
XA データ・ソースを使用して、 Windows® 2003 で実行中の SQL Server 2000 に接続すると、次の例外を受け取ります。
java.sql.SQLException: [IBM][SQLServer JDBC Driver][SQLServer]xa_open (0) returns -3また、WebSphere Application Server SystemOut.log に以下の例外が表示される場合もあります。
[9/21/04 16:57:53:284 CST] 558bbb0a FreePool E J2CA0046E: メソッド createManagedConnctionWithMCWrapper は、リソース jdbc/lmDS に対する ManagedConnection の作成中、例外をキャッチし、ResourceAllocationException をスローしました。オリジナル例外: com.ibm.ws.exception.WsException: DSRA8100E: DataSource から XAConnection を取得できません。 at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init> (DataStoreAdapterException.java:244) at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init> (DataStoreAdapterException.java:171) at com.ibm.ws.rsadapter.AdapterUtil.createDataStoreAdapterException (AdapterUtil.java:209) at com.ibm.ws.rsadapter.DSConfigurationHelper.getPooledConnection (DSConfigurationHelper.java:911) at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection (WSRdbDataSource.java:675) .... 原因: java.sql.SQLException: [IBM][SQLServer JDBC Driver] [SQLServer]xa_open (0) returns -3 at com.ibm.websphere.jdbc.base.BaseExceptions.createException (Unknown Source) ---- Begin backtrace for nested exception java.sql.SQLException: [IBM][SQLServer JDBC Driver][SQLServer] xa_open (0) returns -3 at com.ibm.websphere.jdbc.base.BaseExceptions.createException (Unknown Source) at com.ibm.websphere.jdbc.base.BaseExceptions.getException (Unknown Source)
問題
XA トランザクションは、デフォルトで、Windows Server 2003 上では使用不可になっています。 Windows® Windows Server 2003, Microsoft Distributed Transaction Coordinator (MS DTC) では、使用を計画しているすべての XA DLL に対してレジストリー値を作成する必要があります。
解決策
HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥MSDTC¥XADLL
名前 | タイプ | 値 |
sqljdbc.dll | ストリング (REG_SZ) | c:¥Program Files¥Microsoft SQL Server¥MSSQL¥Binn¥sqljdbc.dll |
詳細は、以下の Microsoft 文書を参照してください。
INFO: Registry Entries Are Required for XA Transaction Support