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。