Die Zugangsdaten zum SQL-Datenbanksystem werden in einer XML-Datei angegeben. Der Name dieser XML-Datei wird dem Kommandozeilenprogramm als Argument übergeben.
Das Format der XML-Datei ist durch folgende DTD vorgegeben:
XML-Element |
Beschreibung |
Beispiel |
jdbcconf |
JDBC-Systemkonfiguration mit Angaben zu den zu verwendenden Datenbanksystemen und Datenbankanbindungen |
- |
databasesettings |
Allgemeine Einstellungen des verwendeten Datenbanksystems |
- |
name |
Eindeutiger Name der allgemeinen Einstellungen des Datenbanksystems |
setting_oracle |
dbtype |
Verwendeter Datenbanktyp, mögliche Werte: ORACLE | DB2 | SQLSERVER | OTHER |
ORACLE |
driverclass |
Für das Datenbanksystem zu verwendende Treiberklasse |
oracle.jdbc.driverOracleDriver |
maxconditionlength |
Der angegebene Zahlenwert beschränkt die Länge des WHERE-Teils einer SQL-Abfrage |
1000 |
fetchsize |
Anzahl der Datensätze, die gleichzeitig vom DB-Server auf den Java-Client übertragen
werden. Standardwert ist bei den meisten Datenbanksystemen 10. |
1000 |
databaseconnection |
Angaben zur Datenbankanbindung |
- |
name |
Eindeutiger Name der Datenbankanbindung |
oracle_connection1 |
dbsettings |
Eindeutiger Name der allgemeinen Einstellungen des Datenbanksystems |
setting_oracle |
url |
URL der Datenbankanbindung |
s. Dateiauszug weiter unten |
user |
Name des Datenbankbenutzers |
ppmoracle |
password |
Kennwort des Datenbankbenutzers |
ppmoracle |
encryptpw |
Verschlüsseltes Kennwort als Zahlenkombination nach erfolgter Auswertung des <password>-Elements |
62 -62 -56 |
lastreaddate |
Datum, ab dem Daten ausgelesen werden. Entfällt bei Verwendung einer Datenquelle, Format: yyyymmdd |
20050131 |
lastreadtime |
Uhrzeit, ab der Daten ausgelesen werden. Entfällt bei Verwendung einer Datenquelle, Format: hhmmss |
152917 |
language |
Sprache der ausgelesenen Textfelder |
EN |
Der Datenbanktyp kann einer der vier vorgegebenen Werte für die Datenbanksysteme Oracle, IBM DB2 oder MS SQL-Server sein. Der Wert Sonstige ist zu verwenden, wenn Sie Daten aus einer Datenbank auslesen möchten, die von einem anderen Typ ist, als die oben aufgeführten.
Mit Hilfe des Parameters maxconditionlength kann eine Zahl angegeben werden, welche die Länge des WHERE-Teils einer SQL-Abfrage auf den angegebenen Wert beschränkt. Dies ist notwendig, um eventuelle Längenbeschränkungen der verschiedenen Datenbanksysteme einhalten zu können. Ist die SQL-Abfrage länger als die angegebene Maximallänge, wird sie in mehrere, kleinere Abfragen aufgeteilt, die getrennt ausgeführt werden.
Mit Hilfe des Parameters fetchsize kann angegeben werden, wie viele Datenzeilen gleichzeitig pro Lesevorgang von der Datenbank an den JDBC-Extraktor übertragen werden sollen.
Das Kennwort des Datenbankbenutzers muss im XML-Element password unverschlüsselt in Klarschrift angegeben werden. Nach erfolgter Auswertung im nächsten Auslesevorgang wird das Kennwort schließlich im XML-Element encryptpw verschlüsselt in die JDBC-Systemkonfiguration zurückgeschrieben. Der password-Eintrag wird dann gelöscht. Es darf immer nur einer der beiden Einträge in der Systemkonfiguration vorhanden sein.
Wenn Sie ein bestehendes Kennwort ändern möchten, fügen Sie einen neuen password-Eintrag in die aktuelle Konfigurationsdatei ein und löschen den encryptpw-Eintrag. Im nächsten Auslesevorgang wird dann das neue Kennwort verschlüsselt.
Der Parameter language ist optional. Wenn Sie einen Wert dazu angeben, wird dieser mit dem Feldnamen aus der Tabellenkonfiguration (langfieldname) verglichen (siehe Kapitel JDBC-Tabellenkonfiguration). Ist beispielsweise in einer Tabelle langfieldname="LANG" und in der JDBC-Systemkonfiguration <language>EN</language> angegeben, werden nur die Datensätze ausgelesen, bei denen LANG den Wert EN hat.
Folgender Dateiauszug zeigt eine beispielhafte JDBC-Systemkonfiguration:
<jdbcconf>
<databasesettings name="setting_sqls" dbtype="SQLSERVER">
<driverclass>com.microsoft.jdbc.sqlserver.SQLServerDriver
</driverclass>
<maxconditionlength>1000</maxconditionlength>
<fetchsize>1000</fetchsize>
</databasesettings>
<databasesettings name="setting_oracle" dbtype="ORACLE">
<driverclass>oracle.jdbc.driver.OracleDriver</driverclass>
<maxconditionlength>1000</maxconditionlength>
<fetchsize>1000</fetchsize>
</databasesettings>
<databaseconnection name="sqls_connection">
<dbsettings>setting_sqls</dbsettings>
<url>jdbc:microsoft:sqlserver:
//PC3:1433;SelectMethod=Cursor;
DatabaseName=ppmdb
</url>
<user>ppmuser</user>
<password>ppmuser</password>
<lastreaddate>20050228</lastreaddate>
<lastreadtime>000000</lastreadtime>
<language />
</databaseconnection>
<databaseconnection name="oracle_connection1">
<dbsettings>setting_oracle</dbsettings>
<url>jdbc:oracle:thin:@pcppm:1521:orappm_test
</url>
<user>ppmoracle</user>
<password>ppmoracle</password>
<lastreaddate>20051231</lastreaddate>
<lastreadtime>235959</lastreadtime>
</databaseconnection>
<databaseconnection name="oracle_connection2">
<dbsettings>setting_oracle</dbsettings>
<url>jdbc:oracle:thin:@pcppm:1521:orappm_produktiv</url>
<user>ppmoracle2</user>
<encryptpw>48 -62 -76 -60 -108 -57 -92</encryptpw>
<lastreaddate>20050228</lastreaddate>
<lastreadtime>000000</lastreadtime>
</databaseconnection>
</jdbcconf>
Damit sich PPM Process Extractor JDBC-2-PPM anhand der Konfigurationsdaten mit der Datenbank verbinden kann, müssen Sie die JDBC-Treiber (JAR- und/oder ZIP-Dateien) in folgendes Verzeichnis Ihrer Installation kopieren.
<PPM-Installationsverzeichnis>\ppm\server\bin\work\data_ppm\drivers