[rules-users] Multiple Object Referencing problem

David Sinclair dsinclair at chariotsolutions.com
Tue Jun 8 09:46:29 EDT 2010


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100608/2dbd2529/attachment.html 


More information about the rules-users mailing list