Wenn Sie einen
DatabaseRetrieve-,
DatabaseRoute- oder
JavaCompute-Knoten, einen
Mapping-Knoten oder einen benutzerdefinierten Java™-Knoten in einen Nachrichtenfluss aufnehmen und es in diesem Knoten zu einer Interaktion mit einer Datenbank kommt, muss der Broker eine Verbindung zu der Datenbank herstellen, damit die Operationen des Knotens ausgeführt werden können. Sie müssen einen konfigurierbaren JDBCProvider-Service definieren, um
den Broker mit den Informationen zu versorgen, die er zum Herstellen der Verbindung benötigt.
Wichtig: Bei der Benennung des
JDBCProvider-Service sind folgende Anforderungen zu beachten:
- Soll der JDBCProvider-Service mit einem
JavaCompute-Knoten oder einem benutzerdefinierten
Java-Knoten verwendet werden, muss der Name des
JDBCProvider-Service mit dem Parameter datasourceName im API-Aufruf
getJDBCType4Connection() des Knotens übereinstimmen.
- Soll der JDBCProvider-Service mit einem Mapping-Knoten verwendet werden, muss der Name des
JDBCProvider-Service mit dem von den Datenbanktransformationen in der
grafischen Datenzuordnung verwendeten Datenbanknamen übereinstimmen. Für jede Datenbanktransformation wird der Datenbankname durch die Datenbankdefinition
(Datei .dbm) in dem zum Erstellen der Zuordnung verwendeten Datenentwurfsprojekt bestimmt.
- Soll der JDBCProvider-Service mit einem DatabaseRetrieve-Knoten oder einem
DatabaseRoute-Knoten verwendet werden, muss der Name des
JDBCProvider-Service mit dem Wert der Eigenschaft Name der Datenquelle des Knotens übereinstimmen.
Ein konfigurierbarer JDBCProvider-Service unterstützt nur Verbindungen zu einer einzigen Datenbank. Sie müssen also für jede Datenbank, zu der die Knoten bzw. die Java-Anwendungen eine Verbindung herstellen, einen Service erstellen.
Informationen zur Konfiguration eines JDBC-Providers für Verbindungen vom Typ 4 unter Verwendung des WebSphere Message
Broker Explorers finden Sie im Abschnitt Neuen konfigurierbaren Service erstellen.
Zur Konfiguration eines JDBC-Providers für Verbindungen vom Typ 4 unter Verwendung der Befehle mqsicreateconfigurableservice bzw. mqsichangeproperties führen Sie die folgenden Schritte aus:
- Identifizieren Sie den Typ der Datenbank, für die ein JDBCProvider-Service benötigt wird.
Die unterstützten JDBC-Treiber und Datenbanken sind im Abschnitt Unterstützte Datenbanken aufgelistet. Die Unterstützung für global koordinierte Transaktionen (XA) ist auf einigen Plattformen und für einige Datenbanken eingeschränkt.
- Führen Sie den Befehl mqsireportproperties aus, um die Liste der verfügbaren JDBCProvider-Services anzuzeigen. Ersetzen Sie Brokername durch den Namen Ihres Brokers.
mqsireportproperties Brokername -c JDBCProviders -a -o AllReportableEntityNames
In der Befehlsausgabe werden alle definierten konfigurierbaren JDBCProvider-Services aufgelistet. Wenn Sie keine eigenen Definitionen erstellt haben, enthält die Liste die folgenden
standardmäßig bereitgestellten Services:
- DB2
- Informix
- Informix_With_Date_Format
- Microsoft_SQL_Server
- Oracle
- Sybase_JConnect6_05
Hinweise für Verbindungen zu einer Informix-Datenbank:
- Verwenden Sie Informix_With_Date_Format, um Kompatibilität mit Clientanwendungen zu
gewährleisten, die von dem Datumsformatverbindungsattribut abhängig sind, das von früheren
Versionen von Informix-Servern verwendet wurde.
- Verwenden Sie Informix für Clientanwendungen, die nicht vom Datumsformatattribut abhängen.
- Zeigen Sie den Inhalt der relevanten JDBCProvider-Servicedefinition an. Führen Sie beispielsweise folgenden Befehl aus, um die mitgelieferte Oracle-Definition
anzuzeigen:
mqsireportproperties Brokername -c JDBCProviders -o Oracle -r
In der Befehlsausgabe werden alle Eigenschaften der Oracle-Definition aufgelistet.
Sofern Sie
diese Definition nicht geändert haben, sind die Eigenschaften auf ihre Anfangswerte gesetzt. Einige
davon müssen Sie ändern, um eine funktionsfähige Definition zu erstellen.
Beispielsweise ist die
Eigenschaft databaseName auf Standarddatenbankname gesetzt.
Sie müssen diesen Namen durch den Namen der spezifischen Datenbank ersetzen, zu der eine Verbindung
hergestellt werden soll.
Ein JDBCProvider-Service hat folgende Eigenschaften:
- connectionUrlFormat. Ein für einen bestimmten Datenbanktyp spezifisches Muster für die Definition der Verbindungs-URL. Das Muster für DB2 beispielsweise ist mit dem folgenden Inhalt definiert:
jdbc:db2://[Servername]:[Portnummer]/[Datenbankname]:user=[Benutzer];password=[Kennwort];
Das Muster wird vom Broker während der Ausführung beim Erstellen einer Verbindung zur Datenbank verwendet und vervollständigt. Die Werte in eckigen Klammern, zum Beispiel [Servername], werden vom Broker im Muster durch die im Befehl mqsicreateconfigurableservice, mqsichangeproperties bzw. mqsisetdbparms angegebenen Werte ersetzt.
Bei der Ersetzung der Benutzer-ID und des Kennworts im Muster verwendet der Broker die folgenden Werte in der angegebenen Reihenfolge:
- Als erstes auf allen Plattformen: Die Benutzer-ID und das Kennwort, die Sie für die jeweilige Datenbank mit dem Befehl mqsisetdbparms unter Angabe der Datenbank im Parameter -n festgelegt haben.
- Als zweites auf allen Plattformen: Die Benutzer-ID und das Kennwort, die Sie für alle Datenbanken mit dem Befehl mqsisetdbparms unter Angabe von jdbc::JDBC im Parameter -n festgelegt haben.
- Als drittes auf den jeweiligen Plattformen:
Unter Windows:
Die Benutzer-ID und das Kennwort des Broker-Service, die Sie mit dem Befehl mqsicreatebroker angegeben haben.

Unter Linux und UNIX: Die Benutzer-ID mqsiUser und
das Kennwort ******** (diese Werte sind festgelegt).
Unter z/OS: Die Benutzer-ID "" und das Kennwort "".
Wenn Sie einen der bereitgestellten JDBCProvider-Services verwenden, darf mit dem Befehl mqsichangeproperties nicht das Muster selbst geändert werden, da solche Änderungen zu unvorhersehbaren Ergebnissen führen könnten.
Wenn Sie mit dem Befehl mqsicreateconfigurableservice Ihren eigenen JDBCProvider-Service definieren, prüfen Sie mit dem Befehl mqsireportproperties, ob der Inhalt der Zeichenfolge connectionUrlFormat genau dem Standard des bereitgestellten Providers für den von Ihnen verwendeten Datentyp entspricht.
Wenn Sie unter z/OS arbeiten und die JCL-Dateien BIPCRCS und BIPCHPR für die Definition Ihres JDBCProvider-Service verwenden, stellen Sie sicher, dass Ihr 3270-Emulator für die Nutzung derselben Codepage konfiguriert ist, die auch für die Brokerausführung verwendet wird. Wenn die Codepages nicht übereinstimmen, wird das von Ihnen definierte connectionUrlFormat Zeichenfolgemuster möglicherweise nicht richtig vom Broker erkannt.
- connectionUrlFormat Attr1-5. Wenn das definierte URL-Muster für eine Datenbank vom Standard abweichende
Eigenschaften für die JDBC-Datenquelle (z. B. eine Serverkennung) enthält, geben Sie diese Eigenschaften zusätzlich zu den Standardattributen an und verwenden Sie hierfür eines der fünf allgemeinen Attribute für Verbindungs-URLs. Beispiel:
- Bei connectionURLFormat = jdbc:oracle:thin:[Benutzer]/[Kennwort]@[Servername]:[Portnummer]:[VerbindungsUrlFormatAttr1] muss
VerbindungsUrlFormatAttr1 eine Oracle-Server-ID enthalten. Für diese Angabe müssen Sie im Befehl
mqsicreateconfigurableservice oder mqsichangeproperties den Wert der Eigenschaft
connectionUrlFormatAttr1 definieren.
Der Broker kann dann alle erforderlichen Werte in das erforderliche Muster einsetzen.
- Bei connectionURLFormat = jdbc:informix-sqli://[serverName]:[portNumber]/[databaseName]:informixserver=[connectionUrlFormatAttr1];
user=[user];password=[password] muss connectionUrlFormatAttr1 den Namen der Informix-Instanz auf dem Server enthalten (für gewöhnlich durch die Umgebungsvariable INFORMIXSERVER angegeben). Bei diesem Wert muss die Groß-/Kleinschreibung beachtet werden.
- databaseName. Der Name der Datenbank, zu der der Datenquelleneintrag Verbindungen ermöglicht (z. B. employees).
- databaseSchemaNames. Überschreiben Sie optional den Namen des Datenbankschemas, das in SQL-Anweisungen, die von
Nachrichtenflussknoten erstellt werden, verwendet werden. Diese Eigenschaft wird nur vom
Mapping-Knoten verwendet und dies auch nur dann, wenn
eine grafische Datenzuordnung aufgerufen wird, die eine Datenbankumsetzung enthält. Der Abschnitt Konfigurierbarer JDBCProviders-Service enthält weitere Informationen hierzu.
- databaseType. Der Datenbanktyp, z. B. DB2.
- databaseVersion. Die Datenbankversion, z. B. 9.1.
- description. Eine optionale Eigenschaft zur Beschreibung der Datenquellendefinition.
- environmentParms. Nur für DB2 und Informix. Eine optionale Eigenschaft, die eine Liste mit Datenquelleneigenschaften in der Form Name=Wert angibt, wobei die einzelnen Eigenschaften jeweils durch ein Semikolon getrennt sind.
- jarsURL. Der lokale Verzeichnispfad auf dem System, auf dem der Broker aktiv ist, mit der
JAR-Datei, in der die Treiberklasse des Typs 4 enthalten ist.
Für den Verzeichnispfad kann auch ein Datenträger eines Speicherbereichsnetzes verwendet werden.
Es ist jedoch nicht möglich, ein zugeordnetes Netzlaufwerk für einen fernen Computer zu verwenden.
- maxConnectionPoolSize. Sie können diese Eigenschaft optional festlegen, um einen JDBC-Verbindungspool zu erstellen. Der Abschnitt Von einer Ausführungsgruppe verwendete Datenbankressourcen mit einem JDBC-Verbindungspool verwalten enthält weitere
Informationen hierzu.
- portNumber. Die Nummer des Ports, an dem der Datenbankserver empfangsbereit ist, z. B. 50000.
- securityIdentity. Ein eindeutiger Sicherheitsschlüssel für einen zweiten Suchlauf im Brokerregister, um einen Eintrag unter den Sicherheitsidentitäten des Brokers zu finden, die das verschlüsselte Kennwort für den Benutzer auf dem zugehörigen Hostsystem speichern (z. B. mysecurityIdentity).
Erstellen Sie eine Sicherheitsidentität und verwenden Sie hierfür den Befehl mqsisetdbparms (siehe Beschreibung im Abschnitt JDBC-Verbindung des Typs 4 sichern). Der Wert für securityIdentity (beispielsweise mysecurityIdentity) muss dem Wert entsprechen, der in diesem Befehl im Anschluss an das Präfix jdbc:: für den Parameter -n angegeben wird.
Die Sicherheitsidentität stellt ein Wertepaar des Typs 'Benutzer-ID/Kennwort' für den Zugriff auf die angegebene, für einen bestimmten JDBCProvider-Service-Eintrag definierte Datenquelle bereit. Diese
Eigenschaft wird ignoriert, wenn die Verbindungs-URL nicht ein Benutzer-ID/Kennwort-Paar enthält,
das die Ersetzung der Eigenschaftswerte verlangt.
Die Standardwerte, die Sie durch Angabe eines Werts für ResourceName von jdbc::JDBC im Befehl mqsisetdbparms festlegen können, werden unter folgenden Bedingungen verwendet:
- Wenn für den Parameter securityIdentity kein Wert angegeben ist bzw. der Standardwert
default_User@default_Server nicht geändert wurde, für das Muster der Verbindungs-URL jedoch die Identität erforderlich ist.
- Wenn Sie einen gültigen eindeutigen Sicherheitsidentitätsschlüssel eingegeben haben, der nicht unter dem DSN-Schlüssel gefunden werden kann.
- serverName. Der Name des Servers; z. B. host1.
- type4DatasourceClassName. Der Name der JDBC-Datenquellenklasse, mit der eine Verbindung vom Typ 4 zu einer fernen Datenbank hergestellt und die Transaktionsunterstützung koordiniert wird.
Geben Sie beispielsweise com.ibm.db2.jcc.DB2XADataSource für
DB2 oder
oracle.jdbc.xa.client.OracleXADataSource für Oracle an. Bei Verwendung des API-Aufrufs getJDBCType4Connection() für koordinierte Transaktionen müssen Sie den
XA-Klassennamen angeben. Wenn der Datenbankserver keine XA-Transaktionen unterstützt oder Sie das
XA-Protokoll nicht verwenden möchten, ist diese Eigenschaft optional und Sie müssen die Eigenschaft
jdbcProviderXASupport auf 'false' setzen.
- type4DriverClassName. Der Name der JDBC-Treiberklasse vom Typ 4, über die eine Verbindung erstellt wird. Geben Sie beispielsweise com.ibm.db2.jcc.DB2Driver für DB2 oder oracle.jdbc.OracleDriver für Oracle an.
- jdbcProviderXASupport. Eine optionale Eigenschaft, die steuert,
ob der Broker über das XA-Protokoll eine Verbindung zu einem Datenbankserver herstellt. Diese
Eigenschaft ist standardmäßig auf 'true' gesetzt. Wenn der Datenbankserver nicht für das
XA-Protokoll aktiviert ist oder koordinierte Transaktionen nicht erforderlich sind, setzen Sie den
Wert auf 'false'. In diesem Fall wird der Typ-4-Treiber, der in der Eigenschaft
type4DriverClassName angegeben ist, verwendet und nicht die Typ-4-Datenquelle,
die in der Eigenschaft type4DatasourceClassName angegeben ist.
- Wenn die bereitgestellte Definition verwendet werden soll, führen Sie den Befehl
mqsichangeproperties aus, um die Standardwerte
durch die spezifischen Werte für Ihre Datenbank und Umgebung zu ersetzen. Bei Unklarheiten bezüglich der erforderlichen Werte wenden Sie sich an den Datenbankadministrator oder schlagen Sie in der Dokumentation zu der betreffenden Datenbank nach. Einige Werte sind davon abhängig, wie und wo Sie das Datenbankprodukt installiert haben.
Beispielsweise gibt die Eigenschaft jarsURL die Position der JAR-Dateien an,
die vom Datenbankanbieter geliefert und installiert werden.
- Wenn Sie einen neuen konfigurierbaren Service erstellen möchten, weil Sie den gelieferten
Service als Schablone für künftige Definitionen aufbewahren wollen, führen Sie den Befehl
mqsicreateconfigurableservice aus, um die Definition zu erstellen.
mqsicreateconfigurableservice Brokername -c JDBCProviders -o Providername
-n Eigenschaftsliste -v Werteliste
Geben Sie den Befehl in einer einzigen Zeile ein. Das Beispiel wurde lediglich zur besseren
Lesbarkeit aufgeteilt.
Geben Sie alle Eigenschaften an, die vom ausgewählten Datenbankanbieter angefordert werden. Wenn Sie eine Liste aus Eigenschaften und Werten angeben, trennen Sie die Elemente nach jedem
Attribut durch ein Komma. Beispiel: -n databaseName,databaseType -v
MitarbeiterDB,DB2. Falls Sie in dem Befehl
mqsicreateconfigurableservice nicht alle
Eigenschaften angeben, können Sie diese später mit dem Befehl
mqsichangeproperties aktualisieren.
- Nach der Einrichtung oder Änderung des JDBCProvider-Service müssen Sie alle Ausführungsgruppen, die den JDBCProvider-Service zur Zeit verwenden (oder verwenden sollen), neu laden.