2012-02-19 20 views
0

誰かがinfinispanを春にL2キャッシュとして正常にセットアップしましたか?Spring&TomcatでのHibernate L2キャッシュへのInfinispanの使用

データソースにXAを使用しないでください。現在、JPATransactionManagerでLocalContainerEntityManagerFactoryBeanを使用しています。

Infinispanが必要とするJTATransactionManagerの設定に関するヒントはありますか?

私は現在、自分のトランザクションマネージャのためにfolowingを持っています: トランザクションマネージャにentityManagerFactoryを渡す必要があることに注意してください。 したがって、Entity Managerを完全に作成してTransactionManagerを作成する必要があります。 しかし、InfinispanにTransactionManagerが必要な場合は、循環依存を作成しませんか?

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> 
<!-- Transaction Manager --> 
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 
<tx:advice id="txAdvice"/> 

アップデート:私はbitronix、物事を使用しています動作しているようだが、私はいくつかの警告が表示さ:Infinispanから起動時に

1):

STDOUT [WARN] [2012年2月20日14 :29:00] statetransfer.BaseStateTransferManagerImpl - ISPN000159:ブロック解除のトランザクションが失敗した java.lang.IllegalStateException:キャッシュビュー1の書き込みコマンドのブロックを解除しようとしているが、彼らはorg.infinispan.statetransfer.StateTransferLockImpl.unblockNewTransactionsで をブロックしていなかった(StateTransferLockImpl.java :260)org.infinispan.statetransfer.BaseStateTransferManagerImpl.postInstallViewでorg.infinispan.cacheviews.CacheViewsManagerImpl.clusterCommitViewでorg.infinispan.cacheviews.CacheViewsManagerImpl.handleCommitViewで(BaseStateTransferManagerImpl.java:351) (CacheViewsManagerImpl.java:520) (CacheViewsManagerImpl。 Javaの:java.util.concurrentのでorg.infinispan.cacheviews.CacheViewsManagerImpl $ ViewInstallationTask.call(CacheViewsManagerImpl.java:876) でorg.infinispan.cacheviews.CacheViewsManagerImpl.clusterInstallView(CacheViewsManagerImpl.java:271) で387) 。 FutureTask $ Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)java.lang.Thread.runでjava.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908) (Thread.java:680)

2)でライト・トランザクションを実行している:

STDOUT [WARN ] [2012.02.20 13:54:14] tm.BitronixTransaction - Synchronization.afterCompletion() call failed for org.hibernate.engine[email protected]67c61e31 
java.util.ConcurrentModificationException 
    at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:373) 
    at java.util.LinkedHashMap$KeyIterator.next(LinkedHashMap.java:384) 
    at org.hibernate.engine.transaction.internal.SynchronizationRegistryImpl.notifySynchronizationsAfterTransactionCompletion(SynchronizationRegistryImpl.java:78) 
    at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.sendAfterTransactionCompletionNotifications(TransactionCoordinatorImpl.java:333) 
    at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.afterTransaction(TransactionCoordinatorImpl.java:145) 
    at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.afterCompletion(SynchronizationCallbackCoordinatorImpl.java:126) 
    at org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.afterCompletion(RegisteredSynchronization.java:61) 
    at bitronix.tm.BitronixTransaction.fireAfterCompletionEvent(BitronixTransaction.java:497) 
    at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:244) 
    at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:120) 
    at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1010) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) 
    at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393) 
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) 
    at com.mckesson.dex.ui.administration.users.SiteUserResourceProvider$$EnhancerByCGLIB$$edc43389.save(<generated>) 
    at com.mckesson.dex.ui.viewer.AdaptableForm.save(AdaptableForm.java:407) 
    at com.mckesson.dex.ui.viewer.AdaptableForm.attemptSave(AdaptableForm.java:274) 
    at com.mckesson.dex.ui.viewer.AdaptableForm$5.buttonClick(AdaptableForm.java:323) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:512) 
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164) 
    at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1219) 
    at com.vaadin.ui.Button.fireClick(Button.java:550) 
    at com.vaadin.ui.Button.changeVariables(Button.java:217) 
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1451) 
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1399) 
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1318) 
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:763) 
    at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296) 
    at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501) 
    at com.mckesson.dex.servlet.DexApplicationServlet.service(DexApplicationServlet.java:60) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:550) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1359) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at com.mckesson.dex.security.filter.IpAddressAuditFilter.doFilterInternal(IpAddressAuditFilter.java:54) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at com.mckesson.dex.security.DexConcurrentSessionFilter.doFilter(DexConcurrentSessionFilter.java:92) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:970) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:414) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:187) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:904) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) 
    at org.eclipse.jetty.server.Server.handle(Server.java:347) 
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:590) 
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1071) 
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823) 
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220) 
    at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411) 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535) 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529) 
    at java.lang.Thread.run(Thread.java: 
+0

この設定が見つかりました。私はこれを使ってそれを働かせることができるかどうかを見極めるつもりです。しかし、私は現在、3つの異なるdbs(dev、tests、prod)=(postgres、h2、oracle)を使用するように設定されています。 私はコンテキストの設定でデータソースを構築し、jndi経由で登録します。ですから、この設定をどのように使えるかを知るためには少し遊ばなければなりません。 https://github.com/hibernate/hibernate-search/blob/master/hibernate-search-integrationtest/src/test/resources/beans.xml –

+0

これはInfinispanを2LCとして設定するのに適しているようですが、 JTAトランザクションマネージャを指す別のhibernate.transaction.manager_lookup_classが必要になるでしょう。エンティティマネージャをトランザクションマネージャに渡す必要があるのは変です。トランザクションマネージャはかなりスタンドアロンでなければならず、JPAは何とかそれに依存するはずです。 –

+0

Re:状態転送のIllegalStateException - どのInfinispanのバージョンを使用していますか? –

答えて

関連する問題