4

次の場合にトランザクションを再起動する方法 (少なくとも 1 回は実行されるようにするため):

( com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException:ロックを取得しようとしたときにデッドロックが見つかりました; トランザクションを再起動してください) または (トランザクションがタイムアウトしました) ?

MySQL(innoDB ENGINE)とJavaを使用しています。役立つリソースやコードをリンクしてください。

4

2 に答える 2

1

プレーンJDBCを使用する場合は、ループで手動で実行する必要があります(また、毎回前提条件を確認することを忘れないでください。Springを
使用する場合は、「Springのデッドロック/ロックタイムアウト時にトランザクションを再開するにはどうすればよいですか?「助けになるだろう。

于 2011-07-11T07:09:52.627 に答える
1

catchブロックでそのようなタイプの例外をキャッチしているときはいつでも

catch(Exception e){
if(e instanceof TransactionRollbackException){
 //Retrigger Your Transaction
   }
// log your exception or throw it its upto ur implementation
}
于 2011-07-11T07:57:39.303 に答える