turgar: jboss und "DefaultDS not bound"

Hallo,

ich versuche mittels

  
InitialContext context = new InitialContext();  
    DataSource ds = (DataSource) context.lookup("java:/DefaultDS");  
    Connection conn = ds.getConnection();  

eine Anbindung an die Standard-Datenbank meines jboss 4.2.2 zu erreichen.
Die dabei auftretende Exception lautet: "DefaultDS not bound" bzw. "javax.naming.NameNotFoundException: DefaultDS not bound".

Wie muss obiges Code-Fragment richtig lauten bzw. wie muss jboss konfiguriert werden, damit die Anbinung gelingt?

Danke!

  1. Moin,

    Wie muss obiges Code-Fragment richtig lauten bzw. wie muss jboss konfiguriert werden, damit die Anbinung gelingt?

    Nach meinen Kenntnissen scheint das korrekt zu sein. Liegt im deploy-Verzeichnis deines Servers (bei der Standard-Installation default/deploy) eine hspqdb-ds.xml? Falls ja, steht dort auch DefaultDS als JNDI-Name drin? In dieser wird die Default-Datenquelle definiert.

    Gruß

    Stareagle

    1. hallo,

      Nach meinen Kenntnissen scheint das korrekt zu sein. Liegt im deploy-Verzeichnis deines Servers (bei der Standard-Installation default/deploy) eine hspqdb-ds.xml? Falls ja, steht dort auch DefaultDS als JNDI-Name drin? In dieser wird die Default-Datenquelle definiert.

      das Ganze sieht bei mir im Moment so aus:

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