0 0

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.rar_jbpm4.4_jbpm4.4 PDF

    在《jBPM4.4中文用户手册》中,用户可以找到更详细的使用指南,包括安装配置、基本操作、示例教程以及常见问题解答等内容。手册将帮助用户快速上手,实现jBPM在实际项目中的应用。 总的来说,jBPM4.4是企业级业务...

    jbpm4.4下载地址

    3. **用户界面**:为了便于非技术背景的用户使用,jBPM 4.4提供了图形化的设计工具,允许用户通过拖放操作来构建复杂的业务流程,而无需编写任何代码。 4. **事件驱动架构**:jBPM 4.4采用了事件驱动的架构,这意味...

    jbpm4.4文档+学习资料

    jbpm4.4是JBoss企业级业务流程管理(Business Process Management)平台的一个重要版本,它为开发者提供了全面的工作流和业务流程管理解决方案。本文将深入解析jbpm4.4的相关知识点,帮助那些寻找优质学习资源的朋友...

    jBPM4.4开发实例

    通过这个入门实例,开发者可以学习到如何使用jBPM4.4进行流程设计、部署和执行的基本操作,并逐步掌握其在实际项目中的应用。在实践中不断探索和深入,才能更好地利用jBPM4.4实现业务流程自动化,提高工作效率。

    jbpm4.4中文开发指南

    **jbpm4.4中文开发指南** ...通过阅读《jbpm4.4开发指南.doc》,读者可以系统了解jbpm的工作原理、配置方法、使用技巧,以及常见问题的解决方案,从而更好地在实际项目中运用jbpm4.4来实现高效、灵活的业务流程管理。

    jBPM 4.4用户手册 中文PDF

    《jBPM 4.4 用户手册》中文版提供了全面的指南,涵盖了从安装、配置、建模、执行到监控的各个环节,是学习和使用jBPM 4.4的重要参考资料。通过阅读这份手册,开发者和业务分析师可以深入了解jBPM的功能和用法,快速...

    JBPM4.4资料的其他补充

    2. **持久化**:JBPM4.4使用JPA(Java Persistence API)进行数据持久化,使得流程实例、任务和其他相关信息能够存储在数据库中,方便查询和管理。 3. **任务服务**:JBPM提供了任务服务,允许用户分配、接收和完成...

    jBPM4.4开发指南

    ### 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 schema.xsd

    jbpm4.4 shh2 项目示例

    jbpm4.4 shh2 项目示例是基于jbpm4.4版本与SSH2(Struts2、Spring和Hibernate)集成的一个实战项目。jbPM(Business Process Management)是一款开源的工作流管理系统,用于实现业务流程自动化。SSH2是Java开发中的...

    jbpm4.4开发用户指南

    这份文档主要面向开发者,详细阐述了如何在项目中集成和使用jBPM 4.4进行流程设计和开发。它涵盖了以下关键知识点: 1. **环境配置**:介绍如何设置开发环境,包括JDK、Maven以及Eclipse等开发工具的安装和配置。 ...

    jBPM4.4 详解 API 中文

    ### jBPM4.4 API 详解:工作流自动化的核心技术 ...以上步骤不仅为jBPM4.4的开发环境搭建提供了详实的指南,同时也深入解析了工作流自动化的基本原理与jBPM4.4的工作机制,为IT从业者及开发者提供了宝贵的参考资料。

    jbpm4.4+ssh

    【jbpm4.4+SSH】是一个集成的Java企业级应用框架,主要涉及的是工作流管理系统jbpm4.4与Spring、Struts2(SSH)三大框架的整合。jbpm4是一个开源的工作流程管理系统,它提供了流程定义、执行、监控和优化等一系列...

    JBPM4.4 使用之配置管理

    **JBPM4.4 使用之配置管理** JBPM(Java Business Process Management)是一款开源的工作流管理系统,用于管理和执行业务流程。在JBPM4.4版本中,配置管理是确保系统稳定运行和流程优化的关键环节。以下将详细讲解...

    jBPM4.4.rar_jbpm4_jbpm4.4

    "jBPM4.4.docx" 文件可能是关于 jbPM 4.4 示例的详细文档,它可能包含如何安装、配置、创建和运行流程实例的步骤,以及可能遇到的问题和解决办法,对于学习和使用 jbPM 4.4 是非常有价值的参考资料。 总结,jbPM ...

    jbpm4.4+tomcat6+eclipse jee

    5. **监控与跟踪**:jbpm4.4提供了监控工具,可以实时查看流程实例的状态,跟踪执行路径,帮助开发者诊断问题和优化流程。 6. **集成能力**:jbpm4.4可轻松与其他Java EE组件,如EJB、JMS、JPA等集成,也可以与...

    jbpm4.4 流程运转+驳回+分配组任务+ssh2

    本教程将深入探讨jbpm4.4中的核心功能,包括流程运转、驳回、分配组任务以及SSH2的使用。 1. **流程运转**: - **流程定义与建模**:jbpm4.4使用BPMN(Business Process Modeling Notation)进行流程建模,这是一...

    JBPM4.4与SSH2之整合(附可运行源码和jar包列表)(my_jbpm4.4_ssh2.rar)

    JBPM4.4与SSH2之整合(附完整源码) 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了...

    jbpm4.4表字段说明

    JBPM4.4是JBoss Business Process Management (BPM)平台的一个特定版本,它提供了用于设计、执行和管理业务流程的工具和框架。...了解这些表的结构和字段对于有效地使用和维护基于JBPM4.4的系统至关重要。

Global site tag (gtag.js) - Google Analytics