Release-Informationen


|6.6 Zugriff auf Sybase-Datenquellen

| |

||Bevor Sie einem Server mit zusammengeschlossenen Datenbanken |Sybase-Datenquellen hinzufügen, müssen Sie die Sybase Open Client-Software auf |dem DB2-Server mit zusammengeschlossenen Datenbanken installieren und |konfigurieren. In der Installationsbeschreibung in der Dokumentation, |die mit der Sybase-Datenbanksoftware geliefert wird, finden Sie genaue |Einzelangaben zur Installation der Open Client-Software. Stellen Sie |sicher, dass die im Sybase-Katalog gespeicherten Prozeduren auf dem |Sybase-Server und die Bibliotheken von Sybase Open Client auf dem DB2-Server |mit zusammengeschlossenen Datenbanken installiert werden.

|Nach der Konfiguration der Verbindung von der Clientsoftware zum |Sybase-Server testen Sie die Verbindung mit einem der Sybase-Tools. |Verwenden Sie das Tool isql für UNIX und das Tool SQL Advantage für |Windows.

|Sie müssen die folgenden Operationen ausführen, um Ihren Server mit |zusammengeschlossenen Datenbanken zu definieren, damit er auf Daten zugreifen |kann, die in Sybase-Datenquellen gespeichert sind: |

  1. |Installieren Sie DB2 Relational Connect Version 7.2. Siehe 6.3.3, Installieren von DB2 Relational Connect.
  2. |Fügen Sie Ihrem Server mit zusammengeschlossenen Datenbanken |Sybase-Datenquellen hinzu.
  3. |Geben Sie die Sybase-Codepages an. |

|Dieses Kapitel geht auf die Schritte 2 und 3 ein.

|Die Anweisungen in diesem Kapitel gelten für Windows NT, AIX und die |Solaris-Betriebsumgebung. Die plattformspezifischen Unterschiede werden |erwähnt, wo Sie zutreffen.

|6.6.1 Hinzufügen von Sybase-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken

|

|Sie müssen die folgenden Operationen ausführen, um einem Server mit |zusammengeschlossenen Datenbanken eine Sybase-Datenquelle hinzuzufügen: |

  1. |Legen Sie die Umgebungsvariablen fest, und aktualisieren Sie die |Profilregistrierdatenbank (nur AIX und Solaris).
  2. |Verknüpfen Sie DB2 mit der Sybase-Client-Software (nur AIX und |Solaris).
  3. |Starten Sie das DB2-Exemplar erneut (nur AIX und Solaris).
  4. |Erstellen und definieren Sie eine Schnittstellendatei.
  5. |Erstellen Sie die Oberfläche.
  6. |Optional: Legen Sie die Umgebungsvariable DB2_DJ_COMM fest.
  7. |Erstellen Sie den Server.
  8. |Optional: Legen Sie die Serveroption CONNECTSTRING fest.
  9. |Erstellen Sie eine Benutzerzuordnung.
  10. |Erstellen Sie Kurznamen für Tabellen und Sichten.

|Diese Schritte werden in diesem Abschnitt genau erklärt.

|6.6.1.1 Schritt 1: Festlegen der Umgebungsvariablen und Aktualisieren der Profilregistrierdatenbank (nur AIX und Solaris)

|Definieren Sie Umgebungsvariablen für Datenquellen durch eine Änderung der |Datei db2dj.ini und durch Absetzen des Befehls |db2set. Die Datei db2dj.ini enthält |Konfigurationsdaten zu der Sybase-Client-Software, die auf Ihrem Server mit |zusammengeschlossenen Datenbanken installiert ist. Der Befehl |db2set aktualisiert die DB2-Profilregistrierdatenbank mit Ihren |Einstellungen.

|In einem partitionierten Datenbanksystem können Sie eine einzige Datei |db2dj.ini für alle Knoten in einem bestimmten Exemplar |verwenden, oder Sie können eine eindeutige Datei db2dj.ini |für einen oder mehrere Knoten in einem bestimmten Exemplar verwenden. |Ein nicht partitioniertes Datenbanksystem kann nur eine Datei |db2dj.ini pro Exemplar haben.

|Gehen Sie wie folgt vor, um die Umgebungsvariablen festzulegen: |

  1. |Editieren Sie die Datei db2dj.ini, die sich im |Verzeichnis sqllib/cfg befindet, und legen Sie die folgende |Umgebungsvariable fest:
    | SYBASE= "<sybase-ausgangsverzeichnis>"
    | 

    |Dabei ist <sybase-ausgangsverzeichnis> das Verzeichnis, in dem |der Sybase-Client installiert ist.

  2. |Setzen Sie den Befehl db2set ab, um die |DB2-Profilregistrierdatenbank mit Ihren Änderungen zu aktualisieren. |Die Syntax des Befehls db2set hängt von Ihrer |Datenbanksystemstruktur ab. Dieser Schritt ist nur erforderlich, wenn |Sie die Datei db2dj.ini in einer der folgenden |Datenbanksystemstrukturen verwenden:

    |Wenn Sie die Datei db2dj.ini in einem nicht |partitionierten Datenbanksystem verwenden oder wenn Sie wollen, dass die Datei |db2dj.ini nur auf den aktuellen Knoten angewendet wird, |setzen Sie den folgenden Befehl ab:

    |db2set DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini

    |Wenn Sie die Datei db2dj.ini in einem partitionierten |Datenbanksystem verwenden und Sie wollen, dass die Werte in der Datei |db2dj.ini für alle Knoten innerhalb dieses Exemplars gelten |sollen, setzen Sie den folgenden Befehl ab:

    |db2set -g DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini

    |Wenn Sie die Datei db2dj.ini in einem partitionierten |Datenbanksystem verwenden und Sie wollen, dass die Werte in der Datei |db2dj.ini für einen bestimmten Knoten gelten sollen, setzen |Sie den folgenden Befehl ab:

    |db2set -i EXEMPX  3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini 

    |Dabei gilt Folgendes: |

    |EXEMPX
    |Der Name des Exemplars.

    |3
    |Die Knotennummer, die in der Datei db2nodes.cfg |aufgelistet wird.

    |knoten3.ini
    |Die geänderte und umbenannte Version der Datei |db2dj.ini. |
    |

|6.6.1.2 Schritt 2: Verbinden von DB2 mit der Sybase-Client-Software (nur AIX und Solaris-Betriebsumgebung)

|

|Es muss eine Programmverbindung zwischen dem DB2-Server mit |zusammengeschlossenen Datenbanken und den Client-Bibliotheken hergestellt |werden, um den Zugriff auf Sybase-Datenquellen zu aktivieren. Durch das |Herstellen einer Programmverbindung wird eine Oberfläche für alle Datenquellen |erstellt, über die der Server mit zusammengeschlossenen Datenbanken |kommunizieren wird. Wenn Sie das Script djxlink ausführen, |erstellen Sie die Oberflächenbibliothek. Geben Sie Folgendes ein, um |das Script djxlink abzusetzen:

|djxlink

|6.6.1.3 Schritt 3: Erneutes Starten des DB2-Exemplars (nur AIX und Solaris-Betriebsumgebung)

|Starten Sie das DB2-Exemplar erneut, um sicherzustellen, dass die |Umgebungsvariablen in dem Programm festgelegt sind. Wenn Sie das |Exemplar erneut starten, aktualisieren Sie das DB2-Exemplar so, dass es die |vorgenommenen Änderungen übernimmt.

|Setzen Sie die folgenden Befehle ab, um das DB2-Exemplar erneut zu |starten: |

|Auf DB2 für Windows NT-Servern:
|NET STOP exemplarname
|NET START exemplarname

|Auf DB2 für AIX- und Solaris-Servern:
|db2stop
|db2start
|

|6.6.1.4 Schritt 4: Erstellen und Definieren einer Schnittstellendatei

|Sie müssen die Datei erstellen und den Zugriff auf sie erlauben, um eine |Schnittstellendatei zu definieren. |

  1. |Verwenden Sie das Sybase-Dienstprogramm, um eine Schnittstellendatei zu |erstellen, die die Daten für alle Sybase Open Server enthält, auf die Sie |zugreifen wollen. Weitere Informationen zur Verwendung dieses |Dienstprogramms finden Sie in der Sybase-Installationsdokumentation.

    |Windows NT nennt diese Datei normalerweise |sql.ini. Bennen Sie die Datei, die gerade erstellt |haben, von sql.ini in interfaces um, um die Datei |auf allen Plattformen gleich zu nennen. Wenn Sie die Datei |sql.ini nicht in interfaces umbenennen wollen, |müssen Sie den Parameter IFILE oder die Option CONNECTSTRING verwenden, |der/die in Schritt 8 erklärt wird.

    |Auf AIX- und Solaris-Systemen heißt diese Datei |<exemplarausgangsverzeichnis>/sqllib/interfaces.

  2. |Erlauben Sie DB2 den Zugriff auf die Schnittstellendatei. |

    |Auf DB2 für Windows NT-Servern:
    |Stellen Sie die Datei in das Verzeichnis %DB2PATH% des |DB2-Exemplars.

    |Auf DB2 für AIX- und Solaris-Servern:
    |Stellen Sie die Datei in das Verzeichnis $HOME/sqllib des |DB2-Exemplars. Verwenden Sie den Befehl ln, um eine |Verknüpfung zu der Datei in dem Verzeichnis $HOME/sqllib des |DB2-Exemplars herzustellen. Beispiel:
    |ln -s -f /home/sybase/interfaces  /home/db2djinst1/sqllib
    |
    |

|6.6.1.5 Schritt 5: Erstellen der Oberfläche

|Verwenden Sie die Anweisung CREATE WRAPPER, um die Oberfläche anzugeben, |die verwendet werden soll, um auf Sybase-Datenquellen zuzugreifen. |Oberflächen sind die Mittel, mit denen Server mit zusammengeschlossenen |Datenbanken mit Datenquellen kommunizieren und Daten von Datenquellen |abrufen. DB2 enthält zwei Oberflächen für Sybase: CTLIB und |DBLIB. Das folgende Beispiel zeigt eine CREATE WRAPPER-Anweisung:

|CREATE WRAPPER CTLIB 

|Dabei gilt Folgendes: CTLIB ist der Standardoberflächenname, der mit |der Sybase Open Client-Software verwendet wird. Die Oberfläche CTLIB |kann auf Windows NT-, AIX- und Solaris-Servern verwendet werden.

|Sie können den Standardoberflächennamen mit einem Namen ihrer Wahl |ersetzen. Wenn Sie dies machen, müssen Sie allerdings auch den |Parameter LIBRARY und den Namen der Oberflächenbibliothek für Ihren Server mit |zusammengeschlossenen Datenbanken in der Anweisung CREATE WRAPPER |angeben. Weitere Informationen zu Oberflächenbibliotheksnamen finden |Sie bei der Anweisung CREATE WRAPPER im Handbuch SQL |Reference.

|6.6.1.6 Schritt 6: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM

|

|Setzen Sie die Umgebungsvariable DB2_DJ_COMM, um die Leistung für den |Zugriff auf die Sybase-Datenquelle zu erhöhen. Diese Variable stellt |fest, ob eine Oberfläche geladen ist, wenn der Server mit |zusammengeschlossenen Datenbanken initialisiert wird. Legen Sie die |Umgebungsvariable DB2_DJ_COMM fest, damit die Oberflächenbibliothek integriert |wird, die zu der Oberfläche gehört, die Sie in dem vorherigen Schritt |angegeben haben. Beispiel: |

|Auf DB2 für AIX-Servern:
|db2set DB2_DJ_COMM='libctlib.a' 

|Auf DB2 für Solaris-Servern:
|db2set DB2_DJ_COMM='libctlib.so' 
|

|Stellen Sie sicher, dass sich auf keiner Seite des Gleichheitszeichens (=) |Leerzeichen befinden.

|Weitere Informationen zu den Oberflächenbibliotheksnamen finden Sie im |Handbuch SQL |Reference. Weitere Informationen zu der Umgebungsvariable |DB2_DJ_COMM finden Sie im Handbuch Systemverwaltung.

|6.6.1.7 Schritt 7: Erstellen des Servers

|

|Verwenden Sie die Anweisung CREATE SERVER, um alle Sybase-Server zu |definieren, auf die Sie zugreifen wollen. Beispiel:

|CREATE SERVER SYBSERVER TYPE SYBASE VERSION 12.0 WRAPPER CTLIB
|OPTIONS (NODE 'syb-knoten', DBNAME'syb-db')

|Dabei gilt Folgendes: |

|SYBSERVER
|Der Name, den Sie einem Sybase-Server zuordnen. Dieser Name muss |eindeutig sein.

|SYBASE
|Der Datenquellentyp, für den Sie den Zugriff konfigurieren. Sybase |ist die einzige Datenquelle, die unterstützt wird.

|12.0
|Die Sybase-Version, auf die Sie zugreifen. Die unterstützten |Versionen sind 10.0, 11.0, 11.1, 11.5, 11.9 |und 12.0.

|CTLIB
|Der Oberflächenname, den Sie in der Anweisung CREATE WRAPPER angegeben |haben.

|'syb-knoten'
|Der Name des Knotens, auf dem sich SYBSERVER befindet. |Entnehmen Sie den Knotenwert der Schnittstellendatei. Beachten Sie bei |diesem Wert die Groß-/Kleinschreibung.

|Obwohl der Name des Knotens als Option angegeben wird, ist er für |Sybase-Datenquellen erforderlich. Informationen zu zusätzlichen |Optionen finden Sie im Handbuch SQL |Reference.

|'syb-db'
|Der Name der Sybase-Datenbank, auf die Sie zugreifen wollen. Rufen |Sie diesen Namen vom Sybase-Server ab. |

|Sie können die Serveroption IGNORE_UDT mit den Protokollen CTLIB und DBLIB |verwenden, um anzugeben, ob der Server mit zusammengeschlossenen Datenbanken |ohne Eingabe mit festgelegtem Datentyp den integrierten Typ ermitteln soll, |der einem benutzerdefinierten Typ zugrunde liegt. Diese Serveroption |gilt nur für Datenquellen, auf die über die Protokolle CTLIB und DBLIB |zugegriffen wird. Gültige Werte sind: |

|'Y'
|Ignoriert die Tatsache, dass benutzerdefinierte Typen benutzerdefiniert |sind, und ermittelt, welche integrierten Typen ihnen zugrunde liegen.

|'N'
|Ignoriert die benutzerdefinierten Spezifikationen von benutzerdefinierten |Typen nicht. Dies ist die Standardeinstellung. |

|Wenn DB2 Kurznamen erstellt, sucht es nach Informationen zu den Objekten |(Tabellen, Sichten, gespeicherte Prozeduren), auf die die Kurznamen zeigen, |und katalogisiert sie. Beim Suchen nach den Informationen kann DB2 |feststellen, dass einige Objekte Datentypen haben, die es nicht erkennt |(d. h. Datentypen, die nicht auf auf die entsprechende |Gegenstücke der zusammengeschlossenen Datenbank abgebildet werden). |Solche nicht erkannten Typen sind unter anderem: |

|Wenn der Server mit zusammengeschlossenen Datenbanken Datentypen findet, |die er nicht erkennt, gibt er die Fehlernachricht SQL3324N zurück. Es |kann jedoch Ausnahmen von dieser Regel geben. Für Datenquellen, auf die |über die Protokolle CTLIB oder DBLIB zugegriffen werden kann, können Sie die |Serveroption IGNORE_UDT so einstellen, dass die zusammengeschlossene Datenbank |den zugrunde liegenden Typ des benutzerdefinierten Typs ermittelt, wenn sie |auf einen unbekannten benutzerdefinierten Typ ohne Eingabe mit festgelegtem |Datentyp trifft. Wenn dann die zusammengeschlossene Datenbank diesen |integrierten Typ erkennt, gibt sie Informationen zum integrierten Typ an den |Katalog zurück. Damit die zusammengeschlossene Datenbank die zugrunde |liegenden Typen von benutzerdefinierten Typen ermittelt, die keine Eingabe mit |festgelegtem Datentyp haben, setzen Sie IGNORE_UDT auf |'Y'.

|6.6.1.8 Schritt 8: Festlegen der Serveroption CONNECTSTRING

|Geben Sie die Zeitlimitschwelle, den Pfad und den Namen der |Schnittstellendatei sowie die Paketgröße der Schnittstellendatei an. |Sybase Open Client verwendet Zeitlimitschwellen, um Abfragen und Antworten zu |unterbrechen, die zu lange ausgeführt werden. Sie können diese |Schwellen in DB2 mit der Option CONNECTSTRING in der Anweisung CREATE SERVER |OPTION DDL festlegen. Verwenden Sie die Option CONNECTSTRING, um |Folgendes anzugeben: |

|   .-;--------------------------------.
|   V                                  |
|>>---+------------------------------+-+------------------------><
|     +-TIMEOUT-- = --sekunden-------+
|     +-LOGIN_TIMEOUT-- = --sekunden-+
|     +-IFILE-- = --"zeichenfolge"---+
|     +-PACKET_SIZE-- = --byte-------+
|     '-;----------------------------'
| 
| 
|
|TIMEOUT
|Gibt die Anzahl an Sekunden an, die DB2 Universal Database auf eine |Antwort von Sybase Open Client für eine beliebige SQL-Anweisung wartet. |Der Wert von sekunden ist eine positive ganze Zahl aus dem |Integerbereich von DB2 Universal Database. Der Zeitlimitwert, den Sie |angeben, hängt von der Oberfläche ab, die Sie verwenden. Windows NT-, |AIX- und Solaris-Server können die Oberfläche DBLIB verwenden. Der |Standardwert für die Oberfläche DBLIB ist 0. Auf Windows NT-, AIX- und |Solaris-Servern veranlasst der Standardwert, dass DB2 Universal Database |unendlich lang auf eine Antwort wartet.
|LOGIN_TIMEOUT
|Gibt die Anzahl an Sekunden an, die DB2 Universal Database auf eine |Antwort von Sybase Open Client für eine Anmeldeanfrage wartet. Die |Standardwerte sind dieselben wie für TIMEOUT.
|IFILE
|Gibt den Pfad und Namen der Schnittstellendatei von Sybase Open Client |an. Der in zeichenfolge angegebene Pfad muss in doppelte |Anführungszeichen (") eingeschlossen sein. Auf Windows NT-Servern ist |der Standardpfad %DB2PATH%. Auf AIX- und Solaris-Servern ist der |Standardwert sqllib/interfaces im Ausgangsverzeichnis Ihres DB2 |Universal Database-Exemplars.
|PACKET_SIZE
|Gibt die Paketgröße der Schnittstellendatei in Byte an. Wenn die |Datenquelle die angegebene Paketgröße nicht unterstützt, schlägt die |Verbindung fehl. Das Erhöhen der Paketgröße für sehr große Datensätze |(z. B. beim Einfügen von Zeilen in große Tabellen) |verbessert die Leistung deutlich. Die Bytegröße ist ein numerischer |Wert. Weitere Informationen finden Sie in den |Sybase-Referenzhandbüchern. |

|Beispiele:

|Verwenden Sie den folgenden Befehl auf Windows NT-Servern, um den |Zeitlimitwert auf 60 Sekunden und die Schnittstellendatei auf |C:\etc\interfaces zu setzen:

|CREATE SERVER OPTION connectstring FOR SERVER sybase1
|SETTING 'TIMEOUT=60;LOGIN_TIMEOUT=5;IFILE="C:\etc\interfaces"'
| 

|Verwenden Sie den folgenden Befehl auf AIX- und Solaris-Servern, um den |Zeitlimitwert auf 60 Sekunden und die Schnittstellendatei auf |/etc/interfaces zu setzen:

|CREATE SERVER OPTION connectstring FOR SERVER sybase1
|SETTING 'TIMEOUT=60;PACKET_SIZE=4096;IFILE="/etc/interfaces"'
| 

|6.6.1.9 Schritt 9: Erstellen einer Benutzerzuordnung

|Wenn sich die Benutzer-ID oder das Kennwort auf dem Server mit |zusammengeschlossenen Datenbanken von einer Benutzer-ID oder einem Kennwort in |einer Sybase-Datenquelle unterscheiden, verwenden Sie die Anweisung CREATE |USER MAPPING, um die lokale Benutzer-ID der Benutzer-ID und dem Kennwort |zuzuordnen, die/das in der Sybase-Datenquelle definiert ist. |Beispiel:

|CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER
|OPTIONS ( REMOTE_AUTHID 'syb-benutzer', REMOTE_PASSWORD
|1und2')

|Dabei gilt Folgendes: |

|DB2USER
|Die lokale Benutzer-ID, die Sie einer Benutzer-ID zuordnen, die in einer |Sybase-Datenquelle definiert ist.

|SYBSERVER
|Der Name der Sybase-Datenquelle, die Sie in der Anweisung CREATE SERVER |definiert haben.

|'syb-benutzer'
|Die Benutzer-ID in der Sybase-Datenquelle, der Sie DB2USER |zuordnen. Beachten Sie bei diesem Wert die |Groß-/Kleinschreibung.

|'1und2'
|Das Kennwort, das 'syb-benutzer' zugeordnet ist. |Beachten Sie bei diesem Wert die Groß-/Kleinschreibung. |

|Weitere Informationen zu zusätzlichen Optionen finden Sie im Handbuch |SQL |Reference.

|6.6.1.10 Schritt 10: Erstellen von Kurznamen für Tabellen und Sichten

|Ordnen Sie jeder Sicht oder Tabelle, die sich in Ihrer Sybase-Datenquelle |befindet, einen Kurznamen zu. Sie verwenden diese Kurznamen, wenn Sie |die Sybase-Datenquelle abfragen. Beachten Sie bei Sybase-Kurznamen die |Groß-/Kleinschreibung. Schließen Sie sowohl die Schema- als auch die |Tabellennamen in doppelte Anführungszeichen (") ein. Das folgende |Beispiel zeigt eine CREATE NICKNAME-Anweisung:

|CREATE NICKNAME SYBSALES FOR SYBSERVER."verkaufsdaten"."europa"

|Dabei gilt Folgendes: |

|SYBSALES
|Ein eindeutiger Kurzname für die Sybase-Tabelle oder -Sicht. |
|

|SYBSERVER."verkaufsdaten"."europa"
|Ein dreiteiliger Bezeichner, der das folgende Format hat:

|datenquellenname."ferner-schemaname"."ferner-tabellenname" |

|Wiederholen Sie diesen Schritt für alle Tabellen oder Sichten, für die Sie |Kurznamen erstellen wollen. Wenn Sie den Kurznamen erstellen, verwendet |DB2 die Verbindung, um den Datenquellenkatalog abzufragen. Diese |Abfrage testet Ihre Verbindung zu der Datenquelle. Wenn die Verbindung |nicht zustande kommt, empfangen Sie eine Fehlernachricht.

|Weitere Informationen zu der Anweisung CREATE NICKNAME finden Sie im |Handbuch SQL Reference. Weitere Informationen zu Kurznamen |im Allgemeinen und zum Prüfen von Datentypzuordnungen finden Sie im Handbuch |DB2 |Systemverwaltung.

|6.6.2 Angeben von Sybase-Codepages

|

|Dieser Schritt ist nur notwendig, wenn der DB2-Server mit |zusammengeschlossenen Datenbanken und der Sybase-Server unterschiedliche |Codepages ausführen. Datenquellen, die denselben codierten Zeichensatz |wie DB2 verwenden, erfordern keine Übersetzung. In der folgenden |Tabelle finden Sie gleichbedeutende Sybase-Optionen für gemeinsame Codepages |mit Unterstützung der Landessprache (National Language Support, NLS). |Entweder müssen Sie Ihre Sybase-Datenquellen so konfigurieren, dass sie mit |diesen Werten übereinstimmen, oder der Client-Code muss in der Lage sein, die |Abweichung zu entdecken und sie als Fehler zu markieren oder die Daten mit |seiner eigenen Semantik zuzuordnen. Wenn keine Konvertierungstabelle |von der Quellen-Codepage zu der Ziel-Codepage gefunden werden kann, setzt DB2 |eine Fehlernachricht ab. Weitere Informationen finden Sie in Ihrer |Sybase-Dokumentation.
|

|Tabelle 2. Sybase-Codepageoptionen

Codepage Gleichbedeutende Sybase-Option
850 cp850
897 sjis
819 iso_1
912 iso_2
1089 iso_6
813 iso_7
916 iso_8
920 iso_9


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]