SetUpAHSQLDBDatasource

Version 4

    Basic

     

    <?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></track-statements>
    
          <!-- Use the getConnection(user, pw) for logins
            <application-managed-security></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>
    

     

    Encrypted

     

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!-- The Hypersonic embedded database JCA connection factory config
    that illustrates the use of the JaasSecurityDomainIdentityLoginModule
    to use encrypted password in the data source configuration. 
    
    $Id: hsqldb-encrypted-ds.xml,v 1.3 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>
    
          <!--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></track-statements>
    
          <!-- Use the getConnection(user, pw) for logins
            <application-managed-security></application-managed-security>
          -->
    
          <!-- Use the security domain defined in conf/login-config.xml -->
          <security-domain>EncryptedHsqlDbRealm</security-domain>
    
          <!-- 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>
    
       <!-- The JaasSecurityDomain used for encryption. Use the name
       "jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword"
       as the value of the JaasSecurityDomainIdentityLoginModule
       jaasSecurityDomain login module option in the EncryptedHsqlDbRealm
       login-config.xml section. Typically this service config should be in
       the conf/jboss-service.xml descriptor.
       The opaque master.password file could be created using: 
       java -cp jbosssx.jar org.jboss.security.plugins.FilePassword 12345678 17 master server.password
    
       The corresponding login-config.xml would look like:
        <application-policy name = "EncryptedHsqlDbRealm">
           <authentication>
              <login-module code = "org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule"
              flag = "required">
                 <module-option name = "username">sa</module-option>
                 <module-option name = "password">E5gtGMKcXPP</module-option>
                 <module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=DefaultDS</module-option>
                 <module-option name = "jaasSecurityDomain">jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword</module-option>
              </login-module>
           </authentication>
        </application-policy>
        where the encrypted password was generated using:
         java -cp jbosssx.jar org.jboss.security.plugins.PBEUtils abcdefgh 13 master ''
         Encoded password: E5gtGMKcXPP
       -->
       <mbean code="org.jboss.security.plugins.JaasSecurityDomain"
          name="jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword">
          <constructor>
             <arg type="java.lang.String" value="ServerMasterPassword"></arg>
          </constructor>
          <!-- The opaque master password file used to decrypt the encrypted
          database password key -->
          <attribute name="KeyStorePass">{CLASS}org.jboss.security.plugins.FilePassword:${jboss.server.home.dir}/conf/server.password</attribute>
          <attribute name="Salt">abcdefgh</attribute>
          <attribute name="IterationCount">13</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>