[jboss-user] [JBoss Seam] - Seam with 2 datasources (Postgres+MySQL)

manuel_fidalgo do-not-reply at jboss.com
Wed Oct 31 12:32:43 EDT 2007


Hello, Im working with SEAM 1.2.1 and I have two datasources: one is from a Postgres database (and works fine) and the other one is for a MySQL database ('WP7Datasource', which doesn't work).
The problem is that when I start JBoss i get this error:

16:58:20,968 INFO  [SessionFactoryImpl] building session factory
17:08:39,718 WARN  [ServiceController] Problem starting service persistence.units:ear=medieq-aqua.ear,jar=medieq-aqua.jar,unitName=WP7Datasource
javax.persistence.PersistenceException: org.hibernate.MappingException: could not instantiate id generator
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:695)
	at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
	at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
...

Caused by: org.hibernate.MappingException: could not instantiate id generator
	at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:98)
	at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:152)
	at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:192)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:688)
	... 147 more
Caused by: org.hibernate.MappingException: Dialect does not support sequences
	at org.hibernate.dialect.Dialect.getSequenceNextValString(Dialect.java:570)
	at org.hibernate.id.SequenceGenerator.configure(SequenceGenerator.java:65)
	at org.hibernate.id.SequenceHiLoGenerator.configure(SequenceHiLoGenerator.java:43)
	at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:94)

....


the datasources are defined here:

<?xml version="1.0" encoding="UTF-8"?>
  | <datasources>
  | 	<local-tx-datasource>
  | 		<jndi-name>medieqDatasource</jndi-name>
  | 		<connection-url>
  | 			jdbc:postgresql://localhost:5432/medieqdev
  | 		</connection-url>
  | 		<driver-class>org.postgresql.Driver</driver-class>
  | 		<user-name>****</user-name>
  | 		<password>****</password>
  | 		<connection-property name="char.encoding">
  | 			UTF-8
  | 		</connection-property>
  | 		<transaction-isolation>
  | 			TRANSACTION_READ_COMMITTED
  | 		</transaction-isolation>
  | 		<min-pool-size>25</min-pool-size>
  | 		<max-pool-size>100</max-pool-size>
  | 		<blocking-timeout-millis>5000</blocking-timeout-millis>
  | 		<idle-timeout-minutes>15</idle-timeout-minutes>
  | 		<prepared-statement-cache-size>
  | 			75
  | 		</prepared-statement-cache-size>
  | 	</local-tx-datasource>
  | 	
  | 	<!-- add datasource for UMLS MYSQL database (Manuel Fidalgo)-->
  | 	<local-tx-datasource>
  | 	  <jndi-name>WP7Datasource</jndi-name> 
  | 	  <connection-url>jdbc:mysql://localhost/umls</connection-url> 
  | 	  <driver-class>com.mysql.jdbc.Driver</driver-class> 
  | 	  <user-name>***</user-name> 
  | 	  <password>***</password> 
  | 	  <connection-property name="char.encoding">UTF-8</connection-property> 
  | 	  <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> 
  | 	  <min-pool-size>25</min-pool-size> 
  | 	  <max-pool-size>100</max-pool-size> 
  | 	  <blocking-timeout-millis>5000</blocking-timeout-millis> 
  | 	  <idle-timeout-minutes>15</idle-timeout-minutes> 
  | 	  <prepared-statement-cache-size>75</prepared-statement-cache-size> 
  | 	  <metadata> <type-mapping>mySQL</type-mapping></metadata> 
  |   	</local-tx-datasource>
  | </datasources>


and the persistence.xml is this:

<persistence>
  |    <persistence-unit name="medieqDatasource">
  |       <provider>org.hibernate.ejb.HibernatePersistence</provider>
  |       <jta-data-source>java:/medieqDatasource</jta-data-source>
  |       <properties>
  |          <!-- create-drop -->
  |          <property name="hibernate.hbm2ddl.auto" value="validate"/>
  |          <property name="hibernate.show_sql" value="true"/>
  |          <!-- These are the default for JBoss EJB3, but not for HEM: /-->
  |          <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
  |          <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
  |          <property name="jboss.entity.manager.factory.jndi.name" value="java:/medieqEntityManagerFactory"/>
  |       </properties>
  |    </persistence-unit>
  |    
  |    <!-- MySQL UMLS database Manuel Fidalgo -->
  | 	<persistence-unit name="WP7Datasource">
  | 		<provider>org.hibernate.ejb.HibernatePersistence</provider>
  | 		<jta-data-source>java:/WP7Datasource</jta-data-source>
  | 		<properties>
  | 			<property name="hibernate.hbm2ddl.auto" value="validate" /> 
  | 			<property name="hibernate.cache.use_query_cache" value="true" />
  | 			<property name="hibernate.show_sql" value="true" />
  | 			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
  | 			<property name="hibernate.connection.username" value="***" />
  | 			<property name="hibernate.connection.password" value="***" />
  | 			<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
  | 			<property name="hibernate.connection.url" value="jdbc:mysql://localhost/umls" />
  | 			<property name="jboss.entity.manager.factory.jndi.name" value="java:/WP7EntityManagerFactory" />
  | 			<property name="hibernate.jdbc.use_get_generated_keys" value="false" />
  | 		</properties>
  | 	</persistence-unit>
  | </persistence>


Both databases are working and I can connect to them via JDBC. I have no entities  for the MySQL database but is should work...I think that the problem is that the configuration forces MySQL to use id generators and it doesnt work but I don't know why it uses this generators and if I could turn off this feature (only for MySQL)... Any help will be apreciated...

thanks


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

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



More information about the jboss-user mailing list