Weblogic 无法刷新 JDBC 持久性管理器
Weblogic Failed to refresh JDBC Persistence Manager
我是运行 weblogic portal 10.3
我们最近将 oracle 从 11.2 升级到 12.1.0.2.0
当 Weblogic 为 运行 时转储了 11g 数据库模式,然后导入到 12c 数据库中。
但是现在我看到一个奇怪的问题:
在我的 managedServer1.log.yyyy-MM-ddTHH-mm 日志文件中启动时,我看到以下异常:
####<Sep 8, 2016 11:28:41 AM CEST> <Error> <DataSync> <devmaster.xxx.com> <managedServer1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-0002F70BB8045A5B8E84> <e54db9af27ea4009:1806ee21:157091f8869:-7ffd-0000000000000002> <1473326921799> <BEA-400610> <Error performing initial refresh of persistent store. DataSync is probably in an incomplete or corrupted state.com.bea.p13n.management.data.repository.PersistenceException: Failed to refresh JDBC Persistence Manager.
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.sync(AbstractTx.java:67)
at com.bea.p13n.management.data.repository.persistence.JdbcDataSource.refresh(JdbcDataSource.java:215)
at com.bea.p13n.management.data.repository.persistence.JdbcPersistenceManager.refresh(JdbcPersistenceManager.java:113)
at com.bea.p13n.management.data.repository.internal.AbstractDataRepository.<init>(AbstractDataRepository.java:164)
at com.bea.p13n.management.data.repository.MasterDataRepository.<init>(MasterDataRepository.java:49)
at com.bea.p13n.management.data.repository.DataRepositoryFactory.getMasterDataRepository(DataRepositoryFactory.java:441)
at com.bea.p13n.property.internal.PropertySetManagerImpl.ejbCreate(PropertySetManagerImpl.java:274)
at com.bea.p13n.property.internal.PropertySetManager_bjbwe8_Impl.ejbCreate(Unknown Source)
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 weblogic.ejb.container.pool.StatelessSessionPool.createBean(StatelessSessionPool.java:232)
at weblogic.ejb.container.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:132)
at weblogic.ejb.container.manager.StatelessManager.preInvoke(StatelessManager.java:148)
at weblogic.ejb.container.internal.BaseRemoteObject.preInvoke(BaseRemoteObject.java:229)
at weblogic.ejb.container.internal.StatelessRemoteObject.__WL_preInvoke(StatelessRemoteObject.java:41)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:24)
at com.bea.p13n.property.internal.PropertySetManager_bjbwe8_EOImpl.getPropertySets(Unknown Source)
at com.bea.wsrp.consumer.management.ProducerManagerImpl.internalGetCustomUserProperties(ProducerManagerImpl.java:867)
at com.bea.wsrp.consumer.management.ProducerManagerImpl.<init>(ProducerManagerImpl.java:116)
at com.bea.wsrp.consumer.management.producer.ProducerManager$Factory.<clinit>(ProducerManager.java:663)
at com.bea.wsrp.consumer.registry.DbProducerRegistryAdapter.sync(DbProducerRegistryAdapter.java:60)
at com.bea.wsrp.consumer.registry.ProducerRegistry$AddOrUpdateProducerAction.run(ProducerRegistry.java:725)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at com.bea.wsrp.consumer.registry.ProducerRegistry.refreshProducers(ProducerRegistry.java:420)
at com.bea.wsrp.consumer.registry.ProducerRegistry.loadRegistry(ProducerRegistry.java:286)
at com.bea.wsrp.consumer.registry.ProducerRegistry.load(ProducerRegistry.java:196)
at com.bea.wsrp.consumer.registry.ProducerRegistry.getInstance(ProducerRegistry.java:160)
at com.bea.netuix.servlets.manager.PortalServlet.startProducerRegistryFilePoller(PortalServlet.java:599)
at com.bea.netuix.servlets.manager.PortalServlet.reinitInternal(PortalServlet.java:313)
at com.bea.netuix.servlets.manager.PortalServlet.initInternal(PortalServlet.java:268)
at com.bea.netuix.servlets.manager.PortalServlet.access0(PortalServlet.java:125)
at com.bea.netuix.servlets.manager.PortalServlet$ServletLifecycleListenerImpl.init(PortalServlet.java:2190)
at com.bea.netuix.util.ServletLifecycleListener.initOrReinitInternal(ServletLifecycleListener.java:131)
at com.bea.netuix.util.ServletLifecycleService.addServletLifecycleListener(ServletLifecycleService.java:252)
at com.bea.netuix.util.ServletLifecycleService.addServletLifecycleListener(ServletLifecycleService.java:183)
at com.bea.netuix.servlets.manager.PortalServlet.init(PortalServlet.java:259)
at com.bea.netuix.servlets.manager.PortalServlet.init(PortalServlet.java:236)
at javax.servlet.GenericServlet.init(GenericServlet.java:242)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:539)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1984)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1958)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1877)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3174)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1527)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:489)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:427)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:201)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:249)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:427)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:28)
at weblogic.application.internal.BaseDeployment.next(BaseDeployment.java:672)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:59)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:187)
at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:379)
at weblogic.management.deploy.internal.DeploymentAdapter.doActivate(DeploymentAdapter.java:52)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
at weblogic.management.deploy.internal.AppTransition.transitionApp(AppTransition.java:31)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:170)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:124)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:181)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:97)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: com.bea.p13n.management.data.repository.PersistenceException: Cannot commit: java.sql.SQLException: Could not commit with auto-commit set on
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.doTransaction(AbstractTx.java:118)
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.sync(AbstractTx.java:62)
at com.bea.p13n.management.data.repository.persistence.JdbcDataSource.refresh(JdbcDataSource.java:215)
at com.bea.p13n.management.data.repository.persistence.JdbcPersistenceManager.refresh(JdbcPersistenceManager.java:113)
at com.bea.p13n.management.data.repository.internal.AbstractDataRepository.<init>(AbstractDataRepository.java:164)
at com.bea.p13n.management.data.repository.MasterDataRepository.<init>(MasterDataRepository.java:49)
这样做的结果是 EJB 导致了一些 NullPointerExceptions 而我的代码失败了。如果我刷新页面的次数足够多,EJB 似乎已刷新并开始正常工作。
但是重启后这个问题又出现了。
我尝试在启动前清除WEBLOGICJMSSTATE table,但似乎没有效果。
有什么建议吗?
谢谢。
原来是新驱动的问题。我想线索就在文中
java.sql.SQLException: Could not commit with auto-commit set on
我摆脱了设置此 JVM 参数的错误:
-Doracle.jdbc.autoCommitSpecCompliant=false
感谢这里的回答:java.sql.SQLException: Could not commit with auto-commit set on at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4443)
我是运行 weblogic portal 10.3
我们最近将 oracle 从 11.2 升级到 12.1.0.2.0
当 Weblogic 为 运行 时转储了 11g 数据库模式,然后导入到 12c 数据库中。
但是现在我看到一个奇怪的问题:
在我的 managedServer1.log.yyyy-MM-ddTHH-mm 日志文件中启动时,我看到以下异常:
####<Sep 8, 2016 11:28:41 AM CEST> <Error> <DataSync> <devmaster.xxx.com> <managedServer1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-0002F70BB8045A5B8E84> <e54db9af27ea4009:1806ee21:157091f8869:-7ffd-0000000000000002> <1473326921799> <BEA-400610> <Error performing initial refresh of persistent store. DataSync is probably in an incomplete or corrupted state.com.bea.p13n.management.data.repository.PersistenceException: Failed to refresh JDBC Persistence Manager.
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.sync(AbstractTx.java:67)
at com.bea.p13n.management.data.repository.persistence.JdbcDataSource.refresh(JdbcDataSource.java:215)
at com.bea.p13n.management.data.repository.persistence.JdbcPersistenceManager.refresh(JdbcPersistenceManager.java:113)
at com.bea.p13n.management.data.repository.internal.AbstractDataRepository.<init>(AbstractDataRepository.java:164)
at com.bea.p13n.management.data.repository.MasterDataRepository.<init>(MasterDataRepository.java:49)
at com.bea.p13n.management.data.repository.DataRepositoryFactory.getMasterDataRepository(DataRepositoryFactory.java:441)
at com.bea.p13n.property.internal.PropertySetManagerImpl.ejbCreate(PropertySetManagerImpl.java:274)
at com.bea.p13n.property.internal.PropertySetManager_bjbwe8_Impl.ejbCreate(Unknown Source)
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 weblogic.ejb.container.pool.StatelessSessionPool.createBean(StatelessSessionPool.java:232)
at weblogic.ejb.container.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:132)
at weblogic.ejb.container.manager.StatelessManager.preInvoke(StatelessManager.java:148)
at weblogic.ejb.container.internal.BaseRemoteObject.preInvoke(BaseRemoteObject.java:229)
at weblogic.ejb.container.internal.StatelessRemoteObject.__WL_preInvoke(StatelessRemoteObject.java:41)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:24)
at com.bea.p13n.property.internal.PropertySetManager_bjbwe8_EOImpl.getPropertySets(Unknown Source)
at com.bea.wsrp.consumer.management.ProducerManagerImpl.internalGetCustomUserProperties(ProducerManagerImpl.java:867)
at com.bea.wsrp.consumer.management.ProducerManagerImpl.<init>(ProducerManagerImpl.java:116)
at com.bea.wsrp.consumer.management.producer.ProducerManager$Factory.<clinit>(ProducerManager.java:663)
at com.bea.wsrp.consumer.registry.DbProducerRegistryAdapter.sync(DbProducerRegistryAdapter.java:60)
at com.bea.wsrp.consumer.registry.ProducerRegistry$AddOrUpdateProducerAction.run(ProducerRegistry.java:725)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at com.bea.wsrp.consumer.registry.ProducerRegistry.refreshProducers(ProducerRegistry.java:420)
at com.bea.wsrp.consumer.registry.ProducerRegistry.loadRegistry(ProducerRegistry.java:286)
at com.bea.wsrp.consumer.registry.ProducerRegistry.load(ProducerRegistry.java:196)
at com.bea.wsrp.consumer.registry.ProducerRegistry.getInstance(ProducerRegistry.java:160)
at com.bea.netuix.servlets.manager.PortalServlet.startProducerRegistryFilePoller(PortalServlet.java:599)
at com.bea.netuix.servlets.manager.PortalServlet.reinitInternal(PortalServlet.java:313)
at com.bea.netuix.servlets.manager.PortalServlet.initInternal(PortalServlet.java:268)
at com.bea.netuix.servlets.manager.PortalServlet.access0(PortalServlet.java:125)
at com.bea.netuix.servlets.manager.PortalServlet$ServletLifecycleListenerImpl.init(PortalServlet.java:2190)
at com.bea.netuix.util.ServletLifecycleListener.initOrReinitInternal(ServletLifecycleListener.java:131)
at com.bea.netuix.util.ServletLifecycleService.addServletLifecycleListener(ServletLifecycleService.java:252)
at com.bea.netuix.util.ServletLifecycleService.addServletLifecycleListener(ServletLifecycleService.java:183)
at com.bea.netuix.servlets.manager.PortalServlet.init(PortalServlet.java:259)
at com.bea.netuix.servlets.manager.PortalServlet.init(PortalServlet.java:236)
at javax.servlet.GenericServlet.init(GenericServlet.java:242)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:539)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1984)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1958)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1877)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3174)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1527)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:489)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:427)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:201)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:249)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:427)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:28)
at weblogic.application.internal.BaseDeployment.next(BaseDeployment.java:672)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:59)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:187)
at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:379)
at weblogic.management.deploy.internal.DeploymentAdapter.doActivate(DeploymentAdapter.java:52)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
at weblogic.management.deploy.internal.AppTransition.transitionApp(AppTransition.java:31)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:170)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:124)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:181)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:97)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: com.bea.p13n.management.data.repository.PersistenceException: Cannot commit: java.sql.SQLException: Could not commit with auto-commit set on
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.doTransaction(AbstractTx.java:118)
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.sync(AbstractTx.java:62)
at com.bea.p13n.management.data.repository.persistence.JdbcDataSource.refresh(JdbcDataSource.java:215)
at com.bea.p13n.management.data.repository.persistence.JdbcPersistenceManager.refresh(JdbcPersistenceManager.java:113)
at com.bea.p13n.management.data.repository.internal.AbstractDataRepository.<init>(AbstractDataRepository.java:164)
at com.bea.p13n.management.data.repository.MasterDataRepository.<init>(MasterDataRepository.java:49)
这样做的结果是 EJB 导致了一些 NullPointerExceptions 而我的代码失败了。如果我刷新页面的次数足够多,EJB 似乎已刷新并开始正常工作。
但是重启后这个问题又出现了。
我尝试在启动前清除WEBLOGICJMSSTATE table,但似乎没有效果。
有什么建议吗?
谢谢。
原来是新驱动的问题。我想线索就在文中
java.sql.SQLException: Could not commit with auto-commit set on
我摆脱了设置此 JVM 参数的错误:
-Doracle.jdbc.autoCommitSpecCompliant=false
感谢这里的回答:java.sql.SQLException: Could not commit with auto-commit set on at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4443)