Die Klasse DLEJDBCConnector implementiert einen allgemeingültigen DLE Konnektor, der JDBC für den Datenzugriff und das Transaktionsmanagement verwendet.
Der JDBC Konnektor ist der Referenzkonnektor der DLE. Er schränkt keinerlei Funktionalität der DLE ein.
Der Konnektor verwendet folgende Dienstparameter:
| Parameter | Beschreibung |
|---|---|
| ConnectionFactory | Klassenname der Klasse, die die Verbindung aufbauen soll. Diese muß das Interface DLEJDBCConnectionFactoryIfc implementieren. Üblicherweise wird die Klasse DefaultJDBCConnectionFactory verwendet. Optional, seit der Version 1.6.6. wird per Default auf dem Client eine DefaultJDBCConnectionFactory, auf dem Server eine DLEPooledJDBCConnectionfactory verwendet. |
| JDBCDriver | Der Name der JDBC Treiberklasse, zum Beispiel com.ibm.db2.jdbc.app.DB2Driver. Die Klasse muss im Klassenpfad sein, damit sie geladen werden kann. Seit der Version 1.6.6. Optional, der richtige Treiber wird bei neueren JDBC Treibern automatisch gefunden. |
| JDBCURL | Die URL für die Datenbankverbindung. Wie diese aufgebaut ist, hängt vom gewählten JDBCDriver ab, die Treiberspezifische Dokumentation ist hier zu konsultieren. Beispiel für eine DB2 URL: jdbc:db2:DB_NAME |
| JDBCUser | Der Benutzername für die Datenbankverbindung. |
| JDBCPassword | Das unverschlüsselte Kennwort für die Verbindung. |
| EncodedPassword | Alternativ zu dem Parameter JDBCPassword kann hier ein verschlüsseltes Kennwort angegeben werden. Näheres dazu weiter unten. |
| TransactionLevel | Die verwendete Transaktionsstufe: none, local oder xa. (Siehe Transaktionen). |
| IsDLEManaged | True oder False, steuert ob der DLE Transaktionsmanager diesen Konnektor verwalten soll. (Siehe Transaktionen). Seit der Version 1.6.6. Optional, ist per Default True. |
| Dialect | Der verwendete Datenbankdialekt. Derzeit werden die Dialekte db2, oracle, informix und hsqldb, mysql, postgres, firebird, sqlserver, access unterstützt. |
| TraceSqlDetail | Steuert den Detailgrad der Protokollierung. Mögliche werte sind true (Vorgabe) oder false. Bei dem Wert false werden keine Detailinformationen ausgegeben. |
| UseJNDI | Wird derzeit nur von der ConnectionFactory DB2XAConnectionFactory verwendet. Mögliche Werte sind true oder false. Bei true wird durch den mit den Parametern JNDIService und JNDIName eine Datenbankverbindung über JNDI aufgebaut. Bei dem Wert false wird eine normale Verbindung aufgebaut. |
| JNDIService | Wird derzeit nur von der ConnectionFactory DB2XAConnectionFactory verwendet. Gibt den in der Konfiguration definierten JNDI Dienst an. |
| JNDIName | Wird derzeit nur von der ConnectionFactory DB2XAConnectionFactory verwendet. Gibt den JNDI Namen an. |
| Database | Wird derzeit nur von der ConnectionFactory DB2XAConnectionFactory verwendet. Gibt den Datenbanknamen an, wenn die Verbindung nicht über JNDI erfolgt. |
| Server | Wird derzeit nur von der ConnectionFactory DB2XAConnectionFactory verwendet. Gibt den Servernamen an, wenn die Verbindung nicht über JNDI erfolgt. |
| IsolationLevel | Bei der Verwendung von Transaktionen kann hier der Isolation Level der Verbindung gesetzt werden. Mögliche Werte sind: READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE |
| SqlInitCommands | Hier können ein oder mehrere SQL Kommandos angegeben werden, die initial beim Öffnen der Verbindung ausgeführt werden. Mehrere Kommandos können durch ein Semikolon getrennt werden. Soll ein Semikolon als Teil des Kommandos verstanden werden, ist es mit \; zu maskieren. Ab DLE Version 2.1.2 kann bei Verwendung vom Datenbankpool an dieser Stelle aktuell nur mehr ein einziges Statement verwendet werden. |
| ColumnNameQuote | Diese Option dient zur Maskierung von Spaltennamen, die als reservierte Worte in der jeweiligen Datenbank gelten. Hier kann optional ein Zeichen angegeben werden, mit dem dann die SQL Spaltennamen bei Kommandos wie Insert/Update und Delete maskiert werden. Bei den meisten Datenbanken ist dies normalerweise das doppelte Anführungszeichen. Im XML als " zu schreiben. MySQL Datenbanken verwenden üblicherweise den Backtick (`). Es werden nur die internen DLE Kommandos zur Datenmanipulation über Metadaten und die Script-Kommandos (Erstellen, ändern von Tabellen etc.) unterstützt. Bei freiem SQL ist das setzten der richtigen Zeichen vom Entwickler zu beachten. Der Connector ersetzt beim Ausführen des SQLs die Zeichenfolge $BASE:ColumnQuote! durch eine evtl. konfigurierte ColumnNameQuote |
|---|
