Hibernate和ehCache配置的事务问题
在hibernate映射中,缓存使用为只读Hibernate和ehCache配置的事务问题,hibernate,ehcache,jta,Hibernate,Ehcache,Jta,在hibernate映射中,缓存使用为只读 <class name="cdot.ctms.layer.services.dispatch.data.DispatchMapDTO" table="DISPATCH_MAP" mutable="false" optimistic-lock="version"> <cache usage="read-only"/> 在我的ehCache.xml中,我的默认缓存设置为 <defaultC
<class name="cdot.ctms.layer.services.dispatch.data.DispatchMapDTO"
table="DISPATCH_MAP" mutable="false" optimistic-lock="version">
<cache usage="read-only"/>
在我的ehCache.xml中,我的默认缓存设置为
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskSpoolBufferSizeMB="30"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
transactionalMode="xa_strict">
<persistence strategy="localTempSwap"/>
</defaultCache>
当我的对象获取默认缓存时,它会遇到事务回滚问题
如果我为我引用的对象显式添加缓存,我不会遇到任何问题
<cache
name="cdot.ctms.layer.services.dispatch.data.DispatchMapDTO"
maxEntriesLocalHeap="100"
eternal="false"
timeToLiveSeconds="300">
<persistence strategy="localTempSwap" />
</cache>
我们有很多DTO在应用程序中使用默认缓存。我是否必须在ehCache.xml中为每个对象定义如上所述的缓存?在hibernate手册中找不到任何相关文档
有人能解释一下我的配置有什么问题吗?针对上述问题的最佳做法是什么
2015-02-24 10:05:27390错误(http-nio-127.0.0.1-8080-exec-6)[cdot.ctms.layer.web.fire.spring.AtmosphereHandlerExceptionResolver]异常解析程序错误是:JTA事务意外回滚(可能是由于超时);嵌套异常为javax.transaction.rollback异常:无法提交:标记为回滚的事务
org.springframework.transaction.UnexpectedRollbackException:JTA事务意外回滚(可能是由于超时);嵌套异常为javax.transaction.rollback异常:无法提交:标记为回滚的事务
位于org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1024)
位于org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:757)
位于org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:726)
位于org.jencks.GeronimoPlatformTransactionManager.commit(GeronimoPlatformTransactionManager.java:76)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.commitTransactionAfterReturning(TransactionSpectSupport.java:521)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:291)
位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:179)上
位于org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
位于com.sun.proxy.$Proxy143.getDispatchMaps(未知源)
位于cdot.ctms.layer.delegate.controllers.DispatchController.getDispatchMaps(DispatchController.java:60)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于cdot.ctms.layer.delegate.facade.AnnotationDelegateController.executeInternal(AnnotationDelegateController.java:287)
位于cdot.ctms.layer.delegate.facade.AnnotationDelegateController.processAction(AnnotationDelegateController.java:232)
位于cdot.ctms.layer.web.controller.BaseWebController.processAction(BaseWebController.java:94)
位于cdot.ctms.layer.web.dispatch.controller.DispatchController.findDispatchMapsUnderSection(DispatchController.java:82)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
位于org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
位于org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777)
位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706)
位于org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
位于org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
位于org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
位于org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
位于org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
在org.atmospher.util.AtmosphereFilterChain.doFilter(AtmosphereFilterChain.java:135)上
位于org.atmospher.util.AtmosphereFilterChain.invokeFilterChain(AtmosphereFilterChain.java:96)
位于org.atmosphere.handler.ReflectorServletProcessor$FilterChainServletWrapper.service(ReflectorServletProcessor.java:317)
位于org.atmosphere.handler.ReflectorServletProcessor.onRequest(ReflectorServletProcessor.java:160)
在org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:205)上
位于org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:104)
位于org.atmosphere.container.Servlet30ComeSupport.service(Servlet30ComeSupport.java:66)
位于org.atmosphere.cpr.AtmosphereFramework.docomeSupport(AtmosphereFramework.java:2079)
位于org.atmosphere.cpr.AtmosphereServlet.doPost(AtmosphereServlet.java:211)
位于org.atmosphere.cpr.AtmosphereServlet.doGet(AtmosphereServlet.java:197)
位于javax.servlet.http.HttpServlet.servic