2016-05-12 17 views
2

IBM Websphere 8.5.5で実行中のソフトウェア・プロジェクトがあります。アプリケーションサーバからJTA TransactionManagerを参照する必要があります。現在はcom.ibm.ws.Transaction.TransactionManagerFactoryクラスを使用しており、その上でgetTransactionManager()を呼び出します。Websphere 8.5でのcom.ibm.ws.Transaction.TransactionManagerFactoryの使用

私の質問はこれです:IBM Websphere 8.5でこれを行うのは正当なのでしょうか?新しいインターフェイスがあるようです(例:UOWManager)。しかし、Websphere 5を超えてcom.ibm.ws.Transaction.TransactionManagerFactoryの使用に関する文書を見つけることができませんでした。どこでも使えるとは言いません。それはどこでも使用すべきではないとは言いません。

com.ibm.ws.Transaction.TransactionManagerFactoryはまだ古風ですが動作しますか?あるいは、それは問題があり、使用すべきではありませんか?

(私はコードを見ていない今のところ失敗しますが、これはどちらかの意味するかもしれないa)は、それが正常に動作する、またはb)私達はちょうどテストケースをヒットしていない!)

答えて

4

com.ibmを。 ws.Transaction.TransactionManagerFactoryは製品内部と見なされるため、アプリケーションの使用によってサポートされません(その理由は文書化されていません)。 UOWManagerはサポートされており、人々がTransactionManagerアクセス​​を求める主要なユースケースをサポートする必要があります。ユースケースが何であるかわからなければ、私はより良いアドバイスを提供することはできません。

+0

WebSphereでHibernate + Infinispanの2次キャッシュを使用しようとしたときと同じ問題がありました。いくつかのシナリオでは、Infinispanはトランザクションを一時停止し、独自の作業を行い、その後再開したいと考えました。唯一の 'javax.transaction.TransactionManager'は' com.ibm.ws.Transaction.TransactionManagerFactory'によって返されたものでした(直接サスペンド/レジュームAPIで)。 WebSphereのサポートされているAPIを使用して中断/再開を行う方法を教えてください。 –

+1

@ KosProv任意の中断/再開はできません。 'UOWManager.runUnderUOW'を使うことができます。これは、制御された方法であなたのためにサスペンド/レジュームを行います。効果的に、製品は、アプリケーションコードがトランザクションを再開できないことを許可したくない、または異なるEE「範囲」でトランザクションを再開しようとします(たとえば、EJB呼び出し内でサスペンドしてから戻った後に再開するか、別のスレッド)。 –

+0

@Alasdairご返信ありがとうございます。詳細は重要ではないので、ユースケースをより具体的にすることで、問題を複雑にしたくはありませんでした。私は 'UOWManager'への切り替えが簡単ではないので、私のオプションが何であるかを調べていました。 (特に、コードの一部が私のコントロールを超えている、つまりライブラリ.jarsにあるため) –

関連する問題