第4章 Narayana トランザクションマネージャーの設定
Fuse では、ビルトインのグローバルトランザクションマネージャーは JBoss Narayana Transaction Manager で、Enterprise Application Platform(EAP)7 によって使用されるトランザクションマネージャーと同じです。
Karaf の Fuse と同様に、OSGi ランタイムでは追加のインテグレーションレイヤーは PAX TRANSX プロジェクトによって提供されます。
以下のトピックでは、Narayana の設定について説明します。
4.1. Narayana のインストール
Narayana トランザクションマネージャーは、以下のインターフェイス、およびいくつかの追加のサポートインターフェイスの下で OSGi バンドルで使用できるように公開されています。
-
javax.transaction.TransactionManager
-
javax.transaction.UserTransaction
-
org.springframework.transaction.PlatformTransactionManager
-
org.ops4j.pax.transx.tm.TransactionManager
7.10.0.fuse-7_10_0-00010-redhat-00001
ディストリビューションでは、これらのインターフェイスを最初から利用できるようになります。
pax-transx-tm-narayana
機能には、Narayana を組み込むオーバーライドされたバンドルが含まれます。
karaf@root()> feature:info pax-transx-tm-narayana Feature pax-transx-tm-narayana 0.3.0 Feature has no configuration Feature has no configuration files Feature depends on: pax-transx-tm-api 0.0.0 Feature contains followed bundles: mvn:org.jboss.fuse.modules/fuse-pax-transx-tm-narayana/7.0.0.fuse-000191-redhat-1 (overriden from mvn:org.ops4j.pax.transx/pax-transx-tm-narayana/0.3.0) Feature has no conditionals.
fuse-pax-transx-tm-narayana
バンドルが提供するサービスは以下のとおりです。
karaf@root()> bundle:services fuse-pax-transx-tm-narayana Red Hat Fuse :: Fuse Modules :: Transaction (21) provides: ---------------------------------------------------------- [org.osgi.service.cm.ManagedService] [javax.transaction.TransactionManager] [javax.transaction.TransactionSynchronizationRegistry] [javax.transaction.UserTransaction] [org.jboss.narayana.osgi.jta.ObjStoreBrowserService] [org.ops4j.pax.transx.tm.TransactionManager] [org.springframework.transaction.PlatformTransactionManager]
このバンドルは org.osgi.service.cm.ManagedService
を登録するため、CM 設定の変更を追跡し、これに反応します。
karaf@root()> bundle:services -p fuse-pax-transx-tm-narayana Red Hat Fuse :: Fuse Modules :: Transaction (21) provides: ---------------------------------------------------------- objectClass = [org.osgi.service.cm.ManagedService] service.bundleid = 21 service.id = 232 service.pid = org.ops4j.pax.transx.tm.narayana service.scope = singleton ...
デフォルトの org.ops4j.pax.transx.tm.narayana
PID は以下のようになります。
karaf@root()> config:list '(service.pid=org.ops4j.pax.transx.tm.narayana)' ---------------------------------------------------------------- Pid: org.ops4j.pax.transx.tm.narayana BundleLocation: ? Properties: com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.communicationStore.localOSRoot = communicationStore com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.communicationStore.objectStoreDir = /data/servers/7.10.0.fuse-7_10_0-00010-redhat-00001/data/narayana com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.communicationStore.objectStoreType = com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.localOSRoot = defaultStore com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.objectStoreDir = /data/servers/7.10.0.fuse-7_10_0-00010-redhat-00001/data/narayana com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.objectStoreType = com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.stateStore.localOSRoot = stateStore com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.stateStore.objectStoreDir = /data/servers/7.10.0.fuse-7_10_0-00010-redhat-00001/data/narayana com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.stateStore.objectStoreType = com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore com.arjuna.ats.arjuna.common.RecoveryEnvironmentBean.recoveryBackoffPeriod = 10 felix.fileinstall.filename = file:/data/servers/7.10.0.fuse-7_10_0-00010-redhat-00001/etc/org.ops4j.pax.transx.tm.narayana.cfg service.pid = org.ops4j.pax.transx.tm.narayana
つまり、以下のようになります。
- Karaf の Fuse には、フル機能のグローバル、Narayana トランザクションマネージャーが含まれます。
- トランザクションマネージャーは、さまざまなクライアントインターフェイス (JTA、Spring-tx、PAX JMS) で正しく公開されます。
-
Narayana は、
org.ops4j.pax.transx.tm.narayana
で利用可能な標準の OSGi メソッドである Configuration Admin を使用して設定できます。 -
デフォルト設定は
$FUSE_HOME/etc/org.ops4j.pax.transx.tm.narayana.cfg
で提供されます。