4 Replies Latest reply on Dec 2, 2004 8:56 PM by chesterxgchen

    using Oracle8i as the default DS

    John Lewis Newbie

      I want to use 8i as the default datasource. I have changed the 'DefaultDS' id for my 'OracleDS' and set up the oracle-ds.xml files etc.

      Have I changed something I shouldn't have or is there something else I haven't yet changed, because on server startup I'm getting the following error:

      09:05:45,809 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
      MBeans waiting for other MBeans:
      ObjectName: jboss.mq:service=InvocationLayer,type=HTTP
      state: CONFIGURED
      I Depend On: jboss.mq:service=Invoker
      jboss.web:service=WebServer

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Topic,name=testTopic
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Topic,name=securedTopic
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Topic,name=testDurableTopic
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Queue,name=testQueue
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Queue,name=A
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Queue,name=B
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Queue,name=C
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Queue,name=D
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager

      Depends On Me:
      ObjectName: jboss.mq.destination:service=Queue,name=ex
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager

      Depends On Me:
      ObjectName: jboss.mq:service=Invoker
      state: CONFIGURED
      I Depend On: jboss.mq:service=TracingInterceptor

      Depends On Me: jboss.mq:service=InvocationLayer,type=HTTP
      jboss.mq:service=InvocationLayer,type=JVM
      jboss.mq:service=InvocationLayer,type=UIL2

      ObjectName: jboss.mq:service=TracingInterceptor
      state: CONFIGURED
      I Depend On: jboss.mq:service=SecurityManager

      Depends On Me: jboss.mq:service=Invoker

      ObjectName: jboss.mq:service=SecurityManager
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager

      Depends On Me: jboss.mq.destination:service=Topic,name=testTopic
      jboss.mq.destination:service=Topic,name=securedTopic
      jboss.mq.destination:service=Topic,name=testDurableTopic
      jboss.mq.destination:service=Queue,name=testQueue
      jboss.mq:service=TracingInterceptor
      jboss.mq.destination:service=Queue,name=DLQ

      ObjectName: jboss.mq.destination:service=Queue,name=DLQ
      state: CONFIGURED
      I Depend On: jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager

      Depends On Me:
      ObjectName: jboss.mq:service=InvocationLayer,type=JVM
      state: CONFIGURED
      I Depend On: jboss.mq:service=Invoker

      Depends On Me:
      ObjectName: jboss.mq:service=DestinationManager
      state: CONFIGURED
      I Depend On: jboss.mq:service=MessageCache
      jboss.mq:service=PersistenceManager
      jboss.mq:service=StateManager

      Depends On Me: jboss.mq.destination:service=Topic,name=testTopic
      jboss.mq.destination:service=Topic,name=securedTopic
      jboss.mq.destination:service=Topic,name=testDurableTopic
      jboss.mq.destination:service=Queue,name=testQueue
      jboss.mq.destination:service=Queue,name=A
      jboss.mq.destination:service=Queue,name=B
      jboss.mq.destination:service=Queue,name=C
      jboss.mq.destination:service=Queue,name=D
      jboss.mq.destination:service=Queue,name=ex
      jboss.mq:service=SecurityManager
      jboss.mq.destination:service=Queue,name=DLQ

      ObjectName: jboss.mq:service=InvocationLayer,type=UIL2
      state: CONFIGURED
      I Depend On: jboss.mq:service=Invoker

      Depends On Me:

      MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM:
      ObjectName: jboss.mq:service=StateManager
      state: NOTYETINSTALLED
      I Depend On:
      Depends On Me: jboss.mq:service=DestinationManager


        • 1. Re: using Oracle8i as the default DS
          Michael Arndt Newbie

          The JBoss-JMS-Implementation (look at all these example topics and queues...) persists (depending on the configuration, sure) the messages. Where? By default in the DefaultDS.

          Two ways to solve the problem (at least):

          1. Do not replace the DefaultDS by your OracleDS but add your OracleDS, and then modify your <jboss_home>\server\<your_config_dir_eg_default>\conf\standardjbosscmp-jdbc.xml:

          <defaults>
           <datasource>java:/DefaultDS</datasource>
           <datasource-mapping>Hypersonic SQL</datasource-mapping>
           [...]
          </defaults>


          to

          <defaults>
           <datasource>java:/OracleDS</datasource>
           <datasource-mapping>Oracle8</datasource-mapping>
           [...]
          </defaults>
          

          Very global defaults :-( . Or add an defaults-node in your jbosscmp-jdbc.xml in the META-INF-dir of your ejb-jar.

          2. Modify the JMS-Deployment provided with JBoss. Look at the jms-subdirectory in the deploy-directory and maybe start by reading the comment after the -tag :-)


          • 2. Re: using Oracle8i as the default DS (only with JBoss 4.0.0
            chesterxgchen Newbie

            I have the same problem in JBoss 4.0.0. Even though this is work fine with JBoss 4.0.0RC1.

            Machine: Linux Federo Core 1
            JBoss version 4.0.0
            Database Oracle 8i
            using JDBC thin Driver. ojdbc14.jar

            Here is what I did and exception I got.

            I used the jboss-4.0.0/server/default

            as the baseline, and created my own config by copy the ../server/default to /opt/webware/jboss/sunshine2

            in ../conf/jbossstandardcmp-jdbc.xml, I have change the datasource to use my database name

            
            <jbosscmp-jdbc>
            
             <defaults>
             <datasource>java:/ZG-DATA-SOURCE</datasource>
             <datasource-mapping>Oracle8</datasource-mapping>
             [...]
            


            in ../deploy/jms directory

            I deleted hypersonic database related configuration file, then copied
            the oracle-jdbc2-service.xml to this directory.

            I also have jms-ds.xml in this directory


            in ../deploy directory

            I copied the oracle-ds.xml from ../docs/examples/jca to this directory and modified the datasource etc.

            
            <datasources>
             <local-tx-datasource>
             <jndi-name>ZG-DATA-SOURCE</jndi-name>
             <connection-url>jdbc:oracle:thin:@myhost:1521:DB1</connection-url>
             <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
             <user-name>mylogin</user-name>
             <password>mypassword</password>
             <!-- Checks the Oracle error codes and messages for fatal errors -->
             <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
             <!-- sql to call when connection is created
             <new-connection-sql>some arbitrary sql</new-connection-sql>
             -->
            
             <!-- sql to call on an existing pooled connection when it is obtained from pool - the OracleValidConnectionChecker is prefered
             <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
             -->
            
             <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
             <metadata>
             <type-mapping>Oracle8i</type-mapping>
             </metadata>
             </local-tx-datasource>
            
            </datasources>
            


            But when I started the jboss server, I got the following messages:

            16:46:57,069 INFO [ConnectionFactoryBindingService] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:name=JmsXA,service=ConnectionFactoryBinding to JNDI name 'java:JmsXA'
            16:46:57,336 INFO [TomcatDeployer] deploy, ctxPath=/web-console, warUrl=file:/opt/webware/jboss/sunshine2/deploy/management/web-console.war/
            16:46:58,723 INFO [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=file:/opt/webware/jboss/sunshine2/deploy/jmx-console.war/
            16:46:59,026 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
            MBeans waiting for other MBeans:
            ObjectName: jboss.ejb:persistencePolicy=database,service=EJBTimerService
             state: CONFIGURED
             I Depend On: jboss.jca:name=DefaultDS,service=DataSourceBinding
            
             Depends On Me:
            ObjectName: jboss:service=Ebxmlrr
             state: CONFIGURED
             I Depend On: jboss.web:service=WebServer
             jboss.jca:name=DefaultDS,service=DataSourceBinding
            
             Depends On Me:
            ObjectName: jboss:service=KeyGeneratorFactory,type=HiLo
             state: CONFIGURED
             I Depend On: jboss:service=TransactionManager
             jboss.jca:name=DefaultDS,service=DataSourceBinding
            
             Depends On Me:
            ObjectName: jboss.mq:service=Invoker
             state: CONFIGURED
             I Depend On: jboss.mq:service=TracingInterceptor
            
             Depends On Me: jboss.mq:service=InvocationLayer,type=JVM
            [............................ ]
            
            



            If I deploy my ear file now, I will get:



            16:52:12,898 ERROR [DLQHandler] Initialization failed DLQHandler
            javax.jms.JMSException: Error creating the dlq connection: XAConnectionFactory not bound
             at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:166)
             at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:237)
             at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:164)
             at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerCreate(JMSContainerInvoker.java:545)
             at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:767)
             at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:271)
             at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:221)
             at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source)
             at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
             at java.lang.reflect.Method.invoke(Method.java:324)
             at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
             at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
             at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
             at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
             at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
             at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:891)
             at $Proxy207.start(Unknown Source)
             at org.jboss.system.ServiceController.start(ServiceController.java:416)
             at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
             at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
             at java.lang.reflect.Method.invoke(Method.java:324)
             at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
             at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
             at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
             at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
             at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
             at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:170)
             at org.jboss.ejb.MessageDrivenContainer.startService(MessageDrivenContainer.java:262)
             at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:271)
             at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:221)
             at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source)
             at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
             at java.lang.reflect.Method.invoke(Method.java:324)
             at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
             at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
             at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
             at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
             at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
             at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:891)
             at $Proxy0.start(Unknown Source)
             at org.jboss.system.ServiceController.start(ServiceController.java:416)
             at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
             at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
             at java.lang.reflect.Method.invoke(Method.java:324)
             at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
            [.............]
            


            I have tried to move jms-ds.xml from ../deploy/jms to /deploy and few other tricks and the result is still the same.



            I have done the exactly the same configuraion in JBoss 4.0.0RC1 and it works fine. I don't know what has been changed in configuration from 4.0.0RC1 to 4.0.0.

            Can some one give me a pointer ?



            Thanks

            Chester









            • 3. Re: using Oracle8i as the default DS
              null null Newbie

              Hello Chester,
              could you please let me know if you have got the answer. I have exactly same problem. It works fine on jboss-4.0.0RC1 but not in jboss-4.0.0

              thanks in advance.

              Bassie

              • 4. Re: using Oracle8i as the default DS
                chesterxgchen Newbie

                Ok, I found the solution, after many hours searching
                in /deploy/jms directory

                Following the documentation to do the following:
                1. copy oracle-jdbc2-service.xml from <jboss-4.0.0>/docs/examples/jms/
                directory and modified the data source JDNI name.
                2. delete hsqldb-jdbc2-service.xml

                Now, the undocumented part:
                3. rename hsqldb-jdbc-state-service.xml to oracle-jdbc-state-service.xml
                and change the data source JDNI name

                Now if you start the jboss now. The errors are gone. This solution was first reported in
                the following link.

                http://www.mail-archive.com/jboss-user@lists.sourceforge.net/msg60921.html



                Chester