我們在生產中使用JackRabbit。不幸的是,我們必須在倉庫一些不一致的地方,這使得無法讀取這些數據:如何解決Jackrabbit JCR(BundleFsPersistenceManager)中的不一致問題
ERROR ResourceServiceImpl - RepositoryException to JCR javax.jcr.PathNotFoundException: 1661b5c
Spring bean配置是這樣的:
<bean id="repository" class="org.apache.jackrabbit.core.RepositoryImpl" destroy-method="shutdown">
<constructor-arg index="0" ref="config" />
</bean>
<bean id="config" class="org.apache.jackrabbit.core.config.RepositoryConfig" factory-method="create">
<constructor-arg index="0" ref="jcrXml"/>
<constructor-arg index="1" value="${instance.repository}" />
</bean>
<bean id="jcrXml" class="com.example.misc.InputStreamBeanFactory" factory-method="createStream">
<constructor-arg value="/jackrabbit-repository.xml" />
</bean>
<bean name="jcrSession" factory-bean="repository" factory-method="login" scope="session" destroy-method="logout" />
的workspaces.xml
看起來是這樣的:
<?xml version="1.0" encoding="UTF-8"?><Workspace name="default">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
</Workspace>
從我學到的(太晚)here,上面配置的BundleFsPersistenceManager可能會變得不一致。這也寫在這裏應該不被用於生產。那麼,它現在正在生產,以前沒有人注意到這一點,我們想交換這一點。但首先我們必須遷移數據,因此我們需要修復它。
我的問題:有沒有辦法解決這個問題還是這些數據丟失的好?
我的第二個問題:我們可以做些什麼來避免將來出現這些問題?。