0 Replies Latest reply on Jan 27, 2005 5:57 PM by imm102

    HSQL config

    imm102

      Hi,

      Ive been trying to get a simple EJB that accesses the database working but having a lot of trouble. Im using the default hypersonic database and ive changed nothing except for the hsqldb-ds.xml file following the getting started guide.

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


      Im asking a few questions here so bare with me. The guide says that the second to last mbean should be uncommented. Should the last one be commented out as it seems to conflict or does it not matter. There is also another url-connection tab

      <connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>

      should this be commented out? does hsql support primary keys? ive tried to add on in a create statement and i end up with unexpected token errors.

      Also is the default datasource referenced by the jndi name java:/DefaultDS or java:DefaultDS or will either do. Im just asking because the console output displays one name and the xml displays another.

      Im new at this so any help would be great. :)

      Ian