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

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

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

リトライ処理について


(過去ログ 2 を表示中)

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

■2170 / inTopicNo.1)  リトライ処理について
  
□投稿者/ ろん 一等兵(5回)-(2005/12/20(Tue) 15:40:49)

分類:[C#] 


分類:[C#] 


こんにちわ

現在、C#を用いて、DBにアクセスする処理を作成しています。
そのDBとの接続が切れた場合にはリトライをするのですが、DBにアクセスするクラスは複数あり、メソッドも複数あります。下記のような感じです。
例) AAAクラス
    aaaメソッド(string arg1, string arg2);
aabメソッド(int arg1);
BBBクラス
    bbaメソッド();
bbbメソッド(string arg1);
メソッドはすべて、DBにアクセスする処理を持ちます

そこで、接続が切れた場合のリトライ処理を、AAAクラスとBBBクラスの継承元クラスに持ちたいのですが、各メソッドの引数の個数や、型が異なるため、デリゲート?を使ってもできそうにありません。

普通はどのような方法でリトライを行っていますか?
なにか良い方法がありましたら、よろしくお願いします。

0
引用返信 編集キー/
■2171 / inTopicNo.2)  Re[1]: リトライ処理について
□投稿者/ まどか 中将(67回)-(2005/12/20(Tue) 16:22:18)

分類:[C#] 

> そこで、接続が切れた場合のリトライ処理を、AAAクラスとBBBクラスの継承元クラスに持ちたいのですが、

#メソッドのリトライと実装内でのリトライで違ってくるのでは。

基本クラスは継承先クラスを知りません。
この参照の一方通行の前提からすると、リトライする実装が基本クラスに無い限り無理です。
#そうできる処理なら最初から基本クラスに実装する設計になっていると思われます。

引数が違うという言葉から呼び出し自体を繰り返そうとしていると理解しますが
であれば、
・リトライ回数を引数に持ちそれぞれの実装内でリトライ
・呼び出し元が返値の判断で呼び出しをリトライ
が自然ではないでしょうか。
いずれにしろリトライを隠蔽すると呼び出し元へのレスポンスが悪くなる可能性もあります。
#無条件に待たされるということ

0
引用返信 編集キー/
■2172 / inTopicNo.3)  Re[2]: リトライ処理について
□投稿者/ ろん 一等兵(6回)-(2005/12/20(Tue) 16:41:26)

分類:[C#] 

アドバイスありがとうございます

やはりそれぞれのメソッド内部で個別にリトライ処理を実装しないと無理ですか。。。

理想としては、各メソッド(aaaメソッド等)内部に持っている、実際にDBアクセスを行うメソッド自体を、基本クラスのリトライを行う関数に引数として渡すようなことができればいいと思ったのですが。



0
引用返信 編集キー/
■2174 / inTopicNo.4)  Re[3]: リトライ処理について
□投稿者/ まどか 中将(68回)-(2005/12/20(Tue) 17:01:06)

分類:[C#] 

> 理想としては、各メソッド(aaaメソッド等)内部に持っている、実際にDBアクセスを行うメソッド自体を、基本クラスのリトライを行う関数に引数として渡すようなことができればいいと思ったのですが。

SQL文を渡して実行するだけとか。
ただ、よほど汎用的な機能に絞らないとつらいでしょうね。
トランザクションとかもあるし。

0
引用返信 編集キー/
■2183 / inTopicNo.5)  Re[4]: リトライ処理について
□投稿者/ ろん 一等兵(7回)-(2005/12/21(Wed) 11:33:29)

分類:[C#] 

そうですか、わかりました。 

考え方自体に無理があったようですね。
どうもありがとうございました。

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -