問題タブ [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 - JavaSpringデータベースアプリケーションがorg.enhydra.jdbc.pool.PoolKeeperへの参照を終了しないのはなぜですか。
こんにちは。org.enhydra.jdbc.pool.PoolKeeperへの参照が残っているため、終了しない単純なSpringアプリケーションがあります。私は以下に私が啓示的であると感じるすべての参考文献を含めますそれは大丈夫に見えますか、そして誰かがこれを以前に経験したことがありますか?
jstackを実行して、デーモン以外のスレッドが実行されているかどうかを確認し、次のことを見つけました。
今、なぜこれが起こっているのか混乱しています。JPA構成の関連部分を含めます
ありがとうポール
jpa - JDBC を使用する EJB 3
JDBC で EJB 3 を使用することは可能ですか。許可されているとどこかで読みました。
しかし、EJB 3 の実装はデフォルトで JTA を使用していると聞きました。これは JDBC にとって何を意味するのでしょうか? トランザクションサポートのみですか?JDBCコードを使用する場合、JTAがトランザクションに使用されるということですか? ローカル トランザクションでさえグローバル トランザクションとして実装されるということですか?
EJB 3 で JDBC を使用するのは得策ではないということですか? 多くの人が私に JPA を勧めますが、それは ORM です。SQLを使いたい。
助言がありますか?
java - Spring / JTA / JPAユニットテスト:ロールバックが機能しない
SpringでエンティティEJB3をテストしようとしています。
EJB自体はSpringを使用しないため、本番JPA構成の重複を最小限に抑えたいと思います(つまり、たとえば、persistence.xmlを重複させないでください)。
私の単体テストは機能しているようですが、単体テストはトランザクションである必要がありますが、データはさまざまなテスト方法間で保持されます...
これが私の実体です:
私のユニットテスト:
と私のappContext.xml:
テストを実行すると、test2が失敗します。これは、1つだけを期待していた2つのエンティティが見つかったためです(最初のエンティティはロールバックされているはずです...)
私は多くの異なる構成を試しましたが、これは私が得ることができる最も包括的なもののようです...私には他のアイデアはありません。あなたは ?
transactions - CMTのJTAトランザクション境界は正確にどこで尊重されますか?
私はCMTによるJTAの境界を完全に理解しようとしています。私が経験している動作は、メソッドの最初の@TransactionAttributeのみがEJBで尊重され、異なる@TransactionAttributeアノテーションを持つ同じBeanの後続のメソッド呼び出しは尊重されないということです。
例:
私が見ている動作は、Bar.save()がTransactionRequiredExceptionをスローすることです。したがって、これは、save()に設定されたREQUIREDアノテーションがトランザクションを作成しないことを示しています。REQUIRES_NEWも機能しません。save()を別のEJBに移動すると、期待どおりに機能します。
これは、異なるアノテーション値を使用した同じメソッドの後続の呼び出しに関係なく、最初のTransactionAttributeアノテーションのみが尊重されることを意味しますか?これはバグですか、それとも予想される動作ですか?これを具体的に説明しているドキュメントが見つからないようです。これについての洞察に感謝します。
私のスタック:EJB 3.0、Toplink Essentials、GF V2UR2
jakarta-ee - J2EE-JPA-EJB3-MDBメソッドのトランザクション
リソースローカルデータソース(Oracle9i)をJBoss5.1.0にデプロイしています。
永続性ユニット:
MDB内で、onMessageメソッドが呼び出されると、Beanを永続化し、namedQueryを介してそのタイプの最新の5つのBeanをフェッチしようとしています。
私の問題は、エラーの痕跡がないのに、Oracleデータベースに永続化されたオブジェクトがないことです。多数のメッセージが送信された後、呼び出しlast5.size()
は0を返します。ログは完全にクリーンです。
私が見つけたMDBの制限は、メソッドでREQUIREDまたはNOT_SUPPORTEDトランザクション属性を使用する必要があることだけです。私のonMessageには注釈が付いていないため、デフォルトでREQUIREDが使用されます。また、MDBクラスにアノテーションがないため、Beanはコンテナ管理のトランザクションを使用する必要があります。
私が間違っているのは何ですか?
jakarta-ee - EJB 2.1 では、ejb-jar.xml でリソースへの参照を宣言する必要がありますか?
多くの MDB で Weblogic 9.2 を使用しています。これらの MDB は、JDBC DataSource にアクセスし、ローカルおよび外部の XAConnectionFactory をそれぞれ使用して、ローカルおよび外部で管理されている JMS 宛先の両方に書き込みます。各 MDB は、これらのすべてのリソース間で分散する必要があるコンテナ管理の JTA トランザクションの境界を定めます。
以下は、「MyDestination」という名前のローカル キューから消費し、「MyOtherDestination」という名前の IBM Websphere MQ キューに生成する MDB の ejb-jar.xml からの抜粋です。これらの論理名は、weblogic-ejb-jar.xml ファイル内の物理オブジェクトにリンクされています。
<resource-ref> タグと <message-destination-ref> タグを使用して ConnectionFactory と Queue を MDB に公開する必要がありますか? もしそうなら、それは Weblogic で必要ですか、それとも J2EE 仕様で必要ですか? そして、何の目的で?たとえば、XA トランザクション性をサポートする必要がありますか?
MDB のネーミング コンテキストに公開された名前を使用して、管理対象オブジェクトを MDB から切り離すことの利点はすでに認識しています。これらのタグを指定するときに追加される値はこれだけですか? つまり、InitialContext とオブジェクトの完全修飾名を使用して、MDB からこれらのオブジェクトを参照するだけでよいのでしょうか?
hibernate - Hibernate構成プロパティを取得するにはどうすればよいですか?
jpaでHibernateを使用していて、persistence.xmlで構成されています。WebアプリケーションからHibernate接続プロパティを取得することは可能ですか?
ありがとう。
java - Spring JTA構成 - TransactionManagerの設定方法は?
Spring 構成で Spring トランザクションを次のように構成します。
これは、Spring が基盤となる JTA 実装を自動的に検出することを意味します。したがって、JBoss を起動すると、Spring の検索中に次のメッセージが表示されます。
そして、最終的に次のようになります。
<tx:jta-transaction-manager/>
問題は、タグを編集してjava:/Transaction Manager
JTA 実装を明示的に構成し、ログ内のこれらすべてのスタック トレースを回避するにはどうすればよいかということです。(Log4J のログレベルを変更したくないだけです)
更新: 以下の構成に置き換え<tx:jta-transaction-manager/>
たところ、動作するようです..これで問題ないと思いますか?
unit-testing - JTA: JMS と JDBC の失敗をテストするには?
私たちは現在、JMS を使用してメッセージを受信し、メッセージを永続化し、別のクラスを使用して結果を送信するシステムで、JTA の失敗動作をテストする作業を行っています。
Spring を使用して全体を結び付けます。現在の単体テストでは、トランザクション管理に HSQLDB、Apache ActiveMQ、および Bitronix を使用しています。主に HSQLDB が XA トランザクションを実装していないため、これでの成功は限られています。
ここで質問があります: トランザクション ユニット テストでデータベースの障害を最適にシミュレートするにはどうすればよいでしょうか? テストの途中で標準の JDBC ドライバー (たとえば、Oracle 用) を失敗させる方法はありますか?
nb電源ボタンを押すことは、繰り返し可能なテストではありません:)
hibernate - WAS 6.1、JTA を使用した JPA、Hibernate、Spring: データ取得の問題
次のコンポーネントを含むアプリケーションを実行しています。
- オラクル9i
- WAS 6.1.0.23 と WS および EJB3 機能パック
- プロバイダーとして Hibernate 3.3.2.GA を使用する JPA (Hibernate-EntityManager 3.4.0 を使用)
- WAS の Spring トランザクション マネージャー: UowTransactionManager (Spring 2.5.6)
- フロー管理の永続性 (2.0.8) を備えた Spring Webflow。つまり、エンティティ マネージャーは http セッションにシリアル化され、要求ごとに復元されます。
Web コントローラーからサービス層 (Spring の @Transactional でアノテーションが付けられている) に送られる各要求で、Hibernate がトランザクション内でのサービス呼び出し中に実行する SQL クエリごとに、jndi DataSource から新しい DataSource 接続が要求されることに気付きました。 DataSource が空き接続を使い果たし、最終的にハングするまで、Hibernate の ConnectionProvider。
構成の一部を次に示します。
春:
/li>persistence.xml
/li>サービス
/li>ダオ
/li>
トランザクションは読み取り専用であることに注意してください。これは、フロー永続性では正常です。最後の遷移 (commit=true を使用) のみが、非読み取り専用のトランザクション メソッドを呼び出します。readOnly フラグをオンにすると、自動的に Hibernate フラッシュ モードが MANUAL に変わります。
デバッグを行っているときに、次のことに気付きました。
- UOW トランザクション マネージャーは、サービスのインターセプト チェーンで正しく呼び出されます。これは、トランザクションがアクティブであることを示しています。
- Hibernate は、EMF に注入された生の DataSource で DataSource.getConnection() を呼び出して接続を要求します。接続を取得するための戦略は、Hibernate の InjectedDataSourceConnectionProvider からのものであり、このクラスは (アクティブなトランザクションなどを認識しているプロキシではなく) WAS DataSource を参照します。
問題はこの 2 番目のポイントにあると思いますが、構成にエラーが見つかりません。誰でも助けることができますか?
ご協力いただきありがとうございます。