第 4 章 配置 Narayana 事务管理器
在 Fuse 中,全球交易经理是 JBoss Narayana 事务管理器,它是企业应用平台(EAP)7 使用的事务管理器。
在 OSGi 运行时,与用于 Karaf 的 Fuse 中一样,额外的集成层由 PAX TRANSX 项目提供。
以下主题讨论 Narayana 配置:
4.1. 关于 Narayana 安装 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Narayana 事务管理器在以下接口以及一些额外的支持接口中使用:
-
javax.transaction.TransactionManager -
javax.transaction.UserTransaction -
org.springframework.transaction.PlatformTransactionManager -
org.ops4j.pax.transx.tm.TransactionManager
7.11.1.fuse-7_11_1-00013-redhat-00003 分发使这些接口在启动时可用。
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.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.11.1.fuse-7_11_1-00013-redhat-00003/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.11.1.fuse-7_11_1-00013-redhat-00003/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.11.1.fuse-7_11_1-00013-redhat-00003/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.11.1.fuse-7_11_1-00013-redhat-00003/etc/org.ops4j.pax.transx.tm.narayana.cfg
service.pid = org.ops4j.pax.transx.tm.narayana
概述:
- 适用于 Karaf 的 Fuse 包括功能齐全的全球、Narayana 事务经理。
- 事务管理器在不同的客户端接口(JTA、Spring-tx、PAX JMS)下正确公开。
-
您可以使用标准的 OSGi 方法( Configuration Admin)配置 Narayana,它可在
org.ops4j.pax.transx.tm.narayana中找到。 -
默认配置在
$FUSE_HOME/etc/org.ops4j.pax.transx.tm.narayana.cfg中提供。