問題タブ [atomikos]
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 - Atomikos、Tomcat、トランザクション ログ、およびシステム プロパティを監視しない
Strange Atomikos exception - Error in init(): Log already in use? で説明されているのと同じものが表示されます。ただし、ドキュメントに従い、ロギング ディレクトリとベース名を -D パラメータとして指定しました。私たちの場合、単純な Tomcat7 コンテナー インスタンスにデプロイされた war ファイルです。
システム プロパティが読み取られているという証拠はログにありません。
こちらはAtomikosの3.9.3で。
スタックトレース:
この時点でどこに行けばいいのかわかりません。開こうとしているファイル名がログに含まれていることを望んでいたかもしれませんが、盲目的に飛んでいます。通常の catalina と localhost のログを除いて、/var/log/tomcat7 内に作成されるファイルはありません。
アイデア?
java - 例による JTA トランザクション リソースの実装
私は、リモート/ネットワーク リソースを JTA に準拠させるための基本原則を理解しようとしていますが、この件に関するドキュメント/ブログ/記事がほとんどないことに驚いています。
私が独自の特別なタイプのサーバー、「IAmYourFaja」サーバー、または「IAYF」を作成したとします。IAYFCP (IAYF Comms Protocol) と呼ばれる、このサーバーと対話するための独自の TCP ベースのネットワーク プロトコルを作成/実装したとします。最後に、IAYFCP を介してリモート IAYF サーバーにアクセスしてメッセージを送信するための Java クライアント ライブラリを作成しました。まだ私と一緒に?
現在、次の分散トランザクションを実行する必要があるユース ケースがあります。
- リレーショナル/JDBC データベースにレコードを挿入します。それから
- IAYF サーバーにメッセージを送信します。それから
- メッセージを JMS ブローカーにプッシュする
いずれかのコンポーネントで障害が発生した場合に、すべてをロールバックして、これらのネットワーク リソースの状態が変更されないように、これらをすべて処理する必要があります。
最終的な目標は、次のコードを実行できるようにすることです (ここでは疑似コード)。
したがって、私が使用している JDBC ドライバーと JMS ライブラリーは、すでに JTA に準拠しています。つまり、このコードを可能にするには、IAYF クライアント ライブラリも JTA 互換にする必要があります。問題は、どの JTA インターフェイスを実装する必要があるのか わかりません。
いくつか質問があります:
- 実装する必要があるインターフェイス (およびその理由):
XAResource
、UserTransaction
、またはその両方? - JTA に準拠し、IAYF クライアント/サービスをトランザクション対応にするために必要なことはこれだけですか? 上記の「JTA の例」コードを期待どおりに動作させるために他に必要なことはありますか?
- 正誤問題: Java EE コンテナーには独自のトランザクション マネージャーがあり、ほぼゼロの構成で利用できますが、Java EE/JTA に準拠していないコンテナーでアプリを実行する場合は、独自のトランザクション マネージャーを提供する必要があります。これを達成するためにBitronixやAtomikosのようなものを使用できますか?
spring-boot - テストに使用すると、Spring Boot が Atomikos を検出しないようです
プロジェクトでSpring Bootを使用するためのプロトタイプに取り組んでいます。本番環境に JBoss サーバーがあり、再利用する必要がある persistence.xml が存在するため、Atomikos などの組み込みトランザクション マネージャーを使用して、Undertow 組み込みサーバーに対して統合テストを実行することを考えていました。私のテスト アプリ コンテキスト ファイルには、次の行があります。
また、カスタム テスト構成を次のように追加しました。
Atomikos の私の gradle インクルードは次のとおりです。
Spring Boot 1.2.0-RC2 を使用しています。
誰かが私が間違っていること、またはこれを解決する方法を指摘できますか?
ありがとう、
パディ
spring - MySQL と Infinispan - JTA の実装
Tomcat の下に Web アプリケーションがあり、Hibernate 4X、Spring 4X、およびトランザクション マネージャー (現在 1 つの MySQL リソース) として HibernateTransactionManager と統合されています。
構成配布の一部として、MySQL 以外の形式で構成を保存するキャッシュ マネージャーとしてInfinispanと統合する必要があります。つまり、Hibernate の第 2 レベルのキャッシュ統合ではありません!
Infinispan を Spring と統合することができましたが、MySql トランザクションと Infinispanが同じ @Transactional にある必要があるため、大きな問題に直面しています。
Spring JTA と、Atomikos (例) をグローバル トランザクション マネージャーとして統合する方法について読みましたが、エンティティ全体を組み合わせて連携できるかどうか、およびどのように連携できるかはわかりません :(
Infinispan がこの JTA 実装を認識し、 MySql と Infinispan を 1 つのグローバル トランザクションとして処理するように、Atomikos Spring JTA を使用するオプションがあるかどうかを知る必要があります。(2PC)
ありがとう!