2012-01-27 80 views
2

超時我有我的各種環境,即Weblogic的10適用於Windows與Apache網絡服務器和Weblogic的10對Linux與IIS web服務器部署應用EJB3。我使用EclipseLink作爲持久層。數據庫始終是Windows機器上的Oracle 9.2。EJB3 Weblogic上10 - 在第一DB訪問

我的persistence.xml連接我(這裏的「我」是會話bean)一個或多個數據源的Oracle。有3個會話bean用於訪問3個數據源,每個都有一個。

在Windows!Weblogic(這是開發環境)沒有問題,但是當我在Linux機器上進行部署(測試&生產環境)時,所有會話bean在第一次訪問數據庫時會發生一次或兩次超時異常,然後工作得很好。按照Weblogic控制檯,任何配置都是相同的,再加上我沒有對生產環境設置的寫入權限,所以我也必須保持開發&測試一致。 因此,Weblogic控制檯上沒有配置設置(例如增加事務超時)。

什麼我錯過這裏的任何想法?謝謝!

編輯:這裏是一個樣本異常堆棧跟蹤。每次都是一樣的。

2012-01-11 14:31:35,548 ERROR [org.eclipse.persistence.session.file:/wls001/beasys/wls10/config/dwcrete/servers/i1wcrete2/tmp/_WL_user/maretcEAR/u5f4ij/dataProvider-3.0.jar_MaretcSecurityDS] internalLog 648 - Jan 11, 2012 2:31:34 PM org.eclipse.persistence.session.file:/wls001/beasys/wls10/config/dwcrete/servers/i1wcrete2/tmp/_WL_user/maretcEAR/u5f4ij/dataProvider-3.0.jar_MaretcSecurityDS ServerSession(39783972) Thread(34) 
SEVERE: Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: java.sql.SQLException: Transaction BEA1-47235794E4F50336CEC4 not active anymore. tx status = Rolled back. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 31 seconds 
BEA1-47235794E4F50336CEC4] 
Error Code: 0 
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:309) 
    at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:138) 
    at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:94) 
    at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162) 
    at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:330) 
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:291) 
    at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:418) 
    at org.eclipse.persistence.sessions.server.ConnectionPool.buildConnection(ConnectionPool.java:167) 
    at org.eclipse.persistence.sessions.server.ExternalConnectionPool.startUp(ExternalConnectionPool.java:130) 
    at org.eclipse.persistence.sessions.server.ServerSession.connect(ServerSession.java:484) 
    at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:640) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:235) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at weblogic.deployment.EntityManagerFactoryProxyImpl.invoke(EntityManagerFactoryProxyImpl.java:77) 
    at $Proxy435.createEntityManager(Unknown Source) 
    at weblogic.deployment.TransactionalEntityManagerProxyImpl.newPersistenceContext(TransactionalEntityManagerProxyImpl.java:74) 
    at weblogic.deployment.BasePersistenceContextProxyImpl.getPersistenceContext(BasePersistenceContextProxyImpl.java:147) 
    at weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:88) 
    at weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:90) 
    at weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:80) 
    at $Proxy436.getDelegate(Unknown Source) 
    at it.enel.base.ejb.DataProvider.execute(DataProvider.java:55) 
    at it.enel.base.ejb.DataProvider.execute(DataProvider.java:42) 
    at it.enel.base.ejb.DataProvider.createAndExecuteCheck(DataProvider.java:162) 
    at it.enel.base.ejb.DataProvider.checkDomain(DataProvider.java:183) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281) 
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187) 
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154) 
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:126) 
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:114) 
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) 
    at weblogic.ejb.container.injection.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:68) 
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) 
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) 
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) 
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:126) 
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:114) 
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) 
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210) 
    at $Proxy446.checkDomain(Unknown Source) 
    at it.enel.base.ejb.DataProviderEJB_bfyhct_DataProviderRemoteImpl.checkDomain(DataProviderEJB_bfyhct_DataProviderRemoteImpl.java:145) 
    at it.enel.base.ejb.DataProviderEJB_bfyhct_DataProviderRemoteImpl_CBV.checkDomain(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:63) 
    at $Proxy437.checkDomain(Unknown Source) 
    at it.enel.maretc.business.transfer.SecurityModel.checkDomain(SecurityModel.java:71) 
    at it.enel.maretc.struts2.business.model.user.User.isDomainValid(User.java:102) 
    at it.enel.maretc.struts2.action.login.LoginInterceptor.intercept(LoginInterceptor.java:132) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) 
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) 
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3393) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(Unknown Source) 
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2140) 
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046) 
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:172) 
Caused by: java.sql.SQLException: Transaction BEA1-47235794E4F50336CEC4 not active anymore. tx status = Rolled back. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 31 seconds 
BEA1-47235794E4F50336CEC4] 
    at weblogic.jdbc.jts.Driver.getTransaction(Driver.java:540) 
    at weblogic.jdbc.jts.Driver.connect(Driver.java:109) 
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:339) 
    at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:126) 
    ... 112 more 
+0

哪裏是異常堆棧跟蹤? – 2012-01-27 09:22:38

+0

問題可能是,在第一次連接時,WLS會在事務處於活動狀態時嘗試獲取連接,並因此超時。這可能嗎? – Alessandro 2012-01-27 10:42:10

回答

0

我想不出爲什麼兩臺機器會有差異,但需要研究。解決方法可能是使用值爲true的eclipselink.deploy-on-startup標誌,這會導致一些EclipseLink初始化事先完成,而不是首次訪問。

+0

謝謝,這似乎加快了第一次連接,但沒有解決問題。 – Alessandro 2012-02-01 11:18:15