Hi,

Has anyone had an experience to configure Drools to use Microsoft SQL server? 
We have been using H2, but we want to switch to SQL.  This is my persistence 
unit:
<persistence-unit name="stewardcareH2" 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>
              <class>org.steward.care.fact.Account</class>
              <class>org.steward.care.fact.ObservationGroup</class>
              <class>org.steward.care.fact.ObservationParent</class>
              <class>org.steward.care.fact.Observation</class>
              <class>org.steward.care.fact.ClinicalRuleMatch</class>
              <class>org.steward.care.fact.Comorbidity</class>
              <class>org.steward.care.fact.OutboundNotice</class>
              <class>org.steward.care.fact.Medication</class>
              <class>org.steward.care.fact.data.CodedElement</class>
              <class>org.steward.care.fact.data.StructuredValue</class>
              <class>org.steward.care.fact.data.TriggerMatch</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="create-drop" />
                     <property name="hibernate.show_sql" value="true" />
                     <property name="hibernate.connection.autocommit" 
value="true" />
                     <!-- <property 
name="hibernate.transaction.manager_lookup_class" value= 
"org.hibernate.transaction.BTMTransactionManagerLookup"/> -->
                     <property name="hibernate.transaction.jta.platform" 
value="org.hibernate.service.jta.platform.internal.BitronixJtaPlatform"/>
              </properties>
       </persistence-unit>

This is how I configure a data pooling:

PoolingDataSource pds = new PoolingDataSource();

              // The name must match what's in the persistence.xml!
              pds.setUniqueName("jdbc/processInstanceDS");

              //
              
pds.setClassName("com.microsoft.sqlserver.jdbc.SQLServerXADataSource");

              // doesn't really matter
              pds.setMaxPoolSize(3);

              pds.getDriverProperties().put("user", "myuser");
              pds.getDriverProperties().put("password", "mypassword");



              pds.getDriverProperties().put("serverName", "localhost");
           pds.getDriverProperties().put("databaseName", "CAREDatabase");

              pds.getDriverProperties().put("URL", 
"jdbc:sqlserver://localhost;databaseName=CAREDatabase;IntegratedSecurity=true");

       //     pds.getDriverProperties().put("selectMethod", "cursor");


              pds.init();


But I get this error:

bitronix.tm.resource.ResourceConfigurationException: cannot create JDBC 
datasource named jdbc/processInstanceDS
       at 
bitronix.tm.resource.jdbc.PoolingDataSource.init(PoolingDataSource.java:92)
       at 
org.steward.care.core.CAREKnowledgeEngine.InitializePoolingDataSource(CAREKnowledgeEngine.java:762)
       at 
org.steward.care.core.CAREKnowledgeEngine.initializePersistedKnowledgeSession(CAREKnowledgeEngine.java:720)
       at 
org.steward.care.core.CAREKnowledgeEngine.initializeKnowledgeEngine(CAREKnowledgeEngine.java:662)
       at org.steward.care.CAREManager.main(CAREManager.java:50)
Caused by: bitronix.tm.recovery.RecoveryException: failed recovering resource 
jdbc/processInstanceDS
       at 
bitronix.tm.recovery.IncrementalRecoverer.recover(IncrementalRecoverer.java:100)
       at 
bitronix.tm.resource.ResourceRegistrar.register(ResourceRegistrar.java:87)
       at 
bitronix.tm.resource.jdbc.PoolingDataSource.buildXAPool(PoolingDataSource.java:104)
       at 
bitronix.tm.resource.jdbc.PoolingDataSource.init(PoolingDataSource.java:88)
       ... 4 more
Caused by: javax.transaction.xa.XAException: The function RECOVER: failed. The 
status is: -3. Error: "*** SQLJDBC_XA DTC_ERROR Context: xa_recover, state=1, 
StatusCode:-3 (0xFFFFFFFD) ***"
       at 
com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:550)
       at 
com.microsoft.sqlserver.jdbc.SQLServerXAResource.recover(SQLServerXAResource.java:728)
       at bitronix.tm.recovery.RecoveryHelper.recover(RecoveryHelper.java:103)
       at bitronix.tm.recovery.RecoveryHelper.recover(RecoveryHelper.java:61)
       at 
bitronix.tm.recovery.IncrementalRecoverer.recover(IncrementalRecoverer.java:63)
       ... 7 more


If anyone has done this and provides an example, that will be great. Thank 
you!!!

Hong Lily Ju
Software Engineer
hong...@steward.org<mailto:derrick.sm...@steward.org>
Steward Heath Care

[Description: cid:image001.png@01CD0DC1.C0D81BD0]

Office: 781-375-3034
Cell: 781-801-9313



Hong Lily Ju
Software Engineer
hong...@steward.org<mailto:derrick.sm...@steward.org>
Steward Heath Care

[Description: cid:image001.png@01CD0DC1.C0D81BD0]

Office: 781-375-3034
Cell: 781-801-9313

<<inline: image001.jpg>>

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to