-
JBPM4.4使用jotm的JNDI连接池及JTA事务问题40
公司现有的平台用JNDI连接池和jotm的JTA控制事务,在整合JBPM4.4的时候事务处理总是有问题。
公司平台没有用hibernate和Spring,现在主要是连接池必须用tomcate的连接池,事务控制可以用jbpm的。
jbpm.hibernate.cfg.xml的配置如下<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="hibernate.connection.datasource">java:comp/env/oa</property>
tomcate配置如下<Context path="/" docBase="D:\jbpm-4.4\workspace\OA\WebContent" debug="0" workDir="work\Catalina\localhost\oa"> <Resource name="oa" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@192.168.0.37:1521:scm" username="jbpm4" password="1" max="200" min="20" maxWait="10000" factory="org.objectweb.jndi.DataSourceFactory" /> <Transaction factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/> </Context>
在创建实例的时候报错2012-3-11 11:41:57 org.hibernate.transaction.JDBCTransaction rollback 良好: rolled back JDBC Connection java.lang.NullPointerException at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431) at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528) at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java:3401) at org.enhydra.jdbc.standard.StandardXAConnectionHandle.checkPreparedCache(StandardXAConnectionHandle.java:161) at org.enhydra.jdbc.standard.StandardXAPreparedStatement.<init>(StandardXAPreparedStatement.java:62) at org.enhydra.jdbc.standard.StandardXAConnectionHandle.prepareStatement(StandardXAConnectionHandle.java:321) at org.enhydra.jdbc.standard.StandardXAConnectionHandle.prepareStatement(StandardXAConnectionHandle.java:255) at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109) at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2688) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79) 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:167) 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.jbpm.pvm.internal.tx.HibernateSessionResource.prepare(HibernateSessionResource.java:56) at org.jbpm.pvm.internal.tx.StandardTransaction.commit(StandardTransaction.java:107) at org.jbpm.pvm.internal.tx.StandardTransaction.complete(StandardTransaction.java:64) at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:57) at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53) at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40) at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56) at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43) at org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceByKey(ExecutionServiceImpl.java:79) at et.jbpm.bc.wf.LeaveBO.onSubmit(LeaveBO.java:265) 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 et.common.facade.CCommonFascadeImpl.invokeBusinessImpl(CCommonFascadeImpl.java:59) at et.common.facade.CCommonFascadeImpl.invokeBusinessImpl(CCommonFascadeImpl.java:67) at et.common.servlet.WebPageSubmitAction.performTask(WebPageSubmitAction.java:110) at et.common.servlet.BaseServlet.doPost(BaseServlet.java:280) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 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 et.common.servlet.ConfigKeyFilter.doFilter(ConfigKeyFilter.java:116) 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:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675) at java.lang.Thread.run(Thread.java:619)
如果指定jbpm使用JTA控制事务在jbpm.cfg.xml中修改为
<import resource="jbpm.tx.jta.cfg.xml" />
在jbpm.hibernate.cfg.xml的配置如下<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="hibernate.connection.datasource">java:comp/env/oa</property> <property name="current_session_context_class">jta</property> <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property><property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.TransactionManagerLookup</property>
创建实例时提示无法创建Transaction实例。修改TransacationManager为jotm的也不行。
下面使用jotm控制事务的描述可能不清晰,但目前只希望用jndi连接没问题,如果有大拿指点感激不尽。
没怎么用过hibernate,对jotm和JTA的了解也不是很清楚,有小白的地方请见谅。
--------------------------------华丽的分割线---------------------------------------
使用jndi连接池的问题解决了,换了一个10G的ojdbc14驱动
希望有高手能指点下用jotm控制hibernate的事务2012年3月11日 12:03
目前还没有答案
相关推荐
在《jBPM4.4中文用户手册》中,用户可以找到更详细的使用指南,包括安装配置、基本操作、示例教程以及常见问题解答等内容。手册将帮助用户快速上手,实现jBPM在实际项目中的应用。 总的来说,jBPM4.4是企业级业务...
3. **用户界面**:为了便于非技术背景的用户使用,jBPM 4.4提供了图形化的设计工具,允许用户通过拖放操作来构建复杂的业务流程,而无需编写任何代码。 4. **事件驱动架构**:jBPM 4.4采用了事件驱动的架构,这意味...
jbpm4.4是JBoss企业级业务流程管理(Business Process Management)平台的一个重要版本,它为开发者提供了全面的工作流和业务流程管理解决方案。本文将深入解析jbpm4.4的相关知识点,帮助那些寻找优质学习资源的朋友...
通过这个入门实例,开发者可以学习到如何使用jBPM4.4进行流程设计、部署和执行的基本操作,并逐步掌握其在实际项目中的应用。在实践中不断探索和深入,才能更好地利用jBPM4.4实现业务流程自动化,提高工作效率。
**jbpm4.4中文开发指南** ...通过阅读《jbpm4.4开发指南.doc》,读者可以系统了解jbpm的工作原理、配置方法、使用技巧,以及常见问题的解决方案,从而更好地在实际项目中运用jbpm4.4来实现高效、灵活的业务流程管理。
《jBPM 4.4 用户手册》中文版提供了全面的指南,涵盖了从安装、配置、建模、执行到监控的各个环节,是学习和使用jBPM 4.4的重要参考资料。通过阅读这份手册,开发者和业务分析师可以深入了解jBPM的功能和用法,快速...
2. **持久化**:JBPM4.4使用JPA(Java Persistence API)进行数据持久化,使得流程实例、任务和其他相关信息能够存储在数据库中,方便查询和管理。 3. **任务服务**:JBPM提供了任务服务,允许用户分配、接收和完成...
### jBPM4.4开发指南关键知识点解析 #### 一、工作流基础与概念 **1. 工作流定义** 工作流是指业务过程的部分或整体在计算机应用环境下的自动化,其目的是为了使在多个参与者之间按照某种预定义的规则传递文档、...
jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd
jbpm4.4 shh2 项目示例是基于jbpm4.4版本与SSH2(Struts2、Spring和Hibernate)集成的一个实战项目。jbPM(Business Process Management)是一款开源的工作流管理系统,用于实现业务流程自动化。SSH2是Java开发中的...
这份文档主要面向开发者,详细阐述了如何在项目中集成和使用jBPM 4.4进行流程设计和开发。它涵盖了以下关键知识点: 1. **环境配置**:介绍如何设置开发环境,包括JDK、Maven以及Eclipse等开发工具的安装和配置。 ...
### jBPM4.4 API 详解:工作流自动化的核心技术 ...以上步骤不仅为jBPM4.4的开发环境搭建提供了详实的指南,同时也深入解析了工作流自动化的基本原理与jBPM4.4的工作机制,为IT从业者及开发者提供了宝贵的参考资料。
【jbpm4.4+SSH】是一个集成的Java企业级应用框架,主要涉及的是工作流管理系统jbpm4.4与Spring、Struts2(SSH)三大框架的整合。jbpm4是一个开源的工作流程管理系统,它提供了流程定义、执行、监控和优化等一系列...
**JBPM4.4 使用之配置管理** JBPM(Java Business Process Management)是一款开源的工作流管理系统,用于管理和执行业务流程。在JBPM4.4版本中,配置管理是确保系统稳定运行和流程优化的关键环节。以下将详细讲解...
"jBPM4.4.docx" 文件可能是关于 jbPM 4.4 示例的详细文档,它可能包含如何安装、配置、创建和运行流程实例的步骤,以及可能遇到的问题和解决办法,对于学习和使用 jbPM 4.4 是非常有价值的参考资料。 总结,jbPM ...
5. **监控与跟踪**:jbpm4.4提供了监控工具,可以实时查看流程实例的状态,跟踪执行路径,帮助开发者诊断问题和优化流程。 6. **集成能力**:jbpm4.4可轻松与其他Java EE组件,如EJB、JMS、JPA等集成,也可以与...
本教程将深入探讨jbpm4.4中的核心功能,包括流程运转、驳回、分配组任务以及SSH2的使用。 1. **流程运转**: - **流程定义与建模**:jbpm4.4使用BPMN(Business Process Modeling Notation)进行流程建模,这是一...
JBPM4.4与SSH2之整合(附完整源码) 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了...
JBPM4.4是JBoss Business Process Management (BPM)平台的一个特定版本,它提供了用于设计、执行和管理业务流程的工具和框架。...了解这些表的结构和字段对于有效地使用和维护基于JBPM4.4的系统至关重要。