2012-03-29 3 views
0

異なるアプリケーションサーバーでPOJOクラスにアクセスする4つのejbクライアントがあります。このPOJOクラスは、いくつかのデータをDBに書き出します。 DBへのデータの更新の呼び出しが両方のアプリケーションサーバーから同時に来ると、DBロックが作成され、すべてのデータを正常に格納できません。複数のアプリケーションサーバーが同時にデータを更新するときのDBロックの処理

制約事項:このクラスをEJBにすることはできず、アプリケーションサーバーのデフォルト設定は変更できません(例:トランザクションタイムアウト)。

どのようにこの問題を解決できますか?

+0

エラーとは何ですか?最初のセッションはトランザクションをどのくらい開いていますか?第2セッションのトランザクションタイムアウトはどのくらいですか? 2つの異なるアプリケーションサーバーで2つのセッションを実行して、同じテーブルの同じ行を更新するのはなぜですか?これは一般的に、システムを設計する方法ではありません。 –

+0

エラー:java.sql.SQLException:ORA-02049:タイムアウト:ロックを待機している分散トランザクション。トランザクションタイムアウトは、Application Serverのデフォルト設定です。 – Rekha

+0

アプリケーションサーバーのトランザクションタイムアウトはどのくらいですか?なぜ分散トランザクションがありますか?ロックを保持している間に、最初のトランザクションがどれくらい開いていると予想されますか? –

答えて

0

あなたの状況オペレーティングシステムのセマフォの概念に似ているようです。なぜあなたは、一部の分だけ遅延や睡眠を使って同じことを試してみませんか?