1 Reply Latest reply on Feb 26, 2013 1:38 PM by swiderski.maciej

    Unable to view instance data in jBPM console when using postgresql

    rahulamt

      Hi All,

      I am using the postgresql as process database. When I select any processinstance and click on Instance Data button on jBPM console I get the following exception.

       

      org.hibernate.exception.SQLGrammarException: could not update: [org.jbpm.persistence.processinstance.ProcessInstanceInfo#346]

                at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)

                at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)

                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2453)

                at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2335)

                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2635)

                at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)

                at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)

                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)

                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)

                at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)

                at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)

                at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)

                at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)

                at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504)

                at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:101)

                at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:269)

                at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:89)

                at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)

                at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1423)

                at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:137)

                at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)

                at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:162)

                at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179)

                at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:348)

                at org.drools.command.impl.CommandBasedStatefulKnowledgeSession.getProcessInstance(CommandBasedStatefulKnowledgeSession.java:125)

                at org.jbpm.integration.console.CommandDelegate.getProcessInstanceVariables(CommandDelegate.java:318)

                at org.jbpm.integration.console.ProcessManagement.getInstanceData(ProcessManagement.java:93)

                at org.jboss.bpm.console.server.ProcessMgmtFacade.getInstanceData(ProcessMgmtFacade.java:224)

                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 org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)

                at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:255)

                at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:220)

                at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:209)

                at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:519)

                at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:496)

                at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119)

                at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)

                at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)

                at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)

                at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                at org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)

                at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

                at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)

                at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)

                at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)

                at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)

                at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)

                at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

                at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

                at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

                at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

                at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)

                at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)

                at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)

                at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

                at java.lang.Thread.run(Thread.java:662)

      Caused by: org.postgresql.util.PSQLException: ERROR: column "processinstancebytearray" is of type oid but expression is of type bytea

                at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)

                at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)

                at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)

                at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)

                at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)

                at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:305)

                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 org.postgresql.ds.jdbc23.AbstractJdbc23PooledConnection$StatementHandler.invoke(AbstractJdbc23PooledConnection.java:471)

                at $Proxy463.executeUpdate(Unknown Source)

                at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:365)

                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)

                ... 64 more

       

       

      Is it hibernate issue or issue with BMT?

      Initially I have an empty process db. When I tried deploying jBPM console but I got similar error while persisting the SessionInfo instances. Then using an application I created those instances, even process instance is also started by using an external application, the link to which is provided in jBPM console. The external application uses CMT.

       

      Please help

        • 1. Re: Unable to view instance data in jBPM console when using postgresql
          swiderski.maciej

          it indicates you have corrupted process instance entry in db. Please clean processinstanceinfo and dependent tables for these process instances that have empty processinstancebytearray and that will work ok. Important to to note is that processinstancelog must be cleaned as well - just for corrupted process instances as it is used to collect what are the instances that are active.

           

          HTH