2017-02-11 16 views
0

websphereデータソースを使用して、SQL-SERVERスプリングトランザクションをREQUIRES_NEWまたはNOT_SUPPORTEDプロパゲーションでハング(ロック)に接続しています。Websphereデータソースでトランザクションの中断を使用して接続がハングしました

これは、BasicDataSourceなどを使用している場合には当てはまりません。

助けてください。

+0

別のトランザクションのコミットされていない作業がある可能性があります。いずれかを1つのトランクで実行し、他のトランをコミットするか、ロックを変更します。それが有用でない場合は、あなたの質問に詳細を提供する必要があります。 –

答えて

0

REQUIRES_NEWおよびNOT_SUPPORTEDは、現在のトランザクションで操作を実行できないようにするトランザクション属性です(これは中断され、その後再開されます)。 WebSphere Application Serverのデータ・ソースは、コンテナ管理のトランザクションを認識しており、それらのトランザクションに参加します。私はBasicDataSourceが何であるかはわかりませんが、コンテナトランザクションを認識していないと、それがなぜ動作の違いがあるのか​​を説明することができます。

  • 取引行X
  • が新しい、REQUIRES_NEW方法
  • は、トランザクションが中断意味起動ロック
  • SQLコマンドを開始:シングルスレッドのデッドロックが発生する

    流れは次のようなものかもしれませんトランザクションが開始されます

  • 行XをロックしようとするSQLコマンド< - デッドロックはここにあります

これは仕様通りに動作しているため、同じトランザクションで操作を実行する場合は、SUPPORTSなどの異なるトランザクション属性を使用することを検討する必要があります。

関連する問題