Uploaded image for project: 'EJB 3.0'
  1. EJB 3.0
  2. EJBTHREE-681

Ejb 3 Deployment separated into different jars that have persistence dependencies cause a jacc initialisation error

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • EJB 3.0 RC8 - FD
    • None
    • None

    Description

      We separated the jboss trails deployment into two different jar's (persistence and stateless session beans).

      The ear (ejb3-trials-ear.ear) contains two jar modules (ejb3-trials-ejb.jar & ejb3-trials-persistence.jar). The ejb3-trials-ejb.jar is deployed as fist module but it has a dependency to the ejb3-trials-persistence.jar because it uses the EntityManager from ejb3-trials-persistence.

      Therefore the ejb container of ejb3-trials-ejb.jar is started after the ejb3-trials-ejb.jar modules. This causes an error with the jacc initialisation. The policy is committed before the ejb container could register is permissions. When the stateless ejb containers add the permissions afterwards, the committed policy will be removed and never committed again.

      Because the ejb module commits the jacc policy, the ejb containers providing the permissions must be stated before the module.

      Here the steps:

      Ejb3Deployment.registerEJBContainer()
      object name : jboss.j2ee:service=EJB3,ear=ejb3-trials-ear.ear,jar=ejb3-trials-ejb.jar,name=EntityCalculator
      dependencies : persistence.units:ear=ejb3-trials-ear.ear,unitName=ejb3-trials-persistence

      Ejb3Module.startService()
      service name : jboss.j2ee:service=EJB3,module=ejb3-trials-ejb.jar

      • JACC contextID ejb3-trials-ejb.jar is commited
        -> This is an error because it should be waited until ALL container of this module are started

      Ejb3Module.startService()
      service name: jboss.j2ee:service=EJB3,module=ejb3-trials-persistence.jar

      • dependencie from jar=ejb3-trials-ejb.jar to ejb3-trials-persistence.jar is resolved and the stateless container is started

      StatelessContainer.start()
      ejb3-trials-ejb.jar

      • JACC contextID ejb3-trials-ejb.jar
        Adds stuff to the policy

      Ejb3Module.startService()
      service name: jboss.j2ee:service=EJB3,module=ejb3-trials-persistence.jar

      08:36:44,308 INFO [org.jboss.deployment.EARDeployer] Init J2EE application: file:/C:/eplatform/jboss/4.0/server/eplatform-development/deploy/ejb3-trials-ear.ear
      08:36:44,428 WARN [org.jboss.deployment.MainDeployer] Found non-jar deployer for ejb3-trials-persistence.jar: MBeanProxyExt[jboss.ejb3:service=EJB3Deployer]
      08:36:44,438 WARN [org.jboss.deployment.MainDeployer] Found non-jar deployer for ejb3-trials-persistence.jar: MBeanProxyExt[jboss.ejb3:service=EJB3Deployer]
      08:36:44,599 INFO [org.jboss.ejb3.Ejb3Deployment] EJB3 deployment time took: 111
      08:36:44,689 INFO [org.jboss.ejb3.Ejb3Deployment] EJB3 deployment time took: 50
      08:36:44,759 INFO [org.jboss.deployment.ClientDeployer] Client ENC bound under: ejb3-trials-client
      08:36:44,789 INFO [org.jboss.ejb3.JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=ejb3-trials-ear.ear,jar=ejb3-trials-ejb.jar,name=EntityCalculator,service=EJB3 with dependencies:
      08:36:44,789 INFO [org.jboss.ejb3.JmxKernelAbstraction] persistence.units:ear=ejb3-trials-ear.ear,unitName=ejb3-trials-persistence
      08:36:44,809 DEBUG [com.winterthur.jackpot.security.jacc.JackpotPolicyConfiguration.ejb3-trials-ear.ear] linkConfiguration, linkTo: ejb3-trials-ejb.jar
      08:36:44,809 DEBUG [com.winterthur.jackpot.security.jacc.JackpotPolicyConfiguration.ejb3-trials-ejb.jar] commit
      08:36:44,809 INFO [org.jboss.ejb3.EJB3Deployer] Deployed: file:/C:/eplatform/jboss/4.0/server/eplatform-development/tmp/deploy/tmp11029ejb3-trials-ear.ear-contents/ejb3-trials-ejb.jar
      08:36:44,819 INFO [org.jboss.ejb3.JmxKernelAbstraction] installing MBean: persistence.units:ear=ejb3-trials-ear.ear,unitName=ejb3-trials-persistence with dependencies:
      08:36:44,819 INFO [org.jboss.ejb3.JmxKernelAbstraction] jboss.jca:name=DefaultDS,service=ManagedConnectionFactory
      08:36:44,849 INFO [org.hibernate.ejb.Ejb3Configuration] Processing PersistenceUnitInfo [
      name: ejb3-trials-persistence
      ...]
      08:36:44,859 INFO [org.hibernate.ejb.Ejb3Configuration] found EJB3 Entity bean: trail.entity.beans.Record
      08:36:44,869 INFO [org.hibernate.ejb.Ejb3Configuration] found EJB3 Entity bean: trail.entity.beans.TimedRecord
      08:36:44,869 INFO [org.hibernate.ejb.Ejb3Configuration] found EJB3 Entity bean: trail.entity.beans.Investor
      08:36:44,869 INFO [org.hibernate.ejb.Ejb3Configuration] found EJB3 Entity bean: trail.entity.beans.Fund
      08:36:44,869 WARN [org.hibernate.ejb.Ejb3Configuration] Persistence provider caller does not implements the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
      08:36:44,899 INFO [org.hibernate.cfg.Configuration] Reading mappings from resource: META-INF/orm.xml
      08:36:44,899 INFO [org.hibernate.ejb.Ejb3Configuration] [PersistenceUnit: ejb3-trials-persistence] no META-INF/orm.xml found
      08:36:44,919 INFO [org.hibernate.cfg.AnnotationBinder] Binding entity from annotated class: trail.entity.beans.Record
      08:36:44,919 INFO [org.hibernate.cfg.annotations.EntityBinder] Bind entity trail.entity.beans.Record on table record
      08:36:44,959 INFO [org.hibernate.cfg.AnnotationBinder] Binding entity from annotated class: trail.entity.beans.TimedRecord
      08:36:44,969 INFO [org.hibernate.cfg.AnnotationBinder] Binding entity from annotated class: trail.entity.beans.Investor
      08:36:44,969 INFO [org.hibernate.cfg.annotations.EntityBinder] Bind entity trail.entity.beans.Investor on table investor
      08:36:44,969 INFO [org.hibernate.cfg.AnnotationBinder] Binding entity from annotated class: trail.entity.beans.Fund
      08:36:44,979 INFO [org.hibernate.cfg.annotations.EntityBinder] Bind entity trail.entity.beans.Fund on table FUND
      08:36:45,089 INFO [org.hibernate.connection.ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
      08:36:45,089 INFO [org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider] Using provided datasource
      08:36:45,089 INFO [org.hibernate.cfg.SettingsFactory] RDBMS: DB2/SUN, version: SQL08022
      08:36:45,089 INFO [org.hibernate.cfg.SettingsFactory] JDBC driver: IBM DB2 JDBC Universal Driver Architecture, version: 2.8.46
      08:36:45,089 INFO [org.hibernate.dialect.Dialect] Using dialect: org.hibernate.dialect.FirebirdDialect
      08:36:45,099 INFO [org.hibernate.transaction.TransactionFactoryFactory] Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
      08:36:45,099 INFO [org.hibernate.transaction.TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
      08:36:45,099 INFO [org.hibernate.transaction.TransactionManagerLookupFactory] instantiated TransactionManagerLookup
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Automatic flush during beforeCompletion(): disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Automatic session close at end of transaction: disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Scrollable result sets: enabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] JDBC3 getGeneratedKeys(): disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Connection release mode: auto
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Default batch fetch size: 1
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Generate SQL with comments: disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Order SQL updates by primary key: disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
      08:36:45,099 INFO [org.hibernate.hql.ast.ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Query language substitutions: {}
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Second-level cache: enabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Query cache: disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Optimize cache for minimal puts: disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Structured second-level cache entries: disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Statistics: disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Deleted entity synthetic identifier rollback: disabled
      08:36:45,099 INFO [org.hibernate.cfg.SettingsFactory] Default entity-mode: pojo
      08:36:45,119 INFO [org.hibernate.impl.SessionFactoryImpl] building session factory
      08:36:45,229 INFO [org.hibernate.impl.SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
      08:36:45,240 INFO [org.hibernate.util.NamingHelper] JNDI InitialContext properties:

      {java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}

      08:36:45,280 DEBUG [com.winterthur.jackpot.jboss.transport.Ejb3SubjectDelegationCheckInterceptor] Ejb3SubjectDelegationCheckInterceptor is enabled.
      08:36:45,530 DEBUG [com.winterthur.jackpot.security.jacc.JackpotPolicyConfiguration.ejb3-trials-ejb.jar] addToUncheckedPolicy, p=(javax.security.jacc.EJBMethodPermission EntityCalculator getFunds,,)[*:getFunds()]
      08:36:45,530 INFO [org.jboss.ejb3.EJBContainer] STARTED EJB: trail.entity.basic.EntityCalculator ejbName: EntityCalculator

      Attachments

        Activity

          People

            Unassigned Unassigned
            wv-javacoder Roland Räz (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: