3 Replies Latest reply on Jan 19, 2005 12:17 AM by cjohan

    jboss-4.0.1 and hypersonic via tcp connection.

    megapter

      Hi to all,
      I've installed jboss-4.0.1 and I have configured HSQL to run in client-server mode. I get an error at the jboss bootstrap (with jboss-4.0.0 all works fine). Can someone help me?
      An extract from the log follows:


      17:09:33,972 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.mq:service=InvocationLayer,type=HTTP
      state: CONFIGURED
      I Depend On: jboss.mq:service=Invoker
      jboss.web:service=WebServer

      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=StateManager
      state: CONFIGURED
      I Depend On: jboss.jca:name=DefaultDS,service=DataSourceBinding

      Depends On Me: jboss.mq:service=DestinationManager

      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:name=testTopic,service=Topic
      jboss.mq.destination:name=securedTopic,service=Topic
      jboss.mq.destination:name=testDurableTopic,service=Topic
      jboss.mq.destination:name=testQueue,service=Queue
      jboss.mq.destination:name=A,service=Queue
      jboss.mq.destination:name=B,service=Queue
      jboss.mq.destination:name=C,service=Queue
      jboss.mq.destination:name=D,service=Queue
      jboss.mq.destination:name=ex,service=Queue
      jboss.mq:service=SecurityManager
      jboss.mq.destination:name=DLQ,service=Queue

      ObjectName: jboss.mq:service=PersistenceManager
      state: CONFIGURED
      I Depend On: jboss.jca:name=DefaultDS,service=DataSourceBinding

      Depends On Me: jboss.mq:service=DestinationManager

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

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

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

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

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

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

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

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

      Depends On Me:
      ObjectName: jboss.mq.destination:name=ex,service=Queue
      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:name=testTopic,service=Topic
      jboss.mq.destination:name=securedTopic,service=Topic
      jboss.mq.destination:name=testDurableTopic,service=Topic
      jboss.mq.destination:name=testQueue,service=Queue
      jboss.mq:service=TracingInterceptor
      jboss.mq.destination:name=DLQ,service=Queue

      ObjectName: jboss.mq.destination:name=DLQ,service=Queue
      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=InvocationLayer,type=UIL2
      state: CONFIGURED
      I Depend On: jboss.mq:service=Invoker

      Depends On Me:
      ObjectName: jboss.jca:name=DefaultDS,service=LocalTxCM
      state: CONFIGURED
      I Depend On: jboss.jca:name=DefaultDS,service=ManagedConnectionPool
      jboss.jca:service=CachedConnectionManager
      jboss.security:service=JaasSecurityManager
      jboss:service=TransactionManager

      Depends On Me: jboss.jca:name=DefaultDS,service=DataSourceBinding

      ObjectName: jboss.jca:name=DefaultDS,service=ManagedConnectionPool
      state: CONFIGURED
      I Depend On: jboss.jca:name=DefaultDS,service=ManagedConnectionFactory

      Depends On Me: jboss.jca:name=DefaultDS,service=LocalTxCM

      ObjectName: jboss.jca:name=DefaultDS,service=ManagedConnectionFactory
      state: CONFIGURED
      I Depend On: jboss:database=localDB,service=Hypersonic
      jboss.jca:name='jboss-local-jdbc.rar',service=RARDeployment

      Depends On Me: jboss.jca:name=DefaultDS,service=ManagedConnectionPool

      ObjectName: jboss.jca:name=DefaultDS,service=DataSourceBinding
      state: CONFIGURED
      I Depend On: jboss.jca:name=DefaultDS,service=LocalTxCM
      jboss:service=invoker,type=jrmp

      Depends On Me: jboss.ejb:persistencePolicy=database,service=EJBTimerService
      jboss:service=KeyGeneratorFactory,type=HiLo
      jboss.mq:service=StateManager
      jboss.mq:service=PersistenceManager


      MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM:
      ObjectName: jboss:database=localDB,service=Hypersonic
      state: NOTYETINSTALLED
      I Depend On:
      Depends On Me: jboss.jca:name=DefaultDS,service=ManagedConnectionFactory


      17:09:35,511 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8080
      17:09:35,907 INFO [ChannelSocket] JK2: ajp13 listening on /0.0.0.0:8009
      17:09:36,104 INFO [JkMain] Jk running ID=0 time=1/266 config=null
      17:09:36,146 INFO [Server] JBoss (MX MicroKernel) [4.0.1 (build: CVSTag=JBoss_4_0_1 date=200412230944)] Started in 1m:7s:182ms

        • 1. Re: jboss-4.0.1 and hypersonic via tcp connection.

          This is your problem:

          MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM:
          ObjectName: jboss:database=localDB,service=Hypersonic
          state: NOTYETINSTALLED
          I Depend On:
          Depends On Me: jboss.jca:name=DefaultDS,service=ManagedConnectionFactory


          Look in hsqldb-ds.xml at the bottom of your local-tx-datasource that you changed. You probably have a dependency on jboss:database=localDB,service=Hypersonic but you removed that service
          and replaced it with jboss:service=Hypersonic. Try updating the depends to point the correct service.


          • 2. Re: jboss-4.0.1 and hypersonic via tcp connection.
            megapter

            Sorry, I commented out the last
            tag.
            Now all seems to be running and I can proceed with my training.

            Many thanks Norman.

            • 3. Re: jboss-4.0.1 and hypersonic via tcp connection.
              cjohan

              I had the same problem as above initially. Then after commenting out

              <depends>jboss:service=Hypersonic,database=localDB</depends>
              

              I got a much more serious error that caused jboss-4.0.1 to loop indefinitely after complaining:
              2005-01-18 19:20:42,129 WARN [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Throwable while attempting to get a new connection: null
              org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: socket creation error)
              at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:161)
              at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:508)
              at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:207)
              ------------------
              Finally, I saw the suggested fix above, but it was ambiguous about exactly what to do to fix it. Eventually, I figured it out, but for the sake of others who might have the same problem here is the entire hsqldb-ds.xml file changed so Hypersonic will use port 1701:
              <?xml version="1.0" encoding="UTF-8"?>
              
              <!-- The Hypersonic embedded database JCA connection factory config
              $Id: hsqldb-ds.xml,v 1.15 2004/09/15 14:37:40 loubyansky Exp $ -->
              
              <datasources>
               <local-tx-datasource>
               <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
               <!-- Datasources are not available outside the virtual machine -->
               <jndi-name>DefaultDS</jndi-name>
              
               <!-- for tcp connection, allowing other processes to use the hsqldb
               database. This requires the org.jboss.jdbc.HypersonicDatabase mbean.
              -->
               <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
              
               <!-- for totally in-memory db, not saved when jboss stops.
               The org.jboss.jdbc.HypersonicDatabase mbean necessary
               <connection-url>jdbc:hsqldb:.</connection-url>
              -->
               <!-- for in-process persistent db, saved when jboss stops. The
               org.jboss.jdbc.HypersonicDatabase mbean is necessary for properly db shutdown
               <connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
              -->
              
               <!-- The driver class -->
               <driver-class>org.hsqldb.jdbcDriver</driver-class>
              
               <!-- The login and password -->
               <user-name>sa</user-name>
               <password></password>
              
               <!--example of how to specify class that determines if exception means connection should be destroyed-->
               <!--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-->
              
               <!-- this will be run before a managed connection is removed from the pool for use by a client-->
               <!--<check-valid-connection-sql>select * from something</check-valid-connection-sql> -->
              
               <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
               <min-pool-size>5</min-pool-size>
              
               <!-- The maximum connections in a pool/sub-pool -->
               <max-pool-size>20</max-pool-size>
              
               <!-- The time before an unused connection is destroyed -->
               <!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use -->
               <!-- TEMPORARY FIX! - Disable idle connection removal, HSQLDB has a problem with not reaping threads on closed connections -->
               <idle-timeout-minutes>0</idle-timeout-minutes>
              
               <!-- 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
               <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
               -->
              
               <!-- example of how to specify a class that determines a connection is valid before it is handed out from the pool
               <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker</valid-connection-checker-class-name>
               -->
              
               <!-- Whether to check all statements are closed when the connection is returned to the pool,
               this is a debugging feature that should be turned off in production -->
               <track-statements/>
              
               <!-- Use the getConnection(user, pw) for logins
               <application-managed-security/>
               -->
              
               <!-- Use the security domain defined in conf/login-config.xml -->
               <security-domain>HsqlDbRealm</security-domain>
              
               <!-- Use the security domain defined in conf/login-config.xml or the
               getConnection(user, pw) for logins. The security domain takes precedence.
               <security-domain-and-application>HsqlDbRealm</security-domain-and-application>
               -->
              
               <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
               <metadata>
               <type-mapping>Hypersonic SQL</type-mapping>
               </metadata>
              
               <!-- This mbean can be used when using in process persistent hypersonic
               <depends>jboss:service=Hypersonic,database=localDB</depends>
               -->
               <depends>jboss:service=Hypersonic</depends>
               </local-tx-datasource>
              
               <!-- This mbean should be used only when using tcp connections. Uncomment
               when the tcp based connection-url is used.
               -->
               <mbean code="org.jboss.jdbc.HypersonicDatabase"
               name="jboss:service=Hypersonic">
               <attribute name="Port">1701</attribute>
               <attribute name="Silent">true</attribute>
               <attribute name="Database">default</attribute>
               <attribute name="Trace">false</attribute>
               <attribute name="No_system_exit">true</attribute>
               </mbean>
              
               <!-- This mbean can be used when using in process persistent db
               <mbean code="org.jboss.jdbc.HypersonicDatabase"
               name="jboss:service=Hypersonic,database=localDB">
               <attribute name="Database">localDB</attribute>
               <attribute name="InProcessMode">true</attribute>
               </mbean>
               -->
              </datasources>