This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

Datenbankverbindung per JNDI Lookup

Allgemeine Fragen zur Entwicklung von und mit JVx.

Datenbankverbindung per JNDI Lookup

Postby iferle » Sun Oct 24, 2010 5:38 pm

Ich würde gerne meine Datenbankverbindung im Application-Server konfigurieren und diese Verbindung per JNDI-Lookup finden und benutzen. Geht das mit dem JVx-Framework?
iferle
 
Posts: 6
Joined: Tue Oct 19, 2010 9:45 am
Location: München

Re: Datenbankverbindung per JNDI Lookup

Postby Support@SIB » Mon Oct 25, 2010 10:17 am

Objekte via JNDI finden und verwenden ist problemlos möglich, da Sie im Lifecycle Objekt beliebigen Java Code ausführen können.

Die DBStorage nutzt ein DBAccess Objekt für den Datenbankzugriff, und nicht die Connection direkt. Falls Sie eine java.sql.Connection konfigurieren möchten, dann ist es im Moment (JVx 0.8) nicht möglich daß ein DBAccess Objekt mit einer bestehenden Connection erstellt wird!

Falls Sie ev. gemeint haben, ob ein DBAccess Objekt automatisch via JNDI initialisiert werden kann, dann ist die Antwort - Nein. In DBAccess ist keine direkte JNDI Unterstützung implementiert.

Falls Sie die DB Konfiguration nicht im Source Code durchführen wollen und z.B. aus der Applikationskonfiguration laden wollen, dann bietet sich der SessionContext an:

Applikationskonfiguration - config.xml
Code: Select all
<application>
  <securitymanager>
    <class>com.sibvisions.rad.server.security.DBSecurityManager</class>
    <database>
      <url>URL</url>
      <username>USER</username>
      <password>PWD</password>
    </database>
  </securitymanager>
</application>

Lifecycle Objekt - Session.java
Code: Select all
IConfiguration cfgSession = SessionContext.getCurrentSessionConfig();

DBAccess dba = DBAccess.getDBAccess(
                     cfgSession.getProperty("/application/securitymanager/database/url"));
dba.setUsername(cfgSession.getProperty("/application/securitymanager/database/username"));
dba.setPassword(cfgSession.getProperty("/application/securitymanager/database/password"));
dba.open();


Wir empfehlen diese Variante, da dadurch die Konfiguration auch mit der Applikation deployed werden kann. Im Fall von JNDI müsste auch der Applikationsserver konfiguriert werden.
User avatar
Support@SIB
 
Posts: 349
Joined: Mon Sep 28, 2009 1:56 pm

Re: Datenbankverbindung per JNDI Lookup

Postby Development@SIB » Mon Oct 25, 2010 11:35 am

Mit JVx 0.9 kann durch den Aufruf:

Code: Select all
DBAccess.getDBAccess(java.sql.Connection);

eine Instanz von DBAccess erstellt werden, die mit einer vorkonfigurierten Connection funktioniert (siehe Support System).

Die Methoden

Code: Select all
<DBAccess>.open();
<DBAccess>.close();

haben in diesem Fall keine Auswirkung und können vernachlässigt werden!
User avatar
Development@SIB
 
Posts: 325
Joined: Mon Sep 28, 2009 1:54 pm


Return to Development (DE)