[rules-users] Multiple Object Referencing problem

Esteban Aliverti esteban.aliverti at gmail.com
Tue Jun 8 09:54:30 EDT 2010


Just like David says, could you paste you java code and rules here?

Best,

2010/6/8 David Sinclair <dsinclair at chariotsolutions.com>

> Sorry, I don't have access to that code. If you post the code, we may be
> able to give you more help.
>
> dave
>
>
> On Tue, Jun 8, 2010 at 9:28 AM, Fnu Mahalakshmi <FMahalakshmi at nyx.com>wrote:
>
>>
>> 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
>>
>
>
> _______________________________________________
> 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/b86444b0/attachment.html 


More information about the rules-users mailing list