問題タブ [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 - JPA/Hibernate で Spring 定義の transactionManager を使用する
Spring で JPA を使用し、JPA 実装として Hibernate を使用するとします。JPA トランザクション モードは「JTA」であるため、コンテナーの transactionManager を Hibernate に渡す必要があります。古典的な答えはhibernate.transaction.manager_lookup_class
、サーバーに一致するクラスに設定することです。
ただし、これがサーバー固有の構成に依存するのは残念だと思います。Spring で<tx:jta-transaction-manager>
.
この transactionManager を次のような構成で Hibernate に与える方法はありますか
org.hibernate.transaction.SunONETransactionManagerLookup
物件を手放すのが目的です。ところで、私は本当に 2 つの異なるサーバーの実装を考えています。
EDIT : トランザクション マネージャーの構成がないと、Hibernate は EntityManagerFactory の作成時にチョークします。
jta - Berkeley DB Java Edition for Distributed Transactions(XA)でのトランザクション分離レベルの設定
BDB JEアプリケーションで分散トランザクションを使用して、複数のBDBJE環境間でトランザクションを調整しています。トランザクション分離レベルをシリアル化可能に設定したい。分散トランザクションを開始するには、生成したXidを使用し、BDB JEのネイティブトランザクションクラスを避けて、グローバルに一意であることを確認する必要があります。開始するトランザクションブランチはThreadLocalであるため、操作のトランザクションフィールドにnullが渡されます。では、分離レベルを設定するにはどうすればよいですか?分離レベルはすでにデフォルトでシリアル化可能になっていますか?私のグーグルフーは何も上げていません...
java - HibernateでのJTA、JPA、およびプレーンJDBCの違い
JTA
とHibernateJPA
の違いは何ですか?Plain JDBC
java - SpringでJTATransactionManagerのカスタム分離レベルを有効にする方法
質問
Springを介してallowCustomIsolationLevelsをtrueに設定してJtaTransactionManagerオブジェクトを構成し、Spring構成を複数のアプリケーションサーバーで使用できるようにするにはどうすればよいですか?
バックグラウンド:
現在JBossASが不足しているアプリケーションがあり、WebSphereで実行しようとしています。私が現在抱えている唯一の問題は、適切な設定で正しいJTATransactionManagerを注入することです。
これが古い設定です
これは、JBossASのJTAトランザクションマネージャーがJNDIロケーション java:/TransactionManagerで定義されているため機能しました。ただし、WebSphereには同じJNDIロケーションがありません。
Spring 2.5.xは、一般化された方法でJTATransactionManagerを取得する方法を提供します。
これにより、JtaTransactionManagerオブジェクトが取得され、IDがtransactionManagerのBeanとして定義されます。
Spring TXスキーマを調べましたが、使用可能な唯一の設定は、特定の分離レベルを設定することですが、カスタムレベルを使用できるようにするだけではありません(他の場所で定義されています)。tx:jta-transaction-managerタグを使用してallowCustomIsolationLevelsプロパティを設定するにはどうすればよいですか?
hibernate - Hibernate session.close() がプールへの接続を返さない
私のアプリケーションには実行時間の長いトランザクションがあるため、すべてのメソッドの最後にオプション session.close() を試して、接続オブジェクトが無期限に長時間保持されないようにしました。
session.close() オプションを使用すると、Hibernate のセッション オブジェクトと、session.connection() から取得した対応する Connection オブジェクトが適切に破棄されることがわかりました。しかし、問題は接続プールにあります。セッションによって取得された接続は、セッションを閉じた後でも接続プールに解放されません。プールからの接続を待機している他の要求が見つかりました。
アプリケーションで JTA トランザクションを使用しています。hibernate.cfg.xml で、connection.release_mode を auto (デフォルト) に設定し、connection.autocommit を true に設定しました。
誰もこの問題に直面しましたか? ここで何が欠けているのか教えてください。
フォローアップ:これは私の休止状態の構成ファイルの詳細です:
Oracle DB に接続するアプリケーション層で JSF と EJB 2.1 を使用します。プールへのafter_statement
接続を解放していないようです。詳細が必要な場合はお知らせください。
java - JPA と JTA を使用する単体テスト コード
私は2つの別々のデータベースを使用しているため、JTAを使用して分散トランザクションを処理する必要があります。したがって、両方のデータベースをコミットするか、両方をロールバックする必要があります。オープン JPA と JTA.Now を使用して、junit を使用してコードを単体テストしますか? 分散トランザクションを処理するコードを実行しようとすると、次のエラーが表示されます。このサイトに同様の質問を投稿したところ、 http://knol.google.com/k/how-to-unit-testを参照するように求められました。 -enterprise-java-beans-ejb# しかし、そこから何も理解できません。
java - オブジェクトの変更を自分のトランザクションでラップし、それをHibernate to JTAに組み込むにはどうすればよいですか?
Tomcat 6にデプロイするWebアプリがあり、Hibernateを使用しています。これは、JMSキューでメッセージを受信し、Hibernateを介したDBと私のオブジェクト(Agent
)の両方への変更をトリガーします。
Webリクエストは、Hibernateを介してDBにもアクセスし、共有オブジェクトにアクセスします(ConcurrentHashMap<AgentId,Agent>
シングルトンによって保持されます)。
私の問題は、いくつかの異なるAgent
sといくつかのテーブルを変更するJMSメッセージがAgent
あり、DBトランザクションが正常に完了した場合にのみ、sの変更を利用できるようにする必要があることです。さらに、読み取りロックはパフォーマンスの危険が大きすぎるため、使用したくありません。どういうわけか実装
を考えていましたXAResource
シングルトンのインターフェースを作成し、JTAを使用してシングルトンとHibernateトランザクションの両方を管理します。
どう思いますか?合理的に聞こえますか?私は道を離れていますか?
さらに詳しい情報が必要な場合は、遠慮なくIttaiにお問い合わせください。
java - 異なるサーバーにデプロイされている異なるEARでJTAを使用できますか?
分散トランザクション(JPA、JMS、EHCache全体)が必要なため、JTAを検討しています。
JTAが私が検討している追加機能を提供できるかどうかを理解しようとしています。
3つの異なるサーバーがある場合、それぞれがGlassfishを実行し、各サーバーには異なるEAR(私の異なるモジュール)があります。
異なるサーバーと異なるEARにまたがるトランザクションを持つことはできますか?
ありがとう、
イッタイ
java - JPA と JTA での同時実行の問題
重複の可能性:
JPA での並行性 (古いデータ) の問題
重複して申し訳ありませんが、満足のいく回答が得られなかったと思いますので、再度投稿します 次のシグネチャを持つメソッドがあるとしましょう
これで同時実行性の問題が発生しますか? 最悪の場合、データが古くなる可能性はありますか? たとえば、私getData
が更新するまでに、誰かがデータを更新した場合、私のデータupdateData
は古くなりますか? 今、私は以下を使用できます:私は問題を解決しますか?
java - Microsoft の MS-SQL Server JDBC 3.0 ドライバーには JTA のサポートが含まれていますか?
JTA と Tomcat (私も Hibernate を使用しています) を使用するには、JDBC ドライバーの JTA バージョンを使用する必要があることをどこかで読みました。これは本当ですか?
もしそうなら、このドライバには JTA サポートが含まれていますか?
ありがとう、
イッタイ