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。