PRB: 手動トランザクション モードで実行中に、クローンとして作成された接続を開始できません。

文書翻訳 文書翻訳
文書番号: 313181 - 対象製品
すべて展開する | すべて折りたたむ

目次

現象

JDBC の Microsoft SQL Server 2000 のドライバーを使うと、次の例外がする場合があります。
java.sql.SQLException: [Microsoft] [JDBC を SQL Server 2000 のドライバー] 手動トランザクション モードでの複製接続を開始できません。

原因

手動トランザクション モードで JDBC ドライバーを使って、SQL Server データベースに対して複数ステートメントを実行しようとするとこのエラーが発生 (自動コミット = false) との直接の使用時 (SelectMethod = 直接) モード。 直接モードは、既定のモードのドライバーです。

解決方法

手動トランザクション モードを使用すると、カーソル行の前までに、ドライバーの SelectMethod プロパティを設定またはこの資料の「関連情報」セクションで指定された接続ごとに 1 つだけアクティブ ステートメントを使用してくださいください。

状況

これは仕様によるものです。

詳細

動作を再現する手順

エラーの再現するのにには、次のコードを使用します。

: 問題を解決する必要なコードの変更点に情報のコードのコメントを表示します。
import java.sql.*;
import java.io.*;


public class Repro{

	public static void main(String args[])
	{
		try {
			Connection con;
			Statement s1 = null;
			ResultSet r1 = null;
			Statement s2 = null;
			ResultSet r2 = null;
			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
			con = DriverManager.getConnection(
				"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;SelectMethod=Direct;User=User;Password=Password");
			//fix 1
				//"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;SelectMethod=Cursor;User=User;Password=Password");
			con.setAutoCommit(false);
			
			try {
				s1 = con.createStatement();
				r1 = s1.executeQuery("SELECT * FROM authors");
				
				//fix 2
				//r1.close();
				//s1.close();

				s2 = con.createStatement();
				r2 = s2.executeQuery("SELECT * FROM publishers");
			}
			catch (SQLException ex)
			{
				System.out.println(ex);				
			}
		
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
}
				

関連情報

接続の複製の詳細については、接続文字列のプロパティの参照、Microsoft SQL Server 2000 ドライバー JDBC HTML ヘルプまたはオンライン ガイドには。ドライバーとの複製の接続の追加についてはをクリック資料以下、資料の「サポート技術情報」(Microsoft Knowledge Base) を表示します。
313220PRB: 予期しない JDBC を SQL Server 接続

プロパティ

文書番号: 313181 - 最終更新日: 2003年6月30日 - リビジョン: 2.0
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Driver for JDBC
キーワード:?
kbprb kbmt KB313181 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:313181
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com