C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: SQLServer 分散トランザクションの設定


(過去ログ 139 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■81496 / inTopicNo.1)  SQLServer 分散トランザクションの設定
  
□投稿者/ アブサン (28回)-(2016/09/29(Thu) 17:15:52)

分類:[C#] 

C# +.Net Framework 4.5.2でWindowsアプリを作成しています。

Windows7 SP1のPC上で開発を行っており、
DBはWindows8.1 のPC上のSQL Server 2014 Expressを使用してます。

Expressの10GByte制限回避のため複数インスタンスでDBを構築していますが
複数インスタンスに対しトランザクションを行う必要がでてきました。
(DBのマシンは1台のみです)

そこでTransactionScopeを使用して分散トランザクションを行おうと
しておりますが、2つ目のSqlConnectionのOpenで下記エラーとなります。

「分散トランザクション マネージャー (MSDTC) のネットワーク アクセスは無効になっています。
コンポーネント サービス管理ツールを使用して、MSDTC のセキュリティ構成でネットワーク
アクセスの DTC を有効にしてください。」

そこで、Windows8.1のPCで下記設定を行いましたが状況が変わりません。

(1)「Distributed Transaction Coordinator」サービスを起動(自動の設定もしました)
(2)コンポーネントサービスの「Distributed Tansaction Coordinator」-「ローカルDTC」の
プロパティを開き、「セキュリティ」タブから下記をチェック

ネットワークDTCアクセス
受信を許可する
送信を許可する
認証を必要としない

(3)ファイアウォールを確認のため無効に設定
(4)PCを再起動

Windows7 SP1のPC上にも何か設定が必要でしょうか?
不足している事項などありましたらご指摘いただけると助かります。
よろしくお願いいたします。

引用返信 編集キー/
■81497 / inTopicNo.2)  Re[1]: SQLServer 分散トランザクションの設定
□投稿者/ アブサン (29回)-(2016/09/29(Thu) 17:26:47)
書き忘れましたので追記します。
大雑把に記述しますとソースは下記のようになります。
(usingやtry-catch-finallyなどは省いて書きます)
何か問題があればご指摘願います。

TransactionScope tranScope = new TransactionScope();

SqlConnection connect1 = new SqlConnection("接続文字1");
connect1.Open();
//テーブルロックSQL発行
//SQL発行
connect1.Close();
connect1.Dispose();

SqlConnection connect2 = new SqlConnection("接続文字2");
connect2.Open(); <---ここでエラー
//テーブルロックSQL発行
//SQL発行
connect2.Close();
connect2.Dispose();

tranScope.Complete();
tranScope.Dispose();



引用返信 編集キー/
■81499 / inTopicNo.3)  Re[2]: SQLServer 分散トランザクションの設定
□投稿者/ アブサン (30回)-(2016/09/29(Thu) 19:55:06)
自己解決しました。

クライアントPC(Windows7 SP1)にも同等の設定を行ったところ
うまくいきました。

クライアントPCにも必要なのか…キツイなぁ
解決済み
引用返信 編集キー/
■81500 / inTopicNo.4)  Re[1]: SQLServer 分散トランザクションの設定
□投稿者/ PANG2 (153回)-(2016/09/30(Fri) 10:10:22)
No81496 (アブサン さん) に返信
> Expressの10GByte制限回避のため複数インスタンスでDBを構築していますが
> 複数インスタンスに対しトランザクションを行う必要がでてきました。
> (DBのマシンは1台のみです)

10Gの制限はデータベース単位なので、単一インスタンス複数データベースでよいのでは?
解決済み
引用返信 編集キー/
■81509 / inTopicNo.5)  Re[2]: SQLServer 分散トランザクションの設定
□投稿者/ アブサン (31回)-(2016/09/30(Fri) 21:25:36)
No81500 (PANG2 さん) に返信
> ■No81496 (アブサン さん) に返信
>>Expressの10GByte制限回避のため複数インスタンスでDBを構築していますが
>>複数インスタンスに対しトランザクションを行う必要がでてきました。
>>(DBのマシンは1台のみです)
>
> 10Gの制限はデータベース単位なので、単一インスタンス複数データベースでよいのでは?

ん?あれ?すいません、書き間違いです。
インスタンスは1つで複数データベースです。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -