2016-12-17 10 views
0

JackRabbitをプロダクションで使用しています。Jackrabbit JCR(BundleFsPersistenceManager)で不整合を修正する方法

ERROR ResourceServiceImpl - RepositoryException to JCR javax.jcr.PathNotFoundException: 1661b5c

のSpring Beanの構成は次のようになります:残念ながら、私たちが読めないデータを作成するリポジトリにいくつかの矛盾を持って

<?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> 
workspaces.xmlはこのようになります

<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" /> 

私が学んだことから(遅すぎる)here、上に設定したBundleFsPersistenceManagerが矛盾する可能性があります。また、NOTを生産に使用する必要があることもここに記載されています。さて、今は生産中で、誰もこれに気づいていないので、これを交換したいと思います。ただし、まずデータを移行する必要があります。そのため、修正する必要があります。

私の質問:これを修正する方法はありますか、これらのデータは消失していますか?

私の2番目の質問:これらの問題を今後回避するにはどうすればよいですか?

答えて

0

Adobe CQ - Repository Inconsistency(Jackrabbitを使用)の永続性マネージャーで設定できる追加のcheck..パラメーターについての注意点があります。 Magnolia - JCR Troublesには、破損したノードを検索して削除するスクリプトの例があります。私は、このスクリプト(javaで書かれた)のロジックと検査パラメータを組み合わせることで、リポジトリをバックアップしてコンテンツを取得するのに十分長い時間稼働させるというアプローチを見てきました。

今後、RDBMSを使用しないスタンドアロンの設定を希望する場合は、org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManagerをお勧めします。

<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager"> 
     <param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/> 
     <param name="schemaObjectPrefix" value="${wsp.name}_"/> 
    </PersistenceManager> 
関連する問題