Die einfache Integration mehrerer Datenbanken stellt mit JVx kein Problem dar. Die Konfiguration wird üblicherweise in der Konfiguration, config.xml, der Applikation durchgeführt. Dadurch kann in den LifeCycle Objekten problemlos darauf zugegriffen werden:

config.xml
<?xml version="1.0" encoding="UTF-8"?>
 
<application>
  <securitymanager>
    <class>com.sibvisions.rad.server.security.DBSecurityManager</class>
    <database datasource="mydb" />
  </securitymanager>
 
  <datasource>
    <db name="mydb">
      <url>jdbc:oracle:thin:@localhost:1521:mydb</url>
      <username>user</username>
      <password>password</password>
    </db>
    <db name="masterdb">
      <url>jdbc:derby://localhost:1527/masterdb</url>
      <username>master</username>
      <password>master</password>
    </db>
  </datasource>
</application>

Der Zugriff erfolgt über:

IConfiguration config = SessionContext.getCurrentSessionConfig();
 
dba = DBAccess.getDBAccess(DBSecurityManager.getCredentials(config));
dba.open();

wobei hier die DataSource des SecurityManagers verwendet wird. Um unabhängig vom Securiy Manager auf die DataSources zuzugreifen, verwenden wir den DataSourceHandler:

IConfiguration config = SessionContext.getCurrentSessionConfig();
 
DBCredentials cred = DataSourceHandler.createDBCredentials(config, "masterdb");
 
dba = DBAccess.getDBAccess(cred);
dba.open();


Hinweis

Der DB Security Manager ermöglicht die Verwendung einer Standard DataSource ohne zusätzlichen Konfigurationaufwand:

config.xml
<?xml version="1.0" encoding="UTF-8"?>
 
<application>
  <securitymanager>
    <class>com.sibvisions.rad.server.security.DBSecurityManager</class>
  </securitymanager>
 
  <datasource>
    <db name="default">
      <url>jdbc:oracle:thin:@localhost:1521:mydb</url>
      <username>user</username>
      <password>password</password>
    </db>
  </datasource>
</application>

Der Security Manager verwendet die DataSource mit der Bezeichnung “default” als Standard Verbindung.