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

わんくま同盟

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

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


(過去ログ 22 を表示中)
■9703 / )  フォルダ監視Windowsサービスのエラー処理
□投稿者/ nbmyou (50回)-(2007/11/02(Fri) 15:51:15)

分類:[.NET 全般] 

2007/11/02(Fri) 17:03:26 編集(投稿者)
2007/11/02(Fri) 16:34:55 編集(投稿者)
2007/11/02(Fri) 15:57:39 編集(投稿者)

いつも当掲示板にはお世話になっております。
初心者のnbmyouと申します。

現在、VisualStudio2005のC#で、下記のようなフォルダ監視のWindowsサービスを作成しています。
+++++++++++++++++
@DBが動作しているサーバ上で動くサービス。
A監視は数分おきのポーリングで行う。
B監視フォルダにXMLファイルが存在する場合、以下の処理を行う。
 (XMLファイルは、複数存在することを認めています)
 ・バックアップ用フォルダへのコピー
 ・XMLファイルの読み取り
 ・読み取ったデータのDB登録
 ・監視フォルダ内の処理済XMLファイルを削除
 (XMLファイルの書式要因のNGがあった場合は、そのXMLファイルをエラーXMLフォルダへ移動)
Cエラー発生時・ログを残したい時は、アプリケーションログに出力
+++++++++++++++++
大雑把にこんな感じのものです。

そこで質問なのですが。

上記Bの各処理は上から順に行っていきますが、
ファイル操作・DB操作で例外が発生することが考えられます。
(例えば、読み込もうとしたときには該当ファイルが既になかった・・・等)

現在、僕が考えている仕様では、
「例外が発生した場合、どの処理も10回までリトライし、
それでもNGであれば、そこでそのファイルの処理はあきらめ、次のファイル処理へ移る」
というようにしています。
本当はファイル毎の処理はひとつの流れなので、トランザクションをかけるように
途中で失敗したら元に戻すようにも考えかけたのですが、
その処理でも例外が発生する可能性があるので、どこまでどうすればいいのかわからなくなってきてやめました。

上記の仕様で、問題はありますでしょうか。
また、リトライやエラー処理は、みなさんであればどのように行いますでしょうか。


どこまでシビアに処理しなければならないかによって、ケースバイケースではあると思いますが、
参考までにお聞かせいただければ幸いです。

御手数ですが、よろしくお願いいたします。
返信 編集キー/


管理者用

- Child Tree -