問題タブ [bitronix]
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 - bitronix(BTM)がユーザートランザクションをJNDIにバインドしないのはなぜですか?
他の場所で提案されているように、Bitronixは非常にうまく機能しているように見えます。しかし、私はそれに関する問題に困惑しています。呼び出した後にセッションを保存しようとすると、Hibernateからこの例外が発生しTransactionManager.begin()
ます。
BitronixがユーザートランザクションをJNDIにバインドしているという証拠は見当たりません。どうすればそれを行うことができますか?
java - BTMなしでbitronixPoolingDataSourceを使用することは可能ですか?
bitronixトランザクションマネージャーを使用bitronix.tm.resource.jdbc.PoolingDataSource
せず、代わりにスタンドアロンのJBossTSを使用して使用することは可能ですか?
@Transactional
データベースアクセスには、Springのアノテーション(またはTransactionTemplate
同様の実装を持つSpringのアノテーション)を使用してトランザクションの境界を設定するHibernateを使用します。PoolingDataSource
テストではスタンドアロンのJBossTSが使用されますが、データベース接続プールを放棄したくありません。
それが不可能な場合、他にどのようなプーリングデータソースがここに適合しますか?他のいくつかの質問は、c3p0がオプションではないことを示唆しています。それは本当ですか?
java - Guice Persist を JTA / bitronix と一緒に使用する際の問題
すでに JPA と guice-persist を使用している既存の j2se プロジェクトがあります。ここで、JMS 機能を追加したいので、2 フェーズ コミットと JTA の要求があります。コンテナーがないため (Spring など)、bitronix トランザクション マネージャーを使用します。
私の理解では、最初にやらなければならないことは、永続化ユニットの transaction-type を から に変更することですRESSOURCE-LOCAL
。JTA
これは、データベース トランザクションがcommitではなくcommitに投票するようにするためです。コミットは、すべての投票を収集した後、フェーズ 2 で行われます。
guice-persist@Transactional
では、単一のトランザクションで実行する必要があるメソッドにアノテーションを使用します。はEnitiyManagerFactory を提供し、注釈付きメソッドをラップするJPAPersistModule
ように、guice-persist 内部クラスに使用されます。JpaLocalTxnInterceptor
今、私は次のような例外を受け取ります
提供されたエンティティマネージャーのJpaLocalTxnInterceptor
呼び出しのため。getTransaction()
現時点では、かなり行き詰まっています。guice-persist を JTA と一緒に使用する方法はありますか? それともプロジェクトから guice-persist を削除する必要がありますか? または、(Bitronix を使用して) JTA を実行したい場合、guice-persist に代わるものはありますか?
spring - Spring Integration + トランザクション + Bitronix
Java ベースの Web アプリケーションがあります。Spring Integration を使用して、データベース (Jpa アウトバウンド アダプター) および Tibco EMS (JMS アウトバウンド アダプター) と統合しています。ただし、ここで、同じメッセージを 1. データベースに保持し、2. JMS 経由で送信する必要がある場所に、いくつかのコードを配置する必要があります。
問題は、これらのアクティビティ (1 と 2) がトランザクションで発生する必要があることです。両方が発生するか、まったく発生しません。私はBitronixでこれを達成しようとしています。しかし、今のところ、私はそれを成し遂げることができていません。平易な英語で意味するエラーが表示されます (ここで私の翻訳を許してください) 「XA トランザクション以外ではトランザクションを達成できません。
誰もこれを試したことがありますか?どんな助けでも大歓迎です。
ありがとう、
java - コミット時にJTAでJMSメッセージを確認する方法は?
JTA、2 フェーズ コミット、JMS および JDBC トランザクションに苦労しています。アイデアは(要するに)
- キューでメッセージを受信する
- いくつかのデータベース操作を実行します
- データベース操作が成功したときに、メッセージを確認します
を取得しXAQueueConnectionFactory
、 を作成しXAQueueSession
、セッションからレシーバーを作成し、メッセージ リスナーを設定しました。
リスナー内のonMessage
メソッドで、ユーザー トランザクションを開始し、jdbc を実行してトランザクションをコミットするか、何か問題が発生した場合はロールバックを実行します。ここで、ユーザー トランザクションがコミットされたときに、メッセージが確認されることを期待 (別名「希望」) しました。
しかし、そうはなりません。メッセージはまだキューにあり、何度も再配信されます。
私は何が欠けていますか?セッションを再確認したところ、承認モードは実際には " SESSION_TRANSACTED
" であり、getTransacted
true を返します。
Java EE コンテナーも、スプリングも、メッセージ駆動型 Bean もありません。私はスタンドアロンの JTA bitronix を使用しています。
spring - jparepositoryを使用したjunitテストでデータベースにオブジェクトが作成されない
Spring 3.2.1.RELEASE、Hibernate 4.1.9.FINAL を jpa プロバイダーとして、spring data 1.2.0.RELEASE をリポジトリーとして、bitronix 2.1.3 をトランザクション マネージャーとして使用してプロジェクトを開始しています。私はこれらすべてのテクノロジーに慣れていないので、重要な点が欠けていたら申し訳ありません。
データベースに User オブジェクトを作成する単純な単体テストを実行しています。
使用した test-context.xml は次のとおりです。
リポジトリの実装は、標準の JPARepository です。
また、サービスの実装はリポジトリへの呼び出しのみを行います。
問題は、テストを実行すると成功するが、データベースにユーザーが作成されないことです。ロールバックの動作が原因かもしれないと思ったので、ユーザー テストで defaultRollback=false を設定しました。DEBUG に設定されている場合にトランザクション フレームワークによって提供される、関連する可能性のある情報を次に示します。
ログには testException=[null] が表示されますが、その理由がわかりません..JPARepository によって提供される saveAndFlush() メソッドを使用しようとしましたが、そうするとエラーが発生しますjavax.persistence.TransactionRequiredException: no transaction is in progress
。私は間違ったことをしており、私を正しい方向に向けることができます。助けていただければ幸いです。
oracle - Spring トランザクションは Oracle Express では機能しません
Spring でトランザクション管理をテストするための単純なスタンドアロン アプリケーションがあります。Oracle Express Edition を持っている。以下を実行して XA を有効にします
私のJavaコードはほとんど次のとおりです。
したがって、すべてのアイデアは、トランザクションがロールバックするのを見ることです。私はいくつかの構成例で実行し、記録は常にコミットされています。ロールバックは実行されません。エラーなし、期待のみ
私の最後の設定はこれです:
java - H2 データベース/ Java EE なしの Bitronix
機能の簡単なテスト (チュートリアルに従う) のために、Bitronix と H2 インメモリ データベースを使用してプリミティブ JTA 環境をセットアップしようとしました。テストは、単純な Java アプリケーション (Java EE やサーバーなどなし) で単体テストとして実行することになっています。
残念ながら、私はそれを実行できません。私のセットアップは次のとおりです。
チュートリアルに従って、(maven経由で)いくつかのjarファイルを追加しました:
- btm、h2、hibernate-entitymanager および hibernate-jpa-2.0-api
クラスパスにpersistence.xml、hibernate.cfg.xml、およびjndi.propertiesファイルを追加しました。
テストメソッド(ダーティ...)に次のコードを入れました:
/li>
そして、これは私のpersistence.xml構成です:
jndi.properties: java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory
問題は次のとおりです:私はこのスタックを取得します:
したがって、ここで何かが間違っていることは確かです。手伝って頂けますか?