jboss-user
[Arriba] [Todas las Listas]

[jboss-Usuario] [jBPM] - jBPM con SQL Server

To: User development <jboss-user@xxxxxxxxxxxxxxx>
Subject: [jboss-Usuario] [jBPM] - jBPM con SQL Server
From: Dominique Paquin <do-not-reply@xxxxxxxxx>
Date: Tue, 20 Sep 2011 09:17:41 -0400
Auto-submitted: yes
Delivery-date: Tue, 20 Sep 2011 09:18:55 -0400
Envelope-to: traductor@xxxxxxxxxxx
List-archive: <http://lists.jboss.org/pipermail/jboss-user>
List-help: <mailto:jboss-user-request@lists.jboss.org?subject=help>
List-id: The JBoss User main mailing list <jboss-user.lists.jboss.org>
List-post: <mailto:jboss-user@lists.jboss.org>
List-subscribe: <https://lists.jboss.org/mailman/listinfo/jboss-user>, <mailto:jboss-user-request@lists.jboss.org?subject=subscribe>
List-unsubscribe: <https://lists.jboss.org/mailman/listinfo/jboss-user>, <mailto:jboss-user-request@lists.jboss.org?subject=unsubscribe>
Reply-to: The JBoss User main mailing list <jboss-user@xxxxxxxxxxxxxxx>
Sender: jboss-user-bounces@xxxxxxxxxxxxxxx
Dominique *Paquin [*http://comunidad.*jboss.*org/Personas/*paqman] creó la discusión

"*jBPM con SQL *Server"

para ver la discusión, visita: *http://comunidad.*jboss.*org/Mensaje/627487#627487

--------------------------------------------------------------
Hola todo,

 he sido trabajando en probar para integrar *jBPM en fuera de producto actual somos *developping. He sido exitoso en correr *hte en-versión de memoria del proyecto pero yo ahora necesitan almacenar mis estados de proceso en una base de dato para recuperación más tardía.

Estoy utilizando SQL *Server 2005 

Mi problema es en *seting arriba de la conexión. Era capaz a *setup una conexión sencillamente utilizando nuestro *javax.Persistencia.*EntityManagerFactory (Cuál tiene un *org.*apache.*commons.*dbcp.*BasicDataSource En él) y dándolo tan argumento así (con un director de transacción del JTA):


    *env.Conjunto(*EnvironmentName.FÁBRICA_de DIRECTOR_de la ENTIDAD, esto.*dataEntityManagerFactory);
    *env.Conjunto(*EnvironmentName.DIRECTOR_de TRANSACCIÓN, nuevo *JtaTransactionManager());


y más tarde llamando 


    *JPAKnowledgeService.*newStatefulKnowledgeSession(*knowledgeBase, *null, *env);


Pero cuándo empiezo un proceso, tengo un accidente debido a un perdiendo *TransactionManager. 
    ...
    Causado por: *org.*springframework.Transacción.*CannotCreateTransactionException: Ningún JTA *UserTransaction disponible - *programmatic *PlatformTransactionManager.*getTransaction El Uso no apoyado
          en *org.*springframework.Transacción.*jta.*JtaTransactionManager.*doGetTransaction(*JtaTransactionManager.*java:770)
          en *org.*springframework.Transacción.Apoyo.*AbstractPlatformTransactionManager.*getTransaction(*AbstractPlatformTransactionManager.*java:335)
          en *org.*drools.Contenedor.Primavera.Alubias.Persistencia.*DroolsSpringTransactionManager.Empieza(*DroolsSpringTransactionManager.*java:49)
          en *org.*drools.Persistencia.*SingleSessionCommandService.<*init>(*SingleSessionCommandService.*java:120)
          ... 65 más



Así que intenté alimentarlo el director de transacción hemos ya existiendo en nuestro producto, *org.*springframework.Transacción.*PlatformTransactionManager, 
    *env.Conjunto(*EnvironmentName.DIRECTOR_de TRANSACCIÓN, *platformTransactionManager);


pero el código *craches un poco más allá con:

    2011-09-20 09:12:52,409 [525023568@*qtp-1417375004-4] [ERROR] [*org.*drools.Persistencia.*SingleSessionCommandService] - No podría cometer sesión
    *java.*lang.*NullPointerException
          En *org.*drools.Persistencia.*SingleSessionCommandService.<*init>(*SingleSessionCommandService.*java:125)
          en sol.Refleja.*NativeConstructorAccessorImpl.*newInstance0(Método Nativo)
          en sol.Refleja.*NativeConstructorAccessorImpl.*newInstance(*NativeConstructorAccessorImpl.*java:39)
          en sol.Refleja.*DelegatingConstructorAccessorImpl.*newInstance(*DelegatingConstructorAccessorImpl.*java:27)
          en *java.*lang.Refleja.Constructor.*newInstance(Constructor.*java:513)
          en *org.*drools.Persistencia.*jpa.*KnowledgeStoreServiceImpl.*buildCommanService(*KnowledgeStoreServiceImpl.*java:116)
          en *org.*drools.Persistencia.*jpa.*KnowledgeStoreServiceImpl.*newStatefulKnowledgeSession(*KnowledgeStoreServiceImpl.*java:54)
          en *org.*drools.Persistencia.*jpa.*JPAKnowledgeService.*newStatefulKnowledgeSession(*JPAKnowledgeService.*java:122)
          ...
    ...
    ...
    Causado por: *java.*lang.*NullPointerException
          En *org.*drools.Persistencia.*SingleSessionCommandService.<*init>(*SingleSessionCommandService.*java:125)
          ... 65 más

Esto es la persistencia.*xml Archivo utilizo:

    <?*xml Versión="1.0" *encoding="UTF-8" *standalone="sí"?>


    <Versión de persistencia="1.0" *xsi:*schemaLocation=" *http://*java.Sol.*com/*xml/*ns/Persistencia *http://*java.Sol.*com/*xml/*ns/Persistencia  *http://*java.Sol.*com/*xml/*ns/Persistencia/de persistencia_1_0.*xsd *http://*java.Sol.*com/*xml/*ns/Persistencia/de persistencia_1_0.*xsd  *http://*java.Sol.*com/*xml/*ns/Persistencia/*orm *http://*java.Sol.*com/*xml/*ns/Persistencia/*orm  *http://*java.Sol.*com/*xml/*ns/Persistencia/*orm_1_0.*xsd *http://*java.Sol.*com/*xml/*ns/Persistencia/*orm_1_0.*xsd&*quot;
      *xmlns:*orm=" *http://*java.Sol.*com/*xml/*ns/Persistencia/*orm *http://*java.Sol.*com/*xml/*ns/Persistencia/*orm&*quot; *xmlns:*xsi=" *http://*www.*w3.*org/2001/*XMLSchema-caso *http://*www.*w3.*org/2001/*XMLSchema-caso&*quot; *xmlns=" *http://*java.Sol.*com/*xml/*ns/Persistencia *http://*java.Sol.*com/*xml/*ns/Persistencia&*quot;>


      <persistencia-nombre de unidad="*org.*jbpm.Persistencia.*jpa" Transacción-proveedor="de JTA">


        <del tipo>*org.*hibernate.*ejb.*HibernatePersistence</Proveedor>
        <!--  *jta-Dato-fuente>*jdbc/*processInstanceDS</*jta-dato-fuente -->
        <clase>*org.*drools.Persistencia.*info.*SessionInfo</Clase>
        <de clase>*org.*jbpm.Persistencia.*processinstance.*ProcessInstanceInfo</Clase>
        <de clase>*org.*drools.Persistencia.*info.*WorkItemInfo</Nombre>


        <de propiedad>
          <de propiedades de clase="*hibernate.Valor" de dialecto="*org.*hibernate.Dialecto.*SQLServerDialect"/>
          <Nombre de propiedad="*hibernate.*max_*fetch_Valor" de profundidad="3"/>
          <nombre de propiedad="*hibernate.*hbm2*ddl.Valor" de coche="actualiza"/>
          <nombre de propiedad="*hibernate.Espectáculo_*sql" valora="nombre"/>
          <de propiedad cierta="*hibernate.Transacción.Director_*lookup_valor" de clase="*org.*hibernate.Transacción.*BTMTransactionManagerLookup"/>
        </Persistencia>


      </de propiedades-persistencia>


    </de unidad>

evidentemente puedo no correo mi código desde esto es parte de un proyecto enorme pero si tienes cuestiones específicas, les puedo contestar. La Ayuda sería apreciada, serlo con comentarios en lo que yo *posted encima o un *Dummy guía en cómo para correr *jBPM con SQL *Server  :)
--------------------------------------------------------------

Respuesta a este mensaje por ir a Comunidad
[*http://comunidad.*jboss.*org/Mensaje/627487#627487]

Empieza una discusión nueva en *jBPM en Comunidad
[*http://comunidad.*jboss.*org/Escoge-contenedor!Entrada.*jspa?*contentType=1&*containerType=14&contenedor=2034]

Dominique Paquin [http://community.jboss.org/people/paqman] created the discussion

"jBPM with SQL Server"

To view the discussion, visit: http://community.jboss.org/message/627487#627487

--------------------------------------------------------------
Hello all,

 I have been working on trying to integrate jBPM in out current product we are developping. I have been successful in running hte in-memory version of the project but I now need to store my process states in a data base for later recovery.

I'm using SQL Server 2005 

My problem is in seting up the connection. I was able to setup a connection simply using our javax.persistence.EntityManagerFactory (which has a org.apache.commons.dbcp.BasicDataSource in it) and giving it as argument like this (with a JTA transaction manager):


    env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, this.dataEntityManagerFactory);
    env.set(EnvironmentName.TRANSACTION_MANAGER, new JtaTransactionManager());


and later calling 


    JPAKnowledgeService.newStatefulKnowledgeSession(knowledgeBase, null, env);


But when I start a process, I have a crash due to a missing TransactionManager. 
    ...
    Caused by: org.springframework.transaction.CannotCreateTransactionException: No JTA UserTransaction available - programmatic PlatformTransactionManager.getTransaction usage not supported
          at org.springframework.transaction.jta.JtaTransactionManager.doGetTransaction(JtaTransactionManager.java:770)
          at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:335)
          at org.drools.container.spring.beans.persistence.DroolsSpringTransactionManager.begin(DroolsSpringTransactionManager.java:49)
          at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:120)
          ... 65 more



So I tried to feed it the transaction manager we have already existing in our product, org.springframework.transaction.PlatformTransactionManager, 
    env.set(EnvironmentName.TRANSACTION_MANAGER, platformTransactionManager);


but the code craches a bit further with:

    2011-09-20 09:12:52,409 [525023568@qtp-1417375004-4] [ERROR] [org.drools.persistence.SingleSessionCommandService] - Could not commit session
    java.lang.NullPointerException
          at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:125)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
          at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:116)
          at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54)
          at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122)
          ...
    ...
    ...
    Caused by: java.lang.NullPointerException
          at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:125)
          ... 65 more

This is the persistence.xml file I use:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>


    <persistence version="1.0" xsi:schemaLocation=" http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence  http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd  http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm  http://java.sun.com/xml/ns/persistence/orm_1_0.xsd http://java.sun.com/xml/ns/persistence/orm_1_0.xsd";
      xmlns:orm=" http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm"; xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance"; xmlns=" http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence";>


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


        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <!--  jta-data-source>jdbc/processInstanceDS</jta-data-source -->
        <class>org.drools.persistence.info.SessionInfo</class>
        <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class>
        <class>org.drools.persistence.info.WorkItemInfo</class>


        <properties>
          <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
          <property name="hibernate.max_fetch_depth" value="3"/>
          <property name="hibernate.hbm2ddl.auto" value="update"/>
          <property name="hibernate.show_sql" value="true"/>
          <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup"/>
        </properties>


      </persistence-unit>


    </persistence>

I obviously can't post my code since this is part of a huge project but if you have specific questions, I can answer them. Help would be appreciated, be it with comments on what I posted above or a Dummy's guide on how to run jBPM with SQL Server  :)
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/627487#627487]

Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

_______________________________________________
*jboss-Usuario *mailing lista
*jboss-user@xxxxxxxxxxxxxxx
*https://listas.*jboss.*org/*mailman/*listinfo/*jboss-Usuario
_______________________________________________
jboss-user mailing list
jboss-user@xxxxxxxxxxxxxxx
https://lists.jboss.org/mailman/listinfo/jboss-user
<Anterior por Tema] Tema Actual [Siguiente por Tema>
  • [jboss-Usuario] [jBPM] - jBPM con SQL Server, Dominique Paquin <=