2011-10-20 1 views
0

私はデータベースとJavaスレッドのデッドロックに問題があります。したがって、Javaスレッドがロック内になるようにしてから解放して、すべてのシステムがハングするのを防ぐことができますか?このトリックで、DB内のロックを解放して、システムを通常のワークフローに戻したいと思っても、クエリーに失敗しても問題はありません。しばらくするとロックを解除して強制的に解除する方法はありますか? Java

+0

を使用するには、特定したルートを固定検討すべきです症状をハッキングする代わりに起こる – lobster1234

+0

これは非常にまれなことですが、ローカルマシンでは再現できないため、問題が見つかりませんでした。( – whatswrong

+1

Javaスレッドのデッドロックが存在するのか、データベースのデッドロック(またはライブロック)がありますか? –

答えて

0

Try Statement.setQueryTimeout()

しかし、これを実行するほとんどの状況では、適切な解決策ではなく、おそらくハックと見なされるべきです。 @ lobster1234によると、根本的な原因を見つけて修正します。

+0

AFAIKクエリタイムアウトはすべてのJDBCドライバで実装されていません。 –

0

データベースがサポートしている場合、それが設定されていることを確認し、タイムアウトを待つ(ロック)、またはIMO(すぐにロックエラーを報告します)利用可能な場合NOWAITオプション

+0

アドバイスありがとうございます、これをチェックしようとします – whatswrong

+0

私はpostgresqlのロック待機タイムアウトがサポートされていないことがわかります、デッドロック – whatswrong

関連する問題