問題タブ [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 - C++ と Java 間の Oracle トランザクションの伝播
既存の C++ アプリケーションを、新しい Java ベースのシステムに徐々に置き換える予定です。Java ですべてを完全に再実装するまでは、C++ と Java が相互に通信する必要があると予想されます (RMI、SOAP、メッセージングなど - まだ決定していません)。
今、私のマネージャーは、同じ Oracle DB トランザクションに参加するには、Java 側と C++ 側が必要になると考えています。これは、DB やメッセージ キューなどの 2 つのトランザクション リソースを 1 つのプロセスで調整するという通常の分散トランザクションの問題と関連していますが、これとは異なります。
プロセス間でトランザクションを伝播することは、パフォーマンスと安定性の観点からはひどい考えだと思いますが、それでも解決策を求められます。
私は XA トランザクションに精通しており、JBoss Transaction Manager でいくつかの作業を行いましたが、2 つのプロセス間で XA トランザクションを伝播するのに良い結果が得られませんでした。
Java 側で Spring を使用していますが、Spring のドキュメントには、Spring はトランザクションの伝播を支援しないと明示的に記載されています。
従来の Java EE サーバー (IBM Websphere など) を使用する予定はありません。これは、伝播をサポートしている可能性があります (決定的なドキュメントを見つけることができるわけではありません)。
解決策に関するヘルプやポインタは大歓迎です。
java - Spring JTA TransactionManager 構成: Tomcat と JBoss の両方をサポート
Spring で JPA と JTA を使用する Web アプリケーションがあります。JBoss と Tomcat の両方をサポートしたいと思います。JBoss で実行する場合は JBoss 独自の TransactionManager を使用し、Tomcat で実行する場合は JOTM を使用したいと考えています。
両方のシナリオが機能していますが、2 つのケースには 2 つの個別の Spring 構成が必要なようです。JOTM では、Spring を使用する必要がありますJotmFactoryBean
。
ただし、JBoss では、JNDI から「TransactionManager」を取得する必要があるだけです。
2 つの異なる構成ファイルを必要とせずに、適切な TransactionManager (JBoss または JOTM) が使用されるようにこれを構成する方法はありますか?
java - 最後のリソースの最適化
2 フェーズ コミットをサポートしないリソース アダプタを作成しています。「Last Resource Optimization」と呼ばれる最適化手法があることは知っています。
JBoss では、XAResource クラスは、最適化のために LastResource を実装する必要があります。
私の質問は、WebLogic、WebSpehre、Glassfish などでこれを行う方法です...
java - JDBC 接続が JTA 対応の DataSource から取得されたのか、それとも直接の JDBC から取得されたのかをどのように判断しますか?
ベンダー API を使用して、アプリケーションのデータベースへの JDBC 接続を取得しています。API は、アプリケーション サーバーで実行している場合、またはスタンドアロン モードで実行している場合に機能します。単一のトランザクションで一連の SQL ステートメントを実行したいと考えています。JTA トランザクションが存在する場合、そのコンテキストでそれらが発生しても問題ありません。ただし、そうでない場合は、JDBC トランザクション境界メソッドを使用する必要があります。(JTA トランザクションに参加している JDBC 接続でこれらのメソッドを呼び出すと、SQLException が発生します。)
そのため、Connection が JTA 対応の DataSource からのものなのか、それとも単なる JDBC 接続なのかを判断できる必要があります。
この決定を行う簡単な方法はありますか?
ありがとう!
tomcat - Geronimo のトランザクション マネージャーを Tomcat に統合するにはどうすればよいですか?
Geronimo はスタンドアロンのトランザクション マネージャーを提供していますか? もしそうなら、Tomcatでそれを使うことは可能ですか?
jpa - REQUIRES_NEW注釈付きメソッドはトランザクションなしで実行されますか?
エンティティをデータベースに永続化するためのステートレスBeanがあります。このステートレスBeanは、メッセージBeanのonMessageメソッドによって呼び出されます。有線のことは、最初のメッセージではすべてが正常に機能しますが、次のメッセージでは、メソッドにREQUIRES_NEWの注釈が付けられていても、永続化を担当するメソッドがトランザクションの外部で呼び出されます。
リフレッシュを呼び出すと、次の例外がトリガーされます。
原因:javax.persistence.TransactionRequiredException:進行中のトランザクションはありません
何か案は?私はJTAにかなり慣れていないので、何か重要なことを見逃した可能性がありますか?
c# - Java トランザクション API と .NET System.Transactions
私は、JTA (Java Transactions API) と .NET の対応する System.Transactions の間のさまざまな動作を分析しています。この 2 つの間ではアプローチがまったく異なります。Transactions
実際、Java のバージョンの Transactions はどちらかというと仕様のように見え、定義された、TransactionManager
およびその他のインターフェースのいずれかを実装する義務は開発者に委ねられています。.NET にはより具体的な実装があり、開発者が独自のTransaction
オブジェクトを定義することはできませんが、トランザクションの有効期間中に管理されるリソースを処理するためのインターフェイスを提供します (Java は同じ目的でいくつかの XTA* インターフェイスを提供します)。
JTA を使用する Java コードを .NET に移植する機会があった人がいるかどうか、また、主な違いに気付いた人がいるかどうか疑問に思っています。
さらに、 (JTAで)
TransactionManager.setRollbackOnly
反対の振る舞いを誰かが明確にしてくれますか?TransactionManager.rollback
.NET バージョンには、Transaction.Rollback
より必須のメソッドだけがあります。
jta - 優れたオープンソースのJavaSEJTA TransactionManager実装とは何ですか?
基本的に、それが缶に言うこと; Java SEアプリケーションで使用できるJTA実装が必要です。理想的には、フレームワークの負担があまりかからないものです。
jndi - JTA を Java SE アプリケーションに統合するには、何をする必要がありますか?
アプリケーション コンテナーを実装するとします。完全な Java EE スタックではありませんが、JDBC リソースへのアクセスと、作成中のアプリケーションにデプロイされるサード パーティ コードへのトランザクションを提供する必要があります。
さらに、JBossTS のトランザクションを調べているとします。私はそれに落ち着いていませんが、私が知る限り、それは私がする必要があることに最も適しているようです.
接続リソースと JTA トランザクションを提供するためのサポートを Java SE アプリケーションに統合するにはどうすればよいですか?
java - bitronix(BTM)がユーザートランザクションをJNDIにバインドしないのはなぜですか?
他の場所で提案されているように、Bitronixは非常にうまく機能しているように見えます。しかし、私はそれに関する問題に困惑しています。呼び出した後にセッションを保存しようとすると、Hibernateからこの例外が発生しTransactionManager.begin()
ます。
BitronixがユーザートランザクションをJNDIにバインドしているという証拠は見当たりません。どうすればそれを行うことができますか?