0

私の Web アプリケーション コードは、Tomcat5 で実行される java、swing、hibernate の組み合わせで記述されています。更新/削除中に 1 つのテーブルがロックされ、一定の時間が経過してもロックが解除されない場合があります [エラー: mysql ロック待機タイムアウトを超えました。トランザクションを再起動してください]。これにより、アプリケーションにアクセスできなくなります。

ロック状態を定期的にチェックし、指定された時間の後に 30 秒後にテーブルのロックを解除する Java スケジューラを作成する必要があります。

具体的には、テーブルがロックされているかどうかを確認する方法を知りたいですか? ロックを解除する方法は?

ありがとう

4

1 に答える 1

-1

GET_LOCK非常に短いタイムアウトで使用して、ロックが存在するかどうかを確認できます。戻りコードが 0 の場合、別のスレッドがロックを取得しています。それ以外の場合は 1 を取得し、自分のスレッドがロックを取得しています。

ロックを解除する方法については、これはやや難しいです。ロックを保持しているのはまったく別のアプリケーションである可能性があり、正当な理由でロックを保持している可能性があります。ロックを強制的に解除できるかどうかはわかりません。しかし、私はあなたが本当にそれをしたいとは思わない.

于 2012-06-18T11:49:47.077 に答える