3 Replies Latest reply on Jan 9, 2008 7:53 AM by mussie

    hsqldb-ds configuration for server-mode!?

    mussie

      hello forum,
      I'm trying to build a database aplication with jboss and could not make my
      data persistent. I allready changed the persistence from create-drop to update in the seam booking example.
      So here is my question:
      is it correct that I have to change the hsqldb into server mode to make the
      data persistent?
      I tried to do so by changing the hsqldb-ds.xml in my deploy directory. But when I start my hsql database manager it is still in in-memory type only the URL changed to jdbc:hsqldb:hsql://127.0.0.1:1701.
      Does anyone know why my database engine doesn't convert to server based persistence?
      This is how my hsqldb-ds looks like.

      <?xml version="1.0" encoding="UTF-8"?>
      
      <!-- The Hypersonic embedded database JCA connection factory config -->
      
      <!-- $Id: hsqldb-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $ -->
      
      <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 server mode db, allowing other processes to use hsqldb over tcp.
       This requires the org.jboss.jdbc.HypersonicDatabase mbean.-->
       <connection-url>jdbc:hsqldb:hsql://${jboss.bind.address}:1701</connection-url>
      
       <!-- For totally in-memory db, not saved when jboss stops.
       The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
       <connection-url>jdbc:hsqldb:.</connection-url>
       -->
       <!-- For in-process persistent db, saved when jboss stops.
       The org.jboss.jdbc.HypersonicDatabase mbean is required for proper 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>
       -->
      
       <!-- HSQL DB benefits from prepared statement caching -->
       <prepared-statement-cache-size>32</prepared-statement-cache-size>
      
       <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
       <metadata>
       <type-mapping>Hypersonic SQL</type-mapping>
       </metadata>
      
       <!-- When using in-process (standalone) mode
       <depends>jboss:service=Hypersonic,database=localDB</depends>-->
       <!-- Uncomment when using hsqldb in server mode-->
       <depends>jboss:service=Hypersonic</depends>
      
       </local-tx-datasource>
      
       <!-- Uncomment if you want hsqldb accessed over tcp (server mode)-->
       <mbean code="org.jboss.jdbc.HypersonicDatabase"
       name="jboss:service=Hypersonic">
       <attribute name="Port">1701</attribute>
       <attribute name="BindAddress">${jboss.bind.address}</attribute>
       <attribute name="Silent">true</attribute>
       <attribute name="Database">default</attribute>
       <attribute name="Trace">false</attribute>
       <attribute name="No_system_exit">true</attribute>
       </mbean>
      
      
       <!-- For hsqldb accessed from jboss only, in-process (standalone) mode
       <mbean code="org.jboss.jdbc.HypersonicDatabase"
       name="jboss:service=Hypersonic,database=localDB">
       <attribute name="Database">localDB</attribute>
       <attribute name="InProcessMode">true</attribute>
       </mbean>
       -->
      </datasources>
      


      thanks and best regards,
      Mussie

        • 1. Re: hsqldb-ds configuration for server-mode!?
          mussie

          Is this the right place to post my question or should I post it to HSQL Forum?
          Anyway if someone knows what is wrong with my hsqldb-ds I'd appreciate it or
          is there a tutorial or example with Jboss Java5 and HSQL persistence (not in memory).
          Because this is all I need an example of an application where I can store user acounts
          in a hsqldb not only as long as the server runs. I want to find those acounts in the db
          even if I restart my server (PC)!

          Can anyone help me out?

          thanks and best regards,
          Mussie

          • 2. Re: hsqldb-ds configuration for server-mode!?

            just a thought:
            check the settings in your persistence*.xml file/s

            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>

            --> this will automatically drop the database after usage...

            • 3. Re: hsqldb-ds configuration for server-mode!?
              mussie

              I allready changed my persistence.xml to update!