4 Replies Latest reply on Oct 21, 2004 4:44 AM by SaurabhVyas

    Duke tutorial JBoss 4.0 unable to create table

    Darrell Adams Newbie

      Started JBOSS 4.0. Get the following error when trying to create tables

      db-create-table:
      [java] java.sql.SQLException: socket creation error
      [java] at org.hsqldb.jdbc.jdbcUtil.sqlException(Unknown Source)
      [java] at org.hsqldb.jdbc.jdbcConnection.(Unknown Source)
      [java] at org.hsqldb.jdbcDriver.getConnection(Unknown Source)
      [java] at org.hsqldb.jdbcDriver.connect(Unknown Source)
      [java] at java.sql.DriverManager.getConnection(DriverManager.java:512)
      [java] at java.sql.DriverManager.getConnection(DriverManager.java:171)
      [java] at org.hsqldb.util.ScriptTool.execute(Unknown Source)
      [java] at org.hsqldb.util.ScriptTool.main(Unknown Source)
      [java] java.lang.NullPointerException
      [java] at org.hsqldb.util.ScriptTool.execute(Unknown Source)
      [java] at org.hsqldb.util.ScriptTool.main(Unknown Source)
      [java] ScriptTool.init error: socket creation error
      [java] Exception in thread "main"

      [java] Java Result: 1

      Thought I had done everything tutorial required - obviously missed something. Heres my hsqldb-ds.xml; which I put in each of the deploy directories just to ensure wasnt executing out of wrong one.

      <?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
      -->
      <--
      COMMENTING OUT TO RUN DUKE TUTORIAL
      <connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
      -->

      <-- USING TO RUN DUKE TUTORIAL - ALSO SEE MBEAN AT END
      FOR TCPIP CONNECTIONS -->
      <connection-url>jdbc:hsqldb:hsql://localhost:1701</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 -->
      <!-- COMMENT OUT FOR DUKE TUTORIAL
      jboss:service=Hypersonic,database=localDB
      -->
      <!-- CHANGED FOR DUKE TUTORIAL -->
      jboss:service=Hypersonic

      </local-tx-datasource>

      <!-- This mbean should be used only when using tcp connections. Uncomment
      when the tcp based connection-url is used.
      UNCOMMENTING TO RUN DUKE TUTORIAL
      -->

      1701
      true
      default
      false
      true


      <!-- This mbean can be used when using in process persistent db
      COMMENTING TO RUN DUKE TUTORIAL

      localDB
      true

      -->


      Any help appreciated. Thanks.

        • 1. Re: Duke tutorial JBoss 4.0 unable to create table
          Alex Newbie

          If you've gotten to db-create-tables and everything else in ANT went OK.
          Then I think the only problem is the hsqldb-ds.xml file.

          I'm having trouble posting my response though.
          Greater/Less-than replaces with [brackets].

          HERE's A WORKING TOP:

          Uncommented:
          [jndi-name] DefaultDS[/jndi-name]

          Uncommented:
          [connection-url] jdbc:hsqldb:hsql://localhost:1701 [/connection-url]

          Commented
          [!-- for totally in-memory db, not saved when jboss stops.
          The org.jboss.jdbc.HypersonicDatabase mbean necessary
          [connection-url] jdbc:hsqldb:. [/connection-url]
          --]

          Commented:
          [!-- 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]
          --]


          AND A WORKING BOTTOM:

          Uncommented:

          [!-- 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]

          Uncommented:
          [!-- 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]

          • 2. Re: Duke tutorial JBoss 4.0 unable to create table
            worldheart Newbie

            The Chinese Edition of

            <<Getting Started with JBoss J2EE Applications on JBoss 4.0>>

            can be downloaded from the following site:

            http://www.open-v.com

            Enjoy yourself!

            • 3. Re: Duke tutorial JBoss 4.0 unable to create table
              Darrell Adams Newbie

              My chinese is rusy (i.e. non-existant). Is this different from the English version and if so where can I find a translation. After using the suggested definition file; I still had the same error. Thanks for trying.

              • 4. Duke tutorial JBoss 4.0 unable to create table
                SaurabhVyas Newbie

                Hi
                I am using JBoss4.0 and i am getting error somewhat similar to that mentioned earlier in this question. This error comes when i deploy the .ear file of my project into the deploy folder of JBoss4.0. This .ear file works nicely with JBoss3.2.2 but with Jboss4.0 it is giving error shown below. I am using HSQL as database.

                ====================== my error =================================
                17:12:57,234 ERROR [EntityContainer] Starting failed jboss.j2ee:jndiName=ApplicationInfo,service=EJB
                org.jboss.deployment.DeploymentException: Could not load class: org.jboss.ejb.plugins.cmp.jdbc.hsqldb.JDBCHsqldbCreateCommand
                at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCEntityCommandMetaData.(JDBCEntityCommandMetaData.java:112)
                at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCEntityMetaData.(JDBCEntityMetaData.java:906)
                at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.(JDBCApplicationMetaData.java:363)
                at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:75)
                at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadJDBCEntityMetaData(JDBCStoreManager.java:721)
                at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.initStoreManager(JDBCStoreManager.java:409)
                at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.start(JDBCStoreManager.java:353)
                at org.jboss.ejb.plugins.CMPPersistenceManager.start(CMPPersistenceManager.java:157)
                at org.jboss.ejb.EntityContainer.startService(EntityContainer.java:340)
                at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:271)
                at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:221)
                at sun.reflect.GeneratedMethodAccessor2.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)[B]EntityContainer[/B][B]org.jboss.deployment.DeploymentException[/B]

                ===============================================================
                If someone can help me out to solve this error than i would be thankful
                Saurabh