4장. Narayana 트랜잭션 관리자 구성
Fuse에서 내장된 글로벌 트랜잭션 관리자는 JBoss Narayana Transaction Manager 로, EAP(Enterprise Application Platform) 7에서 사용하는 트랜잭션 관리자와 동일합니다.
Fuse for Karaf와 마찬가지로 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.8.0.fuse-780038-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.8.0.fuse-780038-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.8.0.fuse-780038-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.8.0.fuse-780038-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.8.0.fuse-780038-redhat-00001/etc/org.ops4j.pax.transx.tm.narayana.cfg service.pid = org.ops4j.pax.transx.tm.narayana
요약:
- Fuse for Karaf에는 완전한 기능을 갖춘 글로벌, 네라나나 트랜잭션 관리자가 포함되어 있습니다.
- 트랜잭션 관리자는 다양한 클라이언트 인터페이스(JTA, Spring-tx, PAX JMS)에서 올바르게 노출됩니다.
-
org.ops4j.pax.transx.tm.narayana
에서 사용할 수 있는 표준 OSGi 메서드인 Configuration Admin을 사용하여 Narayana를 구성할 수 있습니다. -
기본 구성은
$FUSE_HOME/etc/org.ops4j.pax.transx.tm.narayana.cfg
에 제공됩니다.