[jboss-user] [JBoss Seam] - Re: Separate database for jBPM

irVega do-not-reply at jboss.com
Sat Mar 24 11:32:08 EDT 2007


Thanks monkeyden. As I wrote, I have been trying various combinations of the things you mention while I try to learn how to develop a Seam application, about JBoss and Hibernate.

The idea is to have 2 separate databases; one to store the dvdstore business data only (my dvdstore hsqldb database) and the other, only for jBPM's use (my jBPM hsqldb database).

For all EntityManger declarations in the java code I have added unitName="dvdDatadtabase" to the PersistenceContext annotation (    eg in the AcceptAction class I have

  | @PersistenceContext(unitName="dvdDatabase",type=PersistenceContextType.EXTENDED)
  | EntityManager em;
  |  ).

I am running hsqldb in server mode (ie the jdbc driver and urls have been changed). I delete both databases manually, undeploy and then deploy the application (using the ant scripts which work perfectly well before I change the database settings). However, on successful deployment, my jBPM database has all the domain tables (ORDERS etc) and my dvdsore database has both sets of tables jBPM tables (ORDERS etc, plus, JBPM_EVENT etc).

The key config I have added/changed (in bold in the config files below) are

1 - In persistence.xml I have added a new persistence-unit name="dvdDatabasejBPM" pointing at the jBPM database

2 - In dvd-ds.xml I have added a new local-tx-datasource with jndi-name dvdDatasourcejBPM

3 - I have created jBPM.hibernate.cfg.xml, which is exactly the same as the hibernate.cfg.xml except have changed the connection.datasource property to java:/dvdDatasourcejBPM (I have not changed hibernate.cfg.xml)

4 - I have added  to jBPM.cfg.xml .

Nothing else has changed and all the files are packaged up correctly in the ear and contained war and jar.

Any ideas on what I am missing? Is there something I can read that tells me the relationships between all these files (and if settings in any of them take precedence over the other) and the differences between seam managed and other database settings?



Here are my configuration files:
--------------------------------------------------------
persistence.xml

  | <?xml version="1.0" encoding="UTF-8"?>
  | <persistence xmlns="http://java.sun.com/xml/ns/persistence" 
  |              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
  |              version="1.0">
  |    <persistence-unit name="dvdDatabase">
  |       <provider>org.hibernate.ejb.HibernatePersistence</provider>
  |       <jta-data-source>java:/dvdDatasource</jta-data-source>
  |       <properties>
  |          <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
  |          <property name="hibernate.cache.use_query_cache" value="true"/>
  |          <property name="hibernate.show_sql" value="true"/>
  | 
  |          <property name="hibernate.cache.provider_class" 
  |                    value="org.hibernate.cache.HashtableCacheProvider"/>
  |       </properties>
  |    </persistence-unit>
  |    <persistence-unit name="dvdDatabasejBPM">
  |       <provider>org.hibernate.ejb.HibernatePersistence</provider>
  |       <jta-data-source>java:/dvdDatasourcejBPM</jta-data-source>
  |       <properties>
  |          <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
  |          <property name="hibernate.cache.use_query_cache" value="true"/>
  |          <property name="hibernate.show_sql" value="true"/>
  | 
  |          <property name="hibernate.cache.provider_class" 
  |                    value="org.hibernate.cache.HashtableCacheProvider"/>
  |       </properties>
  |    </persistence-unit>
  | </persistence>
  | 
--------------------------------------------------------
dvd-ds.xml

<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <datasources>
  | 	<local-tx-datasource>
  | 		<jndi-name>dvdDatasource</jndi-name>
  | 		<!--<connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}dvd</connection-url> -->
  | 		<connection-url>
  | 			jdbc:hsqldb:hsql://localhost/dvd_server
  | 		</connection-url>
  | 		<driver-class>org.hsqldb.jdbcDriver</driver-class>
  | 		<user-name>sa</user-name>
  | 		<password></password>
  | 	</local-tx-datasource>
  | 
  | 	<local-tx-datasource>
  | 		<jndi-name>dvdDatasourcejBPM</jndi-name>
  | 		<connection-url>
  | 			jdbc:hsqldb:hsql://localhost/jBPM
  | 		</connection-url>
  | 		<driver-class>org.hsqldb.jdbcDriver</driver-class>
  | 		<user-name>sa</user-name>
  | 		<password></password>
  | 	</local-tx-datasource>
  | 
  | </datasources>
--------------------------------------------------------
jBPM.cfg.xml

<jbpm-configuration>
  | 
  |   <jbpm-context>
  |     <string name="resource.hibernate.cfg.xml" value="jbpm.hibernate.cfg.xml" />
  |     <service name="persistence">
  |        <factory>
  |           <bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
  |              <field name="isTransactionEnabled"><false/></field>
  |           </bean>
  |        </factory>
  |     </service>
  |     <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" />
  |     <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
  |     <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
  |     <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
  |   </jbpm-context>
  | 
  | </jbpm-configuration>

--------------------------------------------------------
jBPM.hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
  | 
  | <!DOCTYPE hibernate-configuration PUBLIC
  |           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  |           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  | 
  | <hibernate-configuration>
  |   <session-factory>
  | 
  |     <property name="show_sql">true</property>
  |     <property name="connection.datasource">java:/dvdDatasourcejBPM</property>
  |     <property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
  |     <property name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
  |     <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
  |     <property name="hbm2ddl.auto">create-drop</property>
  |     <!--property name="transaction.flush_before_completion">true</property-->
  |     
  |     <!-- ############################################ -->
  |     <!-- # mapping files with external dependencies # -->
  |     <!-- ############################################ -->
  | 
  |     <!-- following mapping file has a dependendy on   -->
  |     <!-- 'bsh-{version}.jar'.                         -->
  |     <!-- uncomment this if you don't have bsh on your -->
  |     <!-- classpath.  you won't be able to use the     -->
  |     <!-- script element in process definition files   -->
  |     <!-- 
  |     <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
  |     -->
  | 
  |     <!-- following mapping files have a dependendy on  -->
  |     <!-- 'jbpm-identity-{version}.jar', mapping files  -->
  |     <!-- of the pluggable jbpm identity component.     -->
  |     <!-- comment out the following 3 lines if you don't-->
  |     <!-- want to use the default jBPM identity mgmgt   -->
  |     <!-- component                                     -->
  |     
  |     <!-- 
  |     <mapping resource="org/jbpm/identity/User.hbm.xml"/>
  |     <mapping resource="org/jbpm/identity/Group.hbm.xml"/>
  |     <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
  |     -->
  | 
  |     <!-- ###################### -->
  |     <!-- # jbpm mapping files # -->
  |     <!-- ###################### -->
  | 
  |     <!-- hql queries and type defs -->
  |     <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
  |     
  |     <!-- graph.def mapping files -->
  |     <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
  |     <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
  | 
  |     <!-- graph.node mapping files -->
  |     <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
  | 
  |     <!-- context.def mapping files -->
  |     <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
  | 
  |     <!-- taskmgmt.def mapping files -->
  |     <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
  | 
  |     <!-- module.def mapping files -->
  |     <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
  | 
  |     <!-- bytes mapping files -->
  |     <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
  | 
  |     <!-- file.def mapping files -->
  |     <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
  | 
  |     <!-- scheduler.def mapping files -->
  |     <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
  |     <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
  | 
  |     <!-- graph.exe mapping files -->
  |     <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
  | 
  |     <!-- module.exe mapping files -->
  |     <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
  |         
  |     <!-- context.exe mapping files -->
  |     <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
  | 
  |     <!-- msg.db mapping files -->
  |     <mapping resource="org/jbpm/msg/Message.hbm.xml"/>
  |     <mapping resource="org/jbpm/msg/db/TextMessage.hbm.xml"/>
  |     <mapping resource="org/jbpm/command/ExecuteActionCommand.hbm.xml"/>
  |     <mapping resource="org/jbpm/command/ExecuteNodeCommand.hbm.xml"/>
  |     <mapping resource="org/jbpm/command/SignalCommand.hbm.xml"/>
  |     <mapping resource="org/jbpm/command/TaskInstanceEndCommand.hbm.xml"/>
  | 
  |     <!-- taskmgmt.exe mapping files -->
  |     <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
  | 
  |     <!-- scheduler.exe mapping files -->
  |     <mapping resource="org/jbpm/scheduler/exe/Timer.hbm.xml"/>
  | 
  |     <!-- logging mapping files -->
  |     <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
  |     <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
  |     
  |   </session-factory>
  | </hibernate-configuration>
  | 











 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4031293#4031293

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4031293



More information about the jboss-user mailing list