Java 无法在jcr实现中运行版本垃圾回收
运行版本垃圾回收时出现以下错误: “超过限制100000个文档,将下一次收集间隔缩短为37561439秒”,“记录器名称”:“org.apache.jackrabbit.oak.plugins.document.versionArbageCollector”,“线程名称”:“http-nio-8080-exec-3”,“级别”:“信息”,“级别值”:20000} 路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为org.apache.jackrabbit.oak.plugins.document.DocumentStoreException:读取versionGC]时发生异常,其根本原因是“,”logger_name:“org.apache.catalina.core.ContainerBase.[Tomcat].[localhost]./]。“TreCorsServices”:“HTTP-NIO8080-Exe-3”、“Lead”:“StaleOpValue:”:“StaskYouTrar”:“<强> Or.PostgreSQL LUT.PSQLExcEx:不能在事务中间改变事务只读属性。< /强> \r\n\tAtg.PostgreSQL .jdbc .pgCorn.StEdRealOnLead(pgCorn.java:693)\r\n\tat sun.reflect.GeneratedMethodAccessor58.invoke(未知源)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:498)\r\n\tat org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126)\r\n\tat org.apache.tomcat.jdbc.pool.jdbceptor.invoke(jdbceptor.java:108)\r\n\tat org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:79)\r\n\tat org.apache.tomcat.jdbc.pool.interceptor.StatementCache.invoke(StatementCache.java:203)\r\n\tat org.apache.tomcat.jdbc.pool.jdbceptor.invoke(jdbceptor.java:108)\r\n\tat org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:152)\r\n\tat org.apache.tomcat.jdbc.pool.jdbceptor.invoke(jdbceptor.java:108)\r\n\tat org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:79)\r\n\tat org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:108)\r\n\tat org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:40)\r\n\tat org.apache.tomcat.jdbc.pool.jdbceptor.invoke(jdbceptor.java:108)\r\n\tat org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:79)\r\n\tat org.apache.tomcat.jdbc.pool.jdbceptor.invoke(jdbceptor.java:108)\r\n\tat org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:81)\r\n\tat com.sun.proxy.$Proxy81.setReadOnly(未知源)\r\n\tat org.apache.jackrabbit.oak.plugins.document.rdb.RDBConnectionHandler.setReadOnly(RDBConnectionHandler.java:176)\r\n\t org.apache.jackrabbit.oak.plugins.document.rdb.RDBConnectionHandler.getROConnection(RDBConnectionHandler.java:61)\r\n\t org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.readDocumentUncached(RDBDocumentStore.java:1897)\r\n\t org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.readDocumentCached(RDBDocumentStore.java:1454)\r\n\t org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.internalCreateOrUpdate(RDBDocumentStore.java:1557)\r\n\t org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.createOrUpdate(RDBDocumentStore.java:367)\r\n\tat org.apache.jackrabbit.oak.plugins.document.VersionArbageCollector$Recommensions.setLongSetting(VersionArbageCollector.java:1200)\r\n\tat org.apache.jackrabbit.oak.plugins.document.VersionArbageCollector$Recommensions.evaluate(VersionArbageCollector.java:1156)\r\n\tat org.apache.jackrabbit.oak.plugins.document.versionArbageCollector$GCJob.gc(versionArbageCollector.java:515)\r\n\tat org.apache.jackrabbit.oak.plugins.document.versionArbageCollector$GCJob.run(versionArbageCollector.java:475)\r\n\tat org.apache.jackrabbage.oak.plugins.document.versionArbageCollector.gc(versionArbageCollector.java:144)\r\n\tat com.springernature.mango.cms.services.rest.service.ServicesController.runGC(ServicesController.java:1080)\r\n\tat com.springernature.mango.cms.services.rest.service.ServicesController$$FastClassBySpringCGLIB$$bd16ea4e.invoke()\r\n\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.procedingjoinpoint(ReflectiveMethodInvocation.java:157)\r\n\tat org.springframework.aop.aspectj.methodinvocationprocedingjoinpoint(MethodInvocationProceedingJoinPoint.java:84)\r\n\t com.springernature.mango.cms.handler.LoggingHandler.logAround(LoggingHandler.java:108)\r\n\t sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)\r\n\t sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:498)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)\r\n\tat org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n\tat org.springframework.aop.framework.reflectivemethodinvoking.procement(reflectivemethodinvoking.java:179)\r\n\t org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n\t org.springframework.aop.framework.ReflectiveMethodInvocation.procept(ReflectiveMethodInvocation.java:179)\r\n\t org.springframework.aop.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.interceptor(CglibAopProxy.java:671)\r\n\t com.springernature.mango.cms.services.rest.service.ServicesController$$EnhancerBySpriJava 无法在jcr实现中运行版本垃圾回收,java,postgresql,jackrabbit,jackrabbit-oak,Java,Postgresql,Jackrabbit,Jackrabbit Oak,运行版本垃圾回收时出现以下错误: “超过限制100000个文档,将下一次收集间隔缩短为37561439秒”,“记录器名称”:“org.apache.jackrabbit.oak.plugins.document.versionArbageCollector”,“线程名称”:“http-nio-8080-exec-3”,“级别”:“信息”,“级别值”:20000} 路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌
public void runGC() {
log.info("Running garbage collection for NodeStore");
try {
RepositoryUtil.getDocumentNodeStore().getVersionGarbageCollector().gc(
0,
TimeUnit.DAYS);
} catch (final IOException ioe) {
log.error("Error while running Version Garbage Collection : {}", ioe);
}
log.info("Garbage collection execution completed");
}
private static Repository createRepo(final Map<String, String> dbDetails)
throws DataStoreException {
try {
final RDBOptions options =
new RDBOptions().tablePrefix(dbDetails.get(DB_TABLE_PREFIX)).dropTablesOnClose(
false);
final DataSource ds =
RDBDataSourceFactory.forJdbcUrl(
dbDetails.get("dbURL"),
dbDetails.get("dbUser"),
dbDetails.get("dbPassword"));
final Properties properties = buildS3Properties(dbDetails);
final S3DataStore s3DataStore = buildS3DataStore(properties);
final DataStoreBlobStore dataStoreBlobStore = new DataStoreBlobStore(s3DataStore);
final Whiteboard wb = new DefaultWhiteboard();
bapRegistration =
wb.register(
BlobAccessProvider.class,
(BlobAccessProvider) dataStoreBlobStore,
properties);
*documentNodeStore =*
new RDBDocumentNodeStoreBuilder()
.setBlobStore(dataStoreBlobStore)
.setBundlingDisabled(true)
.setRDBConnection(ds, options)
.build();
repository = new Jcr(documentNodeStore).with(wb).createRepository();
return repository;
} catch (final DataStoreException e) {
log.error("S3 Connection could not be created." + e);
throw new DataStoreException("S3 Connection could not be created");
}
}