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

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

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

Re[1]: データベースの終了


(過去ログ 121 を表示中)

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

■72598 / inTopicNo.1)  データベースの終了
  
□投稿者/ よしむら (18回)-(2014/06/21(Sat) 13:55:32)

分類:[C#] 

データベースについての初歩的な質問です。

データベースを使うときかならず、オープンとクローズの命令があると思います。
connection.Open();
connection.Close();

オープンしてクローズしない状態でフリーズなどを起こしてツールを再起動したりすると、データベースは使えなくなってしまうのでしょうか?

初歩的な質問ですみません。これから、データベースを使うにあたって不安なので質問させていただきました。
引用返信 編集キー/
■72599 / inTopicNo.2)  Re[1]: データベースの終了
□投稿者/ shu (597回)-(2014/06/21(Sat) 14:25:27)
No72598 (よしむら さん) に返信

使用するデータベースによるかと思います。

SQL Serverのようなサーバー型のDBならサーバー側でセッション管理されるのでクライアントアプリがコネクションを切らずに
終了してもサーバー側でコネクションが切断された状態になるので大丈夫です。

MS AccessのようなDBだとロック情報が解放されずロックファイルが残ってしまう状態になってしまいます。
それでもファイルのロックはプロセスが終了するとほとんどの場合、解除されるので完全に使用不可にはならないので
ロックファイルを手動削除すればなんとかなったりします。

OpenからCloseまでの期間を短くすることが大切かと思います。
引用返信 編集キー/
■72601 / inTopicNo.3)  Re[1]: データベースの終了
□投稿者/ WebSurfer (301回)-(2014/06/21(Sat) 14:56:47)
No72598 (よしむら さん) に返信

> オープンしてクローズしない状態でフリーズなどを起こしてツールを再起動したりすると、データベースは使えなくなってしまうのでしょうか?

> オープンしてクローズしない状態でフリーズなどを起こしてツールを再起動したりすると、
> データベースは使えなくなってしまうのでしょうか?

データーベースが何だか分かりませんが、コネクションプールを利用する場合(ADO.NET + SqlClient
のデフォルト)は、例外がスローされてアプリの実行が中断されてしまっても、プールに接続を戻す
処置(コネクションリークの防止処置)を実装するのは必須です。

詳しくは以下のページを読んでください。

.NETの例外処理 Part.1
http://blogs.msdn.com/b/nakama/archive/2008/12/29/net-part-1.aspx

.NETの例外処理 Part.2
http://blogs.msdn.com/b/nakama/archive/2009/01/02/net-part-2.aspx


コネクションリークの防止方法は Part 2 に書いてありますが、一般的な例外処置と密接な関係が
ありますので Part 1 から読むことをお勧めします。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -