JBoss Community

How to fix: "The chosen transaction strategy requires access to the JTA TransactionManager" issue?

created by victor ma in jBPM - View the full discussion

hi, all.

i am stuck on this problem for days:

org.hibernate.HibernateException: The chosen transaction strategy requires access to the JTA TransactionManager

    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:361)

    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1327)

    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)

    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)

    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:132)

    at weblogic.deployment.PersistenceUnitInfoImpl.createEntityManagerFactory(PersistenceUnitInfoImpl.java:343)

    at weblogic.deployment.PersistenceUnitInfoImpl.createEntityManagerFactory(PersistenceUnitInfoImpl.java:323)

    at weblogic.deployment.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:125)

    at weblogic.deployment.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:336)

    at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptors(AbstractPersistenceUnitRegistry.java:111)

    at weblogic.deployment.ModulePersistenceUnitRegistry.<init>(ModulePersistenceUnitRegistry.java:58)

    at weblogic.servlet.internal.WebAppModule.setupPersistenceUnitRegistry(WebAppModule.java:1661)

    at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:364)

    at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)

    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)

    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)

    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)

    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)

    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)

    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:609)

    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)

    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:185)

    at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:40)

    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)

    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)

    at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:141)

    at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:39)

    at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:187)

    at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)

    at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)

    at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:165)

    at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)

    at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)

    at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)

    at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)

    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)

    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

 

i use weblogic 10 and sql server 2005.

i config the persistence.xml like this:

 

  <persistence-unit name="org.jbpm.persistence.jpa_datafront" transaction-type="JTA">

    <jta-data-source>java:jdbc/testDS1</jta-data-source>       

    <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class>

    <class>org.drools.persistence.info.SessionInfo</class>

    <class>org.drools.persistence.info.WorkItemInfo</class>

    <properties>

        <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.JTATransactionFactory"/>

      <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>

      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>

      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WeblogicTransactionManagerLookup" />

    </properties>       

  </persistence-unit>

 

and i config a xa datasource in weblogic:

 

<?xml version='1.0' encoding='UTF-8'?>

<jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/jdbc-data-source http://xmlns.oracle.com/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd">

  <name>TestDS</name>

  <jdbc-driver-params>

    <url>jdbc:sqlserver://localhost:1433</url>

    <driver-name>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</driver-name>

    <properties>

      <property>

        <name>user</name>

        <value>sa</value>

      </property>

      <property>

        <name>databaseName</name>

        <value>JBPM</value>

      </property>

    </properties>

    <password-encrypted>{AES}UbBXRaasDQfeERYL0cclmgRUdrDZ+Ma0L7VTY9dTTR8=</password-encrypted>

  </jdbc-driver-params>

  <jdbc-connection-pool-params>

    <test-table-name>task</test-table-name>

  </jdbc-connection-pool-params>

  <jdbc-data-source-params>

    <jndi-name>jdbc/testDS1</jndi-name>

    <global-transactions-protocol>TwoPhaseCommit</global-transactions-protocol>

  </jdbc-data-source-params>

</jdbc-data-source>

 

anyone has any idea about this issue? thanks!

Reply to this message by going to Community

Start a new discussion in jBPM at Community