問題タブ [jta]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JTA 同期とタイムアウト
Java Transaction API (JTA) を使用していて、現在のトランザクションに同期を登録すると、トランザクションがタイムアウトした場合に afterCompletion() メソッドが呼び出されますか? その場合、 afterCompletion() メソッドはいつ呼び出されますか? つまり、トランザクションが割り当てられたタイムアウト値を超えて実行された直後、またはタイムアウト後のトランザクションで最初の操作が発生したときですか? status 引数にはどのような値がありますか (STATUS_ROLLEDBACK になると思います)?
spring - Spring / JTA / JPA DAO統合テストはロールバックしませんか?
テスト中に作成されたエンティティが次のテストの開始時にデータベースに残っているため、DAO統合テストは失敗します。MySQL5とH2の両方でまったく同じ動作が見られます。
テストクラスには次の注釈が付けられています。
テストアプリケーションコンテキストでのトランザクションBeanの構成は次のとおりです。
エンティティマネージャは次のように構成されています。
ログファイルのすべてが正常であるように見えます...ロールバックについてのSpringからのメッセージと、ロールバックについてのAtomikosからのメッセージも見ることができます。しかし率直に言って、ログは非常に巨大で複雑なので、私は簡単に何かを見逃す可能性があります...
それでも、挿入されたテストデータは残ります!手がかりはありますか?
java - JavaEEで失敗したコンテナ管理トランザクションの再実行
JavaEEBeanマネージドトランザクションを使用するレガシーシステムの状況があります。LockAcquisitionException
作成したばかりのものを取得しようとすると、スローされます。
私の最初の考えはこれでした:
ただし、再帰呼び出しが行われたとき、トランザクションはすでに終了しており、新しいトランザクションは作成されていないようです。私は別の方法を試しましTransactionAttributes
たが、違いはないようです。また、自分でトランザクションを管理しようとしましたem.getTransaction()
が()、CMTでは違法です。
私はエレガントな修正を探していません-私が言ったように、これはレガシーです、私は数ヶ月ですべてが交換されるまでそれをトリアージする何かが必要です!
乾杯。
transactions - EJB 3 のトランザクション (原子性プロパティ) はデータベース操作にのみ適用されます - そうですか?
トランザクションを使用して原子性を実現できることを知っています。
methodOne()
methodTwo()
methodThree()
1 つのトランザクションにまとめられた場合と同様に、メソッドのいずれかが失敗すると、操作全体がロールバックされます。ロールバックはデータベース レベルのロールバックとなり、その結果、データベースはトランザクション前の状態になります。
しかし、メソッドが状態変数または静的変数に変更を加えたり、ファイルシステム内のいくつかのファイルに書き込んだりした場合はどうなるでしょうか? 私の理解では、「ロールバック」はそのようなデータベース以外の変更には適用されず、それらの変更は元に戻されません。私の理解は正しいですか?
transactions - BMTトランザクションは既存のトランザクションと結合できますか?
セッションBeanで、Container-Managed-Transactionsを使用しているときに、REQUIRED / SUPPORTSなどのトランザクション属性を使用して、トランザクションを既存のクライアントトランザクションに参加させることができることがわかりました。
Bean-Managed-Transactionを使用しているときに、そのトランザクションを既存のclient-transactionと結合させる方法はありますか?
java - 「jta-datasource」と「resource-local」データソースの違いは?
「jta-datasource」と「resource-local datasource」という用語は、私には少しあいまいです。私が理解していること (または推測していること) を書き留めています。どこが正しい/間違っているか教えてください。
- 同じデータベースを jta-datasource またはリソース ローカル データソースとして参照できます
- jta-datasource と記載されている場合、Bean やその他のクラスは JTA を使用できます。したがって、 UserTransaction インターフェイス
- データソースがリソース ローカルの場合、CMT / BMTを使用できません
- リソース ローカル データソースとして言及されている場合、トランザクションは JTA を認識しません。コードは EntityTransaction インターフェイスを使用できますが、UserTransaction インターフェイスは使用できません
ありがとう!
java - 簡単なJOTMの質問
私はJOTMを使い始めており、いくつかの簡単な質問があります。
- 組み込みJOTMインスタンスを開始した場合、リモートデータベース(XAが有効なドライバーを使用)とサードパーティクライアントによって開始されたローカルJMSキューの間で2フェーズコミットを実行できますか?
- リモートクライアントがトランザクションを実行している場合、またはトランザクションがローカルクライアントを介して開始された場合にのみ、JOTMインスタンスはクラスパスにデータベースとJMSプロバイダーの両方の.jarファイルを必要としますか?
よろしく、
クリス
java - InitialContextを使用してOracleXADataSourceを取得します
私はWebLogic10で、そしてもちろんJavaで実行されるアプリケーションを開発しています。
わかりました。トランザクションを管理するためにoracle.jdbc.xa.client.OracleXADataSourceを使用しており、次のようにInitialContextを使用してOracleXADataSourceオブジェクトを設定しようとしています。
しかし、私がアプリケーションを実行しているとき、これは私にこれを投げます:
RmiDataSourceをOracleXADataSourceにキャストできない理由を誰かに教えてもらえますか?
-編集-そして、このオラクルのサンプルによると、コードは機能するはずですよね? http://www.oracle.com/technology/sample_code/tech/java/codesnippet/j2ee/jdbc/JDBC_in_J2EE.html
jpa - ejb3-using-2-persistence-units-within-a-transaction
次の技術スタックを使用して、同じトランザクション内から 2 つの永続ユニットに接続する際に問題があります。
WLS 10.3.x, Eclipselink 2.1, Oracle 11g JDBC driver, Informix 10 JDBC driver
この SO投稿からの入力を使用して、Oracle データソースを XA 準拠にし、Informix ds を「2 フェーズ コミットをエミュレート」すると、動作が開始されました。しかし、今私は奇妙な問題を抱えています。
スタンドアロンの Java クライアントを使用して、JPA エンティティを呼び出す ejb 3 SLSB を呼び出しています。私が直面している問題は、最初は動作し、2 回目は例外をスローしませんが、どちらのデータベースのデータも更新せず、3 回目はアプリケーションが既にコミットされているかのように「トランザクションは既にコミットされています」という例外をスローします。サーバー JTA トランザクション マネージャーは、元のトランザクション コンテキストを保持しています。これらの 3 つの呼び出しは個別かつ順次であり、すべての呼び出しはクライアントがクライアント プロセスを終了することで完了することに注意してください。この問題は非常に一貫しており、アプリ サーバーを再起動するたびにまったく同じ順序で発生します。
ご意見をお待ちしております。
jdbc - WebSphere ローカル・トランザクション封じ込め境界の問題 J2CA0086W
WebSphere では、2 つの同時データベース接続を開くコードを作成すると、次の形式のエラーが発生します。
J2CA0086W: 共有可能接続 MCWrapper id 556e556e 管理接続 WSRdbManagedConnectionImpl@52365236 リソース jdbc/abc からの状態:STATE_TRAN_WRAPPER_INUSE が、ローカル・トランザクション包含境界内で使用されました。
私たちのフレームワークはそうすることができます (別の接続または複数の名前付きトランザクション上にあるネストされたトランザクション)。接続共有をオンにするために WebSphere のスイッチをオフにすることについての多くの参照を見てきましたが、このフラグを設定する方法についての詳細はありません。誰かがこれを達成するための手順を教えてもらえますか?
具体的には、次の記事が表示されている場合: http://www-01.ibm.com/support/docview.wss?rs=180&context=SSEQTP&dc=DB520&dc=D600&dc=DB530&dc=D700&dc=DB500&dc=DB540&dc=DB510&dc=DB550&q1=j2ca0086w&uid= swg21121449&loc=en_US&cs=utf-8&lang=en
「問題の解決」の下で、接続プールを共有不可に設定する方法を知りたいです(実際に問題が解決すると仮定します)。