Hypersonic DB - Jboss AS 6.0.M1- Datasource/Tables unaccessible from JSP pages
dvenkatesan Apr 10, 2010 12:16 AMHello,
I want to acces Hypersonic database localDB (table name "Customer") from my JSP page.
I am missing some configuration information while seting up a database in Hypersonic/JBoss AS 6.0.
Due to this I am unable to access the tables from my JSP page.
Can someone help me to fix this and tell me where should I set things right?
Thanks for your kind attention.....
Regards,
Venkatesan D. Pillai
PS: I paste herewith the JBOSS console error, hsqldb-ds.xml for your info. pls.
==============
0) My JSP program snippet
###################################
.....
  <%
    Connection conn = null;
    ResultSet result = null;
    Statement stmt = null;
System.out.println("I AM HERE ..........1111");
    try {
      Class c = Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("I AM HERE ..........2222");
    }
    catch (Exception e) {
      System.out.println("Error occurred " + e);
     }
     try {
       conn = DriverManager.getConnection("jdbc:hsqldb:/home/venkat/downloads/jboss-6.0.0.M1/server/default/data/hypersonic/localDB", "sa","");
   System.out.println("I AM HERE ..........33333");
     }
     catch (SQLException e) {
        System.out.println("Error occurred " + e);
     }
     try {
        stmt = conn.createStatement();
   System.out.println("I AM HERE ..........44444");
        result = stmt.executeQuery("SELECT * FROM PUBLIC.Customer");
   System.out.println("I AM HERE ..........55555");
 if (result.next()) {
%>
      <table width="100%" border="1">
.......................
1) JBoss AS Console error
##########################
................
05:30:07,677 INFO  [STDOUT] [Server@1724ca6]: Startup sequence initiated from main() method
05:30:07,677 INFO  [STDOUT] [Server@1724ca6]: Loaded properties from [/home/venkat/Downloads/jboss-6.0.0.M1/bin/server.properties]
05:30:07,688 INFO  [STDOUT] [Server@1724ca6]: Initiating startup sequence...
05:30:07,711 INFO  [STDOUT] [Server@1724ca6]: Server socket opened successfully in 4 ms.
05:30:08,285 INFO  [STDOUT] [Server@1724ca6]: Database [index=0, id=1, db=file:/home/venkat/Downloads/jboss-6.0.0.M1/server/default/data/hypersonic/default, alias=] opened sucessfully in 566 ms.
05:30:08,285 INFO  [STDOUT] [Server@1724ca6]: Startup sequence completed in 580 ms.
05:30:08,443 INFO  [STDOUT] [Server@1724ca6]: 2010-04-10 05:30:08.442 HSQLDB server 1.8.0 is online
05:30:08,443 INFO  [STDOUT] [Server@1724ca6]: To close normally, connect and execute SHUTDOWN SQL
05:30:08,443 INFO  [STDOUT] [Server@1724ca6]: From command line, use [Ctrl]+[C] to abort abruptly
...................................
05:31:49,593 INFO  [STDOUT] I AM HERE ..........1111
05:31:49,594 INFO  [STDOUT] I AM HERE ..........2222
05:31:49,792 INFO  [STDOUT] I AM HERE ..........33333
05:31:49,792 INFO  [STDOUT] I AM HERE ..........44444
05:31:49,793 ERROR [STDERR] java.sql.SQLException: Table not found in statement [SELECT * FROM PUBLIC.Customer]
05:31:49,794 ERROR [STDERR]     at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
05:31:49,794 ERROR [STDERR]     at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
05:31:49,794 ERROR [STDERR]     at org.hsqldb.jdbc.jdbcStatement.executeQuery(Unknown Source)
05:31:49,794 ERROR [STDERR]     at org.apache.jsp.jspdb_jsp._jspService(jspdb_jsp.java:88)
........................
2) HSQL-DB config. information (snippet)
###############################
<datasources>
   <local-tx-datasource>
      <jndi-name>DefaultDS</jndi-name>
      <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
      <connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
      <driver-class>org.hsqldb.jdbcDriver</driver-class>
<user-name>sa</user-name>
<password></password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>0</idle-timeout-minutes>
<track-statements/>
<security-domain>HsqlDbRealm</security-domain>
<prepared-statement-cache-size>32</prepared-statement-cache-size>
      <metadata>
         <type-mapping>Hypersonic SQL</type-mapping>
      </metadata>
<depends>jboss:service=Hypersonic,database=localDB</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">        
         <value-factory bean="ServiceBindingManager" method="getIntBinding" 
           parameter="jboss:service=Hypersonic"/>
     </attribute>
     <attribute name="BindAddress">        
        <value-factory bean="ServiceBindingManager" method="getStringBinding" 
           parameter="jboss:service=Hypersonic"/>
     </attribute>  
..................
-->
<mbean code="org.jboss.jdbc.HypersonicDatabase"
     name="jboss:service=Hypersonic">
     <attribute name="Port">1701</attribute>                       ##### i did modify this line as I have configured the ServiceBindingManager database ..is this OK?
     <attribute name="BindAddress">localhost</attribute>    ##### i did modify this line as I have configured the ServiceBindingManager database ..is this OK?
     <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>
3) Some issues in hsqldb-ds.xml configuration
########################################
<mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss:service=Hypersonic">
   <attribute name="Port">        
          <value-factory bean="ServiceBindingManager" method="getIntBinding" 
            parameter="jboss:service=Hypersonic"/>
      </attribute>
      <attribute name="BindAddress">        
         <value-factory bean="ServiceBindingManager" method="getStringBinding" 
            parameter="jboss:service=Hypersonic"/>
      </attribute> 
"Port, BindAddress" attributes create error in JBossAS console if I leave it as is with VALUE-FACTORY tag. So I replace them with 1701, localhost.
Is this shortccut acceptable?
==================
thanks for your help.
