WebSphere Application Server Network Deployment for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

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

データ・アクセスの問題 - SQL サーバー・データ・ソース

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

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

ERROR CODE: 20001 and SQL STATE: HY000 accessing SQLServer database

Distributed Transaction Coordinator サービスが開始されていない可能性があります。 SQL Server データベースへのアクセスの試行中に、以下のようなエラーが発生しているかどうか探してください。
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) ...
この問題を確認するには、以下を行います。
  1. Windows の「コントロール パネル」に移動し、「サービス」をクリックします (あるいは、 「コントロール パネル」>「Administrative Tools」>「Services」の順にクリックします)。
  2. Distributed Transaction Coordinator、すなわち DTC サービスが開始済みかどうかを確認します。
  3. 開始していない場合は、Distributed Transaction Coordinator サービスを開始します。

SQLServer データベースへのアクセス時に、"Cannot find stored procedure..." というメッセージが出され、アプリケーションが失敗する。

Java Transaction API (JTA) フィーチャーのストアード・プロシージャーが Microsoft SQL Server 上にインストールされていないと、このエラーが生じることがあります。

この問題を解決するには、ConnectJDBC インストール・ガイドに従って、JTA フィーチャーのストアード・プロシージャーのインストールを繰り返します。

JAVA アプリケーションを実行中に、ERROR CODE: SQL5042 が出る

このエラーは、稼働させるアプリケーションを次のように構成すると起こります。
  1. OS 390 へのゲートウェイ上で稼働する タイプ 2 (アプリケーション用) ドライバーを使用する。
  2. アプリケーションが XA アプリケーションである。
OS 390 で、XA を使わずに、SPM を使う。 この問題を解決するには、以下のようにします。
  1. SPM がまだゲートウェイで起動していないか、dbm cfg を調べます。
  2. ポートを割り当て、db2comm 変数を TCPIP に設定します。
  3. dbm cfg 値 SPM_NAME を更新し、マシンの名前を使えるようにします。
  4. ゲートウェイで SPM を起動します。

XA データ・ソースを使用する際に、Windows Server 2003 上で実行中の SQL Server 2000 に接続できない

症状

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 に対してレジストリー値を作成する必要があります。

解決策

Connect JDBC Driver (DataDirect Connect JDBC、IBM® WebSphere® 組み込み Connect JDBC) には、XA DLL sqljdbc.dll があり、通常は SQLServer_Install_Root¥MSSQL¥Binn にインストールされています。 例えば、c:¥Program Files¥Microsoft SQL Server¥MSSQL¥Binn) です。XA トランザクションで必要なレジストリー値は、自動的には作成されません。 これらの値は、以下のように手動で作成する必要があります。
  1. XA トランザクションのサポートをオンにします。
    1. コンポーネント・サービスを開きます。
    2. ツリー表示を展開し、XA トランザクションのサポートをオンにする必要のあるコンピューターを探します。例えば、「マイ コンピュータ」です。
    3. コンピューター名を右マウス・ボタンでクリックして、「プロパティ」をクリックします。
    4. 「MSDTC」タブをクリックして、「Security Configuration」をクリックします。
    5. 「Security Settings」の下で、このサポートをオンにする XA トランザクションのチェック・ボックスをクリックします。
    6. OK」をクリックし、再度「OK」をクリックします。
  2. 以下のようにレジストリーの名前付き値を作成します。
    1. Registry Editor を使用して、次のレジストリー・キーに移動します。
      HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥MSDTC¥XADLL
    2. 以下のようにレジストリーの名前付き値を作成します。
      • 名前」は、XA DLL のファイル名です (dllname.dll の形式)。
      • タイプ」はストリングです (REG_SZ)。
      • 」は、DLL ファイルの絶対パス名 (ファイル名を含む) です。
      名前 タイプ
      sqljdbc.dll ストリング (REG_SZ) c:¥Program Files¥Microsoft SQL Server¥MSSQL¥Binn¥sqljdbc.dll
      注: 使用を計画しているそれぞれの XA DLL ファイルに対して、項目を作成する必要があります。 また、クラスター上で MS DTC を構成している場合は、これらのレジストリー項目をクラスターの各ノード上で作成する必要があります。

詳細は、以下の Microsoft 文書を参照してください。

INFO: Registry Entries Are Required for XA Transaction Support



関連概念
welc6toptroubleshooting.html
関連タスク
例: CMP Bean と BMP Bean 間の接続を共用するための IBM 拡張 API の使用
関連資料
データ・アクセスの問題
データ・アクセスの問題 - Oracle データ・ソース
データ・アクセスの問題 - DB2 データベース
データ・アクセスの問題 - Cloudscape データベース
データ・アクセスの問題 - Sybase データ・ソース
データ・アクセス API に対する拡張機能
参照トピック    

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

最終更新: Jan 21, 2008 8:28:52 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rtrb_dsaccess4.html