JDBC-Provider-Eintrag für eine DB2-Datenbank erstellen

Der DatabaseRoute- und der DatabaseRetrieve-Knoten verwenden für den JDBC-Verbindungsaufbau die in der Registrierungsdatenbank des Brokers gespeicherten Verbindungsdetails. Hierzu gehören die Standard-DBMS-Einstellungen für den JDBC-Provider. Anhand der folgenden Anweisungen können Sie bei Verwendung einer DB2 Universal Database einen JDBC-Provider-Eintrag erstellen.

Über den im folgenden Script angegebenen Befehl mqsicreateconfigurableservice kann der neue JDBC-Provider-Eintrag 'SIMPLERROUTEDB' erstellt werden. Auf diesen Eintrag wird im Eigenschaftsfeld Name der Datenquelle in den Datenbankknoten aus dem Mustercode verwiesen. In den folgenden Anweisungen wird auch der Eintrag des JDBC-Providers mit einer Benutzer-ID und einem Kennwort für den Broker konfiguriert. Diese Angaben müssen beim Zugriff auf die Datenbank verwendet werden.

  1. Erstellen Sie einen JDBC-Provider-Eintrag für die Datenbank:

    1. Starten Sie den Broker, und stellen Sie sicher, dass auf dem Broker eine Ausführungsgruppe implementiert wurde. Öffnen Sie zum Starten eines Brokers beispielsweise ein Befehlskonsolfenster, in dem Sie WebSphere Message Broker-Befehle ausführen können, und geben Sie folgenden Befehl ein:
      mqsistart MB8BROKER
    2. Öffnen Sie in einem Texteditor ein neues Dokument; kopieren Sie das folgende Script, mit dem der JDBC-Provider-Eintrag SIMPLERROUTEDB erstellt wird, der den JDBC-Datenbankzugriff für den Mustercode 'Simplified Database Routing' ermöglicht, und fügen Sie es in das Dokument ein. Sie müssen die folgenden Platzhalter im Script durch die Werte ersetzen, die für Ihre Umgebung gültig sind.
      • <JARS URL> Der lokale Verzeichnispfad auf dem System, auf dem der Broker ausgeführt wird, und in dem sich die JAR-Datei befindet, welche die Treiberklasse des Typs 4 enthält. Bei den folgenden Pfaden handelt es sich um die Standardpositionen:
        • Windows: C:\Programme\IBM\SQLLIB\java
        • Linux: sqllib/java - beispielsweise /home/db2inst1/sqllib/java/
      • <PORT NUMBER> Die Portnummer, an welcher der Datenbankserver empfangsbereit ist. Der DB2-Standardwert lautet 50000.
      • <SERVER NAME> Der Name des Hosts, auf dem DB2 ausgeführt wird; Beispiel: localhost.
      mqsideleteconfigurableservice MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB
      mqsicreateconfigurableservice MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB
      -n connectionUrlFormat,databaseName,description,jarsURL,portNumber,serverName,
      type4DatasourceClassName,type4DriverClassName
      -v "jdbc:db2://[Servername]:[Portnummer]/[Datenbankname]:user=[Benutzer];password=[Kennwort];,
      SROUTEDB,Simplified Database Routing Sample Database,<JARS URL>,<PORT NUMBER>,
      <SERVER NAME>,com.ibm.db2.jcc.DB2DataSource,com.ibm.db2.jcc.DB2Driver" 
      
      Hinweis: Das oben gezeigte Script besteht aus nur zwei Befehlen, von denen jeder in einer eigenen, separaten Zeile beginnen und enden muss. Beim Kopieren und Einfügen des Scripts darf das gesamte Script deshalb nur zwei Zeilen belegen, so wie hier gezeigt:
      mqsideleteconfigurableservice MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB
      
      mqsicreateconfigurableservice MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB -n connectionUrlFormat,databaseName,description,jarsURL,portNumber,serverName,type4DatasourceClassName,type4DriverClassName -v "jdbc:db2://[Servername]:[Portnummer]/[Datenbankname]:user=[Benutzer];password=[Kennwort];,SROUTEDB,Simplified Database Routing Sample Database,<JARS URL>,<PORT NUMBER>,<SERVER NAME>,com.ibm.db2.jcc.DB2DataSource,com.ibm.db2.jcc.DB2Driver"
      
      Wird das Script nicht in Form von zwei Zeilen kopiert und eingefügt, führt jeder Versuch, es auszuführen, zu einem Fehler wie " -n wird nicht als gültiges Programm erkannt....". Der Grund dafür ist, dass das System jede neue Zeile fälschlicherweise als Anfang eines neuen Befehls interpretiert.

      Da der Nachrichtenfluss einen DatabaseRetrieve-Knoten enthält, verwenden Sie die Klasse com.ibm.db2.jcc.DB2DataSource anstatt der Klasse com.ibm.db2.jcc.DB2XADataSource.

    3. Speichern Sie die Datei. Bei den folgenden Anweisungen wird davon ausgegangen, dass der Dateiname simplifieddbrouting.bat lautet.
    4. Navigieren Sie in der Befehlskonsole zu dem Ordner, in dem die Datei simplifieddbrouting.bat enthalten ist, und geben Sie den folgenden Befehl ein, um das Script auszuführen:
      simplifieddbrouting.bat

      Wenn Sie das Script ausführen, führt es die folgenden Tasks aus:

      • Ein eventuell vorhandener JDBC-Provider-Eintrag SIMPLERROUTEDB wird gelöscht.
      • Es wird ein neuer JDBC-Provider-Eintrag SIMPLERROUTEDB für den Mustercode 'Simplified Database Routing' erstellt. Die Standardeinstellungen beziehen sich auf ein DB2-Datenbankverwaltungssystem unter Verwendung der JDBC-Typ-4-Treiberklasse dieses Anbieters.
    5. Warten Sie das Ende des Scripts ab. Wenn Sie das Script zum ersten Mal ausführen, wird die folgende Nachricht angezeigt:
      BIP8984W: Der konfigurierbare Serviceobjektname 'JDBCProviders : SIMPLERROUTEDB' konnte nicht gefunden werden.
      Der Benutzer hat versucht, einen konfigurierbaren Serviceobjektnamen, der nicht vorhanden ist, zu löschen oder zu ändern.
      Überprüfen Sie die Namen der bestehenden konfigurierbaren Services mithilfe des Befehls 'mqsireportproperties'. 
      Ändern Sie anschließend den Objektnamen der externen Ressource und geben Sie den Befehl erneut aus.
      
      BIP2087E: Broker MB8BROKER konnte die interne Konfigurationsnachricht nicht verarbeiten.
      Die gesamte interne Konfigurationsnachricht konnte nicht erfolgreich verarbeitet werden.
      Ermitteln Sie die Fehlerursachen anhand der Nachrichten, die auf diese Nachricht folgen.
      
      BIP8036E: Negative response received. (Negative Antwort erhalten)
      This command sends an internal configuration message to the broker, the response received indicated that the internal configuration
      message was unsuccessful. (Bei diesem Befehl wird eine interne Konfigurationsnachricht an den Broker gesendet; aus der empfangenen Antwort geht hervor, dass die interne Konfigurationsnachricht nicht erfolgreich war.)
      Check that the WebSphere MQ transport is available. (Prüfen Sie, ob der WebSphere MQ-Transport verfügbar ist.) Check the system log for further information. (Prüfen Sie das Systemprotokoll auf weitere Informationen.)
      
      Ignorieren Sie diese Nachricht. Sie wird angezeigt, da das Script versucht, einen vorhandenen Registereintrag für den JDBC-Provider SIMPLERROUTEDB zu löschen, bevor es den Eintrag erneut erstellt. Falls das Script zum ersten Mal ausgeführt wird, kann der Eintrag nicht im Register gefunden werden.
    6. Mit dem folgenden Befehl können Sie prüfen, ob das Standardbrokerregister korrekt mit dem Mustereintrag für den JDBC-Provider SIMPLERROUTEDB aktualisiert wurde:
      mqsireportproperties MB8BROKER -o SIMPLERROUTEDB -c JDBCProviders -r

      Im Falle einer erfolgreichen Aktualisierung sieht die zurückgemeldete Eigenschaftsausgabe des Befehls wie in folgendem Beispiel aus:

      JDBCProviders
        SIMPLERROUTEDB
          connectionUrlFormat='jdbc:db2://[ServerName]:[Portnummer]/[Datenbankname]:user=[Benutzer];password=[Kennwort];'
          connectionUrlFormatAttr1=''
          connectionUrlFormatAttr2=''
          connectionUrlFormatAttr3=''
          connectionUrlFormatAttr4=''
          connectionUrlFormatAttr5=''
          databaseName='SROUTEDB'
          databaseType='default_Database_Type'
          databaseVersion='default_Database_Version'
          description='Simplified Database Routing Sample Database'
          environmentParms='default_none'
          jarsURL='C:\Program Files\IBM\SQLLIB\java'
          portNumber='50000'
          securityIdentity='default_User@default_Server'
          serverName='localhost'
          type4DatasourceClassName='com.ibm.db2.jcc.DB2DataSource'
          type4DriverClassName='com.ibm.db2.jcc.DB2Driver'
      
      BIP8071I: Befehl wurde erfolgreich ausgeführt.
  2. Verwenden Sie die Befehle mqsisetdbparms und mqsichangeproperties zur Angabe der Werte für Benutzer-ID und Kennwort, die dem JDBC-Provider SIMPLERROUTEDB zugeordnet werden sollen. Bei dieser Benutzer-ID muss es sich um die Benutzer-ID handeln, die Sie bei der Erstellung der Datenbank verwendet haben.

    1. Geben Sie folgenden Befehl ein, um die Benutzer-ID und das Kennwort mit einer Sicherheitsidentität zu verknüpfen:
      mqsisetdbparms MB8BROKER -n jdbc::mySecurityIdentity -u <Benutzer-ID> -p <Kennwort>
    2. Geben Sie folgenden Befehl ein, um die im vorherigen Schritt definierte Sicherheitsidentität der Eigenschaft securityIdentity des JDBC-Providers SIMPLERROUTEDB zuzuordnen:
      mqsichangeproperties MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB -n securityIdentity -v mySecurityIdentity
    3. Für bereits implementierte Nachrichtenflüsse werden Änderungen am JDBC-Provider erst verfügbar, nachdem der Broker gestoppt und erneut gestartet wurde. Stoppen und starten Sie den Broker also, wenn Sie den Mustercode bereits implementiert haben.

    Weitere Informationen hierzu finden Sie unter JDBC-Verbindungen mit Datenbanken aktivieren und "Den JDBC-Provider-Service für den DatabaseRoute-Knoten verfügbar machen" in der Dokumentation zu WebSphere Message Broker im Abschnitt DatabaseRoute-Knoten.

Zurück zur Einrichtung von DB2

Zurück zu 'Datenbank einrichten'

Zurück zum Beginn des Mustercodes