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

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

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

コミット中に無線切断

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

■85126 / inTopicNo.1)  コミット中に無線切断
  
□投稿者/ kiku (9回)-(2017/09/12(Tue) 11:30:15)

分類:[.NET 全般] 

2017/09/12(Tue) 11:44:41 編集(投稿者)

・環境
 WindowsCE6.0機器
 SQLserverExpress
 WindowsFormアプリ
 C#
 .NETcompactFramework3.5
 ※CE機はWifiでネットワークに接続されており、無線環境が不安定である。

・質問1
 アプリからSQLServerに対して各種SQL文を実行しているのですが、
 無線環境が不安定であってもきちんと動作することを求められています。
 毎回トランザクションを使ってコミットするような実装をしようと思っていますが、
 コミット中など、SQLを実行中に無線切断などがあった場合
 アプリでは失敗となり、DBでは成功となるような状態不一致になるような
 ことは発生しないでしょうか?

 SQLServerの実装と、C#のsqlclientライブラリの実装に依存するのではないかと
 考えています。
 通常ですと、このようなことは十分ライブラリ側で考慮されているとは思っているの
 ですが、念のため、知見のある方にお聞きしたいです。

・質問2
 エラーが発生した場合、通常はロールバックを実行することになると
 思いますが、ネットワーク切断の場合、このロールバックも実行できないことに
 なると思います。
 SQLServer側はコミットもロールバックも実行されない状態で
 そのまま残ることになるのでしょうか?
 どのように対処すれば良いのでしょうか?

引用返信 編集キー/
■85133 / inTopicNo.2)  Re[1]: コミット中に無線切断
□投稿者/ ぶなっぷ (126回)-(2017/09/12(Tue) 12:48:24)
コミットが成功せずに、トランザクションが消滅した場合は、常に
ロールバック扱い。
コミットが成功したということは、すでにDBに保存されていること
が保証される。
これは、データベースを名乗るために必須の事項。

以下、トランザクション処理のWiki
> トランザクション処理システムは、1つのトランザクション内の
> 全操作がエラー無しに成功するか、全操作が実行されないことを
> 保証する。

これで、知りたいこと全てになるのかな?

引用返信 編集キー/
■85134 / inTopicNo.3)  Re[2]: コミット中に無線切断
□投稿者/ kiku (10回)-(2017/09/12(Tue) 13:35:04)
ご回答ありがとうございます。
理解が深まり、安心致しました。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ