2.8. 事务工厂
在缺省情况下,创建事务时 JBoss Transaction 服务没有通过
Current 接口使用单独的事务管理者。每个事务性客户基本都有自己的事务管理者,即共处的 TransactionFactory。要在运行时覆盖这个行为,请设置 com.arjuna.ats.jts.transactionManager 属性为 YES。要执行事务工厂,请执行 ATS_ROOT/bin 目录里的 start-transaction-service 脚本。
Current 通常用 $JBOSS_HOME/etc 目录里的 CosServices.cfg 文件来定位工厂。这个文件和 resolve_initial_references 类似,当事务工厂在特定机器上启动时它被自动创建或更新。对于需要共享相同事务工厂的每台机器,这个文件都必须在本地进行复制。
注意
CosServices.cfg 及其位置是缺省的配置文件和位置。要修改这个文件的名称,请使用 com.arjuna.orbportability.initialReferencesFile 变量。要修改其位置,请设置 com.arjuna.orbportability.initialReferencesRoot 变量。
例 2.4. 自定义初始引用文件
java –Dcom.arjuna.orbportability.initialReferencesFile=ref –Dcom.arjuna.orbportability.initialReferencesRoot=c:\\temp prog
你可以通过 ResolveService 参数 里列出的任何参数设置 com.arjuna.orbportability.resolveService 属性以覆盖缺省的位置机制。
ResolveService 参数
- CONFIGURATION_FILE
- 系统使用
CosServices.cfg文件。这是缺省的行为。 - NAME_SERVICE
- JBoss Transaction 服务试图使用命名服务来定位事务工厂。如果不支持命名服务,系统将抛出异常。
- BIND_CONNECT
- JBoss Transaction 服务使用 ORB 专有的绑定机制。如果不支持这个设置,系统将抛出异常。
如果在事务工厂运行时指定了 com.arjuna.orbportability.resolveService,工厂自身将注册指定的解析机制。