2011-12-21 10 views
2

Sybaseデータベースに接続するJavaアプリケーションがあります。ログデータベースの接続がハングアップ

アプリケーションレベルで、ハングしているデータベース接続をログに記録します。

これが可能であるかどうかはわかりませんが、もしそうなら、私にこの問題を助けてください。

+0

「データベース接続がハングするときにログする」または「データベース接続がタイムアウトするとログに記録する」という意味ですか? –

+0

実際には、データベース接続がハングするときです... – Alina

+0

@Alinaハングアップするとどういう意味ですか、特定の値を指定してください。 –

答えて

1

実際に接続が「ハング」すると、しばしばデッドロックになります。データベースは、これらの問題を詳細に診断し記録するのに最適な場所です。

しかし、MS SQL Serverドライバは、デッドロックの被害者が選択された後にかなり特殊な例外がスローされることは知っていますが、Javaの経験が限られています。アプリケーションからその例外をトラップすることができます。一般的な例外であっても、スタックトレースまたは記述を調べて、ロックの問題に関係しているかどうかを確認することができます。

This postには、Java/SybaseのLockAcquisitionExceptionが記載されています。

+0

これは良いアイデアであり、私が信じている問題の大部分を解決します(私が知っていることから、誰かが私を訂正できる場合は、他の理由もあります。 LockAcquisitionExceptionは実際にはHibernateの例外です.Hibernateや任意のORMを使用してデータベースに接続するのではなく、JDBCとSpringのJDBC抽象化フレームワークだけです。しかし、私はSQLExceptionのコードに基づいて私のアプリケーションでデッドロックの実行を捕まえることができます。どうもありがとう! – Alina

+0

別の「ハング」可能性は、最適化されていないデータベースかもしれません。 –

関連する問題