2012-01-10 6 views
1

私はこの要求を抱えています。私はそれを終了する前にX回試してみる必要があります。Java SQL例外を処理して再試行するきれいな方法はありますか?

私は個人的にあなたが再試行しない対再試行するべきかの例外を除いて...だから

...

for retries 
    try 
     connect 
     exececute sql 
     process sql 
     commit 
     if all is good break loop 
    catch 
     rollback 

を失敗し、即座に通知することを好むが、ちょっと?接続のドロップでは、私はそう思う。しかし、すべてがSQLExceptionである場合、どのように区別する必要がありますか?または、私は単に期間を再試行する必要がありますか?

+0

あなたの質問は? –

+0

接続なしではロールバックできないので、あなたの 'connect'呼び出しが間違った場所にあることをお勧めします。 :-) –

+0

これはsqlexceptionsだけでなければならず、ネットワークやdbのロックが不十分でタイムアウトするのを除いて、2度目の作業は必要ありません。また、サイレントリトライはこの種の問題を解決するものです。 –

答えて

2

カウント変数があります。生涯にわたってそこをループするのは意味がありません。特定の試行を数えます。すべてが良い(または)カウントに達した場合は、ループを解除します。これが私が好むものです。

+0

ええ、私の擬似コードはかなりです。 – user432024

関連する問題