问题:
在Weblogic Integration 上多次部署XXXX_1.0,出现如下错误,重启Server也无法解决
<2008-11-15 上午08时17分15秒 GMT+08:00> <Info> <Deployer> <BEA-149033> <preparing application XXXX_1.0 on cgServer>
<2008-11-15 上午08时17分16秒 GMT+08:00> <Warning> <J2EE> <BEA-160105> <User-defined listener in application XXXX_1.0 threw exception weblogic.management.App
licationException: Failed to deploy process /XXXX/processes/DirectiveMail/DirectiveMail.jpd. There are running instances with incompatible serialization shape. - with nested exception:
[java.lang.RuntimeException: Failed to deploy process /XXXX/processes/DirectiveMail/DirectiveMail.jpd. There are running instances with incompatible seriali
zation shape.]>
<2008-11-15 上午08时17分16秒 GMT+08:00> <Info> <Deployer> <BEA-149033> <failed application XXXX_1.0 on cgServer>
<2008-11-15 上午08时17分16秒 GMT+08:00> <Info> <Management> <BEA-140009> <Configuration changes for the domain have been saved to the repository.>
<2008-11-15 上午08时17分16秒 GMT+08:00> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating Deploy task for application XXXX_1.0.>
<2008-11-15 上午08时17分16秒 GMT+08:00> <Error> <Deployer> <BEA-149201> <Failed to complete the deployment task with ID 1 for the application XXXX_1.0.
weblogic.management.ApplicationException:
Exception:weblogic.management.ApplicationException: None
Nested Exception:
java.lang.RuntimeException: Failed to deploy process /XXXX/processes/DirectiveMail/DirectiveMail.jpd. There are running instances with incompatible serializ
ation shape.
at com.bea.wli.management.WLIAppListener.checkProject(WLIAppListener.java:211)
at com.bea.wli.management.WLIAppListener.initializingApplication(WLIAppListener.java:130)
at weblogic.j2ee.ListenerInvocationAction.run(ListenerInvocationAction.java:42)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.j2ee.J2EEApplicationContainer.notifySecureListener(J2EEApplicationContainer.java:4721)
at weblogic.j2ee.J2EEApplicationContainer.notify(J2EEApplicationContainer.java:4706)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:986)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareContainer(SlaveDeployer.java:2602)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2552)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2556)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
--------------- nested within: ------------------
weblogic.management.ManagementException: - with nested exception:
[weblogic.management.ApplicationException:
解决问题:
1、查了BEA在线帮助,大概知道原因所在:
2、在admin console--流程示例监控中看到processes/DirectiveMail/DirectiveMail.jpd有很多个状态为Abort的线程,但无法清理。
3、直接在DB中清理数据
stopServer,清理数据中如下记录:
select * from wli_process_instance_info
where process_type like '%DirectiveMail%'
4、清理完毕,启动Server,重新部署XXXX_1.0,OK。问题搞定。
补充说明:
Weblogic Integration流程的历史数据清理,一般包含下面几个表,需要定时清理。
truncate table WLI_PROCESS_EVENT;
truncate table WLI_PROCESS_EVENT_ARCH;
truncate table WLI_PROCESS_INSTANCE_INFO;
truncate table WLI_PROCESS_PROCESSED_EVENT;