2 Replies Latest reply on Jan 22, 2007 9:25 AM by jsbegley

    MBean indicators

    jsbegley

      JBoss is bundled with third party software for an enterprise labeling solution. We run it on Windows2K3, and though the server starts, the DSBinding bean throws an error:

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

      Depends On Me:

      MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM:
      ObjectName: jboss.jca:name=DefaultDS,service=DataSourceBinding
      state: NOTYETINSTALLED
      I Depend On:
      Depends On Me: jboss.ejb:persistencePolicy=database,service=EJBTimerService
      jboss:service=KeyGeneratorFactory,type=HiLo

      Also, on the JMX console, the main management page indicates that the server is not running; MBean for Running returns false, and the invoke routine does nothing to change that. Are the two related?

        • 1. Re: MBean indicators
          genman



          MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM:
          ObjectName: jboss.jca:name=DefaultDS,service=DataSourceBinding


          There should be a default-ds.xml file that defines how JBoss connects to a database and somehow this config is likely wrong. There is (by shipped default) HSQLDB. What does this file have?

          • 2. Re: MBean indicators
            jsbegley

            THe HSQLDB-DS.xml file looks like this:

            <?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 $

            -->
            -
            - <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>

            - <!-- 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)
            -->
            -
            <type-mapping>Hypersonic SQL</type-mapping>

            - <!-- This mbean can be used when using in process persistent hypersonic
            -->
            jboss:service=Hypersonic,database=localDB
            </local-tx-datasource>
            - <!--
            This mbean should be used only when using tcp connections. Uncomment
            when the tcp based connection-url is used.

            1701
            true
            default
            false
            true



            -->
            - <!-- This mbean can be used when using in process persistent db
            -->
            -
            localDB
            true




            And the file we use as default looks like

            -
            - <local-tx-datasource>
            <jndi-name>DB2DS</jndi-name>
            <connection-url>jdbc:db2:mvs.xxxxxx</connection-url>
            <driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>
            <user-name>xxxxxx</user-name>
            xxxxxxx
            </local-tx-datasource>
            - <local-tx-datasource>
            <jndi-name>jdbc/clr</jndi-name>
            <connection-url>jdbc:oracle:thin:@xxxxxxxxxx</connection-url>
            <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
            <user-name>orbit_clm</user-name>
            orbit_clm
            <max-pool-size>20</max-pool-size>
            <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
            </local-tx-datasource>


            I know that the Oracle connection is valid, but I am not sure of the DB2 connection, since that is an older connection string to a legacy application