||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: |
|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.
|Sie müssen die folgenden Operationen ausführen, um einem Server mit |zusammengeschlossenen Datenbanken eine Sybase-Datenquelle hinzuzufügen: |
|Diese Schritte werden in diesem Abschnitt genau erklärt.
|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: |
| SYBASE= "<sybase-ausgangsverzeichnis>" |
|Dabei ist <sybase-ausgangsverzeichnis> das Verzeichnis, in dem |der Sybase-Client installiert ist.
|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: |
|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
|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: |
|NET STOP exemplarname |NET START exemplarname
|db2stop |db2start|
|Sie müssen die Datei erstellen und den Zugriff auf sie erlauben, um eine |Schnittstellendatei zu definieren. |
|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.
|ln -s -f /home/sybase/interfaces /home/db2djinst1/sqllib
||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.
|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: |
|db2set DB2_DJ_COMM='libctlib.a'
|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.
|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: |
|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.
|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: |
|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'.
|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-------+ | '-;----------------------------' | ||
|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"' |
|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: |
|Weitere Informationen zu zusätzlichen Optionen finden Sie im Handbuch |SQL |Reference.
|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: |
|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.
|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 |