Persistence context injection problem - is it a bug ?
cyril.joui Jan 22, 2007 4:04 AMHello,
I have a very strange problem.
I try to deploy 2 applications (in the same JBoss AS) with same session and entity beans (and 1 persistence unit for each application of course !).
Application which deploies first, deploies well, but the second one try to use the unit context of the first application !
Here is the log (first application which deploies) :
09:49:15,219 INFO [EARDeployer] Init J2EE application: file:/home/popom/Documents/labosun/2006-2007/Devs/LaboSite/jboss/server/default/deploy/AppEjb1EAR.ear
09:49:15,935 INFO [Ejb3Deployment] EJB3 deployment time took: 531
09:49:16,004 INFO [JmxKernelAbstraction] installing MBean: persistence.units:ear=AppEjb1EAR.ear,jar=AppEjb1.jar,unitName=app1EM with dependencies:
09:49:16,006 INFO [JmxKernelAbstraction] jboss.jca:name=MysqlDS,service=DataSourceBinding
09:49:16,110 INFO [Version] Hibernate EntityManager 3.2.0.GA
09:49:16,192 INFO [Version] Hibernate Annotations 3.2.0.GA
09:49:16,202 INFO [Environment] Hibernate 3.2.0.ga
09:49:16,210 INFO [Environment] hibernate.properties not found
09:49:16,212 INFO [Environment] Bytecode provider name : javassist
09:49:16,218 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling
09:49:16,438 INFO [Ejb3Configuration] found EJB3 Entity bean: com.supinfo.entities.Category
09:49:16,443 WARN [Ejb3Configuration] Persistence provider caller does not implements the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
09:49:16,617 INFO [Configuration] Reading mappings from resource: META-INF/orm.xml
09:49:16,620 INFO [Ejb3Configuration] [PersistenceUnit: app1EM] no META-INF/orm.xml found
09:49:16,758 INFO [AnnotationBinder] Binding entity from annotated class: com.supinfo.entities.Category
09:49:16,878 INFO [EntityBinder] Bind entity com.supinfo.entities.Category on table LS3_CATEGORY
09:49:17,190 INFO [ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
09:49:17,194 INFO [InjectedDataSourceConnectionProvider] Using provided datasource
09:49:17,878 INFO [SettingsFactory] RDBMS: MySQL, version: 5.0.24a-Debian_9-log
09:49:17,878 INFO [SettingsFactory] JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-3.1.11 ( $Date: 2005-09-21 18:20:03 +0000 (Wed, 21 Sep 2005) $, $Revision: 4287 $ )
09:49:17,974 INFO [Dialect] Using dialect: org.hibernate.dialect.MySQLDialect
09:49:17,981 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
09:49:17,985 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
09:49:17,989 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
09:49:17,990 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
09:49:17,990 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
09:49:17,990 INFO [SettingsFactory] JDBC batch size: 15
09:49:17,990 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
09:49:17,991 INFO [SettingsFactory] Scrollable result sets: enabled
09:49:17,992 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): enabled
09:49:17,992 INFO [SettingsFactory] Connection release mode: auto
09:49:17,993 INFO [SettingsFactory] Maximum outer join fetch depth: 2
09:49:17,994 INFO [SettingsFactory] Default batch fetch size: 1
09:49:17,994 INFO [SettingsFactory] Generate SQL with comments: disabled
09:49:17,994 INFO [SettingsFactory] Order SQL updates by primary key: disabled
09:49:17,994 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
09:49:17,999 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
09:49:17,999 INFO [SettingsFactory] Query language substitutions: {}
09:49:18,000 INFO [SettingsFactory] JPA-QL strict compliance: enabled
09:49:18,000 INFO [SettingsFactory] Second-level cache: enabled
09:49:18,000 INFO [SettingsFactory] Query cache: disabled
09:49:18,000 INFO [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
09:49:18,002 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
09:49:18,003 INFO [SettingsFactory] Structured second-level cache entries: disabled
09:49:18,090 INFO [SettingsFactory] Statistics: disabled
09:49:18,091 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
09:49:18,092 INFO [SettingsFactory] Default entity-mode: pojo
09:49:18,201 INFO [SessionFactoryImpl] building session factory
09:49:18,540 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
09:49:18,547 INFO [SchemaUpdate] Running hbm2ddl schema update
09:49:18,547 INFO [SchemaUpdate] fetching database metadata
09:49:18,548 INFO [SchemaUpdate] updating schema
09:49:18,645 INFO [TableMetadata] table found: MYTESTS.LS3_CATEGORY
09:49:18,646 INFO [TableMetadata] columns: [code, idcateg, label, language]
09:49:18,646 INFO [TableMetadata] foreign keys: []
09:49:18,646 INFO [TableMetadata] indexes: [primary]
09:49:18,647 INFO [SchemaUpdate] schema update complete
09:49:18,651 INFO [NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
09:49:18,795 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=AppEjb1EAR.ear,jar=AppEjb1.jar,name=HelloServiceBean,service=EJB3 with dependencies:
09:49:18,796 INFO [JmxKernelAbstraction] persistence.units:ear=AppEjb1EAR.ear,jar=AppEjb1.jar,unitName=app1EM
09:49:19,054 INFO [EJBContainer] STARTED EJB: com.supinfo.session.bean.HelloServiceBean ejbName: HelloServiceBean
09:49:19,147 INFO [EJB3Deployer] Deployed: file:/home/popom/Documents/labosun/2006-2007/Devs/LaboSite/jboss/server/default/tmp/deploy/tmp1902AppEjb1EAR.ear-contents/AppEjb1.jar
And the second one (same application) :
09:49:19,158 INFO [EARDeployer] Init J2EE application: file:/home/popom/Documents/labosun/2006-2007/Devs/LaboSite/jboss/server/default/deploy/AppEjb2EAR.ear
09:49:19,304 INFO [Ejb3Deployment] EJB3 deployment time took: 15
09:49:19,308 INFO [JmxKernelAbstraction] installing MBean: persistence.units:ear=AppEjb2EAR.ear,jar=AppEjb2.jar,unitName=app2EM with dependencies:
09:49:19,308 INFO [JmxKernelAbstraction] jboss.jca:name=MysqlDS,service=DataSourceBinding
09:49:19,399 INFO [Ejb3Configuration] found EJB3 Entity bean: com.supinfo.entities.Category
09:49:19,400 WARN [Ejb3Configuration] Persistence provider caller does not implements the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
09:49:19,401 INFO [Configuration] Reading mappings from resource: META-INF/orm.xml
09:49:19,403 INFO [Ejb3Configuration] [PersistenceUnit: app2EM] no META-INF/orm.xml found
09:49:19,403 INFO [AnnotationBinder] Binding entity from annotated class: com.supinfo.entities.Category
09:49:19,404 INFO [EntityBinder] Bind entity com.supinfo.entities.Category on table LS3_CATEGORY
09:49:19,634 INFO [ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
09:49:19,635 INFO [InjectedDataSourceConnectionProvider] Using provided datasource
09:49:19,635 INFO [SettingsFactory] RDBMS: MySQL, version: 5.0.24a-Debian_9-log
09:49:19,635 INFO [SettingsFactory] JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-3.1.11 ( $Date: 2005-09-21 18:20:03 +0000 (Wed, 21 Sep 2005) $, $Revision: 4287 $ )
09:49:19,636 INFO [Dialect] Using dialect: org.hibernate.dialect.MySQLDialect
09:49:19,636 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
09:49:19,636 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
09:49:19,636 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
09:49:19,637 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
09:49:19,637 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
09:49:19,637 INFO [SettingsFactory] JDBC batch size: 15
09:49:19,637 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
09:49:19,637 INFO [SettingsFactory] Scrollable result sets: enabled
09:49:19,637 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): enabled
09:49:19,638 INFO [SettingsFactory] Connection release mode: auto
09:49:19,638 INFO [SettingsFactory] Maximum outer join fetch depth: 2
09:49:19,638 INFO [SettingsFactory] Default batch fetch size: 1
09:49:19,638 INFO [SettingsFactory] Generate SQL with comments: disabled
09:49:19,638 INFO [SettingsFactory] Order SQL updates by primary key: disabled
09:49:19,638 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
09:49:19,638 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
09:49:19,639 INFO [SettingsFactory] Query language substitutions: {}
09:49:19,640 INFO [SettingsFactory] JPA-QL strict compliance: enabled
09:49:19,640 INFO [SettingsFactory] Second-level cache: enabled
09:49:19,640 INFO [SettingsFactory] Query cache: disabled
09:49:19,640 INFO [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
09:49:19,640 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
09:49:19,640 INFO [SettingsFactory] Structured second-level cache entries: disabled
09:49:19,641 INFO [SettingsFactory] Statistics: disabled
09:49:19,641 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
09:49:19,641 INFO [SettingsFactory] Default entity-mode: pojo
09:49:19,651 INFO [SessionFactoryImpl] building session factory
09:49:19,658 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
09:49:19,658 INFO [SchemaUpdate] Running hbm2ddl schema update
09:49:19,659 INFO [SchemaUpdate] fetching database metadata
09:49:19,659 INFO [SchemaUpdate] updating schema
09:49:19,669 INFO [TableMetadata] table found: MYTESTS.LS3_CATEGORY
09:49:19,670 INFO [TableMetadata] columns: [code, idcateg, label, language]
09:49:19,671 INFO [TableMetadata] foreign keys: []
09:49:19,671 INFO [TableMetadata] indexes: [primary]
09:49:19,671 INFO [SchemaUpdate] schema update complete
09:49:19,671 INFO [NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
09:49:19,673 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=AppEjb2EAR.ear,jar=AppEjb2.jar,name=HelloServiceBean,service=EJB3 with dependencies:
<b>
09:49:19,673 INFO [JmxKernelAbstraction] persistence.units:unitName=app1EM
</b>
09:49:19,675 INFO [EJB3Deployer] Deployed: file:/home/popom/Documents/labosun/2006-2007/Devs/LaboSite/jboss/server/default/tmp/deploy/tmp1903AppEjb2EAR.ear-contents/AppEjb2.jar
09:49:19,764 INFO [EARDeployer] Started J2EE application: file:/home/popom/Documents/labosun/2006-2007/Devs/LaboSite/jboss/server/default/deploy/AppEjb2EAR.ear
Second application try to use app1EM instead of app2EM !
Here is the Session Bean of app1 :
@Stateless
@Local(HelloServiceLocal.class)
public class HelloServiceBean implements HelloServiceLocal {
@PersistenceContext(unitName = "app1EM")
private EntityManager em;
public String sayHello(String name) {
System.out.println("EM " + em);
return "hello : " + name;
}
}
Here is the session bean of app2 :
@Stateless
@Local(HelloServiceLocal.class)
public class HelloServiceBean implements HelloServiceLocal {
@PersistenceContext(unitName = "app2EM")
private EntityManager em;
public String sayHello(String name) {
System.out.println("EM " + em);
return "hello : " + name;
}
}
Does anyone can help me please ?
It seems to work on JBoss 4.0.4RC1 ... I try to use JBoss 4.0.5.GA now but I have this problem ...
Thanks by advance !!
Cyril