<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
jboss as 5 jbpm 5.1 persistence
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/michal.warecki">MichaĆ Warecki</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/594238#594238">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hi,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I have problem creating stateful knowledge session using jpa, jboss as 5.1 and jbpm 5.1. I'm trying to create session in statefull EJB.</p><p>While creating session thread just suspends and after 3-4 minutes in console I've got xa transaction timeout's. </p><p>Am I missing something while creating Environment ? Should I set conteiner transaction manager into Environment ?</p><p>Maybe jbpm 5.1 doesn't work with XA datasources ? Help me please. There is a code :</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>datasources:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-xml"><span class="jive-xml-tag"><datasources></span>
    <span class="jive-xml-tag"><xa-datasource></span>
        <span class="jive-xml-tag"><jndi-name></span>jdbc/dbDS<span class="jive-xml-tag"></jndi-name></span>
        <span class="jive-xml-tag"><use-java-context></span>true<span class="jive-xml-tag"></use-java-context></span>
        <span class="jive-xml-tag"><isSameRM-override-value></span>false<span class="jive-xml-tag"></isSameRM-override-value></span>
        <span class="jive-xml-tag"><xa-datasource-class></span>oracle.jdbc.xa.client.OracleXADataSource<span class="jive-xml-tag"></xa-datasource-class></span>
        <span class="jive-xml-tag"><xa-datasource-property name="URL"></span>${ds.connection.url}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><xa-datasource-property name="User"></span>${ds.user.name}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><xa-datasource-property name="Password"></span>${ds.password}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><exception-sorter-class-name></span>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter<span class="jive-xml-tag"></exception-sorter-class-name></span>
        <span class="jive-xml-tag"><no-tx-separate-pools/></span>
    <span class="jive-xml-tag"></xa-datasource></span>
    <span class="jive-xml-tag"><xa-datasource></span>
        <span class="jive-xml-tag"><jndi-name></span>jdbc/processInstanceDS<span class="jive-xml-tag"></jndi-name></span>
        <span class="jive-xml-tag"><use-java-context></span>true<span class="jive-xml-tag"></use-java-context></span>
        <span class="jive-xml-tag"><isSameRM-override-value></span>false<span class="jive-xml-tag"></isSameRM-override-value></span>
        <span class="jive-xml-tag"><xa-datasource-class></span>oracle.jdbc.xa.client.OracleXADataSource<span class="jive-xml-tag"></xa-datasource-class></span>
        <span class="jive-xml-tag"><xa-datasource-property name="URL"></span>${ds.connection.url}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><xa-datasource-property name="User"></span>${ds.user.name}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><xa-datasource-property name="Password"></span>${ds.password}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><exception-sorter-class-name></span>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter<span class="jive-xml-tag"></exception-sorter-class-name></span>
        <span class="jive-xml-tag"><no-tx-separate-pools/></span>
    <span class="jive-xml-tag"></xa-datasource></span>
    <span class="jive-xml-tag"><xa-datasource></span>
        <span class="jive-xml-tag"><jndi-name></span>jdbc/taskDS<span class="jive-xml-tag"></jndi-name></span>
        <span class="jive-xml-tag"><use-java-context></span>true<span class="jive-xml-tag"></use-java-context></span>
        <span class="jive-xml-tag"><isSameRM-override-value></span>false<span class="jive-xml-tag"></isSameRM-override-value></span>
        <span class="jive-xml-tag"><xa-datasource-class></span>oracle.jdbc.xa.client.OracleXADataSource<span class="jive-xml-tag"></xa-datasource-class></span>
        <span class="jive-xml-tag"><xa-datasource-property name="URL"></span>${ds.connection.url}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><xa-datasource-property name="User"></span>${ds.user.name}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><xa-datasource-property name="Password"></span>${ds.password}<span class="jive-xml-tag"></xa-datasource-property></span>
        <span class="jive-xml-tag"><exception-sorter-class-name></span>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter<span class="jive-xml-tag"></exception-sorter-class-name></span>
        <span class="jive-xml-tag"><no-tx-separate-pools/></span>
    <span class="jive-xml-tag"></xa-datasource></span>
<span class="jive-xml-tag"></datasources></span>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>persistence.xml:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-xml"><span class="jive-xml-tag"><persistence-unit name="${pu.name}" transaction-type="JTA"></span>
        <span class="jive-xml-tag"><provider></span>org.hibernate.ejb.HibernatePersistence<span class="jive-xml-tag"></provider></span>
        <span class="jive-xml-tag"><jta-data-source></span>${pu.jta.data.source}<span class="jive-xml-tag"></jta-data-source></span>
        <span class="jive-xml-comment"><!-- <span class="jive-xml-tag"><non-jta-data-source></span>${pu.jta.data.source}Unmanaged<span class="jive-xml-tag"></non-jta-data-source></span> -->
        <span class="jive-xml-tag"><properties></span>
            <span class="jive-xml-tag"><property name="hibernate.dialect" value="${pu.hibernate.dialect}" /></span>
            <span class="jive-xml-tag"><property name="hibernate.hbm2ddl.auto" value="${pu.hibernate.hbm2ddl.auto}" /></span>
            <span class="jive-xml-tag"><property name="hibernate.default_batch_fetch_size" value="${pu.hibernate.default_batch_fetch_size}" /></span>
            <span class="jive-xml-tag"><property name="hibernate.show_sql" value="${pu.hibernate.show_sql}" /></span>
            <span class="jive-xml-tag"><property name="hibernate.format_sql" value="true" /></span>
            <!-- Encoding -->
            <span class="jive-xml-tag"><property name="hibernate.connection.useUnicode" value="true" /></span>
            <span class="jive-xml-tag"><property name="hibernate.connection.characterEncoding"
                value="UTF-8" /></span>
            <!-- These are the default for JBoss EJB3, but not for HEM: -->
            <span class="jive-xml-tag"><property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" /></span>
            <span class="jive-xml-tag"><property name="hibernate.transaction.manager_lookup_class"
                value="${pu.hibernate.transaction.manager_lookup_class}" /></span>
            <!-- Binds the EntityManagerFactory to JNDI where Seam can look it up.
                This is only relevant when the container automatically loads the persistence
                unit, as is the case in JBoss AS 5. -->
            <span class="jive-xml-tag"><property name="jboss.entity.manager.factory.jndi.name"
                value="${pu.jboss.entity.manager.factory.jndi.name}" /></span>
        <span class="jive-xml-tag"></properties></span>
        <!-- If the persistence.xml file is not under the same root directory or
            jar than your domain model then use the <span class="jive-xml-tag"><jar-file></span> element to point to the
            jar containing your domain model. <span class="jive-xml-tag"><jar-file></span>../../vehicles.jar<span class="jive-xml-tag"></jar-file></span> -->
    <span class="jive-xml-tag"></persistence-unit></span>
    <span class="jive-xml-tag"><persistence-unit name="org.jbpm.persistence.jpa" transaction-type="JTA"></span>
        <span class="jive-xml-tag"><provider></span>org.hibernate.ejb.HibernatePersistence<span class="jive-xml-tag"></provider></span>
        <span class="jive-xml-tag"><jta-data-source></span>java:jdbc/processInstanceDS<span class="jive-xml-tag"></jta-data-source></span>
        <span class="jive-xml-tag"><class></span>org.drools.persistence.info.SessionInfo<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.persistence.processinstance.ProcessInstanceInfo<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.persistence.processinstance.ProcessInstanceEventInfo<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.drools.persistence.info.WorkItemInfo<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><properties></span>
            <span class="jive-xml-tag"><property name="hibernate.dialect" value="${pu.hibernate.dialect}" /></span>
                <span class="jive-xml-tag"><property name="hibernate.hbm2ddl.auto" value="${pu.hibernate.hbm2ddl.auto}" /></span>
                <span class="jive-xml-tag"><property name="hibernate.default_batch_fetch_size" value="${pu.hibernate.default_batch_fetch_size}" /></span>
                <span class="jive-xml-tag"><property name="hibernate.show_sql" value="${pu.hibernate.show_sql}" /></span>
                <span class="jive-xml-tag"><property name="hibernate.format_sql" value="true" /></span>
                <!-- Encoding -->
                <span class="jive-xml-tag"><property name="hibernate.connection.useUnicode" value="true" /></span>
                <span class="jive-xml-tag"><property name="hibernate.connection.characterEncoding"
                    value="UTF-8" /></span>
                <!-- These are the default for JBoss EJB3, but not for HEM: -->
                <span class="jive-xml-tag"><property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" /></span>
                <span class="jive-xml-tag"><property name="hibernate.transaction.manager_lookup_class"
                    value="${pu.hibernate.transaction.manager_lookup_class}" /></span>
        <span class="jive-xml-tag"></properties></span>
    <span class="jive-xml-tag"></persistence-unit></span>
    <span class="jive-xml-tag"><persistence-unit name="org.drools.task" transaction-type="JTA"></span>
        <span class="jive-xml-tag"><provider></span>org.hibernate.ejb.HibernatePersistence<span class="jive-xml-tag"></provider></span>
        <span class="jive-xml-tag"><jta-data-source></span>java:jdbc/taskDS<span class="jive-xml-tag"></jta-data-source></span>
        <span class="jive-xml-tag"><mapping-file></span>META-INF/taskOrm.xml<span class="jive-xml-tag"></mapping-file></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Attachment<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Content<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.BooleanExpression<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Comment<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Deadline<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Comment<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Deadline<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Delegation<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Escalation<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Group<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.I18NText<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Notification<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.EmailNotification<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.EmailNotificationHeader<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.PeopleAssignments<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Reassignment<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Status<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.Task<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.TaskData<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.SubTasksStrategy<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.OnParentAbortAllSubTasksEndStrategy<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.OnAllSubTasksEndParentEndStrategy<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><class></span>org.jbpm.task.User<span class="jive-xml-tag"></class></span>
        <span class="jive-xml-tag"><properties></span>
            <span class="jive-xml-tag"><property name="hibernate.dialect" value="${pu.hibernate.dialect}" /></span>
                <span class="jive-xml-tag"><property name="hibernate.hbm2ddl.auto" value="${pu.hibernate.hbm2ddl.auto}" /></span>
                <span class="jive-xml-tag"><property name="hibernate.default_batch_fetch_size" value="${pu.hibernate.default_batch_fetch_size}" /></span>
                <span class="jive-xml-tag"><property name="hibernate.show_sql" value="${pu.hibernate.show_sql}" /></span>
                <span class="jive-xml-tag"><property name="hibernate.format_sql" value="true" /></span>
                <!-- Encoding -->
                <span class="jive-xml-tag"><property name="hibernate.connection.useUnicode" value="true" /></span>
                <span class="jive-xml-tag"><property name="hibernate.connection.characterEncoding"
                    value="UTF-8" /></span>
                <!-- These are the default for JBoss EJB3, but not for HEM: --></span>
                <span class="jive-xml-tag"><property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" /></span>
                <span class="jive-xml-tag"><property name="hibernate.transaction.manager_lookup_class"
                    value="${pu.hibernate.transaction.manager_lookup_class}" /></span>
        <span class="jive-xml-tag"></properties></span>
    <span class="jive-xml-tag"></persistence-unit></span>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Bean:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-java">@Stateful
@Name(<font color="red">"register"</font>)
<font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> RegistationBean <font color="navy"><b>implements</b></font> Registration <font color="navy">{</font>
 
    @Out(scope = ScopeType.CONVERSATION)
    <font color="navy"><b>private</b></font> User registerUser;
 
    @In(value=<font color="red">"userRepository"</font>, create=<font color="navy"><b>true</b></font>)
    <font color="navy"><b>private</b></font> UserRepository userRepository;
 
    @Logger
    <font color="navy"><b>private</b></font> Log log;
 
 
    <font color="navy"><b>private</b></font> KnowledgeBase knowledgeBase;
 
    <font color="navy"><b>private</b></font> Environment environment;
 
    @PersistenceUnit(unitName = <font color="red">"org.jbpm.persistence.jpa"</font>)
    <font color="navy"><b>private</b></font> EntityManagerFactory emf;
 
 
    @Factory(value = <font color="red">"registerUser"</font>)
    <font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> createRegisterUser() <font color="navy">{</font>
        registerUser = <font color="navy"><b>new</b></font> User();
    <font color="navy">}</font>
 
    <font color="navy"><b>public</b></font> String register() <font color="navy">{</font>
 
        sendRegistrationEmail();
        userRepository.persist(registerUser);
 
        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        kbuilder.add(ResourceFactory.newClassPathResource(<font color="red">"process/registration.bpmn"</font>), ResourceType.BPMN2);
        knowledgeBase = kbuilder.newKnowledgeBase();
 
        environment = KnowledgeBaseFactory.newEnvironment();
        environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
 
        <font color="darkgreen">//AT THIS LINE THREAD HANGS AND SUSPENDS.</font>
        StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession(knowledgeBase, null, environment );
 
        log.info(<font color="red">"#{registerUser.username} has been registered."</font>);
 
        <font color="navy"><b>return</b></font> <font color="red">"registred"</font>;
    <font color="navy">}</font>
<font color="navy">}</font>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I'm trying to run this very simple code for over one week and I'm frystated at this moment :-)</p><p>Anyone know how to solve my problem ?</p><p>Maybe someone has some example how to configure jbpm 5.1 persistence using CMT ?</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/594238#594238">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>