実際にTomcatサーバー上にあるred5アプリケーションを作成しています。これは、mysqlサーバーに接続するSpringフレームワークを使用しています(red5アプリケーションは本当に重要ではありません。ロック待機タイムアウトを処理するフック
私はスプリングフレームワークを使用してデータベースに接続しています。
私は、クエリの一部に私はロック待ちタイムアウトを超過し、次のエラーメッセージ
を得ることに気づきました。トランザクションを再開してみてください
私はすでに自分のサーバのロックタイムアウトを10秒に設定していますので、私のサーバに何かあるはずです。これが起こるたびに、私はmysqlサーバをデバッグしたいと思います。おそらくshow processlist
を実行し、出力を取得するか、適切なエラーメッセージを投げることがあります。
ロックタイムアウトのすべてのケースを処理するためにスプリングフレームワーク内で使用しているJdbcTemplate
にある種のフックを接続する方法はありますか?たぶん、メッセージを送信するなど、何度もやり直してみてください。
私のプロジェクトの各場所でSQLException
をチェックして個別に処理したくないということです。これは長い時間がかかる大きなプロジェクトです。 SQLException
がスローされるたびにそれを設定する方法はありますか?どのような種類のものをチェックして再試行を許可することができますが、試し読みを挿入して各クエリーを処理するのではなく、一般的なものを構築できますか?
これが役立つかどうかを確認してください。http://stackoverflow.com/questions/6000336/how-to-debug-lock-wait-timeout-exceeded –
ありがとうございますが、私はそれをJavaコードを使用して処理したいと思います。デッドロックをさらに増やしたくない – ufk