[JBoss jBPM] - No auto-id for jbpm when running on Oracle
by janvandeklok
Hello,
We are running seam/jbpm on oracle. The jbpm version is 3.3.0 GA
We ran into several problems that we did not experience when running the stuff on HSQLB.
One of the problems (and this is probably also the cause for other oracle related problems) is that oracle does not have auti-id fields. As far as I can see, JBPM has not solved this problem meaning that we cannot start processinstances using the jbpm-console because hibernate tries to write records with a null in its id field.
Here is the exception:
2008-12-16 11:29:36,580 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 1400, SQLState: 23000
| 2008-12-16 11:29:36,627 ERROR [org.hibernate.util.JDBCExceptionReporter] ORA-01400: cannot insert NULL into ("JANVDKLOK"
| ."JBPM_TOKEN"."ID_")
And yes, we have specified the oracle dialect.
I could not find any solution to this problem in the documentation.
I suppose the solution will be :
- creating one or more (for each table) oracle sequences and apply triggers to the database that get new id's for each new record.
Since I don't want to reinvent the wheel :
- has anybody founda solution to this problem?
- Have I overlooked anything inthe documentation?
Jan van de Klok
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196837#4196837
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196837
15 years, 6 months
[JBoss jBPM] - No auto-id generation for JBPM running on Oracle
by janvandeklok
Hello,
We are running seam/jbpm on oracle. The jbpm version is 3.3.0 GA
We ran into several problems that we did not experience when running the stuff on HSQLB.
One of the problems (and this is probably also the cause for other oracle related problems) is that oracle does not have auti-id fields. As far as I can see, JBPM has not solved this problem meaning that we cannot start processinstances using the jbpm-console because hibernate tries to write records with a null in its id field.
Here is the exception:
2008-12-16 11:29:36,580 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 1400, SQLState: 23000
| 2008-12-16 11:29:36,627 ERROR [org.hibernate.util.JDBCExceptionReporter] ORA-01400: cannot insert NULL into ("JANVDKLOK"
| ."JBPM_TOKEN"."ID_")
And yes, we have specified the oracle dialect.
I could not find any solution to this problem in the documentation.
I suppose the solution will be :
- creating one or more (for each table) oracle sequences and apply triggers to the database that get new id's for each new record.
Since I don't want to reinvent the wheel :
- has anybody founda solution to this problem?
- Have I overlooked anything inthe documentation?
Jan van de Klok
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196835#4196835
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196835
15 years, 6 months
[JBoss jBPM] - Process deployment from eclips plugin fails when running on
by janvandeklok
Hello,
we're using seam / jbpm running on a oracle 10g database. Among some other problems (see ohter threads) we cannot hot deploy a process from the jpdl designer eclipse plugin. (This hot deployment does work OK when jbpm is running on HSQLDB)
I suspect it is related to the problem that when JBPM is running on Oracle, there is no auto-id implemented which crashes the jbpm application.
The gbaCheck process that is hot deployed is already running.
Here is the exception we get:
2008-12-16 11:08:37,805 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 933, SQLState: 42000
| 2008-12-16 11:08:37,805 ERROR [org.hibernate.util.JDBCExceptionReporter] ORA-00933: SQL command not properly ended
|
| 2008-12-16 11:08:37,821 ERROR [org.jbpm.db.GraphSession] org.hibernate.exception.SQLGrammarException: could not execute
| query
| 2008-12-16 11:08:37,821 ERROR [org.jbpm.web.ProcessUploadServlet] Failed to deploy process gbaCheck
| org.jbpm.JbpmException: couldn't find process definition 'gbaCheck'
| at org.jbpm.db.GraphSession.findLatestProcessDefinition(GraphSession.java:161)
| at org.jbpm.db.GraphSession.deployProcessDefinition(GraphSession.java:70)
| at org.jbpm.JbpmContext.deployProcessDefinition(JbpmContext.java:173)
| at org.jbpm.web.ProcessUploadServlet.deployProcessDefinition(ProcessUploadServlet.java:118)
| at org.jbpm.web.ProcessUploadServlet.handleRequest(ProcessUploadServlet.java:89)
| at org.jbpm.web.ProcessUploadServlet.doPost(ProcessUploadServlet.java:63)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| 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:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| 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:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.loader.Loader.doList(Loader.java:2223)
| at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
| at org.hibernate.loader.Loader.list(Loader.java:2099)
| at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
| at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
| at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
| at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
| at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
| at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)
| at org.jbpm.db.GraphSession.findLatestProcessDefinition(GraphSession.java:157)
| ... 26 more
| Caused by: java.sql.SQLException: ORA-00933: SQL command not properly ended
|
| at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
| at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
| at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
| at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
| at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
| at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:813)
| at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049)
| at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:854)
| at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
| at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
| at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3415)
| at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342)
| at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
| at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
| at org.hibernate.loader.Loader.doQuery(Loader.java:674)
| at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
| at org.hibernate.loader.Loader.doList(Loader.java:2220)
| ... 35 more
| 2008-12-16 11:08:37,821 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/jbpm-console].[GDP Deplo
| yer Servlet]] Servlet.service() for servlet GDP Deployer Servlet threw exception
| org.jbpm.JbpmException: couldn't find process definition 'gbaCheck'
| at org.jbpm.db.GraphSession.findLatestProcessDefinition(GraphSession.java:161)
| at org.jbpm.db.GraphSession.deployProcessDefinition(GraphSession.java:70)
| at org.jbpm.JbpmContext.deployProcessDefinition(JbpmContext.java:173)
| at org.jbpm.web.ProcessUploadServlet.deployProcessDefinition(ProcessUploadServlet.java:118)
| at org.jbpm.web.ProcessUploadServlet.handleRequest(ProcessUploadServlet.java:89)
| at org.jbpm.web.ProcessUploadServlet.doPost(ProcessUploadServlet.java:63)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| 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:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| 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:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.loader.Loader.doList(Loader.java:2223)
| at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
| at org.hibernate.loader.Loader.list(Loader.java:2099)
| at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
| at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
| at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
| at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
| at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
| at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)
| at org.jbpm.db.GraphSession.findLatestProcessDefinition(GraphSession.java:157)
| ... 26 more
| Caused by: java.sql.SQLException: ORA-00933: SQL command not properly ended
|
| at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
| at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
| at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
| at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
| at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
| at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:813)
| at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049)
| at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:854)
| at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
| at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
| at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3415)
| at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342)
| at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
| at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
| at org.hibernate.loader.Loader.doQuery(Loader.java:674)
| at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
| at org.hibernate.loader.Loader.doList(Loader.java:2220)
| ... 35 more
|
|
Any body any ideas? (or even better : any solutions?)
Jan
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196833#4196833
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196833
15 years, 6 months
[JBoss jBPM] - Re: Problem with a decision node in a fork, join construct.
by janvandeklok
Ronald,
I will post some new treads about the other oracle related problems soon.
But the main issue there is (as far as I can see) that the oracle implementation does not auto increment the id fields. Apart from creating a hibernate-sequence, the jbpm (or hibernate) does not seem to use that sequence. We have specified the oracle dialect correctly. I would expect some triggers applied to oracle tables that injects a generated sequence id into the id field when a record is added or some other programmatic logic.
the following trigger could simulate the auto-id fields in oracle:
| CREATE SEQUENCE ACTION_ID_SEQ;
| create or replace TRIGGER ACTION_ID BEFORE INSERT ON JBPM_ACTION
| REFERENCING OLD AS old NEW AS new FOR EACH ROW WHEN (NEW.ID_ IS NULL)
| BEGIN select ACTION_ID_SEQ.nextval into :NEW.ID_ from dual;
|
| END;;
I went through a lot of documentation, wiki and forum stuff but could not find out how to "activate" the id generation behaviour for an Oracle implemenation.
Jan
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196828#4196828
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196828
15 years, 6 months