4.4. 配置日志存储

最重要的配置是对象存储的类型和位置。通常有三种实现 com.arjuna.ats.arjuna.objectstore.ObjectStoreAPI 接口:

com.arjuna.ats.internal.arjuna.objectstore.hornetq.HornetqObjectStoreAdaptor
从 AMQ 7 内部使用 org.apache.activemq.artemis.core.journal.Journal 存储。
com.arjuna.ats.internal.arjuna.objectstore.jdbc.JDBCStore
使用 JDBC 来保持 TX 日志文件。
com.arjuna.ats.internal.arjuna.objectstore.FileSystemStore(及专用实施)
使用基于文件的自定义日志存储。

默认情况下,Fuse 使用 com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore,这是 FileSystemStore 的专用实施。

Narayana 用来保存事务/对象日志的三个 存储

  • defaultStore
  • communicationStore
  • stateStore

如需了解更多详细信息,请参阅 Narayana 文档中的 状态管理。

这三个 存储 的默认配置是:

# default store
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.objectStoreType = com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.objectStoreDir = ${karaf.data}/narayana
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.localOSRoot = defaultStore
# communication store
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.communicationStore.objectStoreType = com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.communicationStore.objectStoreDir = ${karaf.data}/narayana
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.communicationStore.localOSRoot = communicationStore
# state store
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.stateStore.objectStoreType = com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.stateStore.objectStoreDir = ${karaf.data}/narayana
com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean.stateStore.localOSRoot = stateStore

ShadowNoFileLockStore 配置有基础目录(objectStoreDir)和特定存储的目录(localOSRoot)。

很多配置选项包括在 Narayana 文档指南中。但是,Narayana 文档指出,对配置选项的规范引用是各种 EnvironmentBean 类的 Javadoc。