[rules-users] help

ron riley r.riley at lse.ac.uk
Tue Jun 8 09:39:26 EDT 2010


help

rules-users-request at lists.jboss.org wrote:
> Send rules-users mailing list submissions to
> 	rules-users at lists.jboss.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	https://lists.jboss.org/mailman/listinfo/rules-users
> or, via email, send a message with subject or body 'help' to
> 	rules-users-request at lists.jboss.org
> 
> You can reach the person managing the list at
> 	rules-users-owner at lists.jboss.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of rules-users digest..."
> 
> 
> Today's Topics:
> 
>    1. FW: how to fire a subset of rules in KB? (John Peterson)
>    2. Re: Multiple Object Referencing problem (Fnu Mahalakshmi)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 8 Jun 2010 05:54:39 -0700
> From: "John Peterson" <john.peterson.gv3k at statefarm.com>
> Subject: [rules-users] FW: how to fire a subset of rules in KB?
> To: <rules-users at lists.jboss.org>
> Message-ID:
> 	<D3A6E68928C9104BB815C83F43A36BDF0DA1F23A at WPSCV6NH.OPR.STATEFARM.ORG>
> Content-Type: text/plain;	charset="us-ascii"
> 
> Date: Mon, 7 Jun 2010 17:28:12 +0800
> From: "wenjinchao" <wenjinchao0418 at gmail.com>
> Subject: [rules-users] how to fire a subset of rules in KB?
> To: "rules-users" <rules-users at lists.jboss.org>
> Message-ID: <201006071728086572085 at gmail.com>
> Content-Type: text/plain; charset="us-ascii"
> 
> Hi all,
> 
> I'm a newbie for drools.
> And i want to know how to fire a subset of rules in KB, suppose there
> are three rules named A,B,C, and I want to fire rule A only.
> 
> 
> 
> by the way,
> suppose there is a drl file containing rule, and  i have set up KB, and
> call fireAllRules through statefulKnowledgeSession. After that, the rule
> file is changed, how to load rules dynamicly? 
> 
> Is there any solution?
> Thanks in advance!
> 
> 
> best regards.
> 
> 
> 2010-06-07 
> 
> 
> 
> Wenjinchao
> 
> 
> 
> Hi,
> 
> I'll take a crack at you first question....
> 
> Check out Agenda Filters:
> 
> http://legacy.drools.codehaus.org/Agenda
> 
> The example listed is using Rule Names, but you can use the following to
> look at Meta Attribute values instead:
> 
> AgendaFilter filter = new AgendaFilter() {
> 				
> @Override
>   public boolean accept(Activation activation) {
> 
>   // Filter out rule Hello World from Sample.drl for execution
>     if (activation.getRule().getMetaAttribute("Purpose").equals("Print
> Hello            
>          World")) {
>        return true;
>     }
>     return false;
>   }
> };
> 
> On your rules, you'll want to add a meta attribute for groups A, B, and
> C.  Here's an example:
> 
> rule "Hello World"
> @Purpose(Print Hello World)    <--- THIS IS YOUR META-ATTRIBUTE
> 	when
> 		m : Message( status == Message.HELLO, myMessage :
> message )
> 	then
> 		System.out.println( myMessage ); 
> 		m.setMessage( "Goodbye cruel world" );
> 		m.setStatus( Message.GOODBYE );
> 		update( m );
> end
> 
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 8 Jun 2010 09:28:04 -0400
> From: Fnu Mahalakshmi <FMahalakshmi at nyx.com>
> Subject: Re: [rules-users] Multiple Object Referencing problem
> To: "'rules-users at lists.jboss.org'" <rules-users at lists.jboss.org>
> Message-ID:
> 	<994758E35590274E955FA75763C5AA5002D01086 at MTEXMBXP01.ad.NYX.com>
> Content-Type: text/plain; charset="us-ascii"
> 
> 
> Hi Esteban,
> 
> I am getting the error at a place where I am trying to write back from my working memory to my output file.
> It is happening because the second rule to turn on the sprinkler does not work and as a result a null value is getting stored.
> Is it possible that there can exists 2 different Room() objects with the same room.name ??
> Because the room objects are getting stored from different files to the working memory ??
> Do you think it better to store room objects in a separate list??
> I store all information into a list and load that into the memory.
> Am I going wrong here?
> 
> Please help.
> 
> Thank you.
> -M
> -----Original Message-----
> From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of rules-users-request at lists.jboss.org
> Sent: Tuesday, June 08, 2010 8:40 AM
> To: rules-users at lists.jboss.org
> Subject: rules-users Digest, Vol 43, Issue 36
> 
> Send rules-users mailing list submissions to
>         rules-users at lists.jboss.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://lists.jboss.org/mailman/listinfo/rules-users
> or, via email, send a message with subject or body 'help' to
>         rules-users-request at lists.jboss.org
> 
> You can reach the person managing the list at
>         rules-users-owner at lists.jboss.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of rules-users digest..."
> 
> 
> Today's Topics:
> 
>    1. Re: Multiple Object Referencing problem (Esteban Aliverti)
>    2. Re: Exception using persistence (Alan.Gairey at tessella.com)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 8 Jun 2010 09:25:47 -0300
> From: Esteban Aliverti <esteban.aliverti at gmail.com>
> Subject: Re: [rules-users] Multiple Object Referencing problem
> To: Rules Users List <rules-users at lists.jboss.org>
> Message-ID:
>         <AANLkTilCFcZwhX6uthWz3tIvkJXdtqVKXcb0uG-rqm91 at mail.gmail.com>
> Content-Type: text/plain; charset="windows-1252"
> 
> Look at the line 58 of RulesTest class and you will find the problem. Try to
> always analyse the stacktrace if there are no drools classes involved, then
> it is not a Drools error. And remember, the debugger is your friend ;)
> 
> Best,
> 
> 2010/6/7 David Sinclair <dsinclair at chariotsolutions.com>
> 
>> This has nothing to do with Drools. It looks like you are giving Writer bad
>> input perhaps??
>>
>> Exception in thread "main" *java.lang.NullPointerException*
>>
>>       at java.io.Writer.write(Unknown Source)
>>
>>       at com.org.RulesTest.main(*RulesTest.java:58*)
>>
>>
>>
>>
>> 2010/6/7 Fnu Mahalakshmi <FMahalakshmi at nyx.com>
>>
>>>  Hi,
>>>
>>>
>>>
>>> I am trying out this example from the book :
>>>
>>> public class Room {
>>>
>>>     private String name
>>>
>>>     // getter and setter methods here
>>>
>>> }
>>>
>>> public classs Sprinkler {
>>>
>>>     private Room room;
>>>
>>>     private boolean on;
>>>
>>>     // getter and setter methods here
>>>
>>> }
>>>
>>> public class Fire {
>>>
>>>     private Room room;
>>>
>>>     // getter and setter methods here
>>>
>>> }
>>>
>>>
>>>
>>> I load 2 input files: 1. with data of fire and Room { f1, r1;f2, r2}
>>>
>>>                            2. with data of sprinkler and Room { ? ?, r1; ?
>>> ? , r2}
>>>
>>>
>>>
>>> I am writing rule ? if fire exists in room start sprinkler? { so if f1 and
>>> r1 in this case: I should get s1, r1 }
>>>
>>> when
>>>
>>>     Fire($room : room)
>>>
>>>     $sprinkler : Sprinkler( room == $room, modified == false )
>>>
>>> Then
>>>
>>>     $sprinkler.setmodified(true);
>>>
>>>     modify( $sprinkler ) { setSprinkle( ?s1? ) };
>>>
>>> end
>>>
>>>
>>>
>>> But this gives me error:
>>>
>>> Exception in thread "main" *java.lang.NullPointerException*
>>>
>>>       at java.io.Writer.write(Unknown Source)
>>>
>>>       at com.org.RulesTest.main(*RulesTest.java:58*)
>>>
>>>
>>>
>>> From what I observed this rule is not getting fired at all.
>>>
>>> I want this rule to be fired on the data in my second input file.
>>>
>>> The rules for my first input file get executed properly.
>>>
>>>
>>>
>>> Can any1 tell me where I am going wrong??
>>>
>>> Is there any way in which we can use the modified data { after rules are
>>> fired on the first input data and it is  modified}to fire another set of
>>> rules on the same input depending on the next input file???
>>>
>>>
>>>
>>> Thank you.
>>>
>>>
>>>
>>> -M
>>>
>>> ------------------------------
>>>
>>> *Please consider the environment before printing this email.*
>>>
>>> *Visit our website at http://www.nyse.com
>>> *****************************************************************************
>>>
>>> Note: The information contained in this message and any attachment to it
>>> is privileged, confidential and protected from disclosure. If the reader of
>>> this message is not the intended recipient, or an employee or agent
>>> responsible for delivering this message to the intended recipient, you are
>>> hereby notified that any dissemination, distribution or copying of this
>>> communication is strictly prohibited. If you have received this
>>> communication in error, please notify the sender immediately by replying to
>>> the message, and please delete it from your system. Thank you. NYSE
>>> Euronext. *
>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
> 
> 
> --
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> 
> Esteban Aliverti
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100608/b5cfc184/attachment-0001.html
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 8 Jun 2010 13:39:37 +0100
> From: Alan.Gairey at tessella.com
> Subject: Re: [rules-users] Exception using persistence
> To: Rules Users List <rules-users at lists.jboss.org>
> Message-ID:
>         <OF191C8E5F.AE0A5A9C-ON8025773C.00455DD5-8025773C.00458BB0 at tessella.co.uk>
> 
> Content-Type: text/plain; charset="iso-8859-1"
> 
> Robert,
> 
> Try this:
> 
> create a directory called META-INF in your classpath
> in that directory, add a file called jndi.properties
> in that file, add the line:
> java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory
> 
> Does that fix things?
> 
> Alan
> 
> 
> 
> 
> Robert <robert.weissmann at web.de>
> Sent by: rules-users-bounces at lists.jboss.org
> 08/06/2010 13:22
> Please respond to
> Rules Users List <rules-users at lists.jboss.org>
> 
> 
> To
> "Rules Users List" <rules-users at lists.jboss.org>, "Mark Proctor"
> <mproctor at codehaus.org>, "PAYET, Manuel" <manuel.payet at capgemini.com>
> cc
> 
> Subject
> Re: [rules-users] Exception using persistence
> 
> 
> 
> 
> 
> 
> I did, but I get the same Exception as before, but on this new line
> 
> 
> UserTransaction ut = (UserTransaction) new
> InitialContext().lookup("java:comp/UserTransaction" );
> 
> 
> 08.06.2010 14:10:58 org.eclipse.jetty.util.log.Slf4jLog info
> INFO: Logging to
> org.slf4j.impl.JDK14LoggerAdapter(org.eclipse.jetty.util.log) via
> org.eclipse.jetty.util.log.Slf4jLog
> Exception in thread "main" javax.naming.NameNotFoundException; remaining
> name 'UserTransaction'
>                  at
> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:576)
>                  at
> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:663)
>                  at
> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:678)
>                  at
> org.eclipse.jetty.jndi.java.javaRootURLContext.lookup(javaRootURLContext.java:110)
>                  at
> javax.naming.InitialContext.lookup(InitialContext.java:392)
>                  at com.rob.tests.AnyTest$.test2(AnyTest.scala:38)
>                  at com.rob.tests.AnyTest$.main(AnyTest.scala:18)
>                  at com.rob.tests.AnyTest.main(AnyTest.scala)
> 
> 
> I still don't understand where the "java:comp/UserTransaction" will be
> accessible/come-from/being-created ... ?
> 
> 
> Am 08.06.2010, 13:42 Uhr, schrieb PAYET, Manuel
> <manuel.payet at capgemini.com>:
> 
>> I've made the same mistake at the beginning:
>>
>>
>> You'd probably want to replace:
>>
>>
>>  val emf : EntityManagerFactory =
>> Persistence.createEntityManagerFactory( "org.drools.persistence.jpa" )
>>      val env : Environment = KnowledgeBaseFactory.newEnvironment()
>>      env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf )
>>
>>      val ksession : StatefulKnowledgeSession =
>> JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env )
>>      val sessionId = ksession.getId
>>
>>      ksession.startProcess( "Process4" )
>>      ksession.dispose();
>>
>> By:
>>
>> UserTransaction ut =
>>   (UserTransaction) new InitialContext().lookup(
>> "java:comp/UserTransaction" );
>> ut.begin();
>>
>>
>> val emf : EntityManagerFactory =
>> Persistence.createEntityManagerFactory( "org.drools.persistence.jpa" )
>>      val env : Environment = KnowledgeBaseFactory.newEnvironment()
>>      env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf )
>>
>>      val ksession : StatefulKnowledgeSession =
>> JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env )
>>      val sessionId = ksession.getId
>>
>>      ksession.startProcess( "Process4" )
>>      ksession.dispose();
>>
>> Ut.commit();
>>
>>
>> (you didn't open a transaction before ;))
>>
>>
>> -----Message d'origine-----
>> De : robert.weissmann at web.de [mailto:robert.weissmann at web.de]
>> Envoy? : mardi 8 juin 2010 13:42
>> ? : Rules Users List; Mark Proctor; PAYET, Manuel
>> Objet : Re: [rules-users] Exception using persistence
>>
>> Ok, let me start from what the drools doc descripes at
>>
>>
> http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-flow/html_single/index.html#d0e1458
> 
>> Here is my code
>>
>>
>>      val kbuilder: KnowledgeBuilder =
>> KnowledgeBuilderFactory.newKnowledgeBuilder
>>
> kbuilder.add(ResourceFactory.newClassPathResource("processes/process4.rf"),
>> ResourceType.DRF);
>>
>>      val kbase: KnowledgeBase = kbuilder.newKnowledgeBase
>>
>>      val ds : PoolingDataSource = new PoolingDataSource()
>>      ds.setUniqueName("jdbc/processInstanceDS")
>>      ds.setClassName("org.h2.jdbcx.JdbcDataSource")
>>      ds.setMaxPoolSize(3)
>>      ds.setAllowLocalTransactions(true)
>>      ds.getDriverProperties().put("user", "sa")
>>      ds.getDriverProperties().put("password", "sasa")
>>      ds.getDriverProperties().put("URL",
>> "jdbc:h2:file:/NotBackedUp/data/process-instance-db")
>>      ds.init
>>
>>      val emf : EntityManagerFactory =
>> Persistence.createEntityManagerFactory( "org.drools.persistence.jpa" )
>>      val env : Environment = KnowledgeBaseFactory.newEnvironment()
>>      env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf )
>>
>>      val ksession : StatefulKnowledgeSession =
>> JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env )
>>      val sessionId = ksession.getId
>>
>>      ksession.startProcess( "Process4" )
>>      ksession.dispose();
>>
>>
>> and the persistence.xml:
>>
>>
>> <?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/persistence_1_0.xsd
>>       http://java.sun.com/xml/ns/persistence/orm
>>       http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
>>    xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
>>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>    xmlns="http://java.sun.com/xml/ns/persistence">
>>
>>    <persistence-unit name="org.drools.persistence.jpa">
>>      <provider>org.hibernate.ejb.HibernatePersistence</provider>
>>      <jta-data-source>jdbc/processInstanceDS</jta-data-source>
>>      <class>org.drools.persistence.session.SessionInfo</class>
>>
> <class>org.drools.persistence.processinstance.ProcessInstanceInfo</class>
> <class>org.drools.persistence.processinstance.variabletypes.VariableInstanceInfo</class>
>>      <class>org.drools.persistence.processinstance.WorkItemInfo</class>
>>
>>      <properties>
>>        <property name="hibernate.dialect"
>> value="org.hibernate.dialect.H2Dialect"/>
>>        <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>
>>
>>
>> Thats pretty much whats in the drools doc.
>>
>> But I get
>>
>>
>> 08.06.2010 13:31:52 org.hibernate.cfg.annotations.Version <clinit>
>> INFO: Hibernate Annotations 3.4.0.GA
>> 08.06.2010 13:31:52 org.hibernate.cfg.Environment <clinit>
>> INFO: Hibernate 3.3.0.SP1
>> 08.06.2010 13:31:52 org.hibernate.cfg.Environment <clinit>
>> INFO: hibernate.properties not found
>> 08.06.2010 13:31:52 org.hibernate.cfg.Environment buildBytecodeProvider
>> INFO: Bytecode provider name : javassist 08.06.2010 13:31:52
>> org.hibernate.cfg.Environment <clinit>
>> INFO: using JDK 1.4 java.sql.Timestamp handling 08.06.2010 13:31:52
>> org.hibernate.annotations.common.Version <clinit>
>> INFO: Hibernate Commons Annotations 3.1.0.GA 08.06.2010 13:31:52
>> org.hibernate.ejb.Version <clinit>
>> INFO: Hibernate EntityManager 3.4.0.GA
>> 08.06.2010 13:31:53 org.hibernate.cfg.AnnotationBinder bindClass
>> INFO: Binding entity from annotated class:
>> org.drools.persistence.session.SessionInfo
>> 08.06.2010 13:31:53 org.hibernate.cfg.annotations.EntityBinder bindTable
>> INFO: Bind entity org.drools.persistence.session.SessionInfo on table
>> SessionInfo 08.06.2010 13:31:53 org.hibernate.cfg.AnnotationBinder
>> bindClass
>> INFO: Binding entity from annotated class:
>> org.drools.persistence.processinstance.ProcessInstanceInfo
>> 08.06.2010 13:31:53 org.hibernate.cfg.annotations.EntityBinder bindTable
>> INFO: Bind entity
>> org.drools.persistence.processinstance.ProcessInstanceInfo on table
>> ProcessInstanceInfo 08.06.2010 13:31:53
>> org.hibernate.cfg.AnnotationBinder bindClass
>> INFO: Binding entity from annotated class:
>>
> org.drools.persistence.processinstance.variabletypes.VariableInstanceInfo
>> 08.06.2010 13:31:53 org.hibernate.cfg.annotations.EntityBinder bindTable
>> INFO: Bind entity
>>
> org.drools.persistence.processinstance.variabletypes.VariableInstanceInfo
>> on table VariableInstanceInfo
>> 08.06.2010 13:31:53 org.hibernate.cfg.AnnotationBinder bindClass
>> INFO: Binding entity from annotated class:
>> org.drools.persistence.processinstance.WorkItemInfo
>> 08.06.2010 13:31:53 org.hibernate.cfg.annotations.EntityBinder bindTable
>> INFO: Bind entity org.drools.persistence.processinstance.WorkItemInfo on
> 
>> table WorkItemInfo 08.06.2010 13:31:54
>> org.hibernate.cfg.annotations.CollectionBinder
>> bindOneToManySecondPass
>> INFO: Mapping collection:
>> org.drools.persistence.processinstance.ProcessInstanceInfo.variables ->
>> VariableInstanceInfo 08.06.2010 13:31:54
>> org.hibernate.cfg.AnnotationConfiguration
>> secondPassCompile
>> INFO: Hibernate Validator not found: ignoring 08.06.2010 13:31:54
>> org.hibernate.cfg.search.HibernateSearchEventListenerRegister
>> enableHibernateSearch
>> INFO: Unable to find
>> org.hibernate.search.event.FullTextIndexEventListener
>> on the classpath. Hibernate Search is not enabled.
>> 08.06.2010 13:31:54 org.hibernate.util.NamingHelper getInitialContext
>> INFO: JNDI InitialContext properties:{}
>> 08.06.2010 13:31:54
> org.hibernate.connection.DatasourceConnectionProvider
>> configure
>> INFO: Using datasource: jdbc/processInstanceDS 08.06.2010 13:31:56
>> org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: RDBMS: H2, version: 1.0.77 (2008-08-16) 08.06.2010 13:31:56
>> org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: JDBC driver: H2 JDBC Driver, version: 1.0.77 (2008-08-16)
>> 08.06.2010 13:31:56 org.hibernate.dialect.Dialect <init>
>> INFO: Using dialect: org.hibernate.dialect.H2Dialect 08.06.2010 13:31:56
> 
>> org.hibernate.transaction.TransactionFactoryFactory
>> buildTransactionFactory
>> INFO: Transaction strategy:
>> org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
>> 08.06.2010 13:31:56
>> org.hibernate.transaction.TransactionManagerLookupFactory
>> getTransactionManagerLookup
>> INFO: instantiating TransactionManagerLookup:
>> org.hibernate.transaction.BTMTransactionManagerLookup
>> 08.06.2010 13:31:56
>> org.hibernate.transaction.TransactionManagerLookupFactory
>> getTransactionManagerLookup
>> INFO: instantiated TransactionManagerLookup 08.06.2010 13:31:56
>> org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Automatic flush during beforeCompletion(): disabled 08.06.2010
>> 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Automatic session close at end of transaction: disabled 08.06.2010
> 
>> 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: JDBC batch size: 15
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: JDBC batch updates for versioned data: disabled 08.06.2010
>> 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Scrollable result sets: enabled
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: JDBC3 getGeneratedKeys(): enabled
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Connection release mode: auto
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Maximum outer join fetch depth: 3
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Default batch fetch size: 1
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Generate SQL with comments: disabled 08.06.2010 13:31:56
>> org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Order SQL updates by primary key: disabled 08.06.2010 13:31:56
>> org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Order SQL inserts for batching: disabled 08.06.2010 13:31:56
>> org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
>> INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
>> 08.06.2010 13:31:56 org.hibernate.hql.ast.ASTQueryTranslatorFactory
>> <init>
>> INFO: Using ASTQueryTranslatorFactory
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Query language substitutions: {}
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: JPA-QL strict compliance: enabled
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Second-level cache: enabled
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Query cache: disabled
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory
> createRegionFactory
>> INFO: Cache region factory :
>> org.hibernate.cache.impl.NoCachingRegionFactory
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Optimize cache for minimal puts: disabled 08.06.2010 13:31:56
>> org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Structured second-level cache entries: disabled 08.06.2010
>> 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Echoing all SQL to stdout
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Statistics: disabled
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Deleted entity synthetic identifier rollback: disabled 08.06.2010
>> 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Default entity-mode: pojo
>> 08.06.2010 13:31:56 org.hibernate.cfg.SettingsFactory buildSettings
>> INFO: Named query checking : enabled
>> 08.06.2010 13:31:56 org.hibernate.impl.SessionFactoryImpl <init>
>> INFO: building session factory
>> 08.06.2010 13:31:57 org.hibernate.impl.SessionFactoryObjectFactory
>> addInstance
>> INFO: Not binding factory to JNDI, no JNDI name configured 08.06.2010
>> 13:31:57 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
>> INFO: Running hbm2ddl schema update
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
>> INFO: fetching database metadata
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
>> INFO: updating schema
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: table found: PROCESS-INSTANCE-DB.PUBLIC.PROCESSINSTANCEINFO
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: columns: [externalvariables, startdate, lastreaddate, state,
>> processinstancebytearray, optlock, processid, lastmodificationdate,
>> processinstanceid] 08.06.2010 13:31:57
>> org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: foreign keys: []
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: indexes: [primary_key_4]
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: table found:
>> PROCESS-INSTANCE-DB.PUBLIC.PROCESSINSTANCEINFO_EVENTTYPES
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: columns: [element, processinstanceinfo_processinstanceid]
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: foreign keys: [fk2fd59d8cbee4613c] 08.06.2010 13:31:57
>> org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: indexes: [fk2fd59d8cbee4613c_index_b] 08.06.2010 13:31:57
>> org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: table found: PROCESS-INSTANCE-DB.PUBLIC.SESSIONINFO
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: columns: [rulesbytearray, id, startdate, dirty,
>> lastmodificationdate] 08.06.2010 13:31:57
>> org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: foreign keys: []
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: indexes: [primary_key_7]
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: table found: PROCESS-INSTANCE-DB.PUBLIC.VARIABLEINSTANCEINFO
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: columns: [id, persister, name, type, processid] 08.06.2010
>> 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: foreign keys: [fk7be49b9f9123c534] 08.06.2010 13:31:57
>> org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: indexes: [fk7be49b9f9123c534_index_2, primary_key_2] 08.06.2010
>> 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: table found: PROCESS-INSTANCE-DB.PUBLIC.WORKITEMINFO
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: columns: [workitembytearray, name, workitemid, state, optlock,
>> creationdate, processinstanceid] 08.06.2010 13:31:57
>> org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: foreign keys: []
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.TableMetadata <init>
>> INFO: indexes: [primary_key_b]
>> 08.06.2010 13:31:57 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
>> INFO: schema update complete
>> 08.06.2010 13:31:57 bitronix.tm.BitronixTransactionManager logVersion
>> INFO: Bitronix Transaction Manager version 1.3.2 08.06.2010 13:31:57
>> bitronix.tm.Configuration buildServerIdArray
>> WARNUNG: cannot get this JVM unique ID. Make sure it is configured and
>> you only use ASCII characters. Will use IP address instead (unsafe for
>> production usage!).
>> 08.06.2010 13:31:58 bitronix.tm.Configuration buildServerIdArray
>> INFO: JVM unique ID: <192.168.254.2>
>> 08.06.2010 13:31:58 bitronix.tm.journal.DiskJournal open
>> WARNUNG: active log file is unclean, previous server crash ?
>> 08.06.2010 13:31:58 bitronix.tm.recovery.Recoverer run
>> INFO: recovery committed 0 dangling transaction(s) and rolled back 0
>> aborted transaction(s) on 1 resource(s) [jdbc/processInstanceDS]
>> 08.06.2010 13:31:58 org.eclipse.jetty.util.log.Slf4jLog info
>> INFO: Logging to
>> org.slf4j.impl.JDK14LoggerAdapter(org.eclipse.jetty.util.log) via
>> org.eclipse.jetty.util.log.Slf4jLog
>> Exception in thread "main" java.lang.RuntimeException: Could not commit
>> session
>>         at
>>
> org.drools.persistence.session.SingleSessionCommandService.<init>(SingleSessionCommandService.java:133)
>>         at
>>
> org.drools.persistence.jpa.impl.JPAKnowledgeServiceProviderImpl.newStatefulKnowledgeSession(JPAKnowledgeServiceProviderImpl.java:44)
>>         at
>>
> org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:93)
>>         at com.rob.tests.AnyTest$.test2(AnyTest.scala:44)
>>         at com.rob.tests.AnyTest$.main(AnyTest.scala:18)
>>         at com.rob.tests.AnyTest.main(AnyTest.scala)
>> Caused by: javax.naming.NameNotFoundException; remaining name
>> 'UserTransaction'
>>         at
>> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:576)
>>         at
>> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:663)
>>         at
>> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:678)
>>         at
>>
> org.eclipse.jetty.jndi.java.javaRootURLContext.lookup(javaRootURLContext.java:110)
>>         at javax.naming.InitialContext.lookup(InitialContext.java:392)
>>         at
>>
> org.drools.persistence.session.SingleSessionCommandService.<init>(SingleSessionCommandService.java:109)
>>         ... 5 more
>>
>> (This test is in a class file called "AnyTest.scala")
>>
>> Cheers, Rob
>>
>> P.S. Thanks for your patience and help.
>>
>>
>> Am 08.06.2010, 09:44 Uhr, schrieb PAYET, Manuel
>> <manuel.payet at capgemini.com>:
>>
>>> Robert, what's your application server, or your transaction manager?
>>> I successfully tested with bitronix in my J2SE application, and with
>>> the jboss application server transaction manager.
>>>
>>> I don't have any further idea for your problem, but, from my own point
>>> of view, it's not so dirty to bind it to java:comp/UserTransaction,
>>> and is probably your only way to do things without patching the code
>>> (as you seem to have seen in the source code
>>> "java:comp/UserTransaction" is not in a variable so...
>>>
>>> -----Message d'origine-----
>>> De : robert.weissmann at web.de [mailto:robert.weissmann at web.de] Envoy? :
>>> lundi 7 juin 2010 20:50 ? : Rules Users List; Mark Proctor; PAYET,
>>> Manuel Objet : Re: [rules-users] Exception using persistence
>>>
>>> For additional information:
>>>
>>> JPAKnowledgeService.newStatefulKnowledgeSession uses
>>>
>>> org.drools.persistence.session.SingleSessionCommandService
>>>
>>> where "java:comp/UserTransaction" is used (I checked the drools source
>>> code). Looks like there is no way to change this.
>>>
>>> I just wonder that I am the only one having this problem.
>>>
>>> As I said "comp/UserTransaction" works, but "java:comp/UserTransaction"
>>> doesn't, but in the docs "java:comp/UserTransaction" is used !?!?!?
>>>
>>> Cheers, Rob.
>>>
>>> Am 07.06.2010, 16:22 Uhr, schrieb PAYET, Manuel
>>> <manuel.payet at capgemini.com>:
>>>
>>>> It's probably that your transaction manager, for an odd reason,
>>>> doesn't bind with the good name; You can do the following workaround:
>>>>
>>>> Final InitialContext initContext = new InitialContext();
>>>> initContext.bind("java:comp/UserTransaction",initContext.lookup("comp
>>>> /
>>>> UserTransaction"));
>>>>
>>>> And voila, those two jndi name should point to the same object.
>>>>
>>>> I stress the fact that what I've written hasn't been tested.
>>>>
>>>> -----Message d'origine-----
>>>> De : rules-users-bounces at lists.jboss.org
>>>> [mailto:rules-users-bounces at lists.jboss.org] De la part de Robert
>>>> Envoy? : lundi 7 juin 2010 16:16 ? : rules-users at lists.jboss.org;
>>>> Mark Proctor Objet : Re: [rules-users] Exception using persistence
>>>>
>>>> Hi,
>>>>
>>>> still struggling with this one (see below),
>>>>
>>>> but I did a slide change in the test-code
>>>>
>>>>      try {
>>>>        val env = new java.util.Hashtable[String, String]
>>>>        env.put(Context.INITIAL_CONTEXT_FACTORY,
>>>> "bitronix.tm.jndi.BitronixInitialContextFactory")
>>>>        val ctx = new InitialContext(env)
>>>>        val ut1 : UserTransaction = (ctx.lookup(
>>>> "java:comp/UserTransaction")).asInstanceOf[UserTransaction]
>>>>      } catch {
>>>>        case ex: Exception => ex.printStackTrace()
>>>>      }
>>>>
>>>> (Sorry, code is in Scala, but should not be a problem to read it).
>>>>
>>>> Instead of "java:comp/UserTransaction" (as written in the docs) I
>>>> wrote "comp/UserTransaction" and it works.
>>>>
>>>> But since this is some test-code and I am able to do the look-up as I
>>>> want ("comp/UserTransaction"), as soon as I use
>>>>
>>>>
>>>> JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env )
>>>>
>>>>
>>>> I have no influence anymore (its drools-code ;-) and it looks like
>>>> its using internally "java:comp/UserTransaction".
>>>>
>>>>
>>>> Is there any way to change this (setting it) ?
>>>>
>>>> Cheers, Rob
>>>>
>>>>
>>>>
>>>> Am 01.06.2010, 23:54 Uhr, schrieb Robert <robert.weissmann at web.de>:
>>>>
>>>>> Well, I tried this but it does not work.
>>>>>
>>>>> Checking additionally the BitronixInitialContextFactory API where it
>>>>> says:
>>>>>
>>>>> ---------------------------------------------
>>>>> "Implementation of InitialContextFactory that allows lookup of
>>>>> transaction manager and registered resources.
>>>>>
>>>>> The easiest way to use this provider is to create a jndi.properties
>>>>> file in your classpath with this content:
>>>>> java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextF
>>>>> a c tory Alternatively, you can create a InitialContext object with
>>>>> an environment pointing to this class:
>>>>>   Hashtable env = new Hashtable();
>>>>>   env.put(Context.INITIAL_CONTEXT_FACTORY,
>>>>> "bitronix.tm.jndi.BitronixInitialContextFactory");
>>>>>   Context ctx = new InitialContext(env);
>>>>>
>>>>> The transaction manager can be looked up at the standard URL
>>>>> java:comp/UserTransaction while resources can be looked up using
>>>>> their unique name as set in ResourceBean.getUniqueName(). "
>>>>> ---------------------------------------------
>>>>>
>>>>>
>>>>> So, I tried the following ( Its in Scala, but shouldn't be a problem
>>>>> to
>>>>> read):
>>>>>
>>>>>    try {
>>>>>      val env = new java.util.Hashtable[String, String]
>>>>>      env.put(Context.INITIAL_CONTEXT_FACTORY,
>>>>> "bitronix.tm.jndi.BitronixInitialContextFactory");
>>>>>      val ctx = new InitialContext(env);
>>>>>      val ut1 : UserTransaction = (ctx.lookup(
>>>>> "java:comp/UserTransaction"
>>>>> )).asInstanceOf[UserTransaction]
>>>>>    } catch {
>>>>>      case ex: Exception => ex.printStackTrace()
>>>>>    }
>>>>>
>>>>>
>>>>> But still getting the same problem as before at line   "val ut1 :
>>>>> ...".
>>>>>
>>>>> What I do not get is that the Bitronix API says that the standard
>>>>> URL is "java:comp/UserTransaction", but its somehow not found !?!?!?
>>>>>
>>>>> Any ideas ?
>>>>>
>>>>> Cheers, Rob.
>>>>>
>>>>>
>>>>>
>>>>> Am 31.05.2010, 02:54 Uhr, schrieb Mark Proctor
>>>>> <mproctor at codehaus.org>:
>>>>>
>>>>>> On 30/05/2010 20:28, Robert wrote:
>>>>>>> Hi, I followed the instructions on setting up the persistence in
>>>>>>> the drools flow doc, but I get the following exception:
>>>>>>>
>>>>>>>
>>>>>>> Exception in thread "main" java.lang.RuntimeException: Could not
>>>>>>> commit session
>>>>>>>   at
>>>>>>>
> org.drools.persistence.session.SingleSessionCommandService.<init>(SingleSessionCommandService.java:133)
>>>>>>>   at
>>>>>>>
> org.drools.persistence.jpa.impl.JPAKnowledgeServiceProviderImpl.newStatefulKnowledgeSession(JPAKnowledgeServiceProviderImpl.java:44)
>>>>>>>   at
>>>>>>>
> org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:93)
>>>>>>>   at
>>>>>>>
> com.rob.server.core.process.drools.tasks.DroolsProcessHandler.<init>(DroolsProcessHandler.scala:130)
>>>>>>>   at
>>>>>>>
> com.rob.server.core.process.drools.tasks.StartDroolsProcessHandler$.main(DroolsProcessHandler.scala:33)
>>>>>>>   at
>>>>>>> com.rob.server.core.process.drools.tasks.StartDroolsProcessHandler.
>>>>>>> m
>>>>>>> ain(DroolsProcessHandler.scala) Caused by:
>>>>>>> javax.naming.NameNotFoundException; remaining name
> 'UserTransaction'
>>>>>>>   at
>>>>>>> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:576)
>>>>>>>   at
>>>>>>> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:663)
>>>>>>>   at
>>>>>>> org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:678)
>>>>>>>   at
>>>>>>>
> org.eclipse.jetty.jndi.java.javaRootURLContext.lookup(javaRootURLContext.java:110)
>>>>>>>   at javax.naming.InitialContext.lookup(InitialContext.java:392)
>>>>>>>   at
>>>>>>>
> org.drools.persistence.session.SingleSessionCommandService.<init>(SingleSessionCommandService.java:109)
>>>>>>>   ... 5 more
>>>>>>>
>>>>>>>
>>>>>>> I have no idea what this means. I guess
>>>>>>> SingleSessionCommandService is looking up for "UserTransaction",
>>>>>>> but whats the "UserTransaction"
>>>>>>> ?
>>>>>>>
>>>>>> You need to configure JTA and JNDI, it uses the standard JNDI
>>>>>> lookup mechanism to find the UserTransaction it's to be associated
>>>>>> with.
>>>>>> See javadocs example here:
>>>>>> http://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artif
>>>>>> a
>>>>>> c
>>>>>> t/trunk/target/javadocs/stable/drools-api/org/drools/persistence/jp
>>>>>> a
>>>>>> /
>>>>>> JPAKnowledgeService.html
>>>>>>
>>>>>> Each transaction framework has a different way to be configured,
>>>>>> some are simpler than others.
>>>>>>
>>>>>> Mark
>>>>>>> Cheers, Rob.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> rules-users mailing list
>>>>>> rules-users at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>
>>>>
>>>> --
>>>> Erstellt mit Operas revolution?rem E-Mail-Modul:
>>>> http://www.opera.com/mail/
>>>> _______________________________________________
>>>> rules-users mailing list
>>>> rules-users at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> This message contains information that may be privileged or
>>>> confidential and is the property of the Capgemini Group. It is
>>>> intended only for the person to whom it is addressed. If you are not
>>>> the intended recipient, you are not authorized to read, print,
>>>> retain, copy, disseminate, distribute, or use this message or any
>>>> part thereof. If you receive this message in error, please notify the
>>>> sender immediately and delete all copies of this message.
>>>>
>>>>
>>>> _______________________________________________
>>>> rules-users mailing list
>>>> rules-users at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>
>> --
>> Erstellt mit Operas revolution?rem E-Mail-Modul:
>> http://www.opera.com/mail/
>>
>>
>>
>>
>>
>>
>> This message contains information that may be privileged or confidential
> 
>> and is the property of the Capgemini Group. It is
>> intended only for the person to whom it is addressed. If you are not the
> 
>> intended recipient, you are not authorized to
>> read, print, retain, copy, disseminate, distribute, or use this message
>> or any part thereof. If you receive this message
>> in error, please notify the sender immediately and delete all copies of
>> this message.
>>
> 
> 
> --
> Erstellt mit Operas revolution?rem E-Mail-Modul:
> http://www.opera.com/mail/
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100608/aeed5988/attachment.html
> 
> ------------------------------
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 
> End of rules-users Digest, Vol 43, Issue 36
> *******************************************
> Please consider the environment before printing this email.
> 
> Visit our website at http://www.nyse.com
> 
> ****************************************************
> 
> Note:  The information contained in this message and any attachment to it is privileged, confidential and protected from disclosure.  If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited.  If you have received this communication in error, please notify the sender immediately by replying to the message, and please delete it from your system.  Thank you.  NYSE Euronext.
> 
> 
> 
> 
> ------------------------------
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 
> End of rules-users Digest, Vol 43, Issue 37
> *******************************************

-- 
Ron Riley
Enterprise Technologies Manager
ITS
London School of Economics and Political Science
Houghton Street
London WC2A 2AE

T: 020 7955 6746
F: 020 7955 7600
its-e-development-team at lse.ac.uk
www.lse.ac.uk

Please access the attached hyperlink for an important electronic communications disclaimer: http://www.lse.ac.uk/collections/planningAndCorporatePolicy/legalandComplianceTeam/legal/disclaimer.htm



More information about the rules-users mailing list