5 Replies Latest reply on Sep 20, 2010 2:59 AM by jaikiran

    Hibernate Dialect for DefaultDS

    lafr

      Using JBoss-6.0.0-SNAPSHOT, how can I specify the hibernate dialect to use for the DefaultDS?

       

      The default hsqldb-ds.xml was replaced by this:

      <?xml version="1.0" encoding="UTF-8"?>
      <datasources>
        <xa-datasource>
          <jndi-name>DefaultDS</jndi-name>
          <track-connection-by-tx/>
          <isSameRM-override-value>false</isSameRM-override-value>
          <xa-datasource-class>com.informix.jdbcx.IfxXADataSource</xa-datasource-class>
          <xa-datasource-property name="IfxIFXHOST">sb2000</xa-datasource-property>
          <xa-datasource-property name="PortNumber">9088</xa-datasource-property>
          <xa-datasource-property name="DatabaseName">jboss6</xa-datasource-property>
          <xa-datasource-property name="ServerName">sb2000_net</xa-datasource-property>
          <xa-datasource-property name="User">xxx</xa-datasource-property>
          <xa-datasource-property name="Password">xxx</xa-datasource-property>
          <xa-datasource-property name="IfxLOBCACHE">-1</xa-datasource-property>
          <user-name>xxx</user-name>
          <password>xxx</password>
          <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.InformixExceptionSorter</exception-sorter-class-name>
          <metadata>
             <type-mapping>InformixDB</type-mapping>
          </metadata>
        </xa-datasource>
      </datasources>

       

      Using a database config from an ear file, the ear comes with an persistence.xml file which specifies the hibernate dialect, as InformixDialect in this case.

        • 1. Re: Hibernate Dialect for DefaultDS
          jaikiran

          The hibernate dialect needs to be specified in the persistence.xml file. And from what you mention, it looks like it already does?

          • 2. Re: Hibernate Dialect for DefaultDS
            lafr

            I have at least two databases in use.

            The DefaultDS as described for jboss instance data (timers, users and roles, etc.). Just the tables the App server needs.

            And then a second database used by my application deployed as an ear file.

            The ear file comes with an persistence.xml file to choose the right dialect (Informix or Oracle).

             

            But the DefaultDS is only used by the JBossAS itself.

            So the question for me is, how to specify for this one the right hibernate dialect?

             

            On startup I have this exception:

            22:29:26,275 INFO  [DatabaseMetadata] table not found: hibernate_sequence
            22:29:26,277 ERROR [SchemaUpdate] could not complete schema update: org.hibernate.MappingException: Dialect does not support pooled sequences
                at org.hibernate.dialect.Dialect.getCreateSequenceString(Dialect.java:734) [:3.5.5-Final]
                at org.hibernate.dialect.Dialect.getCreateSequenceStrings(Dialect.java:692) [:3.5.5-Final]
                at org.hibernate.id.enhanced.SequenceStructure.sqlCreateStrings(SequenceStructure.java:156) [:3.5.5-Final]
                at org.hibernate.id.enhanced.SequenceStyleGenerator.sqlCreateStrings(SequenceStyleGenerator.java:363) [:3.5.5-Final]
                at org.hibernate.cfg.Configuration.generateSchemaUpdateScript(Configuration.java:1142) [:3.5.5-Final]
                at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:187) [:3.5.5-Final]
                at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:386) [:3.5.5-Final]
                at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385) [:3.5.5-Final]
                at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954) [:3.5.5-Final]
                at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:891) [:3.5.5-Final]
                at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74) [:3.5.5-Final]

             

            Only the base class Dialect seems to be used, not a database specific one.

            • 3. Re: Hibernate Dialect for DefaultDS
              jaikiran

              Can you post that entire exception stacktrace? I want to see what code in JBoss AS (is it the AS6 timer service?) is using Hibernate. If it's the timerservice, then you specify the dialect in JBOSS_HOME/common/deploy/jboss-ejb3-timerservice-mk2.jar/META-INF/persistence.xml (since you mention you are using JBoss AS6 SNAPSHOT, that's the correct location).

              • 4. Re: Hibernate Dialect for DefaultDS
                lafr

                This is the context and the full stacktrace:

                22:29:24,868 INFO  [SessionFactoryObjectFactory] Factory name: persistence.unit:unitName=jboss-ejb3-timerservice-mk2.jar#timerdb
                22:29:24,875 INFO  [NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
                22:29:24,892 INFO  [SessionFactoryObjectFactory] Bound factory to JNDI name: persistence.unit:unitName=jboss-ejb3-timerservice-mk2.jar#timerdb
                22:29:24,893 WARN  [SessionFactoryObjectFactory] InitialContext did not implement EventContext
                22:29:24,949 INFO  [SchemaUpdate] Running hbm2ddl schema update
                22:29:24,950 INFO  [SchemaUpdate] fetching database metadata
                22:29:24,953 INFO  [SchemaUpdate] updating schema
                22:29:24,962 INFO  [DefaultTraversableResolver] Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
                22:29:25,234 INFO  [TableMetadata] table found: jboss6.mbi.timeoutmethod_methodparams
                22:29:25,235 INFO  [TableMetadata] columns: [methodparams, timeoutmethod_id]
                22:29:25,235 INFO  [TableMetadata] foreign keys: [r102_24]
                22:29:25,236 INFO  [TableMetadata] indexes: [ 102_24]
                22:29:25,765 INFO  [TableMetadata] table found: jboss6.mbi.calendar_timer
                22:29:25,766 INFO  [TableMetadata] columns: [scheduleexprtimezone, scheduleexprsecond, autotimer, scheduleexprstartdate, scheduleexprminute, scheduleexprhour, timeoutmethod_id, id, scheduleexprdayofmonth, scheduleexprenddate, scheduleexprmonth, scheduleexprdayofweek, scheduleexpryear]
                22:29:25,887 INFO  [TableMetadata] foreign keys: [r103_25, fk2b697f04e6e6ef93]
                22:29:25,887 INFO  [TableMetadata] indexes: [ 103_25,  103_9]
                22:29:26,070 INFO  [TableMetadata] table found: jboss6.mbi.timeout_method
                22:29:26,071 INFO  [TableMetadata] columns: [id, methodname, declaringclass]
                22:29:26,072 INFO  [TableMetadata] foreign keys: []
                22:29:26,072 INFO  [TableMetadata] indexes: [ 106_22]
                22:29:26,248 INFO  [TableMetadata] table found: jboss6.mbi.timer
                22:29:26,249 INFO  [TableMetadata] columns: [id, previousrun, initialdate, repeatinterval, timedobjectid, timerstate, nextdate, info]
                22:29:26,249 INFO  [TableMetadata] foreign keys: []
                22:29:26,250 INFO  [TableMetadata] indexes: [ 105_16]
                22:29:26,275 INFO  [DatabaseMetadata] table not found: hibernate_sequence
                22:29:26,277 ERROR [SchemaUpdate] could not complete schema update: org.hibernate.MappingException: Dialect does not support pooled sequences
                    at org.hibernate.dialect.Dialect.getCreateSequenceString(Dialect.java:734) [:3.5.5-Final]
                    at org.hibernate.dialect.Dialect.getCreateSequenceStrings(Dialect.java:692) [:3.5.5-Final]
                    at org.hibernate.id.enhanced.SequenceStructure.sqlCreateStrings(SequenceStructure.java:156) [:3.5.5-Final]
                    at org.hibernate.id.enhanced.SequenceStyleGenerator.sqlCreateStrings(SequenceStyleGenerator.java:363) [:3.5.5-Final]
                    at org.hibernate.cfg.Configuration.generateSchemaUpdateScript(Configuration.java:1142) [:3.5.5-Final]
                    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:187) [:3.5.5-Final]
                    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:386) [:3.5.5-Final]
                    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385) [:3.5.5-Final]
                    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954) [:3.5.5-Final]

                    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:891) [:3.5.5-Final]
                    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74) [:3.5.5-Final]
                    at org.jboss.jpa.builder.DefaultCEMFBuilder.build(DefaultCEMFBuilder.java:47) [:1.0.2-alpha-1]
                    at org.jboss.as.jpa.scanner.HackCEMFBuilder.build(HackCEMFBuilder.java:49) [:6.0.0-SNAPSHOT]
                    at org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:275) [:1.0.2-alpha-1]
                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_21]
                    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_21]
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_21]
                    at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_21]
                    at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:60) [jboss-reflect.jar:2.2.0.Alpha9]
                    at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168) [jboss-reflect.jar:2.2.0.Alpha9]
                    at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) [jboss-reflect.jar:2.2.0.Alpha9]
                    at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257) [jboss-kernel.jar:2.2.0.Alpha10]
                    at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-kernel.jar:2.2.0.Alpha10]
                    at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125) [jboss-kernel.jar:2.2.0.Alpha10]
                    at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72) [jboss-kernel.jar:2.2.0.Alpha10]
                    at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:202) [jboss-kernel.jar:2.2.0.Alpha10]
                    at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.Alpha10]
                    at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.Alpha10]

                   at org.jboss.system.ServiceController.doChange(ServiceController.java:671) [:6.0.0-SNAPSHOT (Build SVNTag:JBoss_6.0.0-SNAPSHOT date: 20100919)]

                    at org.jboss.system.ServiceController.start(ServiceController.java:443) [:6.0.0-SNAPSHOT (Build SVNTag:JBoss_6.0.0-SNAPSHOT date: 20100919)]

                    at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:189) [:6.0.0-SNAPSHOT]

                    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:102) [:6.0.0-SNAPSHOT]

                    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:49) [:6.0.0-SNAPSHOT]

                    at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) [:2.2.0.Alpha7]

                    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) [:2.2.0.Alpha7]

                    at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) [:2.2.0.Alpha7]

                    at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.0.Alpha7]

                    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.0.Alpha7]

                    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1571) [:2.2.0.Alpha7]

                    at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.0.Alpha7]

                    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.0.Alpha7]

                    at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.0.Alpha7]

                    at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.0.Alpha7]

                    at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.0.0-SNAPSHOT]

                    at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:130) [:0.1.0.Alpha1]

                    at org.jboss.profileservice.dependency.ProfileDeployAction.deploy(ProfileDeployAction.java:148) [:0.1.0.Alpha1]

                    at org.jboss.profileservice.dependency.ProfileDeployAction.installActionInternal(ProfileDeployAction.java:94) [:0.1.0.Alpha1]

                    at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.Alpha10]

                    at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.Alpha10]

                    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.Alpha10]

                   at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.Alpha10]
                    at org.jboss.profileservice.dependency.ProfileServiceController.activate(ProfileServiceController.java:188) [:0.1.0.Alpha1]
                    at org.jboss.profileservice.AbstractProfileService.activateProfile(AbstractProfileService.java:170) [:0.1.0.Alpha1]
                    at org.jboss.profileservice.bootstrap.AbstractProfileServiceBootstrap.activate(AbstractProfileServiceBootstrap.java:117) [:0.1.0.Alpha1]
                    at org.jboss.profileservice.resolver.BasicResolverFactory$ProfileResolverFacade.deploy(BasicResolverFactory.java:89) [:0.1.0.Alpha1]
                    at org.jboss.profileservice.bootstrap.AbstractProfileServiceBootstrap.start(AbstractProfileServiceBootstrap.java:97) [:0.1.0.Alpha1]
                    at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:130) [:6.0.0-SNAPSHOT]
                    at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:56) [:6.0.0-SNAPSHOT]
                    at org.jboss.bootstrap.impl.base.server.AbstractServer.startBootstraps(AbstractServer.java:827) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]
                    at org.jboss.bootstrap.impl.base.server.AbstractServer$StartServerTask.run(AbstractServer.java:417) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]
                    at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]

                • 5. Re: Hibernate Dialect for DefaultDS
                  jaikiran

                  So yes, it's the timerservice which is using the DefaultDS. Like I mentioned in my earlier reply, you can update the persistence.xml in the timerservice jar to use the Informix (or Oracle) dialect.