Microsoft SQL Server データ・ソースへのデータ・アクセスの問題

トラブルシューティングのヒントを使用して、Microsoft SQL Server データ・ソースへのアクセスに役立ててください。

接続エラーの後で Microsoft SQL Server JDBC Driver V2.0 が停止する

Microsoft SQL Server JDBC Driver のバージョン 2.0 を使用している場合 (他のバージョンではこの問題は起きません)、接続エラーが発生した後で停止することがあります。この問題は、http://support.microsoft.com/kb/977924 にある Microsoft 提供のテスト・フィックスによって修正されます。

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

Distributed Transaction Coordinator サービスが開始されていない可能性があります。 Microsoft 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 「コントロール パネル」 > 「サービス」Servicesに移動します。または、「コントロール パネル」 > 「管理ツール」 > 「サービス」の順にクリックします。
  2. Distributed Transaction Coordinator、すなわち DTC サービスが始動済みかどうかを確認します。
  3. 開始していない場合は、Distributed Transaction Coordinator サービスを開始します。

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

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

この問題を解決するには、JDBC ドライバーのインストール・ガイドに従って、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 を起動します。
[Windows]

エラー XP_SQLJDBC_XA_INIT のために JAVAX.TRANSACTION.XA.XAEXCEPTION が発生する

Windows Server 2003 で Microsoft SQLSERVER データベースを使用していて、SQL Server のクラスターをあるノードから別のノードに移動するか、そのクラスターをシャットダウンすると、Windows コンポーネント・サービスの「XA トランザクションを有効にする」の設定が無効にリセットされることがあります。この問題が発生した場合は、JDBC ドライバーが XA トランザクションに対して有効ではなくなるため、XP_SQLJDBC_XA_INIT というエラーが原因で JAVAX.TRANSACTION.XA.XAEXCEPTION が発生することがあります。

Windows コンポーネント・サービスで XA トランザクションを再度有効にするには、以下のアクションを実行します。
  1. Microsoft Windows のデスクトップで、「スタート」>「設定」>「管理ツール」>「コンポーネント サービス」とクリックします。
  2. ツリー表示を展開し、XA トランザクションのサポートをオンにする必要のあるコンピューターを探します。例えば、「マイ コンピュータ」です。
  3. コンピューター名のコンテキスト・メニューを表示し、「プロパティ」をクリックします。
  4. 「オプション」をクリックし、次に「トランザクション タイムアウト」を環境に適した時間に設定します。推奨する最小設定は 180 秒です。
  5. 「MSDTC」をクリックし、次に「セキュリティの構成」をクリックします。
  6. 「セキュリティ設定」「XA トランザクションを有効にする」を選択してこのサポートを有効にします。
  7. 変更を保存する場合は、「OK」をクリックします。
トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): JDBC XA 接続のインストール資料では、2 つの既知の問題についての言及があります。詳しくは、以下の Microsoft サポート・サイトを参照してください。
  • KB899756: Windows 2003 のみ。MSDTC は、プロセスの終了を検出しません。また、MSDTC Windows Server 2003 で XA トランザクションのタイムアウト値を設定することはできません。
  • KB318818: SQL Server で XA トランザクションを使用するとパフォーマンスが低下する
gotcha

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_dsaccess4
ファイル名:rtrb_dsaccess4.html