IBM DB2 Universal Database Release-Informationen Version 7 Inhaltsverzeichnis Vorwort Wichtige Hinweise Release-Informationen der Version 7 Produkthinweise 2.1 Von DB2 Version 7 für die Solaris-Betriebsumgebung unterstützte CPUs 2.2 Chinese Locale Fix on Red Flag Linux 2.3 Additional Locale Setting for DB2 for Linux in a Japanese and Simplified Chinese Linux Environment 2.4 Limitation for Japanese on PTX 2.5 Problem der Steuerzentrale bei Microsoft Internet Explorer 2.6 Verlust der Steuerzentralenfunktion 2.7 Netscape-CD nicht im Lieferumfang von DB2 UDB enthalten 2.8 Fehler in den XML-Readme-Dateien 2.9 Neue Verbesserungen des Informationsmanagement in DB2 Version 7.2 2.10 FixPak 2A und höher verursacht Probleme in IBM DB2 OLAP Server 2.11 Segmentierungsverletzung bei Verwendung von WebSphere 3.5.5 2.12 Unterstützung von Veritas AIX Volume Manager 2.13 Fix erforderlich für Java-Anwendungen unter AIX Version 4 2.14 db2stop wird auf AIX 5-Betriebssystemen aufgrund eines NFS-Problems blockiert Onlinedokumentation (HTML, PDF und Suche) - Anmerkungen 3.1 Unterstützte Web-Browser unter Windows 2000 3.2 Suchen nach DB2-Onlineinformationen in der Solaris-Betriebsumgebung 3.3 Einrichten von NetQuestion für OS/2 zur Verwendung von TCP/IP 3.4 Fehlernachrichten beim Versuch, Netscape zu starten 3.5 Konfigurationsanforderung für Adobe Acrobat Reader auf UNIX-Systemen 3.6 "SQL Reference" in einer PDF-Datei verfügbar Installation und Konfiguration Allgemeine Informationen zur Installation, Migration und Konfiguration 4.1 Herunterladen von Installationspaketen für alle unterstützten DB2-Clients 4.2 Ermöglichen des Zugriffs auf das DB2 EE- oder DB2 Connect EE-Installationsimage unter Linux auf S/390 4.3 Informationen im DB2 Connect-Anhang nicht erforderlich 4.4 Installieren von DB2 unter SuSE Linux 4.5 Zusätzliche Programmkorrekturstufe für die Solaris-Betriebsumgebung erforderlich 4.6 Installieren von DB2 Enterprise-Extended Edition unter AIX 4.7 Weitere Installationsschritte für AIX-CICS-Benutzer 4.8 Netscape-LDAP-Verzeichnisunterstützung 4.8.1 Erweitern des Netscape-LDAP-Schemas 4.9 Unterstützung für die Plattformen Windows ME, Windows XP und Windows 2000 Datacenter Edition 4.9.1 Windows XP 4.9.1.1 Einschränkungen 4.9.2 Windows ME 4.9.2.1 Einschränkungen 4.9.3 Windows 2000 Datacenter Server 4.10 Installieren von DB2 unter Windows 95 4.11 Installieren von DB2 unter Windows 2000 4.12 Ausführen von DB2 unter einem Windows 2000-Terminalserver (im Verwaltungsmodus) 4.13 Unterstützung für Microsoft SNA Server und SNA-Aktualisierung an mehreren Standorten (zweiphasige Festschreibung) 4.14 Definieren von Benutzer-ID und Kennwort in IBM Communications Server für Windows NT (CS/NT) 4.14.1 Knotendefinition 4.15 DB2-Installation kann blockieren, wenn ein Wechsellaufwerk nicht angeschlossen ist 4.16 Fehler SQL1035N bei der Verwendung des Befehlszeilenprozessors unter Windows 2000 4.17 Migrationsproblem bei mit Sonderregistern definierten Sichten 4.18 IPX/SPX-Protokollunterstützung unter Windows 2000 4.19 Stoppen von DB2-Prozessen vor dem Upgrade älterer Versionen von DB2 4.20 Ausführen von db2iupdt nach der Installation von DB2, wenn ein anderes DB2-Produkt bereits installiert ist 4.21 Definieren der Linux-Umgebung zur Ausführung der DB2-Steuerzentrale 4.22 DB2 Universal Database Enterprise Edition und DB2 Connect Enterprise Edition für Linux unter S/390 4.23 Möglicher Datenverlust unter Linux für S/390 4.24 DB2 für Linux - Integration der Gnome- und KDE-Desktops 4.25 Solaris-Kernelkonfigurationsparameter (empfohlene Werte) 4.26 DB2 Universal Database Enterprise - Extended Edition für UNIX Einstieg 4.27 Kernelparameter "shmseg" für HP-UX 4.28 Migrieren von IBM Visual Warehouse-Steuerungsdatenbanken 4.29 Migrieren eindeutiger Indizes mit dem Befehl "db2uiddl" 4.30 Installationsfehler bei der 64-Bit-AIX-Version 4.30.1 Mit SMIT 4.31 Fehler bei der Migration 4.32 IBM DB2 Connect-Lizenzaktivierung 4.32.1 Installieren Ihrer Lizenzberechtigung und Einstellen der Lizenzart mit der Lizenzzentrale 4.32.2 Installieren Ihrer Lizenzberechtigung und Einstellen der Lizenzart mit dem Befehl "db2licm" 4.32.3 Lizenzüberlegungen für verteilte Installationen 4.33 Zugreifen auf Warehouse-Steuerungsdatenbanken 4.34 IBM e-server p690 und DB2 UDB Version 7 mit AIX 5 4.35 Testprodukte auf den CD-ROMs von Enterprise Edition für UNIX 4.36 Testprodukte auf den CD-ROMs von DB2 Connect Enterprise Edition für UNIX 4.37 Merant-Treibermanager und der ODBC-Treiber von DB2 UDB Version 7 unter UNIX 4.38 Weitere Konfiguration erforderlich vor der Installation der Informationskatalogzentrale für das Web 4.39 Informationen zur Unterstützung von Sprachen und Codepages - Korrektur DB2 Data Links Manager Einstieg 5.1 Unterstützung unter AIX 5.1 5.2 Fehlschlagen von "dlfm start" mit der Nachricht, dass beim Abruf von afsfid für Präfix ein Fehler aufgetreten ist 5.3 Einrichten einer Tivoli Storage Manager-Verwaltungsklasse für Archivierungsdateien 5.4 Erforderlicher Plattenspeicherplatz für DFS Client Enabler 5.5 Überwachen der Back-End-Prozesse von Data Links File Manager unter AIX 5.6 Installation und Konfiguration von DB2 Data Links Manager für AIX: Zusätzliche Installationsvoraussetzungen in DCE-DFS-Umgebungen 5.7 Fehlgeschlagener Befehl "dlfm add_prefix" 5.8 Wenn der Kopierdämon bei "dlfm stop" nicht stoppen sollte 5.9 Installation und Konfiguration von DB2 Data Links Manager für AIX: Installieren von DB2 Data Links Manager unter AIX mit dem Dienstprogramm db2setup 5.10 Installation und Konfiguration von DB2 Data Links Manager für AIX: Tasks nach Abschluss der Installation in DCE-DFS 5.11 Installation und Konfiguration von DB2 Data Links Manager für AIX: Manuelles Installieren von DB2 Data Links Manager mit SMIT 5.12 Installation und Konfiguration von DB2 Data Links DFS Client Enabler 5.13 Installation und Konfiguration von DB2 Data Links Manager für Solaris-Betriebssysteme 5.14 Administratorgruppenzugriffsrechte in Data Links unter Windows NT 5.15 Minimieren der Protokollierung für DLFF-Installation (Data Links File System Filter) 5.15.1 Protokollieren von Nachrichten nach der Installation 5.15.2 Verringerung der Protokollierungsaktivität auf Sun Solaris-Systemen 5.16 DATALINK-Wiederherstellung 5.17 Löschen von Data Links Manager 5.18 Deinstallation von DLFM-Komponenten mit SMIT entfernt unter Umständen zusätzliche Dateigruppen 5.19 Vorbereitung/Feststellen des Host-Namens 5.20 Arbeiten mit DB2 Data Links File Manager: Bereinigung nach dem Löschen von DB2 Data Links Manager aus einer DB2-Datenbank 5.21 Benutzeraktion für "dlfm Client_conf" schlägt fehl 5.22 DLFM1001E (Neue Fehlernachricht) 5.23 DLFM-Konfigurationsdateioption 5.24 Mögliches Problem beim Wiederherstellen von Dateien 5.25 Fehler beim Ausführen von des Data Links/DFS-Scripts "dmapp_prestart" unter AIX 5.26 Integration von Tivoli Space Manager in Data Links 5.26.1 Einschränkungen und Begrenzungen 5.27 Kapitel 4. Installieren und Konfigurieren von DB2 Data Links Manager für AIX 5.27.1 Allgemeine Installationsvoraussetzungen 5.27.1.1 Migration von DB2 File Manager Version 5.2 auf DB2 Data Links Manager Version 7 5.28 Kapitel 6. Überprüfen der Installation unter AIX 5.28.1 Umgehen von Problemen in NFS-Umgebungen Installation und Konfiguration: Ergänzung 6.1 Kapitel 5. Installieren von DB2-Clients auf UNIX-Betriebssystemen 6.1.1 Kernelkonfigurationsparameter für HP-UX 6.2 Kapitel 12. Ausführen Ihrer eigenen Anwendungen 6.2.1 Binden von Datenbankdienstprogrammen mit Run-Time Client 6.2.2 Client-Zugriff auf DB2 mit ODBC unter UNIX 6.3 Kapitel 24. Einrichten eines Systems zusammengeschlossener Datenbanken für den Zugriff auf Einstellen eines Systems auf mehrere Datenquellen 6.3.1 Systeme zusammengeschlossener Datenbanken 6.3.2 FixPak 8 oder höher erforderlich für DB2-Datenquellen der Version 8 6.3.3 Einschränkung 6.3.4 Installieren von DB2 Relational Connect 6.3.4.1 Installieren von DB2 Relational Connect auf Windows NT-Servern 6.3.4.2 Installieren von DB2 Relational Connect auf UNIX-Servern 6.3.5 Kapitel 24. Einrichten eines Systems zusammengeschlossener Datenbanken für den Zugriff auf Einstellen eines Systems auf mehrere Datenquellen 6.3.5.1 Das Schema in Verbindung mit Kurznamen 6.3.5.2 Aspekte beim Wiederherstellen einer zusammengeschlossenen Datenbank auf einem anderen Server mit zusammengeschlossenen Datenbanken 6.4 Kapitel 26. Zugriff auf Oracle-Datenquellen 6.4.1 Fehler in der Dokumentation 6.5 Vermeiden von Problemen beim Arbeiten mit fernen LOBs 6.6 Zugriff auf Sybase-Datenquellen 6.6.1 Hinzufügen von Sybase-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken 6.6.1.1 Schritt 1: Festlegen der Umgebungsvariablen und Aktualisieren der Profilregistrierdatenbank (nur AIX und Solaris) 6.6.1.2 Schritt 2: Verbinden von DB2 mit der Sybase-Client-Software (nur AIX und Solaris-Betriebsumgebung) 6.6.1.3 Schritt 3: Erneutes Starten des DB2-Exemplars (nur AIX und Solaris-Betriebsumgebung) 6.6.1.4 Schritt 4: Erstellen und Definieren einer Schnittstellendatei 6.6.1.5 Schritt 5: Erstellen der Oberfläche 6.6.1.6 Schritt 6: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM 6.6.1.7 Schritt 7: Erstellen des Servers 6.6.1.8 Schritt 8: Festlegen der Serveroption CONNECTSTRING 6.6.1.9 Schritt 9: Erstellen einer Benutzerzuordnung 6.6.1.10 Schritt 10: Erstellen von Kurznamen für Tabellen und Sichten 6.6.2 Angeben von Sybase-Codepages 6.7 Zugriff auf Microsoft SQL Server-Datenquellen mit ODBC (neues Kapitel) 6.7.1 Hinzufügen von Microsoft SQL Server-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken 6.7.1.1 Schritt 1: Festlegen der Umgebungsvariablen (nur AIX) 6.7.1.2 Schritt 2: Ausführen des Shell-Scripts (nur AIX) 6.7.1.3 Schritt 3: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM (nur AIX) 6.7.1.4 Schritt 4: DB2-Exemplar erneut starten (nur AIX) 6.7.1.5 Schritt 5: Erstellen der Oberfläche 6.7.1.6 Schritt 6: Erstellen des Servers 6.7.1.7 Schritt 7: Erstellen einer Benutzerzuordnung 6.7.1.8 Schritt 8: Erstellen von Kurznamen für Tabellen und Sichten 6.7.1.9 Schritt 9: Optional: Abrufen von ODBC-Traces 6.7.2 Übersicht über Microsoft SQL Server-Codepages (nur Windows NT) 6.8 Zugriff auf Informix-Datenquellen (neues Kapitel) 6.8.1 Hinzufügen von Informix-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken 6.8.1.1 Schritt 1: Festlegen der Umgebungsvariablen und Aktualisieren der Profilregistrierdatenbank 6.8.1.2 Schritt 2: Verbinden von DB2 mit der Informix-Client-Software 6.8.1.3 Schritt 3: DB2-Exemplar erneut starten 6.8.1.4 Schritt 4: Erstellen der Informix-Datei "sqlhosts" 6.8.1.5 Schritt 5: Erstellen der Oberfläche 6.8.1.6 Schritt 6: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM 6.8.1.7 Schritt 7: Erstellen des Servers 6.8.1.8 Schritt 8: Erstellen einer Benutzerzuordnung 6.8.1.9 Schritt 9: Erstellen von Kurznamen für Tabellen, Sichten und Informix-Synonyme Verwaltung Systemverwaltung 7.1 Aktualisierung verfügbar Systemverwaltung: Konzept 8.1 Kapitel 8. Entwerfen der physischen Datenbank 8.1.1 Überlegungen zum Tabellenbereichsdesign 8.1.1.1 Optimieren der Tabellenbereichsleistung wenn Daten in RAIDs gespeichert werden 8.1.2 Partitionierungsschlüssel 8.2 Anhang D. Inkompatibilitäten zwischen Releases 8.2.1 Fehler SQL30081N nicht zurückgegeben, wenn verlorene Verbindung erkannt wird 8.2.2 Dienstprogramm EXPORT benötigt FixPak 7 oder höher zur korrekten Handhabung von Identitätsattributen 8.3 Anhang E. Unterstützung in der Landessprache 8.3.1 Landes-/Gebietscode und Codepageunterstützung 8.3.2 Überlegungen zu IMPORT/EXPORT/LOAD -- Einschränkungen für Codepage 1394 und 5488 8.3.3 Werte für Datum und Uhrzeit 8.3.3.1 Darstellung von Werten für Datum und Uhrzeit als Zeichenfolge 8.3.3.2 Zeichenfolgen für das Datum 8.3.3.3 Zeichenfolgen für die Uhrzeit 8.3.3.4 Zeichenfolgen für Zeitmarken 8.3.3.5 Aspekte von Zeichensätzen 8.3.3.6 Datums- und Uhrzeitformate Systemverwaltung: Implementierung 9.1 Neue Methode zur Angabe von DMS-Behältern unter Windows 2000 und neueren Systemen 9.2 Beispiel für "Erweitern der Steuerzentrale" Systemverwaltung: Optimierung 10.1 Temporäre Systemtabellenschemata 10.2 Kapitel 8. Leistung bei der Ausführung 10.2.1 Blockbasierter Pufferpool 10.2.1.1 Beispiel für einen blockbasierten Pufferpool 10.3 Kapitel 10. Skalieren der Konfiguration über das Hinzufügen von Prozessoren 10.3.1 Probleme beim Hinzufügen von Knoten zu einer partitionierten Datenbank 10.4 Kapitel 13. Konfigurieren von DB2 10.4.1 Beendigungsstatus der Protokollarchivierung jetzt häufiger geprüft 10.4.2 Korrektur des Abschnitts zum Sortieren von Informationen (collate_info) 10.5 DB2-Registrierungsvariablen und -Umgebungsvariablen 10.5.1 Korrekturen an Leistungsvariablen 10.5.2 Neue Parameter für Registrierdatenbankvariable DB2BPVARS 10.5.3 Korrekturen und Ergänzungen zu verschiedenen Registrierungsvariablen 10.5.4 Korrekturen und Ergänzungen zu allgemeinen Registrierungsvariablen Administering Satellites Guide and Reference 11.1 Setting up Version 7.2 DB2 Personal Edition and DB2 Workgroup Edition as Satellites 11.1.1 Prerequisites 11.1.1.1 Installation Considerations 11.1.2 Configuring the Version 7.2 System for Synchronization 11.1.3 Installing FixPak 2 or Higher on a Version 6 Enterprise Edition System 11.1.3.1 Upgrading Version 6 DB2 Enterprise Edition for Use as the DB2 Control Server 11.1.4 Upgrading a Version 6 Control Center and Satellite Administration Center Command Reference 12.1 Aktualisierung verfügbar 12.2 db2updv7 - Update Database to Version 7 Current Fix Level 12.3 Additional Context for ARCHIVE LOG Usage Note 12.4 REBIND Missing value 12.5 RUNSTATS 12.6 db2inidb - Initialize a Mirrored Database 12.6.1 Usage Information 12.7 db2relocatedb (new command) db2relocatedb - Relocate Database 12.8 db2move Database Movement Tool 12.9 Additional Option in the GET ROUTINE Command GET ROUTINE 12.10 CREATE DATABASE Datenwiederherstellung und hohe Verfügbarkeit Handbuch und Referenz 13.1 Datenwiederherstellung und hohe Verfügbarkeit Handbuch und Referenz - Online 13.2 Neues Verhalten bei der Archivprotokollierung 13.3 Verwendung der zurückgestellten Ein-/Ausgabe für Datenbankwiederherstellung 13.4 Neues Sicherungs- und Wiederherstellungsverhalten bei LOGRETAIN=CAPTURE 13.5 Teilsicherung und -wiederherstellung - Zusätzliche Informationen 13.6 NEWLOGPATH2 umbenannt in DB2_NEWLOGPATH2 13.7 Auswählen einer Sicherungsmethode für DB2 Data Links Manager unter AIX oder der Solaris-Betriebsumgebung 13.8 Tivoli Storage Manager -- LAN Free Data Transfer Versetzen von Daten Dienstprogramme und Referenz 14.1 Erweiterte Identitätswerte jetzt vollständig vom Dienstprogramm EXPORT unterstützt 14.2 Änderung der Handhabung von LOB-Dateien durch EXPORT, IMPORT und LOAD 14.2.1 IXF-Überlegungen 14.3 Codepage-Unterstützung für die Dienstprogramme IMPORT, EXPORT und LOAD 14.4 Kapitel 2. Import 14.4.1 Verwenden von IMPORT mit gepufferten INSERT-Operationen 14.5 Kapitel 3. Load 14.5.1 Statusangaben für anstehende Aktionen nach einer Ladeoperation 14.5.2 LOAD-Rahmenbedingungen und -Einschränkungen 14.5.3 Dateitypänderungswert "totalfreespace" 14.6 Kapitel 4. AutoLoader 14.6.1 AutoLoader - Rahmenbedingungen und Einschränkungen 14.6.2 Verwenden von AutoLoader 14.6.3 "rexecd" erforderlich für die Ausführung von AutoLoader bei aktivierter Authentifizierung 14.6.4 AutoLoader kann auf AIX-Systemen vor 4.3.3 während einer Aufspaltung blockieren 14.7 Anhang C, Dateiformate der Dienstprogramme EXPORT/IMPORT/LOAD Replikation Referenzhandbuch 15.1 Replikationsserver und Nicht-IBM Server 15.2 Replikation unter Windows 2000 15.3 Bekannter Fehler beim Speichern von SQL-Dateien 15.4 Aliasnamen des Apply-Programms und der Steuerzentrale 15.5 DB2-Verwaltung 15.6 Dienstprogramm "Data Difference" im Internet 15.7 Kapitel 3. Beispielszenario für die Datenreplikation 15.7.1 Replikationsszenarios 15.8 Kapitel 5. Planung der Replikationsumgebung 15.8.1 Tabellen- und Spaltennamen 15.8.2 DATALINK-Replikation 15.8.3 LOB-Einschränkungen 15.8.4 Planen der Replikation 15.9 Kapitel 6. Einrichten der Replikationsumgebung 15.9.1 Vorbedingung für beliebige Tabellenreplikation 15.9.2 Einrichten Ihrer Replikationsumgebung 15.10 Kapitel 8. Fehlerbestimmung 15.11 Kapitel 9. Capture und Apply für AS/400 15.12 Kapitel 10. Capture und Apply für OS/390 15.12.1 Vorbedingungen für DB2 DataPropagator für OS/390 15.12.2 UNICODE- und ASCII-Schemata für Codeumsetzung unter OS/390 15.12.2.1 Auswählen eines Schemas für Codeumsetzung 15.12.2.2 Einstellen von Schemata für Codeumsetzung 15.13 Kapitel 11. Capture und Apply für UNIX-Plattformen 15.13.1 Einstellen der Umgebungsvariablen für Capture und Apply unter UNIX und Windows 15.14 Kapitel 14. Tabellenstrukturen 15.15 Kapitel 15. Nachrichten der Programme Capture und Apply 15.16 Anhang A. Starten der Programme Capture und Apply über einer Anwendung System Monitor Guide and Reference 16.1 db2ConvMonStream 16.2 Maximum Database Heap Allocated (db_heap_top) Troubleshooting Guide 17.1 Starting DB2 on Windows 95, Windows 98, and Windows ME When the User Is Not Logged On 17.2 Chapter 1. Good Troubleshooting Practices 17.2.1 Problem Analysis and Environment Collection Tool 17.2.1.1 Collection Outputs 17.2.1.2 Viewing detailed_system_info.html 17.2.1.3 Viewing DB2 Support Tool Syntax One Page at a Time 17.3 Chapter 2. Troubleshooting the DB2 Universal Database Server 17.4 Chapter 8. Troubleshooting DB2 Data Links Manager 17.5 Chapter 15. Logged Information 17.5.1 Gathering Stack Traceback Information on UNIX-Based Systems Verwenden von DB2 Universal Database auf 64-Bit-Plattformen 18.1 Kapitel 5. Konfiguration 18.1.1 LOCKLIST 18.1.2 shmsys:shminfo_shmmax 18.2 Kapitel 6. Einschränkungen XML Extender Verwaltung und Programmierung MQSeries 20.1 Installation und Konfiguration für die DB2 MQSeries-Funktionen 20.1.1 Installieren von MQSeries 20.1.2 Installieren von MQSeries AMI 20.1.3 Aktivieren der DB2 MQSeries-Funktionen 20.2 MQSeries - Nachrichtendarstellung 20.3 Nachrichtenstruktur 20.4 MQSeries - Funktionsübersicht 20.4.1 Einschränkungen 20.4.2 Fehlercodes 20.5 Einsatzszenarios 20.5.1 Basis-Nachrichtenübertragung 20.5.2 Senden von Nachrichten 20.5.3 Nachrichten abrufen 20.5.4 Anwendungsübergreifende Konnektivität 20.5.4.1 R/R-Kommunikation 20.5.4.2 P/S 20.6 enable_MQFunctions enable_MQFunctions 20.7 disable_MQFunctions disable_MQFunctions Verwaltungs-Tools Weitere Konfiguration vor dem Ausführen von Tools 21.1 Inaktivieren des Gleitkomma-Stack unter Linux 21.2 Specific Java Level Required in a Japanese Linux Environment Steuerzentrale 22.1 Auswählen einer umgeleiteten Wiederherstellung macht das Wiederherstellen der Datenbank erforderlich 22.2 Fähigkeit zur Verwaltung von DB2-Servern für VSE und VM 22.3 Java 1.2-Unterstützung für die Steuerzentrale 22.4 Verknüpfungsfehler bei der Verwendung der Onlinehilfefunktion im Windows-Betriebssystem 22.5 Direktaufruf über die Tastatur funktioniert nicht 22.6 Java-Steuerzentrale unter OS/2 22.7 Fehler "Dateizugriff verweigert" beim Versuch, einen beendeten Job im Journal im Windows-Betriebssystem anzuzeigen 22.8 Testverbindung für Aktualisierung auf mehreren Systemen 22.9 Steuerzentrale für DB2 für OS/390 22.10 Erforderliche Korrektur für die Steuerzentrale für OS/390 22.11 Änderung am Dialogfenster "Räumlichen Verweis erstellen" 22.12 Informationen zur Fehlerbehebung für die DB2-Steuerzentrale 22.13 Fehlerbehebung der Steuerzentrale auf UNIX-Systemen 22.14 Mögliches Problem der Kurzhilfe bei OS/2 22.15 Hilfe für den Konfigurationsparameter "jdk11_path" 22.16 Solaris-Systemfehler (SQL10012N) bei der Verwendung der Prozedurzentrale oder des Journals 22.17 Hilfe für die Datei DPREPL.DFT 22.18 Starten mehrerer Steuerzentralen-Applets 22.19 Onlinehilfefunktion für die Steuerzentrale bei der Ausführung als Applet 22.20 Ausführen der Steuerzentrale im Applet-Modus (Windows 95) 22.21 Arbeiten mit großen Abfrageergebnissen Befehlszentrale 23.1 Seite "Interaktiv" der Befehlszentrale erkennt jetzt Anweisungsabschlusszeichen Information - Unterstützung 24.1 Korrekturen am Dokument "Java - Beispiele" 24.2 Verknüpfungsfehler im Windows-Betriebssystem 24.3 Öffnen externer Web-Links in Netscape Navigator, wenn Netscape bereits geöffnet ist (UNIX-Systeme) 24.4 Probleme beim Starten von "Information - Unterstützung" Stored Procedure Builder 25.1 Unterstützung für gespeicherte Java-Prozeduren für z/OS oder OS/390 25.2 Unterstützung für gespeicherte SQL-Prozeduren für z/OS oder OS/390 25.3 Aktualisierte Verweise des Stored Procedure Builder auf z/OS- oder OS/390-Dokumentation 25.4 Unterstützung für die Einstellung von Ergebnismengenmerkmalen 25.5 Löschen von Prozeduren aus einer DB2-Datenbank unter Windows NT Assistenten 26.1 Einstellen der Speicherbereichsgröße in "Assistent: Datenbank erstellen" 26.2 Assistent "MQSeries Assist" 26.3 Assistent "OLE DB Assist" Informationsmanagement Lernprogramm für das Informationsmanagement 27.1 Überarbeitetes Lernprogramm für das Informationsmanagement DB2 Universal Database Kurzüberblick Data Warehouse-Zentrale Systemverwaltung 29.1 Aktualisierung verfügbar 29.2 Funktionale Erweiterungen des Warehouse-Servers 29.3 Ausführen einer Trillium Batch System-JCL mit dem OS/390-Agenten 29.4 Zwei neue Beispielprogramme in der Data Warehouse-Zentrale 29.5 Managing ETI.Extract(R) Conversion Programs with DB2 Warehouse Manager aktualisiert 29.6 Importieren und Exportieren von Metadaten mit CWMI (Common Warehouse Metadata Interchange) 29.6.1 Einführung 29.6.2 Importieren von Metadaten 29.6.3 Aktualisieren der Metadaten nach dem Ausführen des Importdienstprogramms 29.6.4 Exportieren von Metadaten 29.7 Befehlssprachenmetadaten - Dienstprogramm IMPORT/EXPORT 29.7.1 Schlüsseldefinitionen 29.7.2 Schritt- und Prozesszeitpläne 29.8 SAP-Schrittinformationen 29.8.1 Erstellung logisch inkonsistenter Tabellen möglich 29.9 SAP Connector-Informationen 29.9.1 Installationseinschränkungen für SAP Connector 29.9.2 Leistung von GetDetail BAPI 29.10 Web Connector-Informationen 29.10.1 Unterstützte WebSphere Site Analyzer-Versionen DB2 OLAP Starter Kit 30.1 OLAP Server-Website 30.2 Unterstützte Betriebssystemservicestufen 30.3 Abschließen der Installation von DB2 OLAP Starter Kit unter UNIX 30.4 Weitere Konfiguration für die Solaris-Betriebsumgebung 30.5 Weitere Konfiguration für alle Betriebssysteme 30.6 Konfigurieren von ODBC für OLAP Starter Kit 30.6.1 Konfigurieren von Datenquellen auf UNIX-Systemen 30.6.1.1 Konfigurieren der ODBC-Umgebungsvariablen 30.6.1.2 Editieren der Datei odbc.ini 30.6.1.3 Hinzufügen einer Datenquelle zur Datei "odbc.ini" 30.6.1.4 Beispiel für ODBC-Einstellungen für DB2 30.6.1.5 Beispiel für ODBC-Einstellungen für Oracle 30.6.2 Konfigurieren des OLAP-Metadatenkatalogs auf UNIX-Systemen 30.6.3 Konfigurieren von Datenquellen auf Windows-Systemen 30.6.4 Konfigurieren des OLAP-Metadatenkatalog auf Windows-Systemen 30.6.5 Vorgehensweise nach dem Konfigurieren einer Datenquelle 30.7 Anmelden über OLAP Starter Kit Desktop 30.7.1 Beispiel für Starter Kit-Anmeldung 30.8 Manuelles Erstellen und Konfigurieren der Beispieldatenbanken für OLAP Starter Kit 30.9 Migrieren von Anwendungen nach OLAP Starter Kit Version 7.2 30.10 Bekannte Probleme und Einschränkungen 30.11 Fehlende EQD-Dateien des OLAP-Tabellenkalkulations-Add-In Information Catalog Manager Systemverwaltung 31.1 Initialisierungsprogramm von Information Catalog Manager 31.1.1 31.1.2 Lizenzfragen 31.1.3 Installationsfragen 31.2 Verbesserungen an Information Catalog Manager 31.3 Inkompatibilität zwischen Information Catalog Manager und Sybase in der Windows-Umgebung 31.4 Zugreifen auf Informationskataloge von DB2 Version 5 mit Information Catalog Manager von DB2 Version 7 31.5 Einrichten eines Informationskatalogs 31.6 Austauschen von Metadaten mit anderen Produkten 31.7 Austauschen von Metadaten mit dem Befehl "flgnxoln" 31.8 Austauschen von Metadaten mit dem Befehl "MDISDGC" 31.9 Aufrufen von Programmen Information Catalog Manager Programming Guide and Reference 32.1 Information Catalog Manager Reason Codes Information Catalog Manager Benutzerhandbuch Information Catalog Manager: Onlinenachrichten 34.1 Korrekturen an FLG-Nachrichten 34.1.1 Nachricht FLG0260E 34.1.2 Nachricht FLG0051E 34.1.3 Nachricht FLG0003E 34.1.4 Nachricht FLG0372E 34.1.5 Nachricht FLG0615E Information Catalog Manager: Onlinehilfefunktion 35.1 Information Catalog Manager für das Web DB2 Warehouse Manager Installation 36.1 Aktualisierung von "DB2 Warehouse Manager Installation" verfügbar 36.2 Softwarevoraussetzungen für Warehouse-Umsetzungsprogramme 36.3 Connector für SAP R/3 36.3.1 Vorbedingungen zur Installation 36.4 Connector für das Web 36.4.1 Vorbedingungen zur Installation 36.5 Überlegungen nach Abschluss der Installation des iSeries-Agenten 36.6 Vor der Verwendung von Umsetzungsprogrammen mit dem iSeries-Warehouse-Agenten Query Patroller Administration Guide 37.1 DB2 Query Patroller Client is a Separate Component 37.2 Changing the Node Status 37.3 Migrating from Version 6 of DB2 Query Patroller Using dqpmigrate 37.4 Enabling Query Management 37.5 Location of Table Space for Control Tables 37.6 New Parameters for dqpstart Command 37.7 New Parameter for iwm_cmd Command 37.8 New Registry Variable: DQP_RECOVERY_INTERVAL 37.9 Starting Query Administrator 37.10 User Administration 37.11 Data Source Administration 37.12 Creating a Job Queue 37.13 Job Accounting Table 37.14 Using the Command Line Interface 37.15 Query Enabler Notes 37.16 DB2 Query Patroller Tracker may Return a Blank Column Page 37.17 Additional Information for DB2 Query Patroller Tracker GUI Tool 37.18 Query Patroller and Replication Tools 37.19 Improving Query Patroller Performance 37.20 Verlorenes Zugriffsrecht EXECUTE für in Version 6 erstellte Benutzer von Query Patroller 37.21 Query Patroller - Einschränkungen 37.22 Appendix B. Troubleshooting DB2 Query Patroller Clients Anwendungsentwicklung Administrative API Reference 38.1 db2ArchiveLog (new API) db2ArchiveLog 38.2 db2ConvMonStream 38.3 db2DatabasePing (new API) db2DatabasePing - Ping Database 38.4 db2HistData 38.5 db2HistoryOpenScan 38.6 db2Runstats 38.7 db2GetSnapshot - Get Snapshot 38.8 db2XaGetInfo (new API) db2XaGetInfo - Get Information for Resource Manager 38.9 db2XaListIndTrans (new API that supercedes sqlxphqr) db2XaListIndTrans - List Indoubt Transactions 38.10 Forget Log Record 38.11 sqlaintp - Get Error Message 38.12 sqlbctcq - Close Tablespace Container Query 38.13 sqleseti - Set Client Information 38.14 sqlubkp - Backup Database 38.15 sqlureot - Reorganize Table 38.16 sqlurestore - Restore Database 38.17 Documentation Error Regarding AIX Extended Shared Memory Support (EXTSHM) 38.18 SQLFUPD 38.18.1 locklist 38.19 SQLEDBDESC Application Building Guide 39.1 Aktualisierung verfügbar 39.2 Unterstützung für Linux unter S/390 und zSeries 39.3 Linux-Rexx-Unterstützung 39.4 Zusätzliche Anmerkungen zum Verteilen von kompilierten SQL-Prozeduren Application Development Guide 40.1 Aktualisierung verfügbar 40.2 Vorsichtsmaßnahmen beim Registrieren von C/C++-Routinen (benutzerdefinierte Funktionen, gespeicherte Prozeduren oder Methoden) unter Windows 40.3 Korrektur des Abschnitts "Debugging Stored Procedures in Java" 40.4 Neue Bestimmungen für executeQuery und executeUpdate 40.5 JDBC-Treiberunterstützung für zusätzliche Methoden 40.6 JDBC und 64-Bit-Systeme 40.7 IBM OLE DB Provider for DB2 UDB CLI Guide and Reference 41.1 Binding Database Utilities Using the Run-Time Client 41.2 Using Static SQL in CLI Applications 41.3 Limitations of JDBC/ODBC/CLI Static Profiling 41.4 ADT Transforms 41.5 Chapter 1. Introduction to CLI 41.5.1 Differences Between DB2 CLI and Embedded SQL 41.6 Chapter 3. Using Advanced Features 41.6.1 Writing Multi-Threaded Applications 41.6.2 Writing a DB2 CLI Unicode Application 41.6.2.1 Unicode Functions 41.6.2.2 New datatypes and Valid Conversions 41.6.2.3 Obsolete Keyword/Patch Value 41.6.2.4 Literals in Unicode Databases 41.6.2.5 New CLI Configuration Keywords 41.6.3 Microsoft Transaction Server (MTS) as Transaction Monitor 41.6.4 Scrollable Cursors 41.6.4.1 Server-side Scrollable Cursor Support for OS/390 41.6.5 Using Compound SQL 41.6.6 Using Stored Procedures 41.6.6.1 Privileges for building and debugging SQL and Java stored procedures 41.6.6.2 Writing a Stored Procedure in CLI 41.6.6.3 CLI Stored Procedures and Autobinding 41.7 Chapter 4. Configuring CLI/ODBC and Running Sample Applications 41.7.1 Configuration Keywords 41.7.1.1 CURRENTFUNCTIONPATH 41.7.1.2 SKIPTRACE 41.8 Chapter 5. DB2 CLI Functions 41.8.1 SQLBindFileToParam - Bind LOB File Reference to LOB Parameter 41.8.2 SQLColAttribute -- Return a Column Attribute 41.8.3 SQLGetData - Get Data From a Column 41.8.4 SQLGetInfo - Get General Information 41.8.5 SQLGetLength - Retrieve Length of A String Value 41.8.6 SQLNextResult - Associate Next Result Set with Another Statement Handle 41.8.6.1 Purpose 41.8.6.2 Syntax 41.8.6.3 Function Arguments 41.8.6.4 Usage 41.8.6.5 Return Codes 41.8.6.6 Diagnostics 41.8.6.7 Restrictions 41.8.6.8 References 41.8.7 SQLSetEnvAttr - Set Environment Attribute 41.8.8 SQLSetStmtAttr -- Set Options Related to a Statement 41.9 Appendix C. DB2 CLI and ODBC 41.9.1 ODBC Unicode Applications 41.9.1.1 ODBC Unicode Versus Non-Unicode Applications 41.10 Appendix D. Extended Scalar Functions 41.10.1 Date and Time Functions 41.11 Appendix K. Using the DB2 CLI/ODBC/JDBC Trace Facility Fehlernachrichten 42.1 Aktualisierung verfügbar 42.2 Nachrichtenaktualisierungen 42.3 Lesen des Nachrichtentexts (online) SQL Reference 43.1 SQL Reference - Aktualisierung verfügbar 43.2 Enabling the New Functions and Procedures 43.3 SET SERVER OPTION - Documentation Error 43.4 Correction to CREATE TABLESPACE Container-clause, and Container-string Information 43.5 Correction to CREATE TABLESPACE EXTENTSIZE information 43.6 GRANT (Table, View, or Nickname Privileges) - Documentation Error 43.7 MQSeries Information 43.7.1 Scalar Functions 43.7.1.1 MQPUBLISH 43.7.1.2 MQREADCLOB 43.7.1.3 MQRECEIVECLOB 43.7.1.4 MQSEND 43.7.2 Table Functions 43.7.2.1 MQREADALLCLOB 43.7.2.2 MQRECEIVEALLCLOB 43.7.3 CLOB data now supported in MQSeries functions 43.8 Data Type Information 43.8.1 Promotion of Data Types 43.8.2 Casting between Data Types 43.8.3 Assignments and Comparisons 43.8.3.1 String Assignments 43.8.3.2 String Comparisons 43.8.4 Rules for Result Data Types 43.8.4.1 Character and Graphic Strings in a Unicode Database 43.8.5 Rules for String Conversions 43.8.6 Expressions 43.8.6.1 With the Concatenation Operator 43.8.7 Predicates 43.9 Unicode Information 43.9.1 Scalar Functions and Unicode 43.10 GRAPHIC type and DATE/TIME/TIMESTAMP compatibility 43.10.1 String representations of datetime values 43.10.1.1 Date strings, time strings, and datetime strings 43.10.2 Casting between data types 43.10.3 Assignments and comparisons 43.10.4 Datetime assignments 43.10.5 DATE 43.10.6 GRAPHIC 43.10.7 TIME 43.10.8 TIMESTAMP 43.10.9 VARGRAPHIC 43.11 Larger Index Keys for Unicode Databases 43.11.1 ALTER TABLE 43.11.2 CREATE INDEX 43.11.3 CREATE TABLE 43.12 ALLOCATE CURSOR Statement Notes Section Incorrect 43.13 Additional Options in the GET DIAGNOSTICS Statement GET DIAGNOSTICS Statement 43.14 ORDER BY in Subselects 43.14.1 fullselect 43.14.2 subselect 43.14.3 order-by-clause 43.14.4 select-statement SELECT INTO statement 43.14.5 OLAP Functions (window-order-clause) New Input Argument for the GET_ROUTINE_SAR Procedure Required Authorization for the SET INTEGRITY Statement Appendix N. Exception Tables Unicode-Aktualisierungen 47.1 Einführung 47.1.1 DB2-Unicode-Datenbanken und -Anwendungen 47.1.2 Aktualisierung der Dokumentation Verbindung zu Host-Systemen DB2 Connect Benutzerhandbuch 48.1 Erhöhen der DB2 Connect-Datenübertragungsgeschwindigkeit 48.1.1 Zusätzliche Abfrageblöcke 48.1.2 RFC-1323 Fensterskalierungsfunktion 48.2 DB2 Connect-Unterstützung für lose gekoppelte Transaktionen 48.3 Kerberos-Unterstützung Konnektivität: Ergänzung 49.1 Konfigurieren des Anwendungsservers in einer VM-Umgebung 49.2 Einstellungen von PATCH1 und PATCH2 bei der CLI/ODBC/JDBC-Konfiguration Zusätzliche Informationen Zusätzliche Informationen 50.1 DB2 Everywhere jetzt DB2 Everyplace 50.2 Bessere Zugriffsmöglichkeiten von DB2 UDB Version 7 50.2.1 Tastatureingabe und Navigation 50.2.1.1 Tastatureingabe 50.2.1.2 Tastatureingabebereich 50.2.2 Bessere Zugriffsmöglichkeiten für Anzeige 50.2.2.1 Modus für starken Kontrast 50.2.2.2 Schriftarteinstellungen 50.2.2.3 Farberkennung nicht erforderlich 50.2.3 Alternative Alert-Hinweise 50.2.4 Kompatibilität mit Unterstützungstechnologien 50.2.5 Dokumentationsformate mit besseren Zugriffsmöglichkeiten 50.3 Maus erforderlich 50.4 Fehler "Bindedateien nicht gefunden" beim Versuch, von DB2 Run-Time Client aus zu binden 50.5 Discovery-Modus SEARCH 50.6 Speicherfenster für HP-UX 11 50.7 DB2 DFS Client Enabler deinstallieren 50.8 Client-Authentifizierung unter Windows NT 50.9 Einschränkungen bei Systemen zusammengeschlossener Datenbanken 50.10 Einschränkungen bei Systemen zusammengeschlossener Datenbanken mit partitionierten MPP-Tabellen 50.11 Einschränkung bei DataJoiner 50.12 Hebrew Information Catalog Manager for Windows NT 50.13 DB2 SNA SPM kann nach dem Booten von Windows nicht gestartet werden 50.14 Anforderungen an Servicebenutzereinträge für DB2 unter Windows NT und Windows 2000 50.15 Notwendigkeit zum Festschreiben aller benutzerdefinierten Programme, die in der Data Warehouse-Zentrale verwendet werden 50.16 Zwischenspeichern von Client-Daten in Windows NT 50.17 Life Sciences Data Connect 50.17.1 Neue Oberflächen 50.17.2 Anmerkungen 50.18 Verbesserung bei SQL Assist 50.19 Hilfe für Befehle zum Sichern und Wiederherstellen 50.20 "Warehouse Manager" muss "DB2 Warehouse Manager" heißen Anhänge und Schlußteil Anhang A. Bemerkungen A.1 Marken Index Vorwort Willkommen bei den Release-Informationen zum DB2 Universal Database Version 7 FixPak! Anmerkung: Geben Sie eine Monospace-Schrift an, damit Sie die Textversion dieser Release-Informationen bequemer lesen können. Die Unterstützungs-Site von DB2 Universal Database und DB2 Connect wird regelmäßig aktualisiert. Überprüfen Sie http://www.ibm.com/software/data/db2/udb/winos2unix/support auf neueste Informationen. Diese Datei enthält Informationen zu den folgenden Produkten, die bei der Drucklegung der DB2-Handbücher noch nicht verfügbar waren: IBM DB2 Universal Database Personal Edition Version 7.2 IBM DB2 Universal Database Workgroup Edition Version 7.2 IBM DB2 Universal Database Enterprise Edition Version 7.2 IBM DB2 Data Links Manager Version 7.2 IBM DB2 Universal Database Enterprise - Extended Edition Version 7.2 IBM DB2 Query Patroller Version 7.2 IBM DB2 Personal Developer's Edition Version 7.2 IBM DB2 Universal Developer's Edition Version 7.2 IBM DB2 Data Warehouse Manager Version 7.2 IBM DB2 Relational Connect Version 7.2 IBM DB2 Connect Personal Edition Version 7.2 IBM DB2 Connect Enterprise Edition Version 7.2 Für die folgenden Produkte ist eine zusätzliche Datei namens READCON.TXT mit Release-Informationen verfügbar: IBM DB2 Connect Personal Edition Version 7.2 IBM DB2 Connect Enterprise Edition Version 7.2 Dokumentation für DB2 Life Sciences Data Connect kann von der IBM Softwaresite heruntergeladen werden: www.ibm.com/software/data/db2/lifesciencesdataconnect/library.html. Informationen zu diesem Produkt sind online verfügbar unter http://www.ibm.com/software/data/db2/lifesciencesdataconnect. Die folgenden Handbücher wurden für FixPak 4 aktualisiert, und die aktuellen PDF-Versionen können online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden: Systemverwaltung Application Building Guide Application Development Guide Command Reference Datenwiederherstellung und hohe Verfügbarkeit Handbuch und Referenz Data Warehouse-Zentrale Systemverwaltung Fehlernachrichten SQL Reference DB2 Warehouse Manager Installation Die vorliegenden Informationen gelten zusätzlich zu den aktualisierten Handbüchern. Die gesamte aktualisierte Dokumentation ist auch auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. Das Handbuch Neue Funktionen enthält eine Übersicht über einige der wichtigsten Erweiterungen in DB2 Version 7.2. Wenn Sie das Handbuch Neue Funktionen für Version 7.2 nicht haben, können Sie es sich unter http://www.ibm.com/software/data/db2/udb/winos2unix/support anschauen und herunterladen. Um die jeweils aktuellen Informationen zur DB2-Produktfamilie zu erhalten, können Sie die Zeitschrift "DB2 Magazine" (nur in englischer Sprache) kostenlos abonnieren. Die Online-Ausgabe dieser Zeitschrift ist verfügbar unter http://www.db2mag.com. Anweisungen zum Abonnieren finden Sie ebenfalls auf dieser Site. Anmerkung: Wenn in diesen Release-Informationen auf Windows NT verwiesen wird, schließt dies auch Windows 2000 ein. Dies schließt auch Windows XP ein, wenn der in 4.9, Unterstützung für die Plattformen Windows ME, Windows XP und Windows 2000 Datacenter Edition aufgelistete Produktkontext gegeben ist, sofern nichts anderes angegeben ist. Anmerkung: Eine Änderungsmarkierung (|) am linken Rand einer Seite zeigt an, dass die Zeile seit der ersten Veröffentlichung der Release-Informationen hinzugefügt oder geändert worden ist. Informationen, die nur für bestimmte Länder Gültigkeit haben und für Deutschland, Österreich und die Schweiz nicht zutreffen, wurden in dieser Veröffentlichung im englischen Originaltext übernommen. Änderungen in der IBM Terminologie Die ständige Weiterentwicklung der deutschen Sprache nimmt auch Einfluss auf die IBM Terminologie. Durch die daraus resultierende Umstellung der IBM Terminologie, kann es u. U. vorkommen, dass in diesem Dokument sowohl alte als auch neue Termini gleichbedeutend verwendet werden. Dies ist der Fall, wenn auf ältere existierende Dokumentationsausschnitte und/oder Programmteile zurückgegriffen wird. Wichtige Hinweise Release-Informationen der Version 7 Diese Release-Informationen wurden für FixPak 8 aktualisiert. Die enthaltenen Informationen sind für Benutzer späterer FixPaks weiterhin gültig. Diese Liste ist nicht umfassend, behandelt jedoch die wichtigsten Änderungen an der Dokumentation. Sehen Sie sich alle Abschnitte der Release-Informationen an, die sich auf Ihre Arbeitsumgebung beziehen, damit Sie über alle Sie betreffenden Aktualisierungen informiert bleiben. Informationen zu neuen Funktionen, die Version 7 nach FixPak 8 hinzugefügt wurden, finden Sie in den Readme-Dateien für das FixPak. 2.14, db2stop wird auf AIX 5-Betriebssystemen aufgrund eines NFS-Problems blockiert 4.2, Ermöglichen des Zugriffs auf das DB2 EE- oder DB2 Connect EE-Installationsimage unter Linux auf S/390 4.3, Informationen im DB2 Connect-Anhang nicht erforderlich 4.4, Installieren von DB2 unter SuSE Linux 4.34, IBM e-server p690 und DB2 UDB Version 7 mit AIX 5 6.3.2, FixPak 8 oder höher erforderlich für DB2-Datenquellen der Version 8 6.8.1.1, Schritt 1: Festlegen der Umgebungsvariablen und Aktualisieren der Profilregistrierdatenbank 10.4.2, Korrektur des Abschnitts zum Sortieren von Informationen (collate_info) 12.2, db2updv7 - Update Database to Version 7 Current Fix Level 12.5, RUNSTATS 14.6.1, AutoLoader - Rahmenbedingungen und Einschränkungen 14.6.2, Verwenden von AutoLoader 15.4, Aliasnamen des Apply-Programms und der Steuerzentrale 16.2, Maximum Database Heap Allocated (db_heap_top) 29.10, Web Connector-Informationen 38.6, db2Runstats 40.2, Vorsichtsmaßnahmen beim Registrieren von C/C++-Routinen (benutzerdefinierte Funktionen, gespeicherte Prozeduren oder Methoden) unter Windows 40.6, JDBC und 64-Bit-Systeme 43.4, Correction to CREATE TABLESPACE Container-clause, and Container-string Information 43.5, Correction to CREATE TABLESPACE EXTENTSIZE information Produkthinweise 2.1 Von DB2 Version 7 für die Solaris-Betriebsumgebung unterstützte CPUs CPU-Versionen vor UltraSparc werden nicht unterstützt. 2.2 Chinese Locale Fix on Red Flag Linux If you are using Simplified Chinese Red Flag Linux Server Version 1.1, contact Red Flag to receive the Simplified Chinese locale fix. Without the Simplified Chinese locale fix for Version 1.1, DB2 does not recognize that the code page of Simplified Chinese is 1386. 2.3 Additional Locale Setting for DB2 for Linux in a Japanese and Simplified Chinese Linux Environment An additional locale setting is required when you want to use the Java GUI tools, such as the Control Center, on a Japanese or Simplified Chinese Linux system. Japanese or Chinese characters cannot be displayed correctly without this setting. Please include the following setting in your user profile, or run it from the command line before every invocation of the Control Center. For a Japanese system: export LC_ALL=ja_JP For a Simplified Chinese system: export LC_ALL=zh_CN 2.4 Limitation for Japanese on PTX If you are running DB2 UDB in Japanese on a PTX system, it is possible that some of the processes DB2 uses will not inherit the correct locale information. To avoid this, manually set the DB2CODEPAGE and DB2COUNTRY registry variables to correspond to your locale. 2.5 Problem der Steuerzentrale bei Microsoft Internet Explorer Die Sicherheitseinstellungen des Internet Explorer (IE) verursachen ein Problem. Da die Steuerzentrale JAR-Dateien ohne Vorzeichen verwendet, wird der Zugriff auf Systeminformationen durch den Sicherheitsmanager inaktiviert. Konfigurieren Sie die IE-Sicherheitsoptionen wie folgt, um dieses Problem zu beheben: Wählen Sie Internetoptionen im Menü Anzeige (IE4) bzw. im Menü Extras (IE5) aus. Wählen Sie Vertrauenswürdige Sites auf der Seite Sicherheit aus. Klicken Sie Sites hinzufügen... an. Fügen Sie den Webserver der Steuerzentrale der Liste der vertrauenswürdigen Sites hinzu. Wenn der Webserver der Steuerzentrale sich in derselben Domäne befindet, kann es sinnvoll sein, nur den Webservernamen (ohne den Domänennamen) hinzuzufügen. Beispiel: http://ccWebServer.ccWebServerDomain http://ccWebServer Anmerkung: Bei der Eingabe der URL-Adresse müssen Sie entweder das Präfix "https://" verwenden oder die Option Für die Sites in dieser Zone ist eine Serverüberprüfung (https:) erforderlich abwählen, um die Site hinzufügen zu können. Klicken Sie OK an. Klicken Sie Einstellungen... (IE4) oder Stufe anpassen... (IE5) an. Blättern Sie zu Java --> Java-Einstellungen, und wählen Sie Benutzerdefiniert aus. Klicken Sie Java-Einstellungen... an. Wählen Sie die Seite Zugriffsrechte bearbeiten aus. Blättern Sie zu Nicht signierter Inhalt --> Nicht signierten Inhalt ausführen --> Zusätzliche nicht signierte Zugriffsrechte --> Systeminformation, und wählen Sie Aktivieren aus. Klicken Sie in jedem geöffneten Fenster OK an. 2.6 Verlust der Steuerzentralenfunktion In DB2 Version 7.2 verlieren Steuerzentralen-Clients der Version 6 vor FixPak 6 und Clients der Version 7 vor FixPak 2 fast ihre gesamte Funktionalität, wenn sie mit DB2 Version 7.2 verwendet werden. Zur Behebung dieses Problems ist für Clients der Version 6 ein Upgrade auf FixPak 6 oder höher und für Clients der Version 7 ein Upgrade auf FixPak 2 oder höher erforderlich. Durch die Anwendung von FixPak 2 auf einen DB2-Server sollten keine Probleme für Steuerzentralen-Clients mit einer älteren Version eingeführt werden. 2.7 Netscape-CD nicht im Lieferumfang von DB2 UDB enthalten Die Netscape-CD wird nicht mehr mit DB2 UDB ausgeliefert. Netscape-Produkte sind unter http://www.netscape.com verfügbar. 2.8 Fehler in den XML-Readme-Dateien In der Datei README.TXT zu DB2 XML Extender Version 7.1 steht im Abschnitt zu den zu berücksichtigenden Überlegungen Folgendes: 3. Die Standardversion von DB2 UDB ist DB2 UDB Version 7.1. Wenn Sie DB2 UDB Version 6.1 auf AIX- und Solaris-Systemen verwenden wollen, sollten Sie sicherstellen, dass Sie ein Exemplar von DB2 UDB Version 6.1 und die Bibliotheken von DB2 UDB Version 6.1 ausführen. Dies ist nicht korrekt. DB2 XML Extender wird nur mit DB2 Version 7.1 und 7.2 unterstützt. Die Dateien "readme.aix", "readme.nt" und "readme.sun" listen die folgenden Softwarevoraussetzungen auf: DB2 UDB 6.1 mit FP1_U465423 oder höher (AIX) DB2 Universal Database Version 6.1 oder höher mit installiertem FixPak 3 (NT) DB2 UDB Version 6.1 mit FixPak FP1_U465424 oder höher (Sun) Dies ist nicht korrekt. DB2 XML Extender erfordert DB2 Version 7.1 oder 7.2. 2.9 Neue Verbesserungen des Informationsmanagement in DB2 Version 7.2 Im Handbuch Neue Funktionen der Version 7.2 und in anderer Dokumentation wird auf neue Verbesserungen des Informationsmanagement verwiesen, die in Version 7.2 hinzugefügt wurden. Diese Verbesserungen werden zu einem späteren Zeitpunkt verfügbar. 2.10 FixPak 2A und höher verursacht Probleme in IBM DB2 OLAP Server Wenn Sie IBM DB2 OLAP Server unter UNIX einsetzen, können nach der Installation von FixPak 2A von DB2 Universal Database Version 7 Probleme mit DB2 OLAP Server auftreten. FixPak 2A und neuere FixPaks installieren neue ODBC-Treiber, die UNICODE unterstützen. DB2 OLAP unterstützt diese neuen Treiber jedoch nicht. Zur Behebung dieses Problems mit DB2 OLAP Server müssen Sie Ihre ODBC-Dateien so ändern, dass sie auf die Nicht-UNICODE-Treiber zeigen. Die Nicht-UNICODE-Treiber wurden durch Anhängen von "_36" an ihre Namen umbenannt. So wurde der Treiber für die Solaris-Betriebsumgebung beispielsweise von libdb2.so in libdb2_36.so umbenannt. Weitere Informationen zur Änderung von ODBC-Treibern finden Sie im Abschnitt "Laden und Konfigurieren von ODBC für die SQL-Schnittstelle" in Kapitel 4, "Installieren unter AIX, der Solaris-Betriebsumgebung und HP-UX", des Handbuchs OLAP Konfiguration und Benutzerhandbuch. 2.11 Segmentierungsverletzung bei Verwendung von WebSphere 3.5.5 Wenn Sie das Benutzerprofilbeispiel von WebSphere 3.5.5 mit DB2 Version 7.2 FixPak 4 oder höher unter Linux390 ausführen, tritt unter Umständen eine Segmentierungsverletzung SIGSEGV 11 (*) auf. Dieses Problem entsteht durch einen Defekt in JDK und tritt bei JDK 1.2.2 und JDK 1.3 auf. Das Problem kann sich zudem auch auf andere JDBC-Anwendungen auswirken. Das Service-Release von November von JDK 1.2.2 behebt dieses Problem. Für JDK 1.3 wird das Problem mit dem Service-Release im Januar behoben. Das Problem kann umgangen werden, indem das JIT mit dem folgenden Befehl inaktiviert wird: export JAVA_COMPILER=NONE 2.12 Unterstützung von Veritas AIX Volume Manager DB2 UDB Enterprise Edition FixPak 7 oder später kann mit Veritas AIX Volume Manager Version 3.2 unter AIX 5.1 ML 2 oder später eingesetzt werden. Die Verwendung von Veritas AIX Volume Manager mit anderen DB2 UDB-Versionen, einschließlich Enterprise Extended Edition wird zurzeit nicht unterstützt. 2.13 Fix erforderlich für Java-Anwendungen unter AIX Version 4 Java-Anwendungen, die unter AIX 4.3.3 ausgeführt werden, können unerwartet beendet werden, wenn die Kerneldateigruppe bos.mp oder bos.up Version 4.3.3.77 ist. Führen Sie den Befehl lslpp -l bos.ip bos.mp aus, um die Fixversion des Kernels zu ermitteln. Alle Java-Kunden, die noch AIX 4.3.3 verwenden, sollten auf Version 4.3.3.78 aufrüsten. Ein Fix, der den Kernel auf den empfohlenen Stand aktualisiert, ist verfügbar. Der Fix für APAR (Authorized Problem Analysis Report) IY25282 muss angefordert werden. Durch die Installation des Fixes für APAR IY25282 wird das Problem mit der unerwarteten Java-Beendigung behoben. Ein weiterer Fix mit APAR-Nummer IY26149 wird im ersten Quartal 2002 herausgegeben. Beachten Sie, dass AIX 5.1C mit APAR IY25377 ausgeliefert wird und daher denselben Fix enthält. Weitere Informationen und Hilfestellung erhalten Sie von der AIX-Unterstützung. 2.14 db2stop wird auf AIX 5-Betriebssystemen aufgrund eines NFS-Problems blockiert Wenn Sie AIX 5 verwenden, wird der Befehl db2stop möglicherweise blockiert, wenn Ihr System eine große Anzahl Datenbankpartitionen hat. Sie können dieses Problem umgehen, wenn Sie jede Partition separat stoppen, indem Sie die Option NODENUM des Befehls db2stop verwenden. Das Problem wird durch APAR IY32512 für AIX korrigiert. Onlinedokumentation (HTML, PDF und Suche) - Anmerkungen 3.1 Unterstützte Web-Browser unter Windows 2000 Wir empfehlen unter Windows 2000 die Verwendung von Microsoft Internet Explorer. Wenn Sie Netscape verwenden, beachten Sie bitte Folgendes: Das Suchen in der DB2-Onlineinformation kann bei Verwendung von Netscape unter Windows 2000 lang dauern. Netscape nutzt alle verfügbaren CPU-Ressourcen und scheint nicht fertig zu werden. Zwar werden die Suchergebnisse schließlich angezeigt. Es empfiehlt sich jedoch, das Fenster nach dem Starten der Suche zu wechseln. Die Suchergebnisse werden dann in einer vernünftigen Zeitspanne zurückgegeben. Sie werden möglicherweise feststellen, dass die Onlinehilfefunktion anfangs korrekt in einem Netscape-Browserfenster angezeigt wird, aber möglicherweise nicht angezeigt wird, wenn Sie versuchen, von einem anderen Teil der Steuerzentrale darauf zuzugreifen, ohne das Browserfenster vorher zu schließen. Wenn Sie das Browserfenster schließen und dann erneut die Hilfe aufrufen, wird die korrekte Hilfeseite angezeigt. Sie können dieses Problem anhand der Schritte in 3.4, Fehlernachrichten beim Versuch, Netscape zu starten beheben. Sie können dieses Problem auch umgehen, indem Sie das Browserfenster schließen, bevor Sie Hilfe für die Steuerzentrale aufrufen. Wenn Sie Hilfe zur Steuerzentrale oder ein Thema aus Information - Unterstützung aufrufen, kann eine Fehlernachricht angezeigt werden. Führen Sie die in 3.4, Fehlernachrichten beim Versuch, Netscape zu starten beschriebenen Schritte aus, um dieses Problem zu beheben. 3.2 Suchen nach DB2-Onlineinformationen in der Solaris-Betriebsumgebung Wenn beim Durchsuchen der DB2-Onlineinformationen in Solaris-Betriebsumgebungen Probleme auftreten, prüfen Sie bitte die Kernelparameter Ihres Systems in /etc/system. Im Folgenden sind die für das DB2-Suchsystem, NetQuestion, erforderlichen Mindesteinstellungen der Kernelparameter aufgelistet: semsys:seminfo_semmni 256 semsys:seminfo_semmap 258 semsys:seminfo_semmns 512 semsys:seminfo_semmnu 512 semsys:seminfo_semmsl 50 shmsys:shminfo_shmmax 6291456 shmsys:shminfo_shmseg 16 shmsys:shminfo_shmmni 300 Fügen Sie am Ende der Datei /etc/system folgende Zeile hinzu, um einen Kernelparameter zu setzen: set = wert Sie müssen Ihr System neu starten, damit neue oder geänderte Werte wirksam werden. 3.3 Einrichten von NetQuestion für OS/2 zur Verwendung von TCP/IP Die Anweisungen zum Einrichten von NetQuestion zur Verwendung von TCP/IP auf OS/2-Systemen sind unvollständig. Die Speicherposition der in diesen Anweisungen erwähnten *.cfg-Dateien ist das Datenunterverzeichnis des Installationsverzeichnisses von NetQuestion. Sie können das Installationsverzeichnis von NetQuestion durch die Eingabe eines der folgenden Befehle ermitteln: echo %IMNINSTSRV% //für SBCS-Installationen echo %IMQINSTSRV% //für DBCS-Installationen 3.4 Fehlernachrichten beim Versuch, Netscape zu starten Es kann vorkommen, dass beim Starten von Netscape die folgenden Fehlernachrichten angezeigt werden: Cannot find file (or one of its components). Check to ensure the path and filename are correct and that all required libraries are available. Unable to open "D:\Program Files\SQLLIB\CC\..\doc\html\db2help\XXXXX.htm" Führen Sie dann die folgenden Schritte aus, um das Problem unter Windows NT, 95 oder 98 zu beheben (Anweisungen für Windows 2000 finden Sie im Anschluss): Wählen Sie im Menü Start die Option Programme --> Windows-Explorer aus. Der Windows-Explorer wird geöffnet. Wählen Sie im Windows-Explorer Ansicht --> Optionen aus. Das Notizbuch Optionen wird geöffnet. Klicken Sie die Indexzunge Dateitypen an. Die Seite Dateitypen wird geöffnet. Heben Sie Netscape Hypertext Document im Feld Registrierte Dateitypen hervor, und klicken Sie Bearbeiten an. Das Fenster Dateityp bearbeiten wird geöffnet. Heben Sie Öffnen im Feld Vorgänge hervor. Klicken Sie den Druckknopf Bearbeiten an. Das Fenster Vorgang bearbeiten für Typ wird geöffnet. Machen Sie die Auswahl des Markierungsfelds DDE verwenden rückgängig. Im Feld Anwendung für diesen Vorgang muss am Ende der Zeichenfolge "%1" (eingeschlossen in Anführungszeichen und mit einer Leerstelle vor dem ersten Anführungszeichen) stehen. Wenn die Nachrichten unter Windows 2000 angezeigt werden, sollten Sie die folgenden Schritte ausführen: Wählen Sie Windows-Explorer im Menü Start aus. Der Windows-Explorer wird geöffnet. Wählen Sie im Windows-Explorer Extras --> Ordneroptionen aus. Das Notizbuch Ordneroptionen wird geöffnet. Klicken Sie die Indexzunge Dateitypen an. Markieren Sie auf der Seite Dateitypen im Feld Registrierte Dateitypen die Option "HTM Netscape Hypertext Document", und klicken Sie "Erweitert" an. Das Fenster Dateityp bearbeiten wird geöffnet. Heben Sie open im Feld Vorgänge hervor. Klicken Sie den Druckknopf Bearbeiten an. Das Fenster Vorgang bearbeiten für Typ wird geöffnet. Machen Sie die Auswahl des Markierungsfelds DDE verwenden rückgängig. Im Feld Anwendung für diesen Vorgang muss am Ende der Zeichenfolge "%1" (eingeschlossen in Anführungszeichen und mit einer Leerstelle vor dem ersten Anführungszeichen) stehen. Klicken Sie OK an. Wiederholen Sie Schritt 4 bis 8 für die Dateitypen HTML Netscape Hypertext Document und SHTML Netscape Hypertext Document. 3.5 Konfigurationsanforderung für Adobe Acrobat Reader auf UNIX-Systemen Acrobat Reader wird auf UNIX-Plattformen nur auf Englisch angeboten. Es kann daher zu Fehlernachrichten kommen, wenn versucht wird, PDF-Dateien mit einer anderen Ländereinstellung als Englisch zu öffnen. Diese Fehler weisen auf Probleme beim Zugriff auf Schriften oder bei der Extraktion der PDF-Datei hin, entstehen aber tatsächlich dadurch, dass der englische Acrobat Reader in UNIX mit anderen Ländereinstellungen als Englisch nicht korrekt funktioniert. Wenn Sie solche PDF-Dateien anzeigen wollen, wechseln Sie mit einem der unten aufgeführten Schritte zur englischen Ländereinstellung, bevor Sie den englischen Acrobat Reader starten: Bearbeiten Sie das Acrobat Reader-Start-Script, indem Sie folgende Zeile nach der Anweisung #!/bin/sh in der Start-Script-Datei hinzufügen: LANG=C;export LANG Dadurch wird das korrekte Verhalten sichergestellt, wenn Acrobat Reader von anderen Anwendungen, z. B. von Netscape Navigator oder von einem Anwendungshilfemenü aus gestartet wird. Geben Sie LANG=C an der Eingabeaufforderung ein, um die Anwendungsumgebung von Acrobat Reader auf Englisch einzustellen. Weitere Informationen erhalten Sie bei Adobe Systems (http://www.Adobe.com). 3.6 "SQL Reference" in einer PDF-Datei verfügbar Im Anhang Verwenden der DB2-Bibliothek (Using the DB2 Library) in jedem Handbuch wird angegeben, dass das Handbuch SQL Reference im PDF-Format in zwei Bänden verfügbar ist. Dies ist nicht korrekt. Obwohl das gedruckte Buch aus zwei Bänden besteht und die beiden Formnummern korrekt sind, gibt es nur eine PDF-Datei, die beide Bände enthält. Der Name dieser PDF-Datei lautet: db2s0x70. Installation und Konfiguration Teilinhaltsverzeichnis Allgemeine Informationen zur Installation, Migration und Konfiguration 4.1 Herunterladen von Installationspaketen für alle unterstützten DB2-Clients 4.2 Ermöglichen des Zugriffs auf das DB2 EE- oder DB2 Connect EE-Installationsimage unter Linux auf S/390 4.3 Informationen im DB2 Connect-Anhang nicht erforderlich 4.4 Installieren von DB2 unter SuSE Linux 4.5 Zusätzliche Programmkorrekturstufe für die Solaris-Betriebsumgebung erforderlich 4.6 Installieren von DB2 Enterprise-Extended Edition unter AIX 4.7 Weitere Installationsschritte für AIX-CICS-Benutzer 4.8 Netscape-LDAP-Verzeichnisunterstützung 4.8.1 Erweitern des Netscape-LDAP-Schemas 4.9 Unterstützung für die Plattformen Windows ME, Windows XP und Windows 2000 Datacenter Edition 4.9.1 Windows XP 4.9.1.1 Einschränkungen 4.9.2 Windows ME 4.9.2.1 Einschränkungen 4.9.3 Windows 2000 Datacenter Server 4.10 Installieren von DB2 unter Windows 95 4.11 Installieren von DB2 unter Windows 2000 4.12 Ausführen von DB2 unter einem Windows 2000-Terminalserver (im Verwaltungsmodus) 4.13 Unterstützung für Microsoft SNA Server und SNA-Aktualisierung an mehreren Standorten (zweiphasige Festschreibung) 4.14 Definieren von Benutzer-ID und Kennwort in IBM Communications Server für Windows NT (CS/NT) 4.14.1 Knotendefinition 4.15 DB2-Installation kann blockieren, wenn ein Wechsellaufwerk nicht angeschlossen ist 4.16 Fehler SQL1035N bei der Verwendung des Befehlszeilenprozessors unter Windows 2000 4.17 Migrationsproblem bei mit Sonderregistern definierten Sichten 4.18 IPX/SPX-Protokollunterstützung unter Windows 2000 4.19 Stoppen von DB2-Prozessen vor dem Upgrade älterer Versionen von DB2 4.20 Ausführen von db2iupdt nach der Installation von DB2, wenn ein anderes DB2-Produkt bereits installiert ist 4.21 Definieren der Linux-Umgebung zur Ausführung der DB2-Steuerzentrale 4.22 DB2 Universal Database Enterprise Edition und DB2 Connect Enterprise Edition für Linux unter S/390 4.23 Möglicher Datenverlust unter Linux für S/390 4.24 DB2 für Linux - Integration der Gnome- und KDE-Desktops 4.25 Solaris-Kernelkonfigurationsparameter (empfohlene Werte) 4.26 DB2 Universal Database Enterprise - Extended Edition für UNIX Einstieg 4.27 Kernelparameter "shmseg" für HP-UX 4.28 Migrieren von IBM Visual Warehouse-Steuerungsdatenbanken 4.29 Migrieren eindeutiger Indizes mit dem Befehl "db2uiddl" 4.30 Installationsfehler bei der 64-Bit-AIX-Version 4.30.1 Mit SMIT 4.31 Fehler bei der Migration 4.32 IBM DB2 Connect-Lizenzaktivierung 4.32.1 Installieren Ihrer Lizenzberechtigung und Einstellen der Lizenzart mit der Lizenzzentrale 4.32.2 Installieren Ihrer Lizenzberechtigung und Einstellen der Lizenzart mit dem Befehl "db2licm" 4.32.3 Lizenzüberlegungen für verteilte Installationen 4.33 Zugreifen auf Warehouse-Steuerungsdatenbanken 4.34 IBM e-server p690 und DB2 UDB Version 7 mit AIX 5 4.35 Testprodukte auf den CD-ROMs von Enterprise Edition für UNIX 4.36 Testprodukte auf den CD-ROMs von DB2 Connect Enterprise Edition für UNIX 4.37 Merant-Treibermanager und der ODBC-Treiber von DB2 UDB Version 7 unter UNIX 4.38 Weitere Konfiguration erforderlich vor der Installation der Informationskatalogzentrale für das Web 4.39 Informationen zur Unterstützung von Sprachen und Codepages - Korrektur DB2 Data Links Manager Einstieg 5.1 Unterstützung unter AIX 5.1 5.2 Fehlschlagen von "dlfm start" mit der Nachricht, dass beim Abruf von afsfid für Präfix ein Fehler aufgetreten ist 5.3 Einrichten einer Tivoli Storage Manager-Verwaltungsklasse für Archivierungsdateien 5.4 Erforderlicher Plattenspeicherplatz für DFS Client Enabler 5.5 Überwachen der Back-End-Prozesse von Data Links File Manager unter AIX 5.6 Installation und Konfiguration von DB2 Data Links Manager für AIX: Zusätzliche Installationsvoraussetzungen in DCE-DFS-Umgebungen 5.7 Fehlgeschlagener Befehl "dlfm add_prefix" 5.8 Wenn der Kopierdämon bei "dlfm stop" nicht stoppen sollte 5.9 Installation und Konfiguration von DB2 Data Links Manager für AIX: Installieren von DB2 Data Links Manager unter AIX mit dem Dienstprogramm db2setup 5.10 Installation und Konfiguration von DB2 Data Links Manager für AIX: Tasks nach Abschluss der Installation in DCE-DFS 5.11 Installation und Konfiguration von DB2 Data Links Manager für AIX: Manuelles Installieren von DB2 Data Links Manager mit SMIT 5.12 Installation und Konfiguration von DB2 Data Links DFS Client Enabler 5.13 Installation und Konfiguration von DB2 Data Links Manager für Solaris-Betriebssysteme 5.14 Administratorgruppenzugriffsrechte in Data Links unter Windows NT 5.15 Minimieren der Protokollierung für DLFF-Installation (Data Links File System Filter) 5.15.1 Protokollieren von Nachrichten nach der Installation 5.15.2 Verringerung der Protokollierungsaktivität auf Sun Solaris-Systemen 5.16 DATALINK-Wiederherstellung 5.17 Löschen von Data Links Manager 5.18 Deinstallation von DLFM-Komponenten mit SMIT entfernt unter Umständen zusätzliche Dateigruppen 5.19 Vorbereitung/Feststellen des Host-Namens 5.20 Arbeiten mit DB2 Data Links File Manager: Bereinigung nach dem Löschen von DB2 Data Links Manager aus einer DB2-Datenbank 5.21 Benutzeraktion für "dlfm Client_conf" schlägt fehl 5.22 DLFM1001E (Neue Fehlernachricht) 5.23 DLFM-Konfigurationsdateioption 5.24 Mögliches Problem beim Wiederherstellen von Dateien 5.25 Fehler beim Ausführen von des Data Links/DFS-Scripts "dmapp_prestart" unter AIX 5.26 Integration von Tivoli Space Manager in Data Links 5.26.1 Einschränkungen und Begrenzungen 5.27 Kapitel 4. Installieren und Konfigurieren von DB2 Data Links Manager für AIX 5.27.1 Allgemeine Installationsvoraussetzungen 5.27.1.1 Migration von DB2 File Manager Version 5.2 auf DB2 Data Links Manager Version 7 5.28 Kapitel 6. Überprüfen der Installation unter AIX 5.28.1 Umgehen von Problemen in NFS-Umgebungen Installation und Konfiguration: Ergänzung 6.1 Kapitel 5. Installieren von DB2-Clients auf UNIX-Betriebssystemen 6.1.1 Kernelkonfigurationsparameter für HP-UX 6.2 Kapitel 12. Ausführen Ihrer eigenen Anwendungen 6.2.1 Binden von Datenbankdienstprogrammen mit Run-Time Client 6.2.2 Client-Zugriff auf DB2 mit ODBC unter UNIX 6.3 Kapitel 24. Einrichten eines Systems zusammengeschlossener Datenbanken für den Zugriff auf Einstellen eines Systems auf mehrere Datenquellen 6.3.1 Systeme zusammengeschlossener Datenbanken 6.3.2 FixPak 8 oder höher erforderlich für DB2-Datenquellen der Version 8 6.3.3 Einschränkung 6.3.4 Installieren von DB2 Relational Connect 6.3.4.1 Installieren von DB2 Relational Connect auf Windows NT-Servern 6.3.4.2 Installieren von DB2 Relational Connect auf UNIX-Servern 6.3.5 Kapitel 24. Einrichten eines Systems zusammengeschlossener Datenbanken für den Zugriff auf Einstellen eines Systems auf mehrere Datenquellen 6.3.5.1 Das Schema in Verbindung mit Kurznamen 6.3.5.2 Aspekte beim Wiederherstellen einer zusammengeschlossenen Datenbank auf einem anderen Server mit zusammengeschlossenen Datenbanken 6.4 Kapitel 26. Zugriff auf Oracle-Datenquellen 6.4.1 Fehler in der Dokumentation 6.5 Vermeiden von Problemen beim Arbeiten mit fernen LOBs 6.6 Zugriff auf Sybase-Datenquellen 6.6.1 Hinzufügen von Sybase-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken 6.6.1.1 Schritt 1: Festlegen der Umgebungsvariablen und Aktualisieren der Profilregistrierdatenbank (nur AIX und Solaris) 6.6.1.2 Schritt 2: Verbinden von DB2 mit der Sybase-Client-Software (nur AIX und Solaris-Betriebsumgebung) 6.6.1.3 Schritt 3: Erneutes Starten des DB2-Exemplars (nur AIX und Solaris-Betriebsumgebung) 6.6.1.4 Schritt 4: Erstellen und Definieren einer Schnittstellendatei 6.6.1.5 Schritt 5: Erstellen der Oberfläche 6.6.1.6 Schritt 6: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM 6.6.1.7 Schritt 7: Erstellen des Servers 6.6.1.8 Schritt 8: Festlegen der Serveroption CONNECTSTRING 6.6.1.9 Schritt 9: Erstellen einer Benutzerzuordnung 6.6.1.10 Schritt 10: Erstellen von Kurznamen für Tabellen und Sichten 6.6.2 Angeben von Sybase-Codepages 6.7 Zugriff auf Microsoft SQL Server-Datenquellen mit ODBC (neues Kapitel) 6.7.1 Hinzufügen von Microsoft SQL Server-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken 6.7.1.1 Schritt 1: Festlegen der Umgebungsvariablen (nur AIX) 6.7.1.2 Schritt 2: Ausführen des Shell-Scripts (nur AIX) 6.7.1.3 Schritt 3: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM (nur AIX) 6.7.1.4 Schritt 4: DB2-Exemplar erneut starten (nur AIX) 6.7.1.5 Schritt 5: Erstellen der Oberfläche 6.7.1.6 Schritt 6: Erstellen des Servers 6.7.1.7 Schritt 7: Erstellen einer Benutzerzuordnung 6.7.1.8 Schritt 8: Erstellen von Kurznamen für Tabellen und Sichten 6.7.1.9 Schritt 9: Optional: Abrufen von ODBC-Traces 6.7.2 Übersicht über Microsoft SQL Server-Codepages (nur Windows NT) 6.8 Zugriff auf Informix-Datenquellen (neues Kapitel) 6.8.1 Hinzufügen von Informix-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken 6.8.1.1 Schritt 1: Festlegen der Umgebungsvariablen und Aktualisieren der Profilregistrierdatenbank 6.8.1.2 Schritt 2: Verbinden von DB2 mit der Informix-Client-Software 6.8.1.3 Schritt 3: DB2-Exemplar erneut starten 6.8.1.4 Schritt 4: Erstellen der Informix-Datei "sqlhosts" 6.8.1.5 Schritt 5: Erstellen der Oberfläche 6.8.1.6 Schritt 6: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM 6.8.1.7 Schritt 7: Erstellen des Servers 6.8.1.8 Schritt 8: Erstellen einer Benutzerzuordnung 6.8.1.9 Schritt 9: Erstellen von Kurznamen für Tabellen, Sichten und Informix-Synonyme Allgemeine Informationen zur Installation, Migration und Konfiguration 4.1 Herunterladen von Installationspaketen für alle unterstützten DB2-Clients Wenn Sie Installationspakete für alle unterstützten DB2-Clients, einschließlich der Versionen vor Version 7, herunterladen wollen, rufen Sie die Website für IBM DB2-FixPaks und -Clients unter folgender Adresse auf: http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/download.d2w/report 4.2 Ermöglichen des Zugriffs auf das DB2 EE- oder DB2 Connect EE-Installationsimage unter Linux auf S/390 Bevor Sie mit den Anweisungen zu dieser Installation fortfahren, die im Handbuch Einstieg angegeben sind, erstellen Sie eine TAR-Datei mit dem Inhalt der CD, indem Sie den Befehl tar -cvf verwenden. Stellen Sie diese TAR-Datei auf eine Maschine, auf die Sie von der S/390-Maschine aus zugreifen können. 4.3 Informationen im DB2 Connect-Anhang nicht erforderlich Die Liste zur Verfügbarkeit von Listdateien, Bindedateien und Pakete im entsprechenden Anhang des Handbuchs DB2 Connect Einstieg ist nicht erforderlich und sollte nicht beachtet werden. 4.4 Installieren von DB2 unter SuSE Linux Beachten Sie den Abschnitt zum Installieren von DB2 unter SuSE Linux in Kapitel 4 des Handbuchs DB2 Universal Database für UNIX Einstieg nicht. Die in diesem Abschnitt angegebenen Vorbedingungen sind nicht mehr erforderlich. 4.5 Zusätzliche Programmkorrekturstufe für die Solaris-Betriebsumgebung erforderlich DB2 Universal Database Version 7 für die Solaris-Betriebsumgebung Version 2.6 setzt die Programmkorrektur 106285-02 oder höher zusätzlich zu den im Handbuch DB2 für UNIX Einstieg aufgelisteten Programmkorrekturen voraus. 4.6 Installieren von DB2 Enterprise-Extended Edition unter AIX In Schritt 4 im Abschnitt "Performing the Installation" des Handbuchs DB2 Enterprise-Extended Edition for UNIX Quick Beginnings wird angegeben, dass Sie ein CD-ROM-Dateisystem mit dem folgenden Befehl zuordnen sollten: crfs -v cdrfs -p ro -d cd0 Damit dieser Befehl erfolgreich ausgeführt werden kann, müssen Sie auch den Mountpunkt mit dem Argument --m angeben. crfs -v cdrfs -p ro -d cd0 -m /cdrom Außerdem fehlt im Abschnitt "Performing the Installation" noch ein Aufzählungspunkt. Nach Schritt 5, dem Mounten des CD-ROM-Dateisystems auf der Steuerworkstation, sollte auf jedem Knoten, der an Ihrem partitionierten Datenbanksystem teilnehmen soll, das CD-ROM-Dateisystem fern angehängt werden. Sofern das Dateisystem /cdrom auf den teilnehmenden Knoten noch nicht vorhanden ist, verwenden Sie die folgenden Befehle, um /cdrom auf der Steuerworkstation zu exportieren und fern anzuhängen: exportfs -i -o ro /cdrom dsh mkdir /cdrom dsh mount sws_hostname: /cdrom /cdrom Dabei ist sws_hostname der Hostname der Steuerworkstation. 4.7 Weitere Installationsschritte für AIX-CICS-Benutzer Wenn Sie DB2 UDB oder ein DB2 UDB-FixPak auf einem AIX-CICS-System installieren, müssen Sie nach der Installation die folgenden zusätzlichen Schritte ausführen. Diese Schritte werden ausführlich im Abschnitt "Configuration steps for Database 2" des Handbuchs CICS/6000 Administration Guide beschrieben: Erstellen Sie ein gemeinsames Objekt von DB2 UDB für AIX für die Bibliothek 'libdb2.a'. Erstellen Sie die DB2-Switchloaddatei, und speichern Sie sie im Verzeichnis, das in der XA-Definition für die Datenbank angegeben ist. Wenn Sie in Ihrer Umgebung COBOL nutzen, führen Sie das Tool 'cocsmkcobol' erneut aus. 4.8 Netscape-LDAP-Verzeichnisunterstützung DB2 unterstützt die Verwendung eines LDAP-Verzeichnisses für die zentrale Verwaltung und Konsolidierung von Datenbank- und Knotenverzeichnissen. In bisherigen Releases von DB2 wurden nur Microsoft Active Directory und IBM SecureWay Directory unterstützt. DB2 unterstützt jetzt auch die folgenden LDAP-Server: Netscape Directory Server Version 4.12 oder höher, iPlanet(TM) Directory Server 5.0 oder höher. 4.8.1 Erweitern des Netscape-LDAP-Schemas Die folgenden Anweisungen gelten für Netscape Directory Server 4.1: Netscape Directory Server ermöglicht es Anwendungen, das Schema durch Hinzufügen von Attribut- und Objektklassendefinitionen in den folgenden beiden Dateien zu erweitern: slapd.user_oc.conf und slapd.user_at.conf. Diese beiden Dateien befinden sich im Verzeichnis \slapd-\config. Die DB2-Attribute müssen slapd.user_at.conf wie folgt hinzugefügt werden: Anmerkung: In diesem Kontext stehen bin, cis, ces und dn für Binärwerte, von Groß-/Kleinschreibung unabhängige Zeichenfolgen, von Groß-/Kleinschreibung abhängige Zeichenfolgen bzw. definierte Namen. ############################################################################ # # IBM DB2 Universal Database V7.2 # Attribute Definitions # ############################################################################ attribute binProperty 1.3.18.0.2.4.305 bin attribute binPropertyType 1.3.18.0.2.4.306 cis attribute cesProperty 1.3.18.0.2.4.307 ces attribute cesPropertyType 1.3.18.0.2.4.308 cis attribute cisProperty 1.3.18.0.2.4.309 cis attribute cisPropertyType 1.3.18.0.2.4.310 cis attribute propertyType 1.3.18.0.2.4.320 cis attribute systemName 1.3.18.0.2.4.329 cis attribute db2nodeName 1.3.18.0.2.4.419 cis attribute db2nodeAlias 1.3.18.0.2.4.420 cis attribute db2instanceName 1.3.18.0.2.4.428 cis attribute db2Type 1.3.18.0.2.4.418 cis attribute db2databaseName 1.3.18.0.2.4.421 cis attribute db2databaseAlias 1.3.18.0.2.4.422 cis attribute db2nodePtr 1.3.18.0.2.4.423 dn attribute db2gwPtr 1.3.18.0.2.4.424 dn attribute db2additionalParameters 1.3.18.0.2.4.426 cis attribute db2ARLibrary 1.3.18.0.2.4.427 cis attribute db2authenticationLocation 1.3.18.0.2.4.425 cis attribute db2databaseRelease 1.3.18.0.2.4.429 cis attribute DCEPrincipalName 1.3.18.0.2.4.443 cis Die DB2-Objektklassen müssen der Datei slapd.user_oc.conf wie folgt hinzugefügt werden: ############################################################################ # # IBM DB2 Universal Database V7.2 # Object Class Definitions # ############################################################################ objectclass eProperty oid 1.3.18.0.2.6.90 requires objectClass allows cn, propertyType, binProperty, binPropertyType, cesProperty, cesPropertyType, cisProperty, cisPropertyType objectclass eApplicationSystem oid 1.3.18.0.2.6.8 requires objectClass, systemName objectclass DB2Node oid 1.3.18.0.2.6.116 requires objectClass, db2nodeName allows db2nodeAlias, host, db2instanceName, db2Type, description, protocolInformation objectclass DB2Database oid 1.3.18.0.2.6.117 requires objectClass, db2databaseName, db2nodePtr allows db2databaseAlias, description, db2gwPtr, db2additionalParameters, db2authenticationLocation, DCEPrincipalName, db2databaseRelease, db2ARLibrary Nachdem die DB2-Schemadefinition hinzugefügt wurde, muss Directory Server neu gestartet werden, damit alle Änderungen wirksam werden. 4.9 Unterstützung für die Plattformen Windows ME, Windows XP und Windows 2000 Datacenter Edition DB2 unterstützt jetzt die Plattformen Microsoft Windows ME, Windows XP und Windows 2000 Datacenter Edition. Im Folgenden finden Sie weitere plattformspezifische Informationen. 4.9.1 Windows XP Die folgenden Produkte und Versionen unterstützen 32-Bit-Windows XP, wenn FixPak 4 oder höher installiert ist: IBM DB2 UDB Personal Edition Version 7.2 IBM DB2 Personal Developer's Edition Version 7.2 IBM DB2 Universal Developer's Edition Version 7.2 IBM DB2 Connect Personal Edition Version 7.2 IBM DB2 Connect Enterprise Edition Version 7.2 IBM DB2 UDB Workgroup Edition Version 7.2 IBM DB2 UDB Enterprise Edition Version 7.2 IBM DB2 Run-Time Client Version 7.2 IBM DB2 Administration Client Version 7.2 IBM DB2 Application Development Client Version 7.2 DB2 unterstützt dieselben Landessprachen auf Windows XP-Systemen wie bei anderen Versionen. 4.9.1.1 Einschränkungen Bei der Eingabe von Benutzer-IDs und Kennwörtern während der Installation erhalten Sie unter Umständen eine Nachricht, dass ein in das Installationsfenster eingegebenes Benutzerkonto nicht gültig ist, selbst wenn es sich dabei um ein gültiges Benutzerkonto handelt. Dies geschieht nur bei Benutzer-IDs, die auf der Maschine vorhanden sind. Dieses Problem sollte nicht auftreten, wenn Sie Benutzernamen eingeben, die noch nicht vorhanden sind. Wenn Sie DB2 unter einem anderen Benutzerkonto als db2admin installieren wollen, müssen Sie sicherstellen, dass der Kontoname den DB2-Namenskonventionen entspricht. Vor allem darf der Name keine Leerzeichen enthalten. mein_name beispielsweise ist zulässig, mein name dagegen nicht. Wenn Sie während der Produktinstallation den Fehler 1052 erhalten, gehen Sie wie folgt vor: Lassen Sie das Fehlerfenster offen. Öffnen Sie ein Befehlsfenster. Führen Sie den Befehl db2start.exe aus. Führen Sie den im Fehlerfenster angegebenen Befehl mit dem angegebenen Kennwort für den angezeigten Benutzer in der Befehlszeile aus. Kehren Sie zum Fehlerfenster zurück, und klicken Sie OK an. Die Installation wird jetzt fortgesetzt. Wenn Sie vereinfachtes Chinesisch verwenden und feststellen, dass die Schriftarten in der Steuerzentrale nicht korrekt angezeigt werden, ändern Sie die Datei sqllib\java\java12\jdk\jre\lib\font.properties.zh, indem Sie den Eintrag filename.\u5b8b\u4f53=simsun.ttf durch filename.\u5b8b\u4f53=simsun.ttc ersetzen. 4.9.2 Windows ME Die folgenden Produkte und Versionen unterstützen Windows ME, wenn FixPak 2 oder höher installiert ist: IBM DB2 UDB Personal Edition Version 7.1 IBM DB2 Personal Developer's Edition Version 7.1 IBM DB2 Universal Developer's Edition Version 7.1 IBM DB2 Connect Personal Edition Version 7.1 IBM DB2 Run-Time Client Version 7.1 IBM DB2 Administration Client Version 7.1 IBM DB2 Application Development Client Version 7.1 4.9.2.1 Einschränkungen Die HTML-Suchserverfunktion wird derzeit unter Window ME nicht unterstützt. Wenn Sie DB2 deinstallieren, erhalten Sie unter Umständen eine Fehlernachricht, die angibt, dass die Datei MFC42U.DLL nicht gefunden werden kann. Damit DB2 vollständig deinstalliert wird, löschen Sie das Verzeichnis sqllib nach der Deinstallation manuell. 4.9.3 Windows 2000 Datacenter Server Die folgenden DB2-Produkte sind für Windows 2000 Datacenter Server, Windows 2000 Advanced Server und Windows 2000 Server zertifiziert: IBM DB2 Universal Database Enterprise - Extended Edition Version 7.2 IBM DB2 Universal Database Enterprise Edition 7.2 IBM DB2 Database Workgroup Edition Version 7.2 IBM DB2 Connect Enterprise Edition Version 7.2 4.10 Installieren von DB2 unter Windows 95 Wenn Sie DB2 auf einem nicht englischen Windows 95-System installieren, müssen Sie vor der Installation von DB2 UDB Ihre Winsock-Version manuell auf Winsock 2 aktualisieren. Das Upgradedienstprogramm für Winsock 2 ist von Microsoft verfügbar. 4.11 Installieren von DB2 unter Windows 2000 Wenn Sie unter Windows 2000 über eine ältere Version von DB2 installieren oder die aktuelle Version erneut installieren, stellen Sie sicher, dass die Wiederherstellungsoptionen für alle DB2-Services auf "Take No Action" eingestellt sind. 4.12 Ausführen von DB2 unter einem Windows 2000-Terminalserver (im Verwaltungsmodus) Bei DB2 UDB Version 7.1 ab FixPak 3 kann DB2 unter Windows 2000 Terminal Server (im Verwaltungsmodus) ausgeführt werden. Davor unterstützte DB2 nur den Anwendungsservermodus von Windows 2000 Terminal Server. 4.13 Unterstützung für Microsoft SNA Server und SNA-Aktualisierung an mehreren Standorten (zweiphasige Festschreibung) Host- und AS/400-Anwendungen können nicht mit zweiphasiger SNA-Festschreibung auf DB2 UDB-Server zugreifen, wenn das verwendete SNA-Produkt Microsoft SNA Server ist. DB2 UDB-Veröffentlichungen, in denen dies angegeben wird, sind nicht korrekt. IBM Communications Server für Windows NT Version 5.02 oder höher ist erforderlich. Anmerkung: Anwendungen, die auf Host- und AS/400-Datenbankserver mit DB2 UDB für Windows zugreifen, können zweiphasige SNA-Festschreibung in Verbindung mit Microsoft SNA Server Version 4 Service Pack 3 oder höher verwenden. 4.14 Definieren von Benutzer-ID und Kennwort in IBM Communications Server für Windows NT (CS/NT) Wenn Sie APPC als Kommunikationsprotokoll für ferne DB2-Clients verwenden, um eine Verbindung zu Ihrem DB2-Server herzustellen, und wenn Sie CS/NT als SNA-Produkt verwenden, stellen Sie sicher, dass die folgenden Schlüsselwörter in der CS/NT-Konfigurationsdatei korrekt eingestellt ist. Diese Datei befindet sich im allgemeinen im Verzeichnis x:\ibmcs\private. 4.14.1 Knotendefinition TG_SECURITY_BEHAVIOR Mit diesem Parameter gibt der Benutzer an, wie der Knoten Sicherheitsinformationen bei der Verbindungsherstellung (ATTACH) handhaben soll, wenn das Transaktionsprogramm nicht für Sicherheit konfiguriert ist. IGNORE_IF_NOT_DEFINED Mit diesem Parameter gibt der Benutzer an, ob Sicherheitsparameter bei der Verbindungsherstellung (ATTACH) vorhanden sind und ob sie ignoriert werden sollen, wenn das Transaktionsprogramm nicht für Sicherheit konfiguriert ist. Wenn Sie IGNORE_IF_NOT_DEFINED verwenden, müssen Sie in CS/NT keine Benutzer-ID und kein Kennwort definieren. VERIFY_EVEN_IF_NOT_DEFINED Mit diesem Parameter gibt der Benutzer an, ob Sicherheitsparameter bei der Verbindungsherstellung (ATTACH) vorhanden sind. Außerdem wird festgelegt, dass diese Parameter überprüft werden, selbst wenn das Transaktionsprogramm nicht für Sicherheit konfiguriert ist. Dies ist die Standardeinstellung. Wenn Sie VERIFY_EVEN_IF_NOT_DEFINED verwenden, müssen Sie in CS/NT eine Benutzer-ID und ein Kennwort definieren. Führen Sie die folgenden Schritte aus, um die Benutzer-ID und das Kennwort für CS/NT zu definieren: Wählen Sie Start --> Programme --> IBM Communications Server --> SNA Node Configuration aus. Das Fenster Welcome to Communications Server Configuration wird geöffnet. Wählen Sie die gewünschte Konfigurationsdatei aus. Klicken Sie Next an. Das Fenster Choose a Configuration Scenario wird geöffnet. Markieren Sie CPI-C-, APPC- or 5250-Emulation. Klicken Sie Finish an. Das Fenster Communications Server SNA Node wird geöffnet. Klicken Sie [+] neben CPI-C und APPC an. Klicken Sie [+] neben LU6.2 Security an. Klicken Sie User Passwords mit Maustaste 2 an, und wählen Sie Create aus. Das Fenster Define a User ID Password wird geöffnet. Geben Sie die Benutzer-ID und das Kennwort ein. Klicken Sie OK an. Klicken Sie Finish an, damit die Änderungen wirksam werden. 4.15 DB2-Installation kann blockieren, wenn ein Wechsellaufwerk nicht angeschlossen ist Die DB2-Installation kann nach der Auswahl der Installationsart blockieren, wenn ein Computer mit einem Wechsellaufwerk verwendet wird, das nicht angeschlossen ist. Geben Sie die Option -a an, um dieses Problem zu beheben: setup.exe -a 4.16 Fehler SQL1035N bei der Verwendung des Befehlszeilenprozessors unter Windows 2000 Wenn DB2 in einem Verzeichnis installiert ist, auf das nur einige Benutzer (z. B. Administratoren) Schreibzugriff haben, kann ein normaler Benutzer den Fehler SQL1035N erhalten, wenn er versucht, den DB2-Befehlszeilenprozessor zu verwenden. Zur Behebung dieses Problems sollte DB2 in einem Verzeichnis installiert werden, auf das alle Benutzer Schreibzugriff haben. 4.17 Migrationsproblem bei mit Sonderregistern definierten Sichten Sichten werden nach einer Datenbankmigration unbrauchbar, wenn das Sonderregister USER oder CURRENT SCHEMA für die Definition einer Sichtspalte verwendet wird. Beispiel: create view v1 (c1) as values user In Version 5 hatten USER und CURRENT SCHEMA den Datentyp CHAR(8). Seit Version 6 werden sie jedoch als VARCHAR(128) definiert. In diesem Beispiel hat Spalte c1 beim Erstellen der Sicht in Version 5 den Datentyp CHAR. Dieser Datentyp wird auch nach der Datenbankmigration beibehalten. Wenn die Sicht nach der Migration verwendet wird, wird sie zur Laufzeit kompiliert, schlägt dann jedoch fehl, weil die Datentypen nicht übereinstimmen. Diese Sicht muss gelöscht und dann neu erstellt werden. Bevor Sie die Sicht löschen, müssen Sie die Syntax, durch die sie erstellt wurde, durch Abfrage der Katalogsicht SYSCAT.VIEWS erfassen. Beispiel: select text from syscat.views where viewname='<>' 4.18 IPX/SPX-Protokollunterstützung unter Windows 2000 Diese Informationen beziehen sich auf den Abschnitt zu möglichen Client-/Serverkonnektivitätsszenarios im Kapitel zur Installationsplanung des Handbuchs "Einstieg". Die veröffentlichte Tabelle für die Protokollunterstützung ist nicht ganz korrekt. Ein Windows 2000-Client mit einer Verbindung zu einem OS/2- oder UNIX-Server über IPX/SPX wird nicht unterstützt. Desgleichen werden OS/2- oder UNIX-Clients mit einer Verbindung zu einem Windows 2000-Server über IPX/SPX nicht unterstützt. 4.19 Stoppen von DB2-Prozessen vor dem Upgrade älterer Versionen von DB2 Diese Informationen beziehen sich auf die Migrationsinformationen in Ihrem Handbuch "Einstieg" von DB2 für Windows. Wenn Sie einen Upgrade von einer älteren Version von DB2 ausführen, die auf Ihrer Windows-Maschine aktiv ist, gibt das Installationsprogramm eine Warnung mit einer Liste von Prozessen aus, die DB2-DLLs im Speicher haben. Sie können dann die Prozesse in der Liste manuell stoppen oder automatisch vom Installationsprogramm stoppen lassen. Es empfiehlt sich, alle DB2-Prozesse vor der Installation manuell zu stoppen, um Datenverluste zu vermeiden. Die beste Möglichkeit, um sicherzustellen, dass keine DB2-Prozesse mehr aktiv sind, ist die Anzeige Ihrer Systemprozesse im Fenster Dienste von Windows. Stellen Sie im Fenster Dienste von Windows sicher, dass keine DB2-, OLAP- oder Data Warehouse-Dienste mehr aktiv sind. Anmerkung: Auf Windows-Plattformen kann jeweils nur eine Version von DB2 ausgeführt werden. Sie können beispielsweise nicht DB2 Version 7 und DB2 Version 6 auf derselben Windows-Maschine ausführen. Wenn Sie DB2 Version 7 auf einer Maschine installieren, auf der bereits DB2 Version 6 installiert ist, wird bei der Installation DB2 Version 6 gelöscht. Weitere Informationen zur Migration von älteren Versionen von DB2 finden Sie im entsprechenden Handbuch Einstieg. 4.20 Ausführen von db2iupdt nach der Installation von DB2, wenn ein anderes DB2-Produkt bereits installiert ist Die folgenden Informationen sind auch im Einstiegshandbuch zur Installation enthalten. Wenn Sie DB2 UDB Version 7 auf UNIX-Systemen installieren und bereits ein DB2-Produkt installiert ist, müssen Sie den Befehl db2iupdt ausführen, um die Exemplare zu aktualisieren, mit denen Sie die neuen Funktionen dieses Produkts verwenden wollen. Einige Funktionen werden erst verfügbar, nachdem dieser Befehl ausgeführt wurde. 4.21 Definieren der Linux-Umgebung zur Ausführung der DB2-Steuerzentrale Diese Informationen finden Sie im Kapitel zur Installation der DB2-Steuerzentrale im Handbuch "Einstieg". Nachdem das DB2-Installationsprogramm unter Linux beendet ist und Sie zum Terminalfenster zurückgekehrt sind, geben Sie die folgenden Befehle ein, um die korrekte Umgebung zur Ausführung der DB2-Steuerzentrale zu definieren: su -l export JAVA_HOME=/usr/jdk118 export DISPLAY=:0 Öffnen Sie dann ein weiteres Terminalfenster, und geben Sie Folgendes ein: su root xhost + Schließen Sie diese Terminalfenster und kehren Sie zum Terminalfenster zurück, in dem Sie sich mit der Exemplareigner-ID angemeldet haben. Geben Sie dort den folgenden Befehl ein: db2cc Damit wird die Steuerzentrale gestartet. 4.22 DB2 Universal Database Enterprise Edition und DB2 Connect Enterprise Edition für Linux unter S/390 DB2 Universal Database Enterprise Edition und DB2 Connect Enterprise Edition sind jetzt für Linux unter S/390 verfügbar. Vor der Installation von Linux auf einer S/390-Maschine sollten Sie die Software- und Hardwarevoraussetzungen kennen: Hardware S/390 9672 Generation 5 oder höher, Multiprise 3000 Software SuSE SLES-7 mit den unten aufgelisteten Programmkorrekturen oder Turbolinux Server 6 Kernelstufe 2.2.16 mit Programmkorrekturen für S/390 (siehe unten) glibc 2.1.3 libstdc++ 6.1 (im Paket compat.rpm enthalten) Folgende Programmkorrekturen sind für Linux unter S/390 erforderlich: SLES-7-PatchCD-1-s390-20020522.iso Die aktuellen Aktualisierungen zu unterstützter Software für S/390-Linux-Systeme finden Sie auf der folgenden Website: http://www.ibm.com/db2/linux/validate. Anmerkungen: Nur 32-Bit Intel-basiertes Linux und Linux auf S/390 werden unterstützt. Folgendes ist unter Linux/390 in DB2 Version 7 nicht verfügbar: DB2 UDB Enterprise - Extended Edition DB2 Extender DB2 Data Links Manager DB2 Administration Client Unterstützung für Kennwortänderung LDAP-Unterstützung TSM Verwendung von unformatierten Einheiten 4.23 Möglicher Datenverlust unter Linux für S/390 Wenn Sie DB2 unter Linux für S/390 mit einem Kernel der Serie 2.2 verwenden, sollte der verfügbare Arbeitsspeicher auf der Linux-Maschine auf weniger als 1 GB begrenzt werden. Die Begrenzung des Arbeitsspeichers auf 1 GB verhindert mögliche Datenverluste in DB2 aufgrund eines Linux-Kernelprogrammfehlers. Dies gilt nur unter Linux für S/390 und nicht unter Linux für Intel-Umgebungen. Eine Kernelprogrammkorrektur, die den Einsatz von mehr als 1 GB Arbeitsspeicher ermöglicht, wird auf der IBM Entwicklersite zur Verfügung gestellt werden. 4.24 DB2 für Linux - Integration der Gnome- und KDE-Desktops Die neue DB2-Version enthält eine Reihe von Dienstprogrammen zur Erstellung von Ordnern und Symbolen für DB2-Desktops, mit deren Hilfe die gängigsten DB2-Tools auf den Gnome- und KDE-Desktops für unterstützte, Intel-basierte Linux-Versionen gestartet werden können. Diese Dienstprogramme, die von DB2 Version 7.2 standardmäßig installiert werden, können nach der Installation zum Erstellen und Entfernen von Desktop-Symbolen für einen oder mehrere ausgewählte Benutzer verwendet werden. Verwenden Sie zum Hinzufügen von Desktop-Symbolen für einen oder mehrere Benutzer den folgenden Befehl: db2icons [ ...] Anmerkung: Wenn bei der Symbolerstellung eine Desktop-Umgebung für Gnome oder KDE aktiv ist, muss der Benutzer möglicherweise eine manuelle Desktop-Aktualisierung vornehmen, damit die neuen Symbole angezeigt werden. Verwenden Sie zum Entfernen von Desktop-Symbolen für einen oder mehrere Benutzer den folgenden Befehl: db2rmicons [ ...] Anmerkung: Zum Erstellen oder Entfernen von Symbolen für andere Benutzer müssen die entsprechenden Berechtigungen vorliegen. Ein normaler Benutzer kann mit db2icons und db2rmicons in der Regel nur eigene Symbole erstellen und entfernen. Für einen anderen Benutzer muss eine Root-Berechtigung oder eine Schreibberechtigung für die entsprechenden Ausgangsverzeichnisse vorliegen. 4.25 Solaris-Kernelkonfigurationsparameter (empfohlene Werte) Der Abschnitt Vorbereitung im Solaris-Kapitel der Handbücher DB2 für UNIX Einstieg und DB2 Enterprise - Extended Edition für UNIX Einstieg gibt empfohlene Konfigurationsparameter für den Solaris-Kernel an. Die folgende Tabelle bietet weitere Empfehlungen für Kernelkonfigurationsparameter für Systeme mit mehr als 512 MB Realspeicher. Tabelle 1. Solaris-Kernelkonfigurationsparameter (empfohlene Werte) Kernelparameter 512 MB-1 GB 1 GB-4 GB 4 GB+ msgsys:msginfo_msgmax 65535 65535 65535 msgsys:msginfo_msgmnb 65535 65535 65535 msgsys:msginfo_msgmap 514 1026 2050 msgsys:msginfo_msgmni 512 1024 2048 msgsys:msginfo_msgssz 16 32 64 msgsys:msginfo_msgtql 1024 2048 4096 msgsys:msginfo_msgseg 32767 32767 32767 shmsys:shminfo_shmmax 483,183,820 - 966,367,641 966367641 - 3865470566 3865470566 - 4294967296 shmsys:shminfo_shmseg 50 100 200 shmsys:shminfo_shmmni 300 1024 2048 semsys:seminfo_semmni 1024 2048 4198 semsys:seminfo_semmap 1026 2050 4096 semsys:seminfo_semmns 2048 4096 8192 semsys:seminfo_semmnu 2048 4096 8192 semsys:seminfo_semume 50 50 50 Anmerkungen: Der Grenzwert für den Parameter shmsys:shminfo_shmmax ist 4 GB für 32-Bit-Systeme. Die Parameter msgsys:msginfo_msgmnb und msgsys:msginfo_msgmax müssen mindestens auf 65535 gesetzt werden. Der Parameter msgsys:msginfo_msgseg darf höchstens auf 32767 gesetzt werden. Die Parameter shmsys:shminfo_shmmax sollten auf den vorgeschlagenen Wert in der Tabelle oben oder auf 90% des physikalischen Speichers (in Byte) gesetzt werden, je nachdem, welcher Wert höher ist. Wenn Sie z. B. 196 MB physikalischen Speicher in Ihrem System haben, setzen Sie den Parameter shmsys:shminfo_shmmax auf 184968806 (196*1024*1024*0,9). 4.26 DB2 Universal Database Enterprise - Extended Edition für UNIX Einstieg In Kapitel 5 zum Installieren und Konfigurieren von DB2 Universal Database unter Linux wird angegeben, dass jeder physische Knoten im Linux-EEE-Cluster dieselbe Kernel-, glibc- und libstdc++-Stufe haben muss. Eine Testversion von DB2 EEE für Linux kann von der folgenden Website heruntergeladen werden: http://www6.software.ibm.com/dl/db2udbdl/db2udbdl-p 4.27 Kernelparameter "shmseg" für HP-UX Die Informationen zur Aktualisierung der Kernelkonfigurationsparameter für HP-UX im Handbuch "Einstieg" sind nicht korrekt. Der empfohlene Wert für den Kernelparameter shmseg für HP-UX sollte ignoriert werden. Stattdessen sollte der HP-UX-Standardwert (120) verwendet werden. 4.28 Migrieren von IBM Visual Warehouse-Steuerungsdatenbanken Das Handbuch DB2 Universal Database für Windows Einstieg enthält Informationen zur Migration der aktiven Warehouse-Steuerungsdatenbank während einer Standardinstallation von DB2 Universal Database Version 7 unter Windows NT und Windows 2000. Wenn Sie mehrere Warehouse-Steuerungsdatenbanken migrieren möchten, müssen Sie dazu das Fenster Data Warehouse-Zentrale - Steuerungsdatenbankverwaltung verwenden. Es kann immer nur eine Warehouse-Steuerungsdatenbank aktiv sein. Wenn die zuletzt migrierte Datenbank nicht diejenige ist, die Sie bei der nächsten Anmeldung an der Data Warehouse-Zentrale verwenden wollen, müssen Sie die gewünschte Datenbank im Fenster Data Warehouse-Zentrale - Steuerungsdatenbankverwaltung registrieren. 4.29 Migrieren eindeutiger Indizes mit dem Befehl "db2uiddl" Im Kapitel "Migrations-Tasks nach Abschluss der DB2-Installation" der DB2-Handbücher "Einstieg" wird unter "Wahlfreie Maßnahmen nach der Migration" angegeben, dass Sie den Befehl db2uiddl zur Migration eindeutiger Indizes von DB2 Version 5.x und DB2 Version 6 verwenden müssen. Dies ist nicht korrekt. Die Migration eindeutiger Indizes mit dem Befehl db2uiddl ist nur erforderlich, wenn Sie von einer DB2-Version vor Version 5 migrieren. 4.30 Installationsfehler bei der 64-Bit-AIX-Version Wenn Sie mit db2setup ein DB2-Image einer 64-Bit-AIX-Version auf einem vorhandenen AIX-Betriebssystem installieren, müssen Sie sicherstellen, dass Sie kompatible AIX-Versionen verwenden, da andernfalls die Installation fehlschlägt. DB2-Images von AIX Version 5 können nicht auf einem vorhandenen AIX-Betriebssystem der Version 4 installiert werden. Analog dazu führt auch die Installation eines DB2-Image der 64-Bit-AIX-Version 4 auf einem vorhanden AIX-Betriebssystem der Version 5 zu einem Installationsfehler. Wenn Sie versuchen, inkompatible 64-Bit-AIX-Versionen zu installieren, erkennt das Dienstprogramm db2setup die Versionsabweichung bei einer Prüfung der Vorbedingungen und gibt eine Fehlernachricht wie die folgende aus: DBI1008E Die Installationsdatenträgerversion und die AIX-Version weichen voneinander ab. Stellen Sie sicher, dass Sie die korrekte 64-Bit-AIX-Version installieren, um diesen Fehler zu vermeiden. 4.30.1 Mit SMIT Wenn Sie SMIT verwenden, erhalten Sie einen Fehler, wenn DB2 für AIX Version 4 durch DB2 für AIX Version 5 ersetzt wird, nicht jedoch im umgekehrten Fall. Benutzer von 64-Bit-AIX Version 5 sollten daher sicherstellen, dass sie die korrekte Version installieren. Wenn db2setup ohne Fehlernachricht gestartet werden kann, war die Prüfung auf die AIX-Versionskompatibilität erfolgreich. Anmerkung: Der Inkompatibilitätsfehler gilt nicht für 32-Bit-Versionen von AIX. 4.31 Fehler bei der Migration Bei der Migration werden Fehlereinträge (Datenbank nicht migriert) in der Datei db2diag.log angezeigt, selbst wenn die Migration erfolgreich war. Diese Einträge können daher ignoriert werden. Bei Verwendung der Datenbankverwaltung für die Warehouse-Steuerung werden Fehler im Verzeichnis SQLLIB\LOGGING protokolliert. Die Dateien IWH2RGn.LOG enthalten Fehlerinformationen. Wenn ein Fehler vorliegt, müssen Sie ihn beheben, die Steuerungsdatenbank löschen und neu starten. Bei einer vorhandenen Steuerungsdatenbank bedeutet dies, dass Sie die Sicherungskopie verwenden müssen. 4.32 IBM DB2 Connect-Lizenzaktivierung Die Installationsprogramme für DB2 Connect Enterprise Edition, DB2 Connect Unlimited Edition und DB2 Connect Web Starter Kit installieren nicht die Produktlizenzen. Nach der Installation arbeiten diese Produkte 90 Tage lang in einem "Try-and-Buy-Modus", da ihnen die Lizenzdateien fehlen. Nach 90 Tagen ist das installierte Produkt nur funktionstauglich, wenn Sie die korrekte Lizenz aktiviert haben. Zur Aktivierung einer Lizenz für Ihr Produkt können Sie entweder die DB2-Lizenzzentrale oder den Befehl db2licm verwenden. 4.32.1 Installieren Ihrer Lizenzberechtigung und Einstellen der Lizenzart mit der Lizenzzentrale Starten Sie die DB2-Steuerzentrale, und wählen Sie Lizenzzentrale im Menü Tools aus. Wählen Sie das System aus, für das Sie eine Lizenz installieren wollen. Im Feld Installierte Produkte wird der Name des installierten Produkts angezeigt. Wählen Sie Hinzufügen im Menü Lizenz aus. Wählen Sie im Fenster Lizenz hinzufügen den Radioknopf Aus einer Datei aus und wählen Sie eine Lizenzdatei aus: Auf Windows-Servern: x:\db2\license\connect\lizenzdateiname Dabei ist x: das CD-ROM-Laufwerk, in das die DB2 Connect-Produkt-CD eingelegt ist. Auf UNIX-Servern: /db2/license/connect/lizenzdateiname Dabei lautet lizenzdateiname db2conee.lic für DB2 Connect Enterprise Edition und DB2 Connect Unlimited Edition und db2consk.lic für DB2 Connect Web Starter Kit. Klicken Sie Anwenden an, um die Lizenzberechtigung hinzuzufügen. Legen Sie die Lizenzart fest. Für DB2 Connect Unlimited Edition und DB2 Connect Web Starter Kit: Wählen Sie in der Lizenzzentrale Ändern im Menü Lizenz aus. Wählen Sie im Fenster Lizenz ändern das Markierungsfeld Gemessene Belegung aus. Klicken Sie OK an, um das Fenster Lizenz ändern zu schließen und zur Lizenzzentrale zurückzukehren. Anmerkung: Stellen Sie für DB2 Connect Web Starter Kit sicher, dass das Ablaufdatum auf 270 Tage ab dem Installationsdatum eingestellt ist. Für DB2 Connect Enterprise Edition: Wählen Sie in der Lizenzzentrale Ändern im Menü Lizenz aus. Wählen Sie im Fenster Lizenz ändern die erworbene Lizenzart aus. Wenn Sie eine Lizenz für gleichzeitig angemeldete Benutzer erworben haben, wählen Sie Gleichzeitig angemeldete DB2 Connect-Benutzer aus, und geben Sie die Anzahl von Benutzerlizenzen ein, die Sie erworben haben. Anmerkung: DB2 Connect Enterprise Edition stellt eine Lizenz für einen Benutzer bereit. Weitere DB2 Connect-Benutzerlizenzen müssen separat erworben werden. Wenn Sie eine Lizenz für registrierte Benutzer erworben haben, wählen Sie Registrierte DB2 Connect-Benutzer aus, und klicken Sie OK an, um das Fenster Lizenz ändern zu schließen und zur Lizenzzentrale zurückzukehren. Klicken Sie die Indexzunge Benutzer an, und fügen Sie alle Benutzer-IDs hinzu, für die Sie eine Lizenz erworben haben. 4.32.2 Installieren Ihrer Lizenzberechtigung und Einstellen der Lizenzart mit dem Befehl "db2licm" Sie können anstelle der Lizenzzentrale auch den Befehl db2licm verwenden, um die Lizenzberechtigung hinzuzufügen. Gehen Sie wie folgt vor, um Ihre Lizenzberechtigung mit dem Befehl db2licm hinzuzufügen: Geben Sie auf Windows-Servern folgenden Befehl ein: db2licm -a x:\db2\license\connect\lizenzdateiname Dabei steht x: für das CD-ROM-Laufwerk, in das die DB2 Connect-Produkt-CD eingelegt ist. Geben Sie auf UNIX-Servern folgenden Befehl ein: db2licm -a db2/license/connect/lizenzdateiname Dabei lautet lizenzdateiname db2conee.lic für DB2 Connect Enterprise Edition und DB2 Connect Unlimited Edition und db2consk.lic für DB2 Connect Web Starter Kit. Anmerkung: Stellen Sie für DB2 Connect Web Starter Kit sicher, dass das Ablaufdatum auf 270 Tage ab dem Installationsdatum eingestellt ist. Stellen Sie die Lizenzart ein. Für DB2 Connect Unlimited Edition und DB2 Connect Web Starter Kit: Setzen Sie den folgenden Befehl ab: db2licm -p db2conee measured Für DB2 Connect Enterprise Edition: Wenn Sie Lizenzen für gleichzeitig angemeldete Benutzer erworben haben, geben Sie die folgenden Befehle ein: db2licm -p db2conee concurrent db2licm -u N Dabei ist N die erworbene Anzahl der Lizenzen für gleichzeitig angemeldete Benutzer. Wenn Sie Lizenzen für registrierte Benutzer erworben haben, geben Sie folgenden Befehl ein: db2licm -p db2conee registered 4.32.3 Lizenzüberlegungen für verteilte Installationen Wenn Sie ein Image für eine verteilte Installation erstellen, müssen Sie spezielle Vorkehrungen für die Installation der Lizenz nach der Installation treffen. Fügen Sie den oben beschriebenen Befehl db2licm den Scripts für Ihre verteilten Installationen hinzu. 4.33 Zugreifen auf Warehouse-Steuerungsdatenbanken Bei einer Standardinstallation von DB2 Version 7 unter Windows NT wird neben dem Warehouse-Server eine DB2 Version 7-Warehouse-Steuerungsdatenbank erstellt. Bei einer Warehouse-Steuerungsdatenbank von Visual Warehouse müssen Sie zunächst den DB2-Server mit der Warehouse-Steuerungsdatenbank auf DB2 Version 7 aktualisieren, bevor die Metadaten in der Warehouse-Steuerungsdatenbank migriert und von der Data Warehouse-Zentrale von DB2 Version 7 verwendet werden können. Sie müssen alle Warehouse-Steuerungsdatenbanken auf Version 7 migrieren, die Sie weiterhin verwenden möchten. Die Metadaten in Ihrer aktiven Warehouse-Steuerungsdatenbank werden während der Installation von DB2 Version 7 auf Version 7 migriert. Verwenden Sie zum Migrieren weiterer Warehouse-Steuerungsdatenbanken das entsprechende Migrationshilfsprogramm, das Sie unter Windows NT durch folgende Auswahl starten: Start --> Programme --> IBM DB2 --> Data Warehouse-Zentrale - Steuerungsdatenbankverwaltung . Informationen zur Migration Ihrer Warehouse-Steuerungsdatenbanken finden Sie in DB2 Universal Database für Windows Einstieg. 4.34 IBM e-server p690 und DB2 UDB Version 7 mit AIX 5 FixPak 6 ist die erforderliche Mindeststufe von DB2 UDB Version 7 für die Verwendung mit IBM e-server p690 auf einem AIX 5-Betriebssystem. 4.35 Testprodukte auf den CD-ROMs von Enterprise Edition für UNIX Die CD-ROMs für DB2 Universal Database (UDB) Enterprise Edition (EE) für UNIX-Plattformen Version 6 und Version 7 enthalten eine 90 Tage gültige Testversion von DB2 Connect Enterprise Edition (CEE). Da die Funktionalität von DB2 Connect in DB2 UDB EE integriert ist, müssen Sie DB2 CEE auf Systemen, auf denen DB2 UDB EE installiert ist, nicht installieren, um die DB2 Connect-Funktionalität nutzen zu können. Wenn Sie die Testversion von DB2 CEE installieren und auf eine lizenzierte Version aufrüsten wollen, müssen Sie DB2 CEE erwerben und die DB2 CEE-Lizenzberechtigung installieren. Das Produkt muss nicht erneut installiert werden. Die Anweisungen zur Installation der Lizenzberechtigung finden Sie in den Handbüchern Einstieg (Quick Beginnings) von DB2 EE oder DB2 CEE für UNIX. Wenn Sie das CEE-Testprodukt zusammen mit Ihrer EE-Installation installiert haben und CEE nicht dauerhaft nutzen wollen, können Sie die CEE-Testversion mit den folgenden Schritten entfernen. Wenn Sie die Testversion von Connect EE entfernen, ist dennoch DB2 Connect-Funktionalität in Verbindung mit DB2 EE verfügbar. Zum Entfernen von DB2 Connect Version 7 deinstallieren Sie die folgenden Dateigruppen von den entsprechenden Plattformen: AIX: Deinstallieren Sie die Dateigruppe db2_07_01.clic. NUMA-Q und Solaris-Betriebsumgebungen: Deinstallieren Sie das Paket db2clic71. Linux: Deinstallieren Sie den RPM db2clic71-7.1.0-x. HP-UX: Deinstallieren Sie die Dateigruppe DB2V7CONN.clic. Zum Entfernen von DB2 Connect Version 6 deinstallieren Sie die folgenden Dateigruppen von den entsprechenden Plattformen: AIX: Deinstallieren Sie die Dateigruppe db2_06_01.clic. NUMA-Q und Solaris-Betriebsumgebungen: Deinstallieren Sie das Paket db2cplic61. Linux: Deinstallieren Sie den RPM db2cplic61-6.1.0-x. HP-UX: Deinstallieren Sie die Dateigruppe DB2V6CONN.clic. 4.36 Testprodukte auf den CD-ROMs von DB2 Connect Enterprise Edition für UNIX Die CD-ROMs für DB2 Connect Enterprise Edition (EE) für UNIX-Plattformen Version 6 und Version 7 enthalten eine 90 Tage gültige Testversion von DB2 Universal Database (UDB) Enterprise Edition (EE). Diese Testversion von DB2 UDB EE wird zu Beurteilungszwecken zur Verfügung gestellt, ist jedoch nicht erforderlich für die Funktion von DB2 Connect. Wenn Sie die Testversion von DB2 UDB EE installieren und auf eine lizenzierte Version aufrüsten wollen, müssen Sie DB2 UDB EE erwerben und die DB2 UDB EE-Lizenzberechtigung installieren. Das Produkt muss nicht erneut installiert werden. Die Anweisungen zur Installation der Lizenzberechtigung finden Sie in den Handbüchern Einstieg (Einstieg) von DB2 EE oder DB2 CEE für UNIX. Wenn Sie das UDB EE-Testprodukt zusammen mit Ihrer Connect EE-Installation installiert haben und UDB EE nicht dauerhaft nutzen wollen, können Sie die Testversion mit den folgenden Schritten entfernen. Wenn Sie die Testversion von DB2 UDB EE entfernen, wirkt sich dies nicht auf die Funktionalität von DB2 Connect EE aus. Zum Entfernen von DB2 UDB EE Version 7 deinstallieren Sie die folgenden Dateigruppen von den entsprechenden Plattformen: AIX: Deinstallieren Sie die Dateigruppe db2_07_01.elic. NUMA-Q und Solaris-Betriebsumgebungen: Deinstallieren Sie das Paket db2elic71. Linux: Deinstallieren Sie den RPM db2elic71-7.1.0-x. HP-UX: Deinstallieren Sie die Dateigruppe DB2V7ENTP.elic. Zum Entfernen von DB2 UDB EE Version 6 deinstallieren Sie die folgenden Dateigruppen von den entsprechenden Plattformen: AIX: Deinstallieren Sie die Dateigruppe db2_06_01.elic. NUMA-Q und Solaris-Betriebsumgebungen: Deinstallieren Sie das Paket db2elic61. Linux: Deinstallieren Sie den RPM db2elic61-6.1.0-x. HP-UX: Deinstallieren Sie die Dateigruppe DB2V6ENTP.elic. 4.37 Merant-Treibermanager und der ODBC-Treiber von DB2 UDB Version 7 unter UNIX Bei der Unicode-Unterstützung sind Inkompatibilitäten aufgetreten, wenn der Merant-Treibermanager auf den DB2-ODBC-Treiber unter UNIX zugreift. Diese Inkompatibilitäten führen dazu, dass der Merant-Treibermanager Unicode verwendet, unabhängig davon, ob die Anwendung die Unicode-Verwendung angefordert hat. Dies kann zu Problemen mit Produkten wie Data Warehouse-Zentrale, Information Catalog Manager und MQSI führen, die zur Unterstützung von nicht-IBM Datenquellen den Merant-Treibermanager benötigen. Sie können eine alternative DB2-ODBC-Treiberbibliothek ohne aktive Unicode-Unterstützung verwenden, bis eine permanente Lösung verfügbar ist. Betroffen davon sind DB2 UDB Version 7.1 mit FixPak 2 oder höher und DB2 UDB Version 7.2 mit einer beliebigen FixPak-Stufe. Eine alternative DB2-ODBC-Treiberbibliothek ohne aktive Unicode-Unterstützung wurde mit DB2 Version 7.1 und 7.2 für AIX, HP-UX und die Solaris-Betriebsumgebung ausgeliefert. Damit Sie diese alternative Bibliothek verwenden können, müssen Sie eine Kopie davon erstellen und ihr den Namen der ursprünglichen DB2-ODBC-Treiberbibliothek geben. Anmerkung: Die alternative Bibliothek (_36) clibrary enthält die Unicode-Funktionen, die für den DB2-JDBC-cdriver erforderlich sind. Mit dieser Bibliothek können JDBC-Anwendungen, einschließlich WebSphere Application Server, noch erfolgreich mit DB2 arbeiten. Wenn Sie zur Nicht-Unicode-ODBC-Bibliothek unter AIX, HP-UX oder der Solaris-Betriebsumgebung wechseln wollen, beachten Sie die folgenden Anweisungen. Da dies ein manueller Vorgang ist, müssen Sie ihn bei jeder Produktaktualisierung durchführen, d. h. auch bei der Anwendung aufeinander folgender FixPaks. AIX Gehen Sie wie folgt vor, um die notwendige Bibliothek unter AIX zu erstellen: Beenden Sie als Exemplareigner alle Datenbankexemplare mit db2stop force. Beenden Sie unter Verwendung der Administrator-Exemplar-ID das Verwaltungsserverexemplar mit db2admin stop force. Sichern Sie die ursprüngliche Datei db2.o unter /usr/lpp/db2__/lib. Setzen Sie als Root slibclean ab. Kopieren Sie db2_36.o in db2.o, und stellen Sie dabei sicher, dass das Eigentumsrecht und die Berechtigungen konsistent bleiben. Verwenden Sie die folgenden Befehle: cp db2_36.o db2.o -r--r--r-- bin:bin for db2.o Wenn Sie wieder zum ursprünglichen Objekt zurückkehren wollen, führen Sie die gleichen Schritte mit der Sicherungsdatei statt mit db2_36.o durch. Solaris-Betriebsumgebung Gehen Sie wie folgt vor, um die notwendige Bibliothek zu erstellen: Beenden Sie als Exemplareigner alle Datenbankexemplare mit db2stop force. Beenden Sie unter Verwendung der Administrator-Exemplar-ID das Verwaltungsserverexemplar mit db2admin stop force. Sichern Sie die ursprüngliche Datei libdb2.so.1 unter /opt/IBMdb2/V./lib. Kopieren Sie libdb2_36.so.1 in libdb2.so.1, und stellen Sie dabei sicher, dass das Eigentumsrecht und die Berechtigungen konsistent bleiben. Verwenden Sie die folgenden Befehle: cp libdb2_36.so.1 libdb2.so.1 -r-xr-xr-x bin:bin libdb2.so.1 Setzen Sie db2iupdt für jedes Datenbankexemplar und dasiupt für das DVS-Exemplar ab. Wenn Sie wieder zum ursprünglichen Objekt zurückkehren wollen, führen Sie die gleichen Schritte mit der Sicherungsdatei statt mit libdb2_36.so.1. HP-UX - Nur verfügbar für FixPak 4 oder höher. Sie müssen FixPak 4 oder höher installieren, bevor Sie dieses Umgehungsverfahren versuchen. Gehen Sie wie folgt vor, um die notwendige Bibliothek unter HP-UX zu erstellen: Beenden Sie alle Datenbankexemplare mit db2stop force. Beenden Sie das Verwaltungsserverexemplar mit db2admin stop force. Sichern Sie die ursprüngliche Datei libdb2.sl unter /opt/IBMdb2/V./lib. Kopieren Sie libdb2_36.sl in libdb2.sl, und stellen Sie dabei sicher, dass das Eigentumsrecht und die Berechtigungen konsistent bleiben. Verwenden Sie die folgenden Befehle, um die Übereinstimmung sicherzustellen: -r-xr-xr-x bin:bin for libdb2.sl Setzen Sie db2iupdt für jedes Datenbankexemplar und dasiupdt für das DVS-Exemplar ab. Wenn Sie wieder zum ursprünglichen Objekt zurückkehren wollen, führen Sie die gleichen Schritte mit der Sicherungsdatei statt mit libdb2_36.sl.1. Andere UNIX-Betriebssysteme Wenn Sie Hilfe für DB2 und den Merant-Treibermanager unter anderen UNIX-Betriebssystemen benötigen, wenden Sie sich bitte an die IBM Unterstützungsfunktion. 4.38 Weitere Konfiguration erforderlich vor der Installation der Informationskatalogzentrale für das Web Vor der Installation der Informationskatalogzentrale für das Web müssen Sie die Datei dg_strings.hti für die Installationssprache in das Verzeichnis /sqllib/icuweb/macro kopieren. Sie finden die Datei dg_strings.hti im entsprechenden Sprachverzeichnis. Eine Liste der Sprachencodes finden Sie im Anhang "Unterstützung in der Landessprache" der Handbücher Einstieg und den meisten anderen DB2-Dokumentationen. 4.39 Informationen zur Unterstützung von Sprachen und Codepages - Korrektur Die Tabelle "Unterstützung von Sprachen und Codepages" im Anhang "Unterstützung in der Landessprache" der Handbücher Einstieg enthält folgende Fehler: Die Spaltenüberschrift "Landescode" sollte "Landes-/Gebietscode" heißen. Die Spaltenüberschrift "Sprache" sollte "Sprache/Script" heißen. Der Code für Slowenien lautet "sl" und nicht, wie in der Tabelle angegeben, "si". DB2 Data Links Manager Einstieg 5.1 Unterstützung unter AIX 5.1 DB2 Data Links File Manager und Filter Filter werden jetzt unter AIX 5.1 vollständig unterstützt. Alle Tools und Anweisungen zu Data Links, die in früheren AIX-Releases unterstützt wurden, gelten jetzt unter AIX 5.1 und werden vollständig unterstützt. 5.2 Fehlschlagen von "dlfm start" mit der Nachricht, dass beim Abruf von afsfid für Präfix ein Fehler aufgetreten ist Wenn bei einem Data Links Manager in der DCE-DFS-Umgebung der Befehl dlfm start mit der folgenden Fehlernachricht fehlschlägt, wenden Sie sich an den IBM Kundendienst: "Fehler beim Abruf von afsfid für Präfix" Dieser Fehler kann auftreten, wenn eine DFS-Dateigruppe, die für Data Links Manager mit "dlfm add_prefix" registriert wurde, gelöscht wurde. 5.3 Einrichten einer Tivoli Storage Manager-Verwaltungsklasse für Archivierungsdateien Setzen Sie den Eintrag DLFM_TSM_MGMTCLASS der DB2-Registrierdatenbank auf den entsprechenden Verwaltungsklassennamen, um anzugeben, welche Tivoli Storage Manager-Verwaltungsklasse für Archivierungsdateien verwendet werden soll. 5.4 Erforderlicher Plattenspeicherplatz für DFS Client Enabler DFS Client Enabler ist eine optionale Komponente, die Sie bei der Installation des DB2 Universal Database-Clients oder -Servers auswählen können. Sie können DFS Client Enabler nicht ohne DB2 Universal Database-Client oder -Server installieren, obwohl DFS Client Enabler auch ohne einen DB2 UDB-Client oder -Server eigenständig funktioniert. Neben dem für den Code von DFS Client Enabler erforderlichen Plattenspeicherplatz von 2 MB sollten Sie weitere 40 MB freihalten, wenn Sie DFS Client Enabler im Rahmen der Installation von DB2 Run-Time Client installieren. Sie benötigen mehr Plattenspeicherplatz, wenn Sie DFS Client Enabler im Rahmen der Installation eines DB2 Administration-Clients oder eines DB2-Servers installieren. Weitere Informationen zum erforderlichen Plattenspeicherplatz für DB2 Universal Database-Produkte finden Sie im Handbuch DB2 für UNIX Einstieg. 5.5 Überwachen der Back-End-Prozesse von Data Links File Manager unter AIX Die Ausgabe des Befehls dlfm see wurde geändert. Wenn Sie diesen Befehl zur Überwachung der Back-End-Prozesse von Data Links File Manager unter AIX absetzen, ähnelt die Ausgabe der nachstehenden Tabelle. PID PPID PGID RUNAME UNAME ETIME DAEMON NAME 17500 60182 40838 dlfm root 12:18 dlfm_copyd_(dlfm) 41228 60182 40838 dlfm root 12:18 dlfm_chownd_(dlfm) 49006 60182 40838 dlfm root 12:18 dlfm_upcalld_(dlfm) 51972 60182 40838 dlfm root 12:18 dlfm_gcd_(dlfm) 66850 60182 40838 dlfm root 12:18 dlfm_retrieved_(dlfm) 67216 60182 40838 dlfm dlfm 12:18 dlfm_delgrpd_(dlfm) 60182 1 40838 dlfm dlfm 12:18 dlfmd_(dlfm) Die DLFM SEE-Anforderung war erfolgreich. Das Name in runden Klammern gibt das Data Links File Manager-Exemplar an, in diesem Fall "dlfm". 5.6 Installation und Konfiguration von DB2 Data Links Manager für AIX: Zusätzliche Installationsvoraussetzungen in DCE-DFS-Umgebungen Im Abschnitt "Installationsvoraussetzungen" müssen folgende neue Informationen hinzugefügt werden: Außerdem müssen Sie ein e-Fix für DFS 3.1 oder PTF-Set 1 installieren (wenn es verfügbar wird). Das e-Fix ist unter folgender URL verfügbar: http://www.transarc.com/Support/dfs/datalinks/efix_dfs31_main_page.html Weitere Informationen: Der dfs-Client muss aktiv sein, bevor Sie Data Links Manager installieren. Verwenden Sie den Befehl "db2setup" oder "smitty". Im Abschnitt "Chiffrierschlüsseldatei" ist ein Fehler, der wie folgt korrigiert werden muss: Diese Chiffrierschlüsseldatei, die Informationen zum Principal und zum Kennwort enthält, sollte den Namen "datalinks.ktb" erhalten und ... Der korrekte Name datalink.ktb wird in dem Beispiel unten verwendet. Der Abschnitt "Chiffrierschlüsseldatei" sollte auf den Abschnitt "Tasks nach Abschluss der Installation in DCE-DFS" folgen, da diese Datei erst erstellt werden kann, nachdem das Exemplar DLMADMIN erstellt wurde. Im Abschnitt zu den Data Links File Manager-Servern und -Clients fehlt der Hinweis, dass der Data Links Manager-Server vor allen Data Links Manager-Clients installiert werden muss. Fügen Sie einen neuen Abschnitt mit dem Titel "Sicherungsverzeichnis" hinzu: Wenn die Sicherung auf einem lokalen Dateisystem erfolgt, muss sich das Verzeichnis auf einem DFS-Dateisystem befinden. Stellen Sie sicher, dass diese DFS-Dateigruppe von einem DFS-Administrator erstellt wurde. Dies sollte keine DMLFS-Gruppe sein. 5.7 Fehlgeschlagener Befehl "dlfm add_prefix" Bei einem in der DCE/DFS-Umgebung ausgeführten Data Links Manager führt der Befehl dlfm add_prefix möglicherweise zu einem Fehler mit Rückkehrcode -2061 (Sicherung ist fehlgeschlagen). Führen Sie in diesem Fall folgende Schritte aus: Stoppen Sie durch Absetzen des Befehls dlfm stop die Data Links Manager-Dämonprozesse. Stoppen Sie durch Absetzen des Befehls dlfm stopdbm die DB2-Prozesse. Rufen Sie durch Absetzen des Befehls dce_login root die DCE-Root-Berechtigungen ab. Starten Sie durch Absetzen des Befehls dlfm startdbm die DB2-Prozesse. Registrieren Sie durch Absetzen des Befehls dlfm add_prefix die Dateigruppe für Data Links Manager. Starten Sie durch Absetzen des Befehls dlfm start die Data Links Manager-Dämonprozesse. 5.8 Wenn der Kopierdämon bei "dlfm stop" nicht stoppen sollte In sehr seltenen Fällen stoppt der Kopierdämon, dlfm_copyd, nicht, wenn ein Benutzer den Befehl dlfm stop absetzt oder wenn das System abnormal heruntergefahren wird. Wenn dieser Fehler auftritt, setzen Sie den Befehl dlfm shutdown ab, bevor Sie dlfm neu starten. 5.9 Installation und Konfiguration von DB2 Data Links Manager für AIX: Installieren von DB2 Data Links Manager unter AIX mit dem Dienstprogramm db2setup Im Abschnitt "Erstellen der DB2-Datenbank DLFM_DB" wird DLFM_DB nicht in der DCE_DFS-Umgebung erstellt. Dies muss als Schritt nach Abschluss der Installation geschehen. Im Abschnitt "DMAPP-Registrierung vor dem Start in DCE-DFS" muss Schritt 2 folgendermaßen geändert werden: 2. Der Datei /opt/dcelocal/tcl/user_cmd.tcl werden Befehle hinzugefügt, um sicherzustellen, dass DMAPP beim Start von DFS gestartet wird. 5.10 Installation und Konfiguration von DB2 Data Links Manager für AIX: Tasks nach Abschluss der Installation in DCE-DFS Fügen Sie den folgenden Abschnitt "Abschließen der Installation von Data Links Manager" neu hinzu: Auf dem Data Links Manager-Server müssen Sie folgende Schritte auszuführen, um die Installation abzuschließen: Erstellen Sie die Chiffrierschlüsseldatei entsprechend der Beschreibung unter "Chiffrierschlüsseldatei" im Abschnitt "Zusätzliche Installationsvoraussetzungen in DCE-DFS-Umgebungen" im Kapitel "Installation und Konfiguration von DB2 Data Links Manager für AIX". Geben Sie als Root folgende Befehle zum Starten von DMAPP ein: stop.dfs all start.dfs all Führen Sie "dlfm setup" unter Verwendung der DCE-Root-Berechtigungen wie folgt aus: Melden Sie sich als Data Links Manager-Administrator (DLMADMIN) an. Setzen Sie als Root dce_login ab. Geben Sie den Befehl dlfm setup ein. Auf dem Data Links Manager-Client müssen Sie folgende Schritte auszuführen, um die Installation abzuschließen: Erstellen Sie die Chiffrierschlüsseldatei entsprechend der Beschreibung unter "Chiffrierschlüsseldatei" im Abschnitt "Zusätzliche Installationsvoraussetzungen in DCE-DFS-Umgebungen" im Kapitel "Installation und Konfiguration von DB2 Data Links Manager für AIX". Geben Sie als Root folgende Befehle zum Starten von DMAPP ein: stop.dfs all start.dfs all 5.11 Installation und Konfiguration von DB2 Data Links Manager für AIX: Manuelles Installieren von DB2 Data Links Manager mit SMIT Modifizieren Sie im Abschnitt "Tasks nach Abschluss der Installation mit SMIT" Schritt 7 und geben Sie an, dass der Befehl dce_login root vor dlfm setup abgesetzt werden muss. Schritt 11 ist nicht erforderlich. Dieser Schritt wird automatisch in Schritt 6 (dlfm server_conf) oder in Schritt 8 (dlfm client_conf) ausgeführt. Entfernen Sie außerdem Schritt 12 (dlfm start). Führen Sie zum Abschluss der Installation folgende Schritte aus: Erstellen Sie die Chiffrierschlüsseldatei entsprechend der Beschreibung unter "Chiffrierschlüsseldatei" im Abschnitt "Zusätzliche Installationsvoraussetzungen in DCE-DFS-Umgebungen" im Kapitel "Installation und Konfiguration von DB2 Data Links Manager für AIX". Geben Sie als Root folgende Befehle zum Starten von DMAPP ein: stop.dfs all start.dfs all 5.12 Installation und Konfiguration von DB2 Data Links DFS Client Enabler Fügen Sie dem Schritt 2 im Abschnitt "Konfigurieren von DFS Client Enabler" folgende Informationen hinzu: Mit der Ausführung der "secval"-Befehle wird normalerweise die Installation abgeschlossen. Möglicherweise muss jedoch außerdem ein Warmstart der Maschine durchgeführt werden. Wenn Probleme beim Zugriff auf READ PERMISSION DB-Dateien auftreten, führen Sie einen Warmstart der Maschine aus, auf welcher DB2 DFS Client Enabler gerade installiert worden ist. 5.13 Installation und Konfiguration von DB2 Data Links Manager für Solaris-Betriebssysteme Folgende Aktionen müssen nach der Installation von DB2 Data Links Manager für Solaris-Betriebssysteme ausgeführt werden: Fügen Sie folgende drei Zeilen der Datei /etc/system hinzu: set dlfsdrv:glob_mod_pri=0x100800 set dlfsdrv:glob_mesg_pri=0xff set dlfsdrv:ConfigDlfsUid=UID UID ist die Benutzer-ID der ID dlfm. Führen Sie einen Warmstart der Maschine durch, um die Änderungen zu aktivieren. 5.14 Administratorgruppenzugriffsrechte in Data Links unter Windows NT Unter Windows NT hat der Benutzer "dlmadmin" für die meisten Funktionen dieselben Zugriffsrechte für mit Hilfe von Data Links verbundene Dateien wie ein Root unter UNIX. Die folgende Tabelle enthält einen Vergleich. Operation Unix (Root) Windows NT (dlmadmin) Umbenennen Ja Ja Dateizugriff ohne Token Ja Ja Löschen Ja Nein (siehe Anm. unten) Aktualisieren Ja Nein (siehe Anm. unten) Anmerkung: Das NTFS gestattet diese Operationen nicht für eine schreibgeschützte Datei. Der Benutzer "dlmadmin" kann diese Operationen erfolgreich ausführen, indem er den Schreibzugriff für die Datei aktiviert. 5.15 Minimieren der Protokollierung für DLFF-Installation (Data Links File System Filter) Sie können die Protokollierung für die DLFF-Installation (Data Links File System Filter) durch eine Änderung der Datei dlfs_cfg minimieren. Die Datei dlfs_cfg wird an die Routine strload übermittelt, um die Treiber- und Konfigurationsparameter zu laden. Die Datei befindet sich im Verzeichnis /usr/lpp/db2_07_01/cfg/. Durch eine symbolische Verbindung kann sich die Datei auch im Verzeichnis /etc befinden. Die Datei dlfs_cfg hat folgendes Format: d - 0 1 Dabei gilt Folgendes: d Der Parameter d gibt an, dass der Treiber geladen werden soll. treibername "treibername" ist der vollständige Pfad des zu ladenden Treibers. Der vollständige Pfad für DB2 Version 7 ist beispielsweise /usr/lpp/db2_07_01/bin/dlfsdrv . Der Name des Treibers lautet dlfsdrv. vfs-nummer Dies ist der vfs-Eintrag für DLFS in /etc/vfs. dlfm-id Dies ist die Benutzer-ID des Data Links Manager-Administrators. globale-nachrichtenpriorität Dies ist ein konfigurierbarer Parameter im DLFS-Treiber. Er definiert die Liste der Nachrichtenkategorien, die in der Systemprotokolldatei aufgezeichnet werden. globale-modulpriorität Dies ist ein konfigurierbarer Parameter im DLFS-Treiber. Er definiert die Liste der Treiberroutinen, VFS-Operationen und Vnode-Operationen, die in der Systemprotokolldatei aufgezeichnet werden. 0 1 0 1 sind die untergeordneten Nummern für die Erstellung nicht geklonter Knoten für diesen Treiber. Die Erstellung der Knotennamen erfolgt durch Anfügen der untergeordneten Nummer an den Knotennamen des geklonten Treibers. Maximal fünf untergeordnete Nummern können angegeben werden (0-4). Ein realitätsnahes Beispiel könnte wie folgt aussehen: d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,255,-1 - 0 1 Die protokollierten Nachrichten sind abhängig von den Einstellungen für die globale Nachrichtenpriorität und die globale Modulpriorität. Sie können den Wert der globalen Nachrichtenpriorität ändern, um das Protokollieren zu minimieren. Sie können vier Nachrichtenprioritätswerte verwenden: #define LOG_EMERGENCY 0x01 #define LOG_TRACING 0x02 #define LOG_ERROR 0x04 #define LOG_TROUBLESHOOT 0x08 Die meisten Nachrichten in DLFF haben LOG_TROUBLESHOOT als Nachrichtenpriorität. Hier ein paar alternative Konfigurationsbeispiele: Wenn Sie Ausnahme- und Fehlernachrichten benötigen, legen Sie für die globale Nachrichtenpriorität 5 (1+4) in der Konfigurationsdatei dlfs_cfg fest. d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,5,-1 - 0 1 Wenn nur Fehlernachrichten erforderlich sind, legen Sie 4 für die globale Nachrichtenpriorität fest: d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,4,-1 - 0 1 Benötigen Sie keine Protokollierung für DLFS, legen Sie 0 für die globale Nachrichtenpriorität fest: d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,0,-1 - 0 1 5.15.1 Protokollieren von Nachrichten nach der Installation Wenn Sie nach der Installation Ausnahme-, Fehler- und Fehlerbehebungsnachrichten protokollieren müssen, müssen Sie die Datei dlfs_cfg ändern. Die Datei dlfs_cfg befindet sich im Verzeichnis /usr/lpp/db2_07_01/cfg. Für die globale Nachrichtenpriorität muss 255 (maximale Priorität) oder 13 (8+4+1) angegeben werden. Bei der Einstellung 13 (8+4+1) werden Ausnahme-, Fehler- und Fehlerbehebungsnachrichten protokolliert. Nach der Definition der globalen Nachrichtenpriorität müssen Sie das DLFS-Filterdateisystem abhängen und den Treiber dlfsdrv erneut laden, damit die neuen Prioritätswerte beim Laden festgelegt werden. Nach dem erneuten Laden des Treibers dlfsdrv muss das DLFS-Filterdateisystem wieder angehängt werden. Anmerkung: Die Einstellungen für dlfs_cfg bleiben für nachfolgende Ladevorgänge des Treibers dlfsdrv aktiv, bis die Datei dlfs_cfg wieder geändert wird. 5.15.2 Verringerung der Protokollierungsaktivität auf Sun Solaris-Systemen Die Datei dlfs_cfg existiert nicht auf Sun(TM) Solaris(TM)-Systemen. Stattdessen enthält die Systemdatei /etc/syslog.conf die Informationen, die der Systemprotokolldämon (syslogd) zur Weiterleitung einer Systemnachricht an die entsprechenden Protokolldateien verwendet. Sie können die Protokollierungsaktivität für die DLFF-Installation verringern, indem Sie die Einträge für kern.notice und kern.debug in /etc/syslog.conf auskommentieren. Sie müssen dann syslogd stoppen und erneut starten, damit Ihre Änderungen wirksam werden. Wenn Sie die Protokollierung aller Kernelnachrichten und -fehler wieder aktivieren wollen, müssen Sie die Kommentarzeichen bei den Einträgen für kern.notice und kern.debug in /etc/syslog.conf entfernen und dann syslogd stoppen und erneut starten. 5.16 DATALINK-Wiederherstellung Bei der Wiederherstellung jeglicher Offlinesicherungen, die nach einer Datenbankwiederherstellung mit oder ohne aktualisierender Wiederherstellung durchgeführt wurden, erfolgt keine schnelle Abstimmung. In solchen Fällen werden alle Tabellen mit DATALINK-Spalten unter Dateiverbindungssteuerung in den Status DRP (DataLink Reconcile Pending) gesetzt. 5.17 Löschen von Data Links Manager Sie können jetzt einen DB2 Data Links Manager für eine bestimmte Datenbank löschen. Die Verarbeitung einiger Data Links-bezogener SQL-Anforderungen sowie Dienstprogramme wie backup/restore erfordert die Kommunikation mit allen DLMs, die in einer Datenbank konfiguriert sind. Bisher hatte DB2 nicht die Möglichkeit, einen konfigurierten DLM zu löschen, selbst wenn er nicht mehr betriebsbereit war. Dies führte zu zusätzlichem Systemaufwand bei der SQL- und Dienstprogrammverarbeitung. Sobald ein DLM hinzugefügt wurde, kommunizierte die Steuerkomponente mit ihm bei der Verarbeitung von Anforderungen, was zu Fehlern einiger SQL-Anforderung führen konnte (z. B. drop table/tablespace/database). 5.18 Deinstallation von DLFM-Komponenten mit SMIT entfernt unter Umständen zusätzliche Dateigruppen Vor der Deinstallation von DB2 (Version 5, 6 oder 7) von einer AIX-Maschine, auf der Data Links Manager installiert ist, führen Sie folgende Schritte aus: Als Root erstellen Sie eine Kopie von /etc/vfs mit folgendem Befehl: cp -p /etc/vfs /etc/vfs.bak Deinstallieren Sie DB2. Als Root ersetzen Sie /etc/vfs durch die in Schritt 1 erstellte Sicherungskopie: cp -p /etc/vfs.bak /etc/vfs 5.19 Vorbereitung/Feststellen des Host-Namens Sie müssen die Namen all Ihrer DB2-Server und Data Links-Server ermitteln. Diese Host-Namen müssen Sie zur Prüfung der Installation kennen. Wenn Sie eine Verbindung zu einem DB2 Data Links File Manager herstellen, sendet der DB2 UDB-Server intern die folgenden Informationen an den DLFM: Datenbankname Exemplarname Host-Name Der DLFM vergleicht dann diese Informationen mit seinen internen Tabellen, um festzustellen, ob die Verbindung zulässig ist. Er lässt die Verbindung nur zu, wenn diese Kombination aus Datenbankname, Exemplarname und Host-Name für ihn mit dem Befehl dlfm add_db registriert wurde. Der Host-Name, der im Befehl dlfm add_db verwendet wird, muss exakt dem Host-Namen entsprechen, der intern vom DB2 UDB-Server gesendet wird. Verwenden Sie den exakten Host-Namen, der wie folgt abgerufen werden kann: Geben Sie den Befehl hostname auf Ihrem DB2-Server ein. Dieser Befehl könnte z. B. db2server zurückgeben. Führen Sie je nach Plattform einen der folgenden Schritte aus: Unter AIX: Geben Sie den Befehl host db2server ein, wobei "db2server" der im vorherigen Schritt abgerufene Name ist. Dieser Befehl sollte eine Ausgabe ähnlich der Folgenden erzeugen: db2server.services.com is 9.11.302.341, Aliases: db2server Unter Windows NT: Geben Sie den Befehl nslookup db2server ein, wobei "db2server" der im vorherigen Schritt abgerufene Name ist. Dieser Befehl sollte eine Ausgabe ähnlich der Folgenden erzeugen: Server: dnsserv.services.com Address: 9.21.14.135 Name: db2server.services.com Address: 9.21.51.178 In der Solaris-Betriebsumgebung: Geben Sie cat /etc/hosts | grep 'hostname' ein. Dieser Befehl sollte eine Ausgabe ähnlich der Folgenden erzeugen, wenn der Host-Name ohne einen Domänennamen in /etc/hosts angegeben wird: 9.112.98.167 db2server loghost Wenn der Host-Name mit einem Domänennamen angegeben wird, erzeugt dieser Befehl eine Ausgabe ähnlich der Folgenden: 9.112.98.167 db2server.services.com loghost Verwenden Sie "db2server.services.com" als Host-Namen, wenn Sie eine DB2 UDB-Datenbank mit dem Befehl dlfm add_db registrieren. Die internen Verbindungen des DB2-Servers zum DLFM schlagen fehl, wenn in diesem Befehl andere Aliasnamen verwendet werden. Ein Data Links-Server wird mit dem DB2-Befehl "add datalinks manager for datenbank datenbank_alias using node host_name port anschlussnummer" in einer DB2-Datenbank registriert. Der Host-Name ist der Name des Data Links-Servers. In diesem Befehl kann jeder gültige Aliasname des Data Links-Servers verwendet werden. DATALINK-Werte, die Verweise auf diesen Data Links-Server sind, müssen den Host-Namen im URL-Wert angeben, d. h. der exakte Name, der im Befehl "add datalinks manager" verwendet wurde, muss beim Zuordnen von URL-Werten zu DATALINK-Spalten verwendet werden. Wird ein anderer Aliasname verwendet, schlägt die SQL-Anweisung fehl. 5.20 Arbeiten mit DB2 Data Links File Manager: Bereinigung nach dem Löschen von DB2 Data Links Manager aus einer DB2-Datenbank Wenn ein DB2 Data Links Manager mit dem Befehl DROP DATALINKS MANAGER aus einer Datenbank gelöscht wird, bereinigt der Befehl selbst nicht die entsprechenden Informationen zum DB2 Data Links Manager. Benutzer können explizit die Aufhebung der Verbindung von mit der Datenbank verknüpften Dateien und die Garbage Collection von Sicherungsinformationen einleiten. Dies erfolgt mit dem Befehl dlfm drop_dlm. Dieser Befehl leitet die asynchrone Löschung aller Informationen für eine bestimmte Datenbank ein. DB2 Data Links Manager muss aktiv sein, damit dieser Befehl erfolgreich ausgeführt werden kann. Es ist äußerst wichtig, dass dieser Befehl nur nach dem Löschen von DB2 Data Links Manager verwendet wird, da sonst wichtige Informationen zu DB2 Data Links Manager verloren gehen und nicht wiederhergestellt werden können. Gehen Sie wie folgt vor, um die Aufhebung der Verbindung und die Garbage Collection von Sicherungsinformationen für eine bestimmte Datenbank einzuleiten: Melden Sie sich am System als DB2 Data Links Manager-Administrator an. Setzen Sie den folgenden Befehl ab: dlfm drop_dlm datenbank exemplar host-name Dabei gilt Folgendes: datenbank ist der Name der fernen DB2 UDB-Datenbank. exemplar ist der Name des Exemplars, in dem die Datenbank sich befindet. host-name ist der Host-Name des DB2 UDB-Servers, auf dem sich die Datenbank befindet. Melden Sie sich ab. Ein vollständiges Syntaxszenario, das den Kontext für die Verwendung dieses Befehls zeigt, finden Sie im Handbuch Command Reference. Für diesen Befehl wurde ein neuer Fehlercode generiert (siehe 5.22, DLFM1001E (Neue Fehlernachricht)). 5.21 Benutzeraktion für "dlfm Client_conf" schlägt fehl Wenn bei einem DLFM-Client der Befehl dlfm client_conf aus irgendeinem Grund fehlschlägt, können "alte" Einträge in DB2-Katalogen die Ursache hierfür sein. Dieses Problem kann mit folgenden Befehlen behoben werden: db2 uncatalog db db2 uncatalog node db2 terminate Führen Sie dann dlfm client_conf erneut aus. 5.22 DLFM1001E (Neue Fehlernachricht) DLFM1001E: Fehler bei der Verarbeitung von "drop_dlm". Ursache: DB2 Data Links Manager konnte die Aufhebung der Verbindung und die Garbage-Collection für die angegebene Datenbank nicht einleiten. Dies kann eine der folgenden Ursachen haben: DB2 Data Links Manager ist nicht aktiv. Im Befehl wurde eine ungültige Kombination aus Datenbank-, Exemplar- und Host-Name angegeben. In einem der Komponentenservices von DB2 Data Links Manager trat ein Fehler auf. Aktion: Führen Sie folgende Schritte aus: Stellen Sie sicher, dass DB2 Data Links Manager aktiv ist. Starten Sie DB2 Data Links Manager, wenn das Produkt nicht bereits aktiv ist. Stellen Sie sicher, dass die Kombination aus Datenbank-, Exemplar- und Host-Name eine registrierte Datenbank bezeichnet. Verwenden Sie dazu den Befehl "dlfm list registered databases" von DB2 Data Links Manager. Wenn der Fehler weiterhin auftritt, lesen Sie die Informationen in der Datei db2diag.log, um zu sehen, ob Komponentenservices (z. B. der Connection Management Service, der Transaction Management Service usw.) fehlgeschlagen sind. Sehen Sie den Fehlercode in der Datei db2diag.log an, und ergreifen Sie die entsprechenden, unter diesem Fehlercode vorgeschlagenen Maßnahmen. 5.23 DLFM-Konfigurationsdateioption Die Option dlfm setup dlfm.cfg wurde entfernt. Alle in der Dokumentation enthaltenen Verweise darauf sollten ignoriert werden. 5.24 Mögliches Problem beim Wiederherstellen von Dateien Problem: Wenn unterschiedliche Versionen derselben Datei zu unterschiedlichen Zeitpunkten mit einer Datenbank verbunden werden, ruft der Abrufdämon von Data Links File Manager (DLFM) beim Wiederherstellen der Datenbank nicht die korrekte Version der Datei aus einem Archiv ab. Hintergrund: Wenn eine Datenbank von einem Sicherungsimage wiederhergestellt wird, werden auch die Dateien, die in diesem Sicherungsimage verbunden waren, im Dateisystem von Data Links Manager (DLFS) vom Archiv wiederhergestellt. Im Folgenden sehen Sie, wie der DB2 Data Links Manager-Prozess zum Abrufen und Wiederherstellen funktioniert. Wenn die Attribute für die letzte Änderungszeit und die Größe der aktuellen Version einer Datei auf Platte sich von den Attributen der aus dem Archiv wiederherzustellenden Datei unterscheiden, wird die aktuelle Datei auf Platte als eine andere Version der Datei behandelt. Die aktuelle Datei auf Platte wird unter dateiname.MOD gespeichert, und die ursprüngliche Version der Datei aus dem DLFM-Archiv wird wiederhergestellt. Wenn z. B. der Name der aktuellen Datei abc lautet, wird abc nach abc.MOD kopiert. Wenn die Attribute für die letzte Änderungszeit und die Größe der aktuellen Version einer Datei auf Platte den Attributen der aus dem Archiv wiederherzustellenden Datei entsprechen, nimmt der Data Links-Abrufdämon an, dass die Datei nicht geändert wurde, und stellt die Version der Datei aus dem Archiv nicht wieder her. Wichtig: Es ist möglich, eine Datei zu ändern, ohne dass sich die Attribute für die letzte Änderungszeit und die Größe ändern. Solche "verborgenen Änderungen" ergeben sich durch eine Änderung, die keinen Einfluss auf die Dateigröße hat und bei der anschließend das Attribut für die letzte Änderungszeit auf das der ursprünglichen Datei zurückgesetzt wird. Beispiel: Angenommen, Sie haben eine Datenbank namens DBTEST, und diese enthält eine Tabelle mit einer DATALINK-Spalte. Sie führen dann die folgenden Schritte in der aufgelisteten Reihenfolge aus: Sie erstellen eine Datei namens dateiA auf einem über DLFS angehängten Datenträger. Dies ist die erste Version der Datei. Sie fügen dann den Verweis auf dateiA (einen URL) in die Datenbank DBTEST ein. Sie erstellen eine Sicherung der Datenbank DBTEST. Sie löschen den Verweis auf dateiA aus der Datenbank DBTEST. Sie löschen dateiA von dem über DLFS angehängten Datenträger. Sie erstellen eine weitere Datei namens dateiA auf einem über DLFS angehängten Datenträger. Dies ist die zweite Version der Datei. Sie fügen dann den Verweis auf dateiA (einen URL) in die Datenbank DBTEST ein. Sie stellen die Datenbank DBTEST vom Sicherungsimage wieder her. Der DLFM-Abrufdämon kopiert die zweite Version von dateiA nach dateiA.MOD und kopiert dann die erste Version von dateiA aus dem Archiv auf den über DLFS angehängten Datenträger als Arbeitsversion von dateiA. Wenn jedoch beide Versionen von dateiA dieselben Attribute für die letzte Änderungszeit und die Größe haben, tut der DLFM-Abrufdämon nichts, da er annimmt, dass die Dateien in derselben Version vorliegen. Daher bleibt die zweite Version der Datei auf dem über DLFS angehängten Datenträger - und nicht die erste Version. Sie haben das Dateisystem nicht wirklich in demselben Zustand wiederhergestellt wie zur Zeit der Sicherung. Lösung: Stellen Sie sicher, dass Ihre Anwendung nicht eine Datei durch eine neuere Version dieser Datei mit denselben Attributen (letzte Änderungszeit und Größe) ersetzt. 5.25 Fehler beim Ausführen von des Data Links/DFS-Scripts "dmapp_prestart" unter AIX Wenn der Befehl /usr/sbin/cfgdmepi -a "/usr/lib/drivers/dmlfs.ext" mit einem Rückkehrcode von 1 beim Ausführen des Data Links/DFS-Scripts dmapp_prestart fehlschlägt, installieren Sie PTF-Set 1 für DFS 3.1, um den Befehl "cfgdmepi" zu korrigieren. 5.26 Integration von Tivoli Space Manager in Data Links DB2 Data Links Manager kann jetzt die Vorteile der Funktionalität von Tivoli Space Manager nutzen. Das Client-Programm Hierarchical Storage Manager (HSM) von Tivoli Space Manager migriert automatisch auswählbare Dateien in den Speicher, um bestimmte Stufen von freiem Speicher in den lokalen Dateisystemen zu verwalten. Es ruft migrierte Dateien automatisch wieder ab, wenn sie benötigt werden und ermöglicht dem Benutzer das Migrieren und erneute Abrufen bestimmter Dateien. Die Vorbedingung für diese Funktionalität ist Tivoli Space Manager Version 4.2. Diese neue Funktion bietet Vorteile für Kunden, die Dateisysteme mit großen Dateien haben, die in regelmäßigen Abständen in tertiären Speicher versetzt werden müssen, in dem der Speicherbereich des Dateisystems in regelmäßigen Abschnitten verwaltet werden muss. Für viele Kunden bietet Tivoli Space Manager zurzeit die Möglichkeit, ihren tertiären Speicher zu verwalten. Die neue Unterstützung von DB2 Data Links Manager in Tivoli Space Manager bietet größere Flexibilität beim Verwalten des Speicherbereichs für DATALINK-Dateien. Mit Tivoli Space Manager muss der Speicher für alle Dateien, die möglicherweise im DB2 Data Links Manager-Dateisystem gespeichert werden, nicht mehr im Voraus zugeordnet werden. Statt dessen kann der zugeordnete Speicherbereich für das Dateisystem über einen Zeitraum hinweg angepasst werden, ohne dass die Gefahr besteht, dass das Dateisystem während normaler Belegung unbeabsichtigt gefüllt wird. Hinzufügen der Unterstützung von Data Links und HSM zu einem Dateisystem Wenn Sie ein Dateisystem mit Hierarchical Storage Management (HSM) registrieren, registrieren Sie es zuerst mit HSM und danach mit DataLinks File Manager. Registrieren Sie das Dateisystem mit HSM mit dem Befehl "dsmmigfs add /fs". Registrieren Sie das Dateisystem mit DLM mit dem Befehl "dlfmfsmd /fs". Die Unterstützung von Data Links für ein Dateisystem spiegelt sich für ein HSM-Dateisystem in den folgenden Einträgen der Zeilengruppe in /etc/filesystems wieder: vfs = dlfs mount = false options = rw,Basefs=fsm nodename = - Hinzufügen der Unterstützung von Data Links zu einem vorhandenen HSM-Dateisystem Registrieren Sie das Dateisystem mit DLM mit dem Befehl "dlfmfsmd /fs". Hinzufügen der Unterstützung von HSM zu einem vorhandenen Data Links-Dateisystem Registrieren Sie das Dateisystem mit HSM mit dem Befehl "dsmmigfs add /fs". Registrieren Sie das Dateisystem mit DLM mit dem Befehl "dlfmfsmd /fs". Entfernen der Unterstützung von Data Links aus einem Data Links-HSM-Dateisystem Entfernen Sie die Unterstützung von Data Links mit dem Befehl "dlfmfsmd -j /fs". Entfernen der Unterstützung von HSM aus einem Data Links-HSM-Dateisystem Entfernen Sie die Unterstützung von HSM mit dem Befehl "dsmmigfs remove /fs". Entfernen Sie die Unterstützung von Data Links mit dem Befehl "dlfmfsmd -j /fs". Registrieren Sie das Dateisystem mit DLM mit dem Befehl "dlfmfsmd /fs". Entfernen der Unterstützung von Data Links und HSM aus einem Data Links-HSM-Dateisystem Entfernen Sie die Unterstützung von HSM mit dem Befehl "dsmmigfs remove /fs". Entfernen Sie die Unterstützung von Data Links mit dem Befehl "dlfmfsmd -j /fs". 5.26.1 Einschränkungen und Begrenzungen Diese Funktion wird zurzeit nur unter AIX unterstützt. Die selektive Migration (dsmmigrate) und das Abrufen einer verbundenen FC-Datei (READ PERMISSION DB) sollte nur von einem Root-Benutzer ausgeführt werden. Die selektive Migration kann nur durch den Dateieigner ausgeführt werden. Im Fall von READ PERMISSION DB-Dateien ist dies der der DataLink Manager Administrator (dlfm). Ein Token von der Hostdatenbankseite ist erforderlich, um auf eine solche Datei zugreifen zu können. Der einzige Benutzer, der kein Token benötigt, ist der Benutzer "Root". Für den Root ist es einfacher, die selektive Migration und das Abrufen von Datenbankdateien mit Lesezugriff auszuführen. Der Benutzer "dlfm" kann nur beim ersten Mal eine FC-Datei migrieren, indem er ein gültiges Token verwendet. Beim zweiten Versuch (nach einem erneuten Aufruf) schlägt die Migration fehl, und die Nachricht ANS1028S wird ausgegeben, mit dem Hinweis auf einen internen Programmfehler und der Aufforderung, sich an den IBM Ansprechpartner zu wenden. Die Ausführung des Befehls dsmmigrate für eine FC-Datei durch einen Benutzer, der keine Root-Berechtigungen hat, schlägt fehl. Diese Einschränkung ist geringfügig, weil es normalerweise Administratoren sind, die auf die Dateien auf dem Dateiserver zugreifen. Die Systemaufrufe stat und statfs zeigen den vfs-Typ mit fsm anstelle von dlfs an, obwohl dlfs über fsm angehängt ist. Das oben aufgeführte Verhalten ist die normale Funktionalität der dsmrecalld-Dämonen, die den Befehl "statfs" für das Dateisystem ausführen, um zu überprüfen, ob sein vfs-Typ "fsm" ist oder nicht. Der Befehl "dsmls" zeigt keine Ausgabe an, wenn eine Datei mit der minimalen I-Node-Nummer FC-verbunden ist (READ PERMISSION DB) Der Befehl dsmls funktioniert ähnlich wie der Befehl ls und listet die Dateien auf, die von TSM verwaltet werden. Es ist keine Benutzeraktion erforderlich. 5.27 Kapitel 4. Installieren und Konfigurieren von DB2 Data Links Manager für AIX 5.27.1 Allgemeine Installationsvoraussetzungen 5.27.1.1 Migration von DB2 File Manager Version 5.2 auf DB2 Data Links Manager Version 7 Die Informationen in Schritt 3 sind nicht korrekt. Schritt 3 muss folgendermaßen lauten: "3. Führen Sie als DLFM-Administrator den Befehl /usr/lpp/db2_07_01/adm/db2dlmmg aus. 5.28 Kapitel 6. Überprüfen der Installation unter AIX 5.28.1 Umgehen von Problemen in NFS-Umgebungen Dieser Abschnitt beschreibt Umgehungsverfahren für bekannte Probleme bei der Ausführung von DB2 Data Links Manager für AIX in NFS-Umgebungen, die nicht in der aktuellen Dokumentation enthalten sind. Diese Probleme sind NFS-spezifisch und haben nichts mit DB2 Data Links Manager oder DB2 Universal Database zu tun. Weitere NFS-Cache-Probleme Auf dem NFS-Client für AIX werden zwei unterschiedliche Caches verwaltet. Der NFS-Client verwaltet einen Cache mit Attributen von Dateien und Verzeichnissen, auf die kürzlich zugegriffen wurde. Der Client unterstützt auch optional einen Daten-Cache zur Zwischenspeicherung des Inhalts von Dateien auf dem Client. Beim Zwischenspeichern von Attributen entsteht manchmal eine ungewöhnliche Bedingung auf einem NFS-Client, nachdem eine Verbindung zu einer READ PERMISSION DB-Datei hergestellt wurde. Benutzer können manchmal ohne Zugriffssteuerungs-Token auf eine READ PERMISSION DB-Datei zugreifen, wenn diese Benutzer mit der Maschine verbunden waren, bevor die Verbindung zur Datei hergestellt wurde. Verwenden Sie eine der folgenden Methoden, um die Wahrscheinlichkeit unberechtigten Dateizugriffs zu verringern: Verwenden Sie den Befehl touch für die Datei, bevor Sie die SQL-Anweisung INSERT ausführen, um die Verbindung zu setzen. Verwenden Sie den Befehl touch im Verzeichnis, in dem die Datei enthalten ist. Verwenden Sie den Befehl mount mit einem der fünf Konfigurationsparameter für Cache-Attribute (actimeo, acregmin, acregmax, acdirmin, acdirmax), um den Zeitraum zu verringern, für den zwischengespeicherte Attribute nach der Änderung einer Datei oder eines Verzeichnisses beibehalten werden. Am ehesten tritt der unberechtigte Zugriff auf READ PERMISSION DB-Dateien während Data Links-Funktionstests auf, da nur eine Verbindung zu einer Datei hergestellt wird und wenig NFS-Aktivität auftritt. Weniger häufig tritt dieses Szenario in einer Produktionsumgebung auf, da die NFS-Aktivität hoch ist, und der NFS-Attribut-Cache in der Regel nicht die Attribute für alle verknüpften Dateien speichert. Installation und Konfiguration: Ergänzung 6.1 Kapitel 5. Installieren von DB2-Clients auf UNIX-Betriebssystemen 6.1.1 Kernelkonfigurationsparameter für HP-UX Die Empfehlung zum Einstellen von Kernelparametern für HP-UX besagt fälschlicherweise, dass msgmbn und msgmax auf 65535 oder höher gesetzt werden sollten. Beide Parameter müssen genau auf 65535 gesetzt werden. 6.2 Kapitel 12. Ausführen Ihrer eigenen Anwendungen 6.2.1 Binden von Datenbankdienstprogrammen mit Run-Time Client Datenbankdienstprogramme (import, export, reorg, Befehlszeilenprozessor) und DB2 CLI-Bindedateien können nicht mit DB2 Run-Time Client an die einzelnen Datenbanken gebunden werden, um mit diesen Datenbanken eingesetzt zu werden. Verwenden Sie stattdessen DB2 Administration Client oder DB2 Application Development Client. Diese Datenbankdienstprogramme und DB2 CLI-Bindedateien müssen an die einzelnen Datenbanken gebunden werden, bevor sie mit diesen verwendet werden können. Wenn Sie in einer Netzwerkumgebung mehrere Clients verwenden, die unter verschiedenen Betriebssystemen ausgeführt werden oder unterschiedliche Versionen oder Service-Stufen von DB2 aufweisen, müssen Sie die Dienstprogramme für jede Kombination aus Betriebssystem und DB2-Version einmal binden. 6.2.2 Client-Zugriff auf DB2 mit ODBC unter UNIX In Kapitel 12, "Ausführen Ihrer eigenen Anwendungen", wird angegeben, dass Sie die Datei odbcinst.ini aktualisieren müssen, wenn Sie einen ODBC-Treiber-Manager mit Ihrer ODBC-Client-Anwendung oder mit ODBC SDK installieren wollen. Dies ist nur zum Teil richtig. Sie müssen odbcinst.ini nicht aktualisieren, wenn Sie einen Merant-ODBC-Treiber-Manager installieren. 6.3 Kapitel 24. Einrichten eines Systems zusammengeschlossener Datenbanken für den Zugriff auf Einstellen eines Systems auf mehrere Datenquellen 6.3.1 Systeme zusammengeschlossener Datenbanken Ein DB2-System zusammengeschlossener Datenbanken ist ein besonderer Typ eines Verwaltungssystems für verteilten Datenbanken. Ein System zusammengeschlossener Datenbanken ermöglicht Ihnen die Abfrage und das Abrufen von Daten, die sich in anderen Datenbankverwaltungssystemen befinden. Eine SQL-Anweisung kann sich auf mehrere Datenbankverwaltungssysteme oder einzelne Datenbanken beziehen. Sie können z. B. Daten verknüpfen, die sich in einer DB2 Universal Database-Tabelle, einer Oracle-Tabelle und einer Sybase-Sicht befinden. Ein DB2-System zusammengeschlossener Datenbanken besteht aus einem Server mit einem DB2-Exemplar, einer Datenbank, die als zusammengeschlossene Datenbank verwendet wird, und mindestens einer Datenquelle. Die zusammengeschlossene Datenbank enthält Katalogeinträge, die die Datenquellen und deren Kenndaten angeben. Eine Datenquelle besteht aus einem Datenbankverwaltungssystem und Daten. Folgende Datenquellen werden unterstützt: Oracle Sybase Microsoft SQL Server Informix Mitglieder der DB2 Universal Database-Produktfamilie (wie z. B. DB2 für OS/390, DB2 für AS/400 und DB2 für Windows) DB2 Universal Database-Server mit zusammengeschlossenen Datenbanken kommunizieren mit Datenquellen und rufen Daten von Datenquellen mit Hilfe von Protokollen, den so genannten Oberflächen ab. Die Oberfläche, die Sie verwenden, hängt vom Betriebssystem ab, auf dem das DB2-Exemplar ausgeführt wird. Kurznamen werden zur Angabe der Tabellen und Sichten in den Datenquellen verwendet. Anwendungen können zur zusammengeschlossenen Datenbank wie zu jeder anderen DB2-Datenbank eine Verbindung herstellen und die Datenquellen mit Kurznamen abfragen, als wären es Tabellen oder Sichten in der zusammengeschlossenen Datenbank. Nachdem ein System zusammengeschlossener Datenbanken installiert ist, kann der Zugriff auf die Informationen in Datenquellen erfolgen, als ob sie in einer einzigen lokalen Datenbank stehen würden. Benutzer und Anwendungen senden Abfragen an die zusammengeschlossene Datenbank, die die Daten aus den Datenquellen abruft. Für ein DB2-System zusammengeschlossener Datenbanken gelten einige Einschränkungen. In DB2 Version 7 sind verteilte Anforderungen auf Operationen mit Lesezugriff beschränkt. Außerdem können Sie keine Dienstprogrammoperationen (LOAD, REORG, REORGCHK, IMPORT, RUNSTATS usw.) für Kurznamen ausführen. Sie können allerdings eine Durchgrifffunktion verwenden, um DDL- und DML-Anweisungen direkt an Datenbankverwaltungssysteme zu übermitteln, indem Sie die SQL-Programmversion verwenden, die der Datenquelle zugeordnet ist. 6.3.2 FixPak 8 oder höher erforderlich für DB2-Datenquellen der Version 8 Wenn Sie erfolgreich Kurznamen für DB2-Tabellen und -Sichten für UNIX und Windows Version 8 erstellen wollen, müssen Sie FixPak 8 für DB2 für UNIX und Windows Version 7.2 auf Ihre zusammengeschlossene Datenbank von DB2 für UNIX und Windows Version 7.2 anwenden. Wenn Sie Fixpak 8 nicht auf Ihre zusammengeschlossene Datenbank von DB2 für UNIX und Windows Version 7.2 anwenden, tritt ein Fehler auf, wenn Sie auf die Kurznamen zugreifen. 6.3.3 Einschränkung Die neuen Oberflächen in Version 7.2 (wie z. B. Informix unter AIX, HP und der Solaris-Betriebsumgebung, Oracle unter Linux, HP und der Solaris-Betriebsumgebung, Sybase unter AIX und der Solaris-Betriebsumgebung und Microsoft SQL Server unter AIX und NT) sind in diesem FixPak nicht verfügbar. Sie müssen DB2 Relational Connect Version 7.2 erwerben. 6.3.4 Installieren von DB2 Relational Connect Dieser Abschnitt gibt Anweisungen zur Installation von DB2 Relational Connect auf dem Server, den Sie als Server für Ihr System zusammengeschlossener Datenbanken verwenden wollen. Relational Connect ist für den Zugriff auf Oracle-, Sybase-, Microsoft SQL Server- und Informix-Datenquellen erforderlich. DB2 Relational Connect ist nicht erforderlich, um auf Mitglieder der DB2 Universal Database-Produktfamilie zuzugreifen. Vor der Installation von DB2 Relational Connect: Stellen Sie sicher, dass Sie entweder DB2 Universal Database Enterprise Edition oder DB2 Universal Database Enterprise -- Extended Edition auf dem Server mit zusammengeschlossenen Datenbanken installiert haben. Auf DB2 für UNIX-Servern: Wenn Sie Datenbanken der DB2-Produktfamilie in Ihre verteilten Anforderungen integrieren wollen, müssen Sie bei der Installation von DB2 Universal Database die Option Verteilte Verknüpfung für DB2-Datenquellen ausgewählt haben. Überprüfen Sie, ob der Parameter FEDERATED auf YES gesetzt ist, um zu bestätigen, dass diese Option implementiert wurde. Sie können diese Einstellung überprüfen, indem Sie den Befehl GET DATABASE MANAGER CONFIGURATION absetzen, der alle Parameter und ihre aktuelle Einstellungen anzeigt. Stellen Sie sicher, dass die Client-Software für die Datenquelle auf Ihrem Server mit zusammengeschlossenen Datenbanken installiert ist. 6.3.4.1 Installieren von DB2 Relational Connect auf Windows NT-Servern Melden Sie sich an dem Server mit zusammengeschlossenen Datenbanken mit dem Benutzerkonto an, das Sie für die DB2 Universal Database-Installation erstellt haben. Beenden Sie alle aktiven Programme, damit das Installationsprogramm Dateien, falls erforderlich, aktualisieren kann. Rufen Sie das Installationsprogramm auf. Sie können das Installationsprogramm entweder automatisch oder manuell aufrufen. Wenn der automatische Start des Installationsprogramms fehlschlägt oder Sie die Installation in einer anderen Sprache ausführen wollen, rufen Sie das Installationsprogramm manuell auf. Gehen Sie wie folgt vor, um das Installationsprogramm aufzurufen: Legen Sie die CD von DB2 Relational Connect in das Laufwerk ein. Die Autorun-Funktion startet das Installationsprogramm automatisch. Die Systemsprache wird ermittelt, und das Installationsprogramm für diese Sprache wird gestartet. Gehen Sie wie folgt vor, um das Installationsprogramm manuell aufzurufen: Klicken Sie Start an, und wählen Sie die Option Ausführen aus. Geben Sie den folgenden Befehl in das Feld Öffnen ein: x:\setup /i sprache Dabei gilt Folgendes: x Steht für Ihr CD-ROM-Laufwerk. sprache Steht für den Landes-/Gebietscode für Ihre Sprache (z. B. DE für Deutsch). Klicken Sie OK an. Der Installationsassistent wird geöffnet. Klicken Sie Installieren an, um den Installationsprozess zu starten. Folgen Sie den Eingabeaufforderungen im Installationsprogramm. Wenn die Installation beendet ist, ist DB2 Relational Connect in dem Verzeichnis zusammen mit Ihren anderen DB2-Produkten installiert. Beispielsweise wird die Oberflächenbibliothek für die Oracle NET8-Client-Software (net8.dll) im Verzeichnis c:\Programme\SQLLIB\bin installiert. 6.3.4.2 Installieren von DB2 Relational Connect auf UNIX-Servern Verwenden Sie das Dienstprogramm db2setup, um DB2 Relational Connect auf Ihrem UNIX-Server mit zusammengeschlossenen Datenbanken zu installieren. Anmerkung: Welche Fenster bei Verwendung des Dienstprogramms db2setup angezeigt werden, hängt davon ab, was bereits auf dem Server mit zusammengeschlossenen Datenbanken installiert ist. Bei den folgenden Schritten wird davon ausgegangen, dass Relational Connect nicht installiert ist. Melden Sie sich als Benutzer mit Root-Berechtigung an. Legen Sie Ihre DB2-Produkt-CD-ROM ein, und hängen Sie sie an. Informationen zum Anhängen einer CD-ROM finden Sie im Handbuch DB2 für UNIX Einstieg. Wechseln Sie in das Verzeichnis, in dem die CD-ROM angehängt ist, indem Sie den Befehl cd /cd-rom eingeben. Dabei gilt Folgendes: cd-rom ist der Mount-Punkt Ihrer Produkt-CD-ROM. Geben Sie den Befehl ./db2setup ein. Nach einigen Momenten wird das Fenster DB2 Version 7 installieren geöffnet. In diesem Fenster werden die derzeit installierten Elemente sowie die zur Installation verfügbaren Elemente aufgelistet. Navigieren Sie zum gewünschten Distributed Join, z. B. Distributed Join für Informix-Datenquellen, und drücken Sie die Leertaste, um die Option auszuwählen. Ein Stern wird neben der Option angezeigt, wenn Sie ausgewählt ist. Wählen Sie OK aus. Das Fenster DB2-Services erstellen wird geöffnet. Da Ihr Server mit zusammengeschlossenen Datenbanken bereits ein DB2-Exemplar enthält, wählen Sie die Option DB2-Exemplar nicht erstellen aus, und klicken Sie OK an. Wenn Sie angegeben haben, dass kein Verwaltungsserver installiert werden soll, wird eine Warnung angezeigt. Wählen Sie OK aus. Das DB2-Installationsprogramm zeigt eine Zusammenfassung der zu installierenden Elemente an. Da Sie Relational Connect noch nicht installiert hatten, sollten zwei Elemente aufgelistet werden: Programmkennung für DB2 Relational Connect Die ausgewählte verteilte Verknüpfung Wählen Sie Weiter aus. Ein Fenster wird angezeigt, um Ihnen mitzuteilen, dass dies die letzte Möglichkeit ist, die Installation von Relational Connect zu stoppen. Wählen Sie OK aus, um mit der Installation fortzufahren. Das Durchführen der Installation kann einige Minuten dauern. Das DB2-Installationsprogramm zeigt einen Statusbericht mit den erfolgreich installierten Komponenten an. Klicken Sie OK an. Das Fenster DB2-Installationsprogramm wird geöffnet. Wählen Sie Schließen und anschließend OK aus, um das Dienstprogramm zu beenden. Wenn die Installation beendet ist, ist DB2 Relational Connect in dem Verzeichnis zusammen mit Ihren anderen DB2-Produkten installiert. Bei DB2 für AIX-Servern heißt das Verzeichnis /usr/lpp/db2_07_01. Bei DB2-Servern für die Solaris-Betriebsumgebung heißt das Verzeichnis /opt/IBMdb2/V7.1. Bei DB2 für HP-UX-Servern heißt das Verzeichnis /opt/IBMdb2/V7.1. Bei DB2 für Linux-Servern heißt das Verzeichnis /usr/IBMdb2/V7.1. 6.3.5 Kapitel 24. Einrichten eines Systems zusammengeschlossener Datenbanken für den Zugriff auf Einstellen eines Systems auf mehrere Datenquellen 6.3.5.1 Das Schema in Verbindung mit Kurznamen Der Kurznamenparameter in einer Anweisung CREATE NICKNAME besteht aus zwei Teilen -- dem Schema und dem Kurznamen. Wenn bei der Erstellung des Kurznamens kein Schema angegeben wird, wird als Schema für den Kurznamen die Authentifizierungs-ID des Benutzers verwendet, der den Kurznamen erstellt. Nach der Erstellung eines Kurznamens werden die Informationen zum Kurznamen in den Katalogsichten SYSCAT.TABLES, SYSCAT.TABOPTIONS, SYSCAT.COLUMNS, SYSCAT.COLOPTIONS und SYSCAT.INDEXES gespeichert. 6.3.5.2 Aspekte beim Wiederherstellen einer zusammengeschlossenen Datenbank auf einem anderen Server mit zusammengeschlossenen Datenbanken Wenn Sie die Sicherung einer zusammengeschlossenen Datenbank auf einem anderen Server mit zusammengeschlossenen Datenbanken wiederherstellen, enthält das Datenbankimage nicht die neuen Datenbank- und Knotenangaben, die es für den Zugriff auf Datenquellen der DB2-Produktfamilie benötigt. Sie müssen diese Angaben bei der Wiederherstellung katalogisieren. 6.4 Kapitel 26. Zugriff auf Oracle-Datenquellen Zusätzlich zur Unterstützung von Oberflächen unter AIX und Windows NT unterstützt DB2 Universal Database jetzt auch die Oracle-Oberfläche unter Linux, der Solaris-Betriebsumgebung und HP-UX. Diese Unterstützung begrenzt sich auf Oracle Version 8. Sie müssen die CD von DB2 Relational Connect Version 7.2 einlegen und Verteilte Unterstützung für Oracle-Datenquellen auswählen, um auf die Oberflächen für diese Plattformen zuzugreifen. Nachdem Sie DB2 Relational Connect installiert haben, können Sie einem Server mit zusammengeschlossenen Datenbanken wie folgt eine Oracle-Datenquelle hinzufügen: Installieren und konfigurieren Sie die Oracle-Client-Software auf dem DB2-Server mit zusammengeschlossenen Datenbanken. Führen Sie bei DB2-Servern mit zusammengeschlossenen Datenbanken unter UNIX das Script djxlink aus, um eine Programmverbindung zwischen den Oracle SQL*Net- oder Net8-Bibliotheken und Ihrem DB2-Server mit zusammengeschlossenen Datenbanken herzustellen und die zusammengeschlossenen DB2-Oberflächenbibliotheken zur Verwendung mit Oracle zu erstellen. Erstellen (oder aktualisieren) Sie die Datei db2dj.ini, um Umgebungsvariablen für Oracle hinzuzufügen. Diese Datei muss eine Definition für die Umgebungsvariable ORACLE_HOME enthalten. (Optional) Setzen Sie die Variablen DB2_DJ_INI und DB2_DJ_COMM der Profilregistrierdatenbank. Prüfen Sie die Speicherposition und den Inhalt der Oracle-Datei tnsnames.ora auf dem DB2-Server mit zusammengeschlossenen Datenbanken, und testen Sie die Verbindungen zum Oracle-Server mit dem Oracle-Befehl sqlplus. Starten Sie das DB2-Exemplar erneut. Erstellen Sie die Oberfläche. Erstellen Sie eine Serverdefinition. Erstellen Sie eine Benutzerzuordnung. Testen Sie die Konfiguration mit Set Passthru. Erstellen Sie Kurznamen für die Tabellen und Sichten. Genaue Anweisungen für diese Schritte, einschließlich der Einstellung der Umgebungsvariablen, finden Sie in Kapitel 26, Einrichten eines Systems zusammengeschlossener Datenbanken für den Zugriff auf Oracle-Datenquellen, im Handbuch DB2 Installation und Konfiguration - Ergänzung. Diese Informationen sind auch online verfügbar unter http://www.ibm.com/software/data/db2/relconnect/. 6.4.1 Fehler in der Dokumentation Der Abschnitt "Hinzufügen von Oracle-Datenquellen zu einem System zusammengeschlossener Datenbanken" enthält folgende Fehler: Ein zusätzlicher Schritt ist erforderlich zwischen Schritt 2 und 3 im Handbuch. Die ersten drei Schritte sollten folgendermaßen lauten: Installieren und konfigurieren Sie die Oracle-Client-Software auf dem DB2-Server mit zusammengeschlossenen Datenbanken mit Hilfe der von Oracle zur Verfügung gestellten Dokumentation. Setzen Sie die Umgebungsvariable ORACLE_HOME: export ORACLE_HOME=. Führen Sie bei DB2-Servern mit zusammengeschlossenen Datenbanken, die auf UNIX-Plattformen aktiv sind, das Script djxlink aus, um die Bibliothek Oracle SQL*Net oder Net8 über eine Programmverbindung mit Ihrem DB2-Server mit zusammengeschlossenen Datenbanken zu verbinden. Abhängig von Ihrer Plattform befindet sich das Script djxlink in einem der folgenden Verzeichnisse: /usr/lpp/db2_07_01/bin unter AIX /opt/IBMdb2/V7.1/bin unter der Solaris-Betriebsumgebung /opt/IBMdb2/V7.1/bin HP-UX /usr/IBMdb2/V7.1/bin unter Linux Führen Sie das Script djxlink erst nach der Installation der Oracle-Client-Software auf dem DB2-Server mit zusammengeschlossenen Datenbanken aus. Definieren Sie Umgebungsvariablen für Datenquellen durch eine Änderung der Datei db2dj.ini und durch Absetzen des Befehls db2set. Der Befehl db2set aktualisiert die DB2-Profilregistrierdatenbank mit Ihren Einstellungen. Ausführliche Anweisungen zum Einstellen der Umgebungsvariablen finden Sie in Kapitel 26, Einrichten eines Systems zusammengeschlossener Datenbanken für den Zugriff auf Oracle-Datenquellen, des Handbuchs DB2 Installation und Konfiguration: Ergänzung. Fahren Sie mit Schritt 3 der Anweisungen im Handbuch fort. Laut Dokumentation soll folgende Einstellung vorgenommen werden: DB2_DJ_INI = sqllib/cfg/db2dj.ini Dies ist falsch. Die Einstellung muss wie folgt lauten: DB2_DJ_INI = $INSTHOME/sqllib/cfg/db2dj.ini 6.5 Vermeiden von Problemen beim Arbeiten mit fernen LOBs Beim Arbeiten mit fernen LOB-Spalten kann ein Problem wegen fehlenden Speichers auftreten. Angenommen, Sie führen eine Abfrage aus, die LONG-Daten aus einer Oracle-Spalte auswählt und als CLOB-Daten in eine DB2-Tabelle einfügt. Wenn Sie die Größe des Zwischenspeichers für die Datenbankanwendung nicht erhöht haben, erhalten Sie einen SQL-Fehler, der angibt, dass nicht ausreichend Speicherplatz verfügbar ist. Gehen Sie wie folgt vor, um diesen Fehler zu beheben: Trennen Sie alle Anwendungen vom DB2-Exemplar. Aktualisieren Sie die Zwischenspeichergröße der Anwendung mit folgendem Befehl: db2 udpate db cfg for dbname using APPLHEAPSZ 1024 Dabei ist dbname der Name der zusammengeschlossenen Datenbank und 1024 die empfohlene Zwischenspeichergröße. Initialisieren Sie die Datenbank erneut. Erhöhen Sie die Zwischenspeichergröße Ihrer Datenbankanwendung, damit dieses Problem nicht erneut auftritt. Damit diese Änderung wirksam wird, müssen Sie die Datenbank erneut initialisieren. Beispiel: Aktualisieren Sie die Zwischenspeichergröße der Anwendung mit folgendem Befehl: db2 udpate db cfg for dbname using APPLHEAPSZ 1024 Dabei ist dbname der Name der zusammengeschlossenen Datenbank und 1024 die empfohlene Zwischenspeichergröße. Trennen Sie alle Anwendungen vom DB2-Exemplar. Initialisieren Sie die Datenbank erneut. 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: Installieren Sie DB2 Relational Connect Version 7.2. Siehe 6.3.4, Installieren von DB2 Relational Connect. Fügen Sie Ihrem Server mit zusammengeschlossenen Datenbanken Sybase-Datenquellen hinzu. 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: Legen Sie die Umgebungsvariablen fest, und aktualisieren Sie die Profilregistrierdatenbank (nur AIX und Solaris). Verknüpfen Sie DB2 mit der Sybase-Client-Software (nur AIX und Solaris). Starten Sie das DB2-Exemplar erneut (nur AIX und Solaris). Erstellen und definieren Sie eine Schnittstellendatei. Erstellen Sie die Oberfläche. Optional: Legen Sie die Umgebungsvariable DB2_DJ_COMM fest. Erstellen Sie den Server. Optional: Legen Sie die Serveroption CONNECTSTRING fest. Erstellen Sie eine Benutzerzuordnung. 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: Editieren Sie die Datei db2dj.ini, die sich im Verzeichnis sqllib/cfg befindet, und legen Sie die folgende Umgebungsvariable fest: SYBASE="" Dabei ist das Verzeichnis, in dem der Sybase-Client installiert ist. 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. 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 /sqllib/interfaces. 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: Neue integrierte Typen Benutzerdefinierte Typen mit Eingabe mit festgelegtem Datentyp Benutzerdefinierte Typen ohne Eingabe mit festgelegtem Datentyp. Dies sind integrierte Typen, die der Benutzer einfach umbenannt hat. Diese Typen werden nur von bestimmten Datenquellen unterstützt, z. B. Sybase und Microsoft SQL Server. 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: Zeitlimitdauer für SQL-Abfragen Zeitlimitdauer für Anmeldeantworten Pfad und Name der Schnittstellendatei Paketgröße .-;--------------------------------. 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 6.7 Zugriff auf Microsoft SQL Server-Datenquellen mit ODBC (neues Kapitel) Bevor Sie einem DB2-Server mit zusammengeschlossenen Datenbanken Microsoft SQL Server-Datenquellen hinzufügen, müssen Sie den ODBC-Treiber auf dem Server mit zusammengeschlossenen Datenbanken installieren und konfigurieren. Genaue Einzelangaben zur Installation der ODBC-Treibers finden Sie in den Installationsanleitungen in der Dokumentation, die mit dem ODBC-Treiber ausgeliefert wird. Sie müssen die folgenden Operationen ausführen, um Ihren Server mit zusammengeschlossenen Datenbanken für den Zugriff auf Daten zu definieren, die in Microsoft SQL Server-Datenquellen gespeichert sind: Installieren und konfigurieren Sie den ODBC-Treiber auf dem Server mit zusammengeschlossenen Datenbanken. Genaue Einzelangaben zur Installation der ODBC-Treibers finden Sie in den Installationsanweisungen in der Dokumentation, die mit dem ODBC-Treiber ausgeliefert wird. Auf DB2 für Windows NT-Servern: Konfigurieren Sie einen System-DSN mit dem ODBC-Einheitenmanager. Geben Sie im Fenster ODBC-Datenquellen-Administrator von Windows den Treiber SQL Server an, und fügen Sie in diesem Dialogfenster einen neuen System-DSN hinzu. Geben Sie SQL Server Authentication using Login ID and password provided by the user an. Auf DB2 für AIX-Servern: Installieren Sie die Thread-Version der Bibliotheken, die von MERANT angeboten werden, geben Sie das Bibliotheksverzeichnis von MERANT als ersten Eintrag in der Variable LIBPATH an, und definieren Sie die Datei .odbc.ini. Installieren Sie DB2 Relational Connect Version 7.2. Siehe 6.3.4, Installieren von DB2 Relational Connect. Fügen Sie Ihrem Server mit zusammengeschlossenen Datenbanken Microsoft SQL Server-Datenquellen hinzu. Geben Sie die Microsoft SQL Server-Codepages an (nur Windows NT). Dieses Kapitel geht auf die Schritte 3 und 4 ein. Die Anweisungen in diesem Kapitel gelten für Windows NT- und AIX-Plattformen. Die plattformspezifischen Unterschiede werden erwähnt, wo Sie zutreffen. 6.7.1 Hinzufügen von Microsoft SQL Server-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken Nachdem Sie den ODBC-Treiber und DB2 Relational Connect installiert haben, fügen Sie Ihrem Server mit zusammengeschlossenen Datenbanken Microsoft SQL Server-Datenquellen hinzu, indem Sie die folgenden Schritte ausführen: Legen Sie die Umgebungsvariablen fest (nur AIX). Führen Sie das Shell-Script aus (nur AIX). Optional: Legen Sie die Umgebungsvariable DB2_DJ_COMM fest (nur AIX). Starten Sie das DB2-Exemplar erneut (nur AIX). Erstellen Sie die Oberfläche. Erstellen Sie den Server. Erstellen Sie eine Benutzerzuordnung. Erstellen Sie Kurznamen für die Tabellen und Sichten. Optional: Rufen Sie die ODBC-Traces ab. Diese Schritte werden in den folgenden Abschnitten genau erklärt. 6.7.1.1 Schritt 1: Festlegen der Umgebungsvariablen (nur AIX) 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 zur Herstellung einer Verbindung zu Microsoft SQL Server-Datenquellen. 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: Editieren Sie die Datei db2dj.ini, die sich im Verzeichnis $HOME/sqllib/cfg befindet, und legen Sie die folgenden Umgebungsvariable fest: ODBCINI=$HOME/.odbc.ini DJX_ODBC_LIBRARY_PATH=/lib DB2ENVLIST=LIBPATH 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. Wenn Sie die Datei db2dj.ini in einem nicht partitionierten Datenbanksystem verwenden oder wenn Sie sie in einem partitionierten Datenbanksystem verwenden und die Werte in der Datei db2dj.ini nur auf den aktuellen Knoten angewendet werden sollen, setzen Sie den folgenden Befehl ab: db2set DB2_DJ_INI=/db2dj.ini Wenn Sie die Datei db2dj.ini in einem partitionierten Datenbanksystem verwenden und 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=/db2dj.ini Wenn Sie die Datei db2dj.ini in einem partitionierten Datenbanksystem verwenden und 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/knoten3.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. Setzen Sie die folgenden Befehle ab, um den Pfad zur Clientbibliothek festzulegen: db2set DB2LIBPATH= db2set DB2ENVLIST=LIBPATH 6.7.1.2 Schritt 2: Ausführen des Shell-Scripts (nur AIX) Das Shell-Script djxlink.sh verknüpft die Client-Bibliotheken mit den Oberflächenbibliotheken. Geben Sie Folgendes ein, um das Shell-Script auszuführen: djxlink 6.7.1.3 Schritt 3: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM (nur AIX) Wenn Sie meinen, der Zugriff auf die Microsoft SQL Server-Datenquelle dauert ungewöhnlich lang, können Sie die Leistung verbessern, indem Sie die Umgebungsvariable DB2_DJ_COMM festlegen, damit die Oberfläche geladen wird, wenn der Server mit zusammengeschlossenen Datenbanken initialisiert wird und nicht dann, wenn Sie versuchen, auf die Datenquelle zuzugreifen. Legen Sie die Umgebungsvariable DB2_DJ_COMM fest, damit die Oberflächenbibliothek integriert wird, die zu der Oberfläche gehört, die Sie in Schritt 5 angegeben haben. Beispiel: Auf DB2 für Windows NT-Servern: db2set DB2_DJ_COMM=djxmssql3.dll Auf DB2 für AIX-Servern: db2set DB2_DJ_COMM=libmssql3.a Stellen Sie sicher, dass sich auf keiner Seite des Gleichheitszeichens (=) Leerzeichen befinden. Weitere Informationen zu den Oberflächenbibliotheksnamen finden Sie im Handbuch SQL Reference. 6.7.1.4 Schritt 4: DB2-Exemplar erneut starten (nur AIX) 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. Starten Sie das DB2-Exemplar mit den folgenden Befehlen erneut: db2stop db2start 6.7.1.5 Schritt 5: Erstellen der Oberfläche DB2 Universal Database hat zwei verschiedene Protokolle, die so genannten Oberflächen, die Sie verwenden können, um auf Microsoft SQL Server-Datenquellen zuzugreifen. Oberflächen sind die Mittel, mit denen Server mit zusammengeschlossenen Datenbanken mit Datenquellen kommunizieren und Daten von Datenquellen abrufen. Die Oberfläche, die Sie verwenden, hängt von der Plattform ab, auf der DB2 Universal Database ausgeführt wird. Verwenden Sie Tabelle 3 als Richtlinie zur Auswahl der passenden Oberfläche. Tabelle 3. ODBC-Treiber ODBC-Treiber Plattform Oberflächenname ODBC 3.0-Treiber (oder höher) Windows NT DJXMSSQL3 MERANT DataDirect Connect ODBC 3.6-Treiber AIX MSSQLODBC3 Verwenden Sie die Anweisung CREATE WRAPPER, um die Oberfläche anzugeben, die verwendet werden soll, um auf Microsoft SQL Server-Datenquellen zuzugreifen. Das folgende Beispiel zeigt eine CREATE WRAPPER-Anweisung: CREATE WRAPPER DJXMSSQL3 Dabei ist DJXMSSQL3 der Standardoberflächenname, der auf einem DB2-Server für Windows NT (mit dem ODBC 3.0-Treiber) verwendet wird. Wenn Sie einen DB2-Server für AIX haben, würden Sie den Oberflächennamen MSSQLODBC3 angeben. Sie können den Standardoberflächennamen mit einem Namen ihrer Wahl ersetzen. Wenn Sie dies machen, müssen Sie allerdings den Parameter LIBRARY und den Namen der Oberflächenbibliothek für Ihre Serverplattform mit zusammengeschlossenen Datenbanken in der Anweisung CREATE WRAPPER angeben. Beispiel: Auf DB2 für Windows NT-Servern: CREATE WRAPPER oberflächenname LIBRARY 'djxmssql3.dll' Dabei ist oberflächenname der Name, den Sie der Oberfläche geben wollen, und 'djxmssql3.dll' ist der Bibliotheksname. Auf DB2 für AIX-Servern: CREATE WRAPPER oberflächenname LIBRARY 'libmssql3.a' Dabei ist oberflächenname der Name, den Sie der Oberfläche geben wollen, und 'libdjxmssql.a' ist der Bibliotheksname. Weitere Informationen zu Oberflächenbibliotheksnamen finden Sie bei der Anweisung CREATE WRAPPER im Handbuch SQL Reference. 6.7.1.6 Schritt 6: Erstellen des Servers Verwenden Sie die Anweisung CREATE SERVER, um alle Microsoft SQL Server-Server zu definieren, zu denen Sie eine Verbindung herstellen wollen. Beispiel: CREATE SERVER sqlserver TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3 OPTIONS (NODE 'sql-knoten', DBNAME 'datenbankname') Dabei gilt Folgendes: sqlserver Der Name, den Sie dem Microsoft SQL Server-Server zuordnen. Dieser Name muss eindeutig sein. MSSQLSERVER Der Datenquellentyp, für den Sie den Zugriff konfigurieren. 7.0 Die Microsoft SQL Server-Version, auf die Sie zugreifen. DB2 Universal Database unterstützt die Versionen 6.5 und 7.0 von Microsoft SQL Server. DJXMSSQL3 Der Oberflächenname, den Sie in der Anweisung CREATE WRAPPER definiert haben. 'sql-knoten' Der Systemdatenquellenname, der auf die Version von Microsoft SQL Server verweist, auf die Sie zugreifen. Beachten Sie bei diesem Wert die Groß-/Kleinschreibung. DB2 Universal Database unterstützt die Versionen 6.5 und 7.0 von Microsoft SQL Server. Obwohl der Name des Knotens (Systemdatenquellenname) als Option in der Anweisung CREATE SERVER angegeben wird, ist er für Microsoft SQL Server-Datenquellen erforderlich. Unter Windows finden Sie den DSN auf der Indexzunge System-DSN im Tool ODBC-Datenquellen-Administrator. Unter AIX finden Sie den DSN in der Datei .odbc.ini im Ausgangsverzeichnis des DB2-Exemplareigners. Zusätzliche Optionen, die Sie mit der Anweisung CREATE WRAPPER verwenden können, finden Sie im Handbuch DB2 SQL Reference. 'datenbankname' Der Name der Datenbank, zu der Sie eine Verbindung herstellen. Obwohl der Name der Datenbank als Option in der Anweisung CREATE SERVER angegeben wird, ist er für Microsoft SQL Server-Datenquellen erforderlich. 6.7.1.7 Schritt 7: 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 Microsoft SQL Server-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 Microsoft SQL Server-Datenquelle definiert ist. Beispiel: CREATE USER MAPPING FOR db2-benutzer SERVER servername OPTIONS (REMOTE_AUTHID 'ms-sql-benutzer', REMOTE_PASSWORD '1und2') Dabei gilt Folgendes: db2-benutzer Die lokale Benutzer-ID, die Sie einer Benutzer-ID zuordnen, die in einer Microsoft SQL Server-Datenquelle definiert ist. servername Der Name des Servers, den Sie in der Anweisung CREATE SERVER definiert haben. 'ms-sql-benutzer' Die Anmelde-ID der Microsoft SQL Server-Datenquelle, der Sie db2-benutzer zuordnen. Beachten Sie bei diesem Wert die Groß-/Kleinschreibung. '1und2' Das Kennwort, das 'ms-sql-benutzer' zugeordnet ist. Beachten Sie bei diesem Wert die Groß-/Kleinschreibung. Zusätzliche Optionen, die Sie mit der Anweisung CREATE USER MAPPING verwenden können, finden Sie im Handbuch SQL Reference. 6.7.1.8 Schritt 8: Erstellen von Kurznamen für Tabellen und Sichten Ordnen Sie jeder Sicht oder Tabelle, die sich in Ihrer Microsoft SQL Server-Datenquelle befindet und auf die Sie zugreifen wollen, einen Kurznamen zu. Sie verwenden diese Kurznamen, wenn Sie die Microsoft SQL Server-Datenquelle abfragen. Verwenden Sie die Anweisung CREATE NICKNAME, um einen Kurznamen zuzuweisen. Beachten Sie bei Kurznamen die Groß-/Kleinschreibung. Das folgende Beispiel zeigt eine CREATE NICKNAME-Anweisung: CREATE NICKNAME ms-sql-verkäufe FOR servername.verkaufsdaten.europa Dabei gilt Folgendes: ms-sql-verkäufe Ein eindeutiger Kurzname für die Microsoft SQL Server-Tabelle oder -Sicht. servername.verkaufsdaten.europa Ein dreiteiliger Bezeichner, der das folgende Format hat: datenquellenservername.ferner-schemaname.ferner-tabellenname Für die Teile ferner-schemanname und ferner-tabellenname des Kurznamens werden doppelte Anführungszeichen empfohlen. Wenn Sie einen Kurznamen erstellen, versucht DB2 auf die Datenquellenkatalogtabellen zuzugreifen (Microsoft SQL Server bezeichnet diese als Systemtabellen). Diese Abfrage testet die Verbindung zu der Datenquelle. Wenn die Verbindung fehlschlägt, empfangen Sie eine Fehlernachricht. Wiederholen Sie diesen Schritt für alle Datenbanktabellen und -sichten, für die Sie Kurznamen erstellen wollen. 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.7.1.9 Schritt 9: Optional: Abrufen von ODBC-Traces Wenn beim Zugriff auf die Datenquelle Probleme auftreten, können Sie ODBC-Trace-Informationen abrufen, um diese Probleme zu analysieren und zu lösen. Verwenden Sie das Trace-Tool, das von ODBC Data Source Administrator angeboten wird, um sicherzustellen, dass der ODBC-Trace richtig funktioniert. Das Aktivieren des Trace beeinträchtigt Ihre Systemleistung, deshalb sollten Sie den Trace ausschalten, wenn Sie die Probleme gelöst haben. 6.7.2 Übersicht über Microsoft SQL Server-Codepages (nur Windows NT) Microsoft SQL Server unterstützt viele gemeinsame Codepageoptionen für Unterstützung der Landessprache, die DB2 UDB unterstützt. Datenquellen, die denselben codierten Zeichensatz wie DB2 verwenden, erfordern keine Übersetzung. In Tabelle 3 finden Sie eine Liste der Codepages, die sowohl von DB2 Universal Database als auch Microsoft SQL Server unterstützt werden. Tabelle 4. DB2 UDB- und Microsoft SQL Server-Codepageoptionen Codepage Unterstützte Sprache 1252 ISO-Zeichensatz 850 Mehrsprachig 437 Amerikanisches Englisch 874 Thailändisch 932 Japanisch 936 Vereinfachtes Chinesisch 949 Koreanisch 950 Traditionelles Chinesisch 1250 Mitteleuropäisch 1251 Kyrillisch 1253 Griechisch 1254 Türkisch 1255 Hebräisch 1256 Arabisch Wenn der DB2-Server mit zusammengeschlossenen Datenbanken und der Microsoft SQL Server-Server unterschiedliche Codepages zur Unterstützung der Landessprache ausführen, müssen Sie entweder Ihre Microsoft SQL Server-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 Microsoft SQL Server-Dokumentation. 6.8 Zugriff auf Informix-Datenquellen (neues Kapitel) Bevor Sie einem DB2-Server mit zusammengeschlossenen Datenbanken Informix-Datenquellen hinzufügen, müssen Sie das Software Developer's Kit des Informix-Clients auf dem Server mit zusammengeschlossenen Datenbanken installieren und konfigurieren. In der Installationsbeschreibung in der Dokumentation, die mit der Informix-Datenbanksoftware geliefert wird, finden Sie genaue Angaben zur Installation des Software Developer's Kit (SDK) des Clients. Stellen Sie sicher, dass die SDK-Bibliotheken des Informix-Clients installiert werden. Sie müssen die folgenden Operationen ausführen, um Ihren Server mit zusammengeschlossenen Datenbanken zu definieren, damit er auf Daten zugreifen kann, die in Informix-Datenquellen gespeichert sind: Installieren Sie DB2 Relational Connect. Siehe 6.3.4, Installieren von DB2 Relational Connect. Wenden Sie das neueste DB2-FixPak an. Fügen Sie Ihrem Server mit zusammengeschlossenen Datenbanken Informix-Datenquellen hinzu. Dieses Kapitel geht auf Schritt 3 ein. Die Anweisungen in diesem Kapitel gelten für AIX, die Solaris-Betriebsumgebung und HP-UX-Betriebssysteme. Die für die einzelnen Betriebssysteme spezifischen Unterschiede werden erwähnt, wo sie zutreffen. 6.8.1 Hinzufügen von Informix-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken Sie müssen die folgenden Operationen ausführen, um einem Server mit zusammengeschlossenen Datenbanken eine Informix-Datenquelle hinzuzufügen: Legen Sie die Umgebungsvariablen fest, und aktualisieren Sie die Profilregistrierdatenbank. Verknüpfen Sie DB2 mit der Informix-Client-Software. Starten Sie das DB2-Exemplar erneut. Erstellen Sie die Datei sqlhosts für Informix. Erstellen Sie die Oberfläche. Optional: Legen Sie die Umgebungsvariable DB2_DJ_COMM fest. Erstellen Sie einen Server. Erstellen Sie eine Benutzerzuordnung. Erstellen Sie Kurznamen für Tabellen, Sichten und Informix-Synonyme. Diese Schritte werden in diesem Abschnitt genau erklärt. 6.8.1.1 Schritt 1: Festlegen der Umgebungsvariablen und Aktualisieren der Profilregistrierdatenbank 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 Informix-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: Editieren Sie die Datei db2dj.ini, die sich im Verzeichnis sqllib/cfg befindet, und legen Sie die folgenden Umgebungsvariablen fest: Anmerkung: Sie können diese Datei selbst erstellen, wenn sie noch nicht auf dem System vorhanden ist. INFORMIXDIR Setzen Sie die Umgebungsvariable INFORMIXDIR auf den Pfad für das Verzeichnis, in dem das Software Developer's Kit des Informix-Clients installiert ist, z. B.: INFORMIXDIR=/informix/csdk INFORMIXSERVER Diese Variable gibt den Namen des Informix-Standardservers an. INFORMIXSERVER=inf93 Anmerkung: Obwohl die Informix-Oberfläche den Wert dieser Variablen nicht verwendet, setzt der Informix-Client voraus, dass diese Variable gesetzt ist. Die Oberfläche verwendet den Wert der Serveroption node, die den Informix-Datenbankserver bezeichnet, auf den Sie zugreifen wollen. INFORMIXSQLHOSTS Wenn Sie den Standardpfad für die Informix-Datei sqlhosts verwenden ($INFORMIXDIR/etc/sqlhosts), müssen Sie diese Variable nicht setzen. Wenn Sie jedoch einen anderen Pfad zur Informix-Datei sqlhosts verwenden, müssen Sie diese Variable auf den vollständigen Pfadnamen der Datei setzen. Beispiel: INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts Aktualisieren Sie die Datei .profile für das DB2-Exemplar mit den Informix-Umgebungsvariablen. Sie können dies tun, indem Sie die folgenden Befehle absetzen, um die einzelnen Variablen zu setzen und zu exportieren: PATH=$INFORMIXDIR/bin:$PATH export PATH INFORMIXDIR= export INFORMIXDIR Dabei gilt Folgendes: informix-client-pfad ist der Pfad des Servers mit zusammengeschlossenen Datenbanken für das Verzeichnis, in dem der Informix-Client installiert ist. Schließen Sie den Pfad in doppelte Anführungszeichen (") ein, wenn ein Name im Pfad ein Leerzeichen enthält. Führen Sie die Datei .profile auf dem DB2-Exemplar aus, indem Sie Folgendes eingeben: . .profile 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=/sqllib/cfg/db2dj.ini Anmerkung: Die Pfadnamen in diesem Abschnitt sollten vollständig qualifiziert sein, z. B. mein-home/mein-exemplar/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=/sqllib/cfg/db2dj.ini Wenn Sie die Datei db2dj.ini in einem partitionierten Datenbanksystem verwenden und 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=sqllib/cfg/knoten3.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.8.1.2 Schritt 2: Verbinden von DB2 mit der Informix-Client-Software Es muss eine Programmverbindung zwischen dem DB2-Server mit zusammengeschlossenen Datenbanken und den Client-Bibliotheken hergestellt werden, um den Zugriff auf Informix-Datenquellen zu aktivieren. Durch das Herstellen einer Programmverbindung wird eine Oberflächenbibliothek für alle Datenquellen erstellt, mit denen der Server mit zusammengeschlossenen Datenbanken kommunizieren wird. Wenn Sie das Script djxlinkInformix ausführen, erstellen Sie die Informix-Oberflächenbibliothek. Geben Sie Folgendes ein, um das Script djxlinkInformix abzusetzen: djxlinkInformix Anmerkung: Das Script djxlinkInformix erstellt nur die Informix-Oberflächenbibliothek. Es gibt ein weiteres Script, djxlink, das versucht, eine Oberflächenbibliothek für jede Datenquelle zu erstellen, die von DB2 Universal Database unterstützt wird (Oracle, Microsoft SQL Server usw.). Wenn Sie nur die Clientsoftware für einige der installierten Datenquellen haben, erhalten Sie beim Absetzen des Scripts djxlink eine Fehlernachricht für jede fehlende Datenquelle. Sie benötigen die UNIX-Systemadministratorberechtigung (root), um die Scripts djxlinkInformix und djxlink auszuführen. Die Scripts djxlinkInformix und djxlink schreiben je nach Betriebssystem detaillierte Fehler- und Warnnachrichten in eine bestimmte Datei. Unter AIX beispielsweise schreibt das Script djxlinkInformix in /usr/lpp/db2_07_01/lib/djxlinkInformix.out, und das Script djxlink schreibt in /usr/lpp/db2_07_01/lib/djxlink.out. Die Scripts djxlinkInformix und djxlink erstellen je nach Betriebssystem die Oberflächenbibliothek in einem spezifischen Verzeichnis. Unter AIX beispielsweise wird die Oberflächenbibliothek libinformix.a im Verzeichnis /usr/lpp/db2_07_01/lib erstellt. Prüfen Sie nach dem Erstellen die Berechtigungen für die Oberflächenbibliothek libinformix.a, um sicherzustellen, dass sie von DB2-Exemplareignern gelesen und ausgeführt werden kann. Wenn die DB2-Exemplareigner nicht zur Systemverwaltungsgruppe gehören, müssen die Berechtigungen für die Oberflächenbibliothek libinformix.a den Wert -rwxr-xr-x root system...libinformix.a haben. 6.8.1.3 Schritt 3: DB2-Exemplar erneut starten 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: Bei DB2-Servern für AIX, die Solaris-Betriebsumgebung und HP-UX: db2stop db2start 6.8.1.4 Schritt 4: Erstellen der Informix-Datei "sqlhosts" Die Datei gibt die Position jedes Informix-Datenbankservers und die Verbindungsart (Protokoll) für den Datenbankserver an. Diese Datei kann auf mehrere Arten erstellt werden. Sie können sie von einem anderen System kopieren, auf dem Informix Connect oder Informix Client SDK mit Verbindung zu einem Informix-Server vorhanden ist. Sie können auch das Informix Client SDK auf dem DB2-Server konfigurieren, um eine Verbindung zu einem Informix-Server herzustellen, wodurch die Datei sqlhosts erstellt wird. Nachdem die Datei sqlhosts kopiert oder erstellt wurde, sollte der DB2-Exemplareigner den Informix-Befehl dbaccess verwenden (wenn er sich auf dem DB2-Server befindet), um eine Verbindung zum Informix-Server herzustellen und diesen abzufragen. Dadurch wird festgelegt, dass das Informix Client SDK eine Verbindung zum Informix-Server herstellen kann, bevor Sie versuchen, DB2 Relational Connect in Verbindung mit dem Informix Client SDK zu konfigurieren. Weitere Informationen zur Einrichtung dieser Datei finden Sie im Informix-Handbuch Administrators Guide for Informix Dynamic Server.Achtung: Wenn Sie den Informix-Datenbankservernamen nicht in der Datei sqlhosts definieren, erhalten Sie eine Fehlernachricht, wenn Sie eine Operation durchführen, für die eine Verbindung zum Informix-Datenbankserver erforderlich ist. 6.8.1.5 Schritt 5: Erstellen der Oberfläche Verwenden Sie die Anweisung CREATE WRAPPER, um die Oberfläche anzugeben, die für den Zugriff auf Informix-Datenquellen verwendet werden soll. Oberflächen sind die Mittel, mit denen Server mit zusammengeschlossenen Datenbanken mit Datenquellen kommunizieren und Daten von Datenquellen abrufen. Das folgende Beispiel zeigt eine CREATE WRAPPER-Anweisung: CREATE WRAPPER informix Dabei ist informix der Oberflächenname. informix ist der Oberflächen-Standardname, der in Verbindung mit dem Software Developer's Kit des Informix-Clients verwendet wird. 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 unter der Anweisung CREATE WRAPPER im Handbuch DB2 SOL Reference. Die Oberflächenbibliotheksnamen für Informix lauten: libinformix.a (AIX) libinformix.so (Solaris-Betriebsumgebung) libinformix.sl (HP-UX) 6.8.1.6 Schritt 6: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM Setzen Sie die Umgebungsvariable DB2_DJ_COMM auf dem Server mit zusammengeschlossenen Datenbanken, um die Leistung für den Zugriff auf die Informix-Datenquelle zu erhöhen. Diese Variable legt fest, ob eine Oberfläche geladen ist, wenn der Server mit zusammengeschlossenen Datenbanken initialisiert wird. Setzen Sie die Umgebungsvariable DB2_DJ_COMM so, dass die Oberflächenbibliothek integriert wird, die zu der Oberfläche gehört, die Sie in dem vorherigen Schritt angegeben haben. Wenn Sie mit Korn-Shell- oder Bourne-Shell-Befehlszeilenschnittstellen arbeiten, verwenden Sie die folgenden Exportbefehle: Auf DB2 für AIX-Servern: DB2_DJ_COMM='libinformix.a' export DB2_DJ_COMM Auf DB2-Servern für die Solaris-Betriebsumgebung: DB2_DJ_COMM='libinformix.so' export DB2_DJ_COMM Auf DB2 für HP-UX-Servern: DB2_DJ_COMM='libinformix.sl' export DB2_DJ_COMM Stellen Sie sicher, dass sich auf keiner Seite des Gleichheitszeichens (=) Leerzeichen befinden. Wenn Sie mit der C-Shell-Befehlszeilenschnittstelle arbeiten, setzen Sie die Umgebungsvariablen mit folgenden Befehlen: setenv DB2_DJ_COMM 'libinformix.a' (DB2 für AIX-Server) setenv DB2_DJ_COMM 'libinformix.so' (DB2-Server für die Solaris-Betriebsumgebung) setenv DB2_DJ_COMM 'libinformix.sl' (DB2 für HP--UX-Server) Weitere Informationen zu den Oberflächenbibliotheksnamen und der Umgebungsvariable DB2_DJ_COMM finden Sie im Handbuch DB2 SQL Reference. 6.8.1.7 Schritt 7: Erstellen des Servers Verwenden Sie die Anweisung CREATE SERVER, um alle Informix-Server zu definieren, auf deren Datenquellen Sie zugreifen wollen. Die Syntax für diese Anweisung lautet: CREATE SERVER servername TYPE serverart VERSION serverversion WRAPPER oberflächenname OPTIONS (NODE 'knotenname', DBNAME 'datenbankname') Dabei gilt Folgendes: servername Der Name, den Sie dem Informix-Datenbankserver zuordnen. Dieser Name muss eindeutig sein und darf mit keinem anderen in der zusammengeschlossenen Datenbank definierten Servernamen übereinstimmen. Der Servername darf nicht dem Namen eines Tabellenbereichs in der zusammengeschlossenen Datenbank entsprechen. TYPE serverart Die Datenquellenart, für die Sie den Zugriff konfigurieren. Anmerkung: Für die Informix-Oberfläche muss die Serverart "informix" lauten. VERSION serverversion Die Version des Informix-Datenbankservers, auf den Sie zugreifen wollen. Die unterstützten Informix-Versionen sind 5, 7, 8 und 9. WRAPPER oberflächenname Der Name, den Sie in der Anweisung CREATE WRAPPER angegeben haben. NODE 'knotenname' Der Name des Knotens, auf dem sich servername befindet. Der Knotenname muss in der Informix-Datei sqlhosts definiert sein (siehe Schritt 4). Obwohl der Knotenname als Option in der SQL-Anweisung CREATE SERVER definiert ist, ist er für Informix-Datenquellen erforderlich. Beachten Sie bei diesem Wert die Groß-/Kleinschreibung. Informationen zu zusätzlichen Optionen finden Sie im Handbuch SQL Reference. DBNAME 'datenbankname' Der Name der Informix-Datenbank, auf die Sie zugreifen wollen. Im Folgenden sehen Sie ein Beispiel für die Anweisung CREATE SERVER: CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales') Die Serveroptionen FOLD_ID and FOLD_PW wirken sich darauf aus, ob die Oberfläche die Benutzer-ID und das Kennwort in Groß- oder in Kleinbuchstaben umsetzt, bevor sie sie an Informix sendet. Beispiel für die Anweisung CREATE SERVER mit den Serveroptionen FOLD_ID und FOLD_PW: CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales', FOLD_ID 'U', FOLD_PW 'U') 6.8.1.8 Schritt 8: Erstellen einer Benutzerzuordnung Wenn sich die Benutzer-ID oder das Kennwort auf dem DB2-Server mit zusammengeschlossenen Datenbanken von einer Benutzer-ID oder einem Kennwort in einer Informix-Datenquelle unterscheiden, verwenden Sie die Anweisung CREATE USER MAPPING, um die lokale Benutzer-ID der Kombination aus Benutzer-ID und Kennwort zuzuordnen, die in der Informix-Datenquelle definiert ist. Beispiel: CREATE USER MAPPING FOR lokale-benutzer-id SERVER servername OPTIONS (REMOTE_AUTHID 'ferne-benutzer-id', REMOTE_PASSWORD 'fernes-kennwort') Dabei gilt Folgendes: lokale-benutzer-id Die lokale Benutzer-ID, die Sie einer in einer Informix-Datenquelle definierten Benutzer-ID zuordnen. SERVER servername Der Name der Informix-Datenquelle, die Sie in der Anweisung CREATE SERVER definiert haben. REMOTE_AUTHID 'ferne-benutzer-id' Die Benutzer-ID auf dem Informix-Datenbankserver, der Sie lokale-benutzer-id zuordnen. Dieser Wert unterscheidet Groß-/Kleinschreibung, sofern Sie die Serveroption FOLD_ID in der Anweisung CREATE SERVER nicht auf 'U' oder 'L' setzen. REMOTE_PASSWORD 'fernes-kennwort' Das Kennwort, das ferne-benutzer-id zugeordnet ist. Dieser Wert unterscheidet Groß-/Kleinschreibung, sofern Sie die Serveroption FOLD_PW in der Anweisung CREATE SERVER nicht auf 'U' oder 'L' setzen. Im Folgenden sehen Sie ein Beispiel für die Anweisung CREATE MAPPING: CREATE USER MAPPING FOR robert SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night') Sie können das DB2-Sonderregister USER verwenden, um die Berechtigungs-ID des Benutzers, der die Anweisung CREATE USER MAPPING absetzt, der Datenquellen-Berechtigungs-ID zuzuordnen, die in der Benutzeroption REMOTE_AUTHID angegeben ist. Im Folgenden sehen Sie ein Beispiel für die Anweisung CREATE USER MAPPING mit dem Sonderregister USER: CREATE USER MAPPING FOR USER SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night') Weitere Informationen zu zusätzlichen Optionen finden Sie im Handbuch SQL Reference. 6.8.1.9 Schritt 9: Erstellen von Kurznamen für Tabellen, Sichten und Informix-Synonyme Ordnen Sie jeder Tabelle, jeder Sicht oder jedem Informix-Synonym in Ihrer Informix-Datenquelle einen Kurznamen zu. Kurznamen können bis zu 128 Zeichen enthalten. Sie verwenden diese Kurznamen, wenn Sie die Informix-Datenquelle abfragen. DB2 setzt die Server-, Schema- und Tabellennamen in Großbuchstaben um, sofern Sie sie nicht in doppelte Anführungszeichen (") einschließen. Das folgende Beispiel zeigt eine CREATE NICKNAME-Anweisung: CREATE NICKNAME kurzname FOR servername."ferner-schemaname"."ferner-tabellenname" Dabei gilt Folgendes: kurzname Ein eindeutiger Kurzname, der zur Bezeichung der Informix-Tabelle, der Informix-Sicht oder des Informix-Synonyms verwendet wird. servername."ferner-schemaname"."ferner-tabellenname" Ein dreiteiliger Bezeichner für das ferne Objekt: servername ist der Name, den Sie in der Anweisung CREATE SERVER dem Informix-Datenbankserver zugeordnet haben. ferner-schemaname ist der Name des fernen Schemas, zu dem die Tabelle, die Sicht oder das Synonym gehört. ferner-tabellenname ist der Name der Tabelle, der fernen Sicht oder des fernen Synonyms, auf die/das Sie zugreifen wollen. Im Folgenden sehen Sie ein Beispiel für die Anweisung CREATE NICKNAME: CREATE NICKNAME salesjapan FOR asia."salesdata"."japan" Wiederholen Sie diesen Schritt für alle Tabellen oder Sichten, für die Sie einen 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. Verwaltung Teilinhaltsverzeichnis Systemverwaltung 7.1 Aktualisierung verfügbar Systemverwaltung: Konzept 8.1 Kapitel 8. Entwerfen der physischen Datenbank 8.1.1 Überlegungen zum Tabellenbereichsdesign 8.1.1.1 Optimieren der Tabellenbereichsleistung wenn Daten in RAIDs gespeichert werden 8.1.2 Partitionierungsschlüssel 8.2 Anhang D. Inkompatibilitäten zwischen Releases 8.2.1 Fehler SQL30081N nicht zurückgegeben, wenn verlorene Verbindung erkannt wird 8.2.2 Dienstprogramm EXPORT benötigt FixPak 7 oder höher zur korrekten Handhabung von Identitätsattributen 8.3 Anhang E. Unterstützung in der Landessprache 8.3.1 Landes-/Gebietscode und Codepageunterstützung 8.3.2 Überlegungen zu IMPORT/EXPORT/LOAD -- Einschränkungen für Codepage 1394 und 5488 8.3.3 Werte für Datum und Uhrzeit 8.3.3.1 Darstellung von Werten für Datum und Uhrzeit als Zeichenfolge 8.3.3.2 Zeichenfolgen für das Datum 8.3.3.3 Zeichenfolgen für die Uhrzeit 8.3.3.4 Zeichenfolgen für Zeitmarken 8.3.3.5 Aspekte von Zeichensätzen 8.3.3.6 Datums- und Uhrzeitformate Systemverwaltung: Implementierung 9.1 Neue Methode zur Angabe von DMS-Behältern unter Windows 2000 und neueren Systemen 9.2 Beispiel für "Erweitern der Steuerzentrale" Systemverwaltung: Optimierung 10.1 Temporäre Systemtabellenschemata 10.2 Kapitel 8. Leistung bei der Ausführung 10.2.1 Blockbasierter Pufferpool 10.2.1.1 Beispiel für einen blockbasierten Pufferpool 10.3 Kapitel 10. Skalieren der Konfiguration über das Hinzufügen von Prozessoren 10.3.1 Probleme beim Hinzufügen von Knoten zu einer partitionierten Datenbank 10.4 Kapitel 13. Konfigurieren von DB2 10.4.1 Beendigungsstatus der Protokollarchivierung jetzt häufiger geprüft 10.4.2 Korrektur des Abschnitts zum Sortieren von Informationen (collate_info) 10.5 DB2-Registrierungsvariablen und -Umgebungsvariablen 10.5.1 Korrekturen an Leistungsvariablen 10.5.2 Neue Parameter für Registrierdatenbankvariable DB2BPVARS 10.5.3 Korrekturen und Ergänzungen zu verschiedenen Registrierungsvariablen 10.5.4 Korrekturen und Ergänzungen zu allgemeinen Registrierungsvariablen Administering Satellites Guide and Reference 11.1 Setting up Version 7.2 DB2 Personal Edition and DB2 Workgroup Edition as Satellites 11.1.1 Prerequisites 11.1.1.1 Installation Considerations 11.1.2 Configuring the Version 7.2 System for Synchronization 11.1.3 Installing FixPak 2 or Higher on a Version 6 Enterprise Edition System 11.1.3.1 Upgrading Version 6 DB2 Enterprise Edition for Use as the DB2 Control Server 11.1.4 Upgrading a Version 6 Control Center and Satellite Administration Center Command Reference 12.1 Aktualisierung verfügbar 12.2 db2updv7 - Update Database to Version 7 Current Fix Level 12.3 Additional Context for ARCHIVE LOG Usage Note 12.4 REBIND Missing value 12.5 RUNSTATS 12.6 db2inidb - Initialize a Mirrored Database 12.6.1 Usage Information 12.7 db2relocatedb (new command) db2relocatedb - Relocate Database 12.8 db2move Database Movement Tool 12.9 Additional Option in the GET ROUTINE Command GET ROUTINE 12.10 CREATE DATABASE Datenwiederherstellung und hohe Verfügbarkeit Handbuch und Referenz 13.1 Datenwiederherstellung und hohe Verfügbarkeit Handbuch und Referenz - Online 13.2 Neues Verhalten bei der Archivprotokollierung 13.3 Verwendung der zurückgestellten Ein-/Ausgabe für Datenbankwiederherstellung 13.4 Neues Sicherungs- und Wiederherstellungsverhalten bei LOGRETAIN=CAPTURE 13.5 Teilsicherung und -wiederherstellung - Zusätzliche Informationen 13.6 NEWLOGPATH2 umbenannt in DB2_NEWLOGPATH2 13.7 Auswählen einer Sicherungsmethode für DB2 Data Links Manager unter AIX oder der Solaris-Betriebsumgebung 13.8 Tivoli Storage Manager -- LAN Free Data Transfer Versetzen von Daten Dienstprogramme und Referenz 14.1 Erweiterte Identitätswerte jetzt vollständig vom Dienstprogramm EXPORT unterstützt 14.2 Änderung der Handhabung von LOB-Dateien durch EXPORT, IMPORT und LOAD 14.2.1 IXF-Überlegungen 14.3 Codepage-Unterstützung für die Dienstprogramme IMPORT, EXPORT und LOAD 14.4 Kapitel 2. Import 14.4.1 Verwenden von IMPORT mit gepufferten INSERT-Operationen 14.5 Kapitel 3. Load 14.5.1 Statusangaben für anstehende Aktionen nach einer Ladeoperation 14.5.2 LOAD-Rahmenbedingungen und -Einschränkungen 14.5.3 Dateitypänderungswert "totalfreespace" 14.6 Kapitel 4. AutoLoader 14.6.1 AutoLoader - Rahmenbedingungen und Einschränkungen 14.6.2 Verwenden von AutoLoader 14.6.3 "rexecd" erforderlich für die Ausführung von AutoLoader bei aktivierter Authentifizierung 14.6.4 AutoLoader kann auf AIX-Systemen vor 4.3.3 während einer Aufspaltung blockieren 14.7 Anhang C, Dateiformate der Dienstprogramme EXPORT/IMPORT/LOAD Replikation Referenzhandbuch 15.1 Replikationsserver und Nicht-IBM Server 15.2 Replikation unter Windows 2000 15.3 Bekannter Fehler beim Speichern von SQL-Dateien 15.4 Aliasnamen des Apply-Programms und der Steuerzentrale 15.5 DB2-Verwaltung 15.6 Dienstprogramm "Data Difference" im Internet 15.7 Kapitel 3. Beispielszenario für die Datenreplikation 15.7.1 Replikationsszenarios 15.8 Kapitel 5. Planung der Replikationsumgebung 15.8.1 Tabellen- und Spaltennamen 15.8.2 DATALINK-Replikation 15.8.3 LOB-Einschränkungen 15.8.4 Planen der Replikation 15.9 Kapitel 6. Einrichten der Replikationsumgebung 15.9.1 Vorbedingung für beliebige Tabellenreplikation 15.9.2 Einrichten Ihrer Replikationsumgebung 15.10 Kapitel 8. Fehlerbestimmung 15.11 Kapitel 9. Capture und Apply für AS/400 15.12 Kapitel 10. Capture und Apply für OS/390 15.12.1 Vorbedingungen für DB2 DataPropagator für OS/390 15.12.2 UNICODE- und ASCII-Schemata für Codeumsetzung unter OS/390 15.12.2.1 Auswählen eines Schemas für Codeumsetzung 15.12.2.2 Einstellen von Schemata für Codeumsetzung 15.13 Kapitel 11. Capture und Apply für UNIX-Plattformen 15.13.1 Einstellen der Umgebungsvariablen für Capture und Apply unter UNIX und Windows 15.14 Kapitel 14. Tabellenstrukturen 15.15 Kapitel 15. Nachrichten der Programme Capture und Apply 15.16 Anhang A. Starten der Programme Capture und Apply über einer Anwendung System Monitor Guide and Reference 16.1 db2ConvMonStream 16.2 Maximum Database Heap Allocated (db_heap_top) Troubleshooting Guide 17.1 Starting DB2 on Windows 95, Windows 98, and Windows ME When the User Is Not Logged On 17.2 Chapter 1. Good Troubleshooting Practices 17.2.1 Problem Analysis and Environment Collection Tool 17.2.1.1 Collection Outputs 17.2.1.2 Viewing detailed_system_info.html 17.2.1.3 Viewing DB2 Support Tool Syntax One Page at a Time 17.3 Chapter 2. Troubleshooting the DB2 Universal Database Server 17.4 Chapter 8. Troubleshooting DB2 Data Links Manager 17.5 Chapter 15. Logged Information 17.5.1 Gathering Stack Traceback Information on UNIX-Based Systems Verwenden von DB2 Universal Database auf 64-Bit-Plattformen 18.1 Kapitel 5. Konfiguration 18.1.1 LOCKLIST 18.1.2 shmsys:shminfo_shmmax 18.2 Kapitel 6. Einschränkungen XML Extender Verwaltung und Programmierung MQSeries 20.1 Installation und Konfiguration für die DB2 MQSeries-Funktionen 20.1.1 Installieren von MQSeries 20.1.2 Installieren von MQSeries AMI 20.1.3 Aktivieren der DB2 MQSeries-Funktionen 20.2 MQSeries - Nachrichtendarstellung 20.3 Nachrichtenstruktur 20.4 MQSeries - Funktionsübersicht 20.4.1 Einschränkungen 20.4.2 Fehlercodes 20.5 Einsatzszenarios 20.5.1 Basis-Nachrichtenübertragung 20.5.2 Senden von Nachrichten 20.5.3 Nachrichten abrufen 20.5.4 Anwendungsübergreifende Konnektivität 20.5.4.1 R/R-Kommunikation 20.5.4.2 P/S 20.6 enable_MQFunctions enable_MQFunctions 20.7 disable_MQFunctions disable_MQFunctions Systemverwaltung 7.1 Aktualisierung verfügbar Das Handbuch Systemverwaltung wurde für FixPak 4 aktualisiert, und die aktuelle PDF-Version kann online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. Die vorliegenden Informationen gelten zusätzlich zum aktualisierten Handbuch. Die gesamte aktualisierte Dokumentation ist auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. Systemverwaltung: Konzept 8.1 Kapitel 8. Entwerfen der physischen Datenbank 8.1.1 Überlegungen zum Tabellenbereichsdesign 8.1.1.1 Optimieren der Tabellenbereichsleistung wenn Daten in RAIDs gespeichert werden DB2_PARALLEL_IO DB2_PARALLEL_IO wirkt sich auf auf Tabellenbereiche aus, für die mehr als ein Behälter definiert ist. Wenn Sie die Registrierdatenbankvariable nicht setzen, entspricht die E/A-Parallelität der Behälteranzahl im Tabellenbereich. Wenn Sie die Registrierdatenbankvariable setzen, entspricht die E/A-Parallelität dem Ergebnis der Bereitstellungsgröße dividiert durch die Speicherbereichsgröße. Sie können die Registrierdatenbankvariable setzen, wenn die einzelnen Behälter im Tabellenbereich einheitenübergreifend auf mehreren physischen Platten gespeichert sind. Beispielsweise hat ein Tabellenbereich zwei Behälter und die Bereitstellungsgröße beträgt das Vierfache der Speicherbereichsgröße. Wenn die Registrierdatenbankvariable nicht gesetzt ist, wird eine Bereitstellungsanforderung für diesen Tabellenbereich in zwei Anforderungen aufgeteilt (jede Anforderung gilt für zwei Speicherbereiche). Wenn die Bereitstellungsfunktionen einsatzbereit sind, können zwei Bereitstellungsfunktionen diese Anforderungen parallel abarbeiten. Wenn die Registrierdatenbankvariable gesetzt ist, wird eine Bereitstellungsanforderung für diesen Tabellenbereich in vier Anforderungen aufgeteilt (ein Speicherbereich pro Anforderung), so dass vier Bereitstellungsfunktionen die Anforderungen parallel abarbeiten können. Wenn in diesem Beispiel jedem der beiden Behälter genau eine Platte zugeordnet ist, kann das Setzen dieser Registrierdatenbankvariablen für diesen Tabellenbereich zu einer Konkurrenzsituation bei diesen Platten führen, da zwei Bereitstellungsfunktionen jeweils gleichzeitig auf die beiden Platten zugreifen. Wenn jedoch jeder der beiden Behälter einheitenübergreifend über mehrere Platten verteilt ist, würde das Setzen der Registrierdatenbankvariable es möglicherweise erlauben, gleichzeitig auf vier Platten zuzugreifen. 8.1.2 Partitionierungsschlüssel Im Unterabschnitt "Überlegungen zum Aufbau von Knotengruppen" des Abschnitts "Entwerfen von Knotengruppen" sollte der folgende Text des Unterabschnitts "Partitionierungsschlüssel", der die Punkte auflistet, die bei der Definition von Partitionierungsschlüsseln berücksichtigt werden müssen, nur bei DB2_UPDATE_PART_KEY=ON gelöscht werden: Anmerkung: Für DB2_UPDATE_PART_KEY=OFF gelten die Einschränkungen weiterhin. Anmerkung: Ab FixPak 3 ist der Standardwert OFF. Auch kann der Wert einer Spalte des Partitionierungsschlüssels für eine Zeile der Tabelle nicht aktualisiert werden. Werte für Spalten des Partitionierungsschlüssels können nur gelöscht oder eingefügt werden. 8.2 Anhang D. Inkompatibilitäten zwischen Releases 8.2.1 Fehler SQL30081N nicht zurückgegeben, wenn verlorene Verbindung erkannt wird Anwendungen, die über den Fehler SQL30081N eine verlorene Verbindung zum Datenbankserver erkennen, sind nach der Migration auf DB2 Universal Database Version 6 oder höher nicht mehr in der Lage, verlorene Verbindungen zu erkennen. 8.2.2 Dienstprogramm EXPORT benötigt FixPak 7 oder höher zur korrekten Handhabung von Identitätsattributen Damit das Dienstprogramm EXPORT alle Identitätsattribute unterstützen kann (z. B. minvalue, maxvalue, cycle, order, remarks), müssen Client und Server beide mindestens mit FixPak 7 ausgeführt werden. Wenn der Client oder der Server diesen Stand nicht hat, funktioniert das Dienstprogramm EXPORT zwar noch, es kann jedoch die Attribute nicht interpretieren. 8.3 Anhang E. Unterstützung in der Landessprache 8.3.1 Landes-/Gebietscode und Codepageunterstützung Die in der Tabelle der unterstützen Sprachen und codierten Zeichensätze aufgeführte Codepage 5488 wird auch als GB 18030 bezeichnet. Codepage 1394 wird auch als ShiftJIS X0213 bezeichnet. Die Verbindung eines UTF-8-Clients (Codepage 1208) mit einer Nicht-Unicode-Datenbank wird nicht unterstützt. 8.3.2 Überlegungen zu IMPORT/EXPORT/LOAD -- Einschränkungen für Codepage 1394 und 5488 Daten in den Codepages 1394 (ShiftJIS X0213) und 5488 (GB 18030) können mit den Dienstprogrammen LOAD oder IMPORT in eine Unicode-Datenbank versetzt werden. Mit dem Dienstprogramm EXPORT können Daten von einer Unicode-Datenbank in eine Datendatei in den Codepages 1394 und 5488 versetzt werden. Es werden nur Verbindungen zwischen einem Unicode-Client und einem Unicode-Server unterstützt. Sie müssen also entweder einen Unicode-Client verwenden oder die DB2-Registrierdatenbankvariable DB2CODEPAGE vor dem Laden, Importieren oder Exportieren auf 1208 setzen. Konvertierungen von Codepage 1394 oder 5488 in Unicode können zu einer Vergrößerung führen. Beispielsweise kann ein 2-Byte-Zeichen als zwei 16-Bit-Unicode-Zeichen in GRAPHIC-Spalten gespeichert werden. Sie müssen sicherstellen, dass die Zielspalten in der Unicode-Datenbank groß genug sind, um erweiterte Unicode-Bytes aufzunehmen. 8.3.3 Werte für Datum und Uhrzeit 8.3.3.1 Darstellung von Werten für Datum und Uhrzeit als Zeichenfolge Werte mit dem Datentyp DATE, TIME oder TIMESTAMP werden intern in einer Form dargestellt, die sie für den SQL-Benutzer transparent ist. Datum, Uhrzeiten und Zeitmarken können allerdings auch als Zeichenfolgen dargestellt werden. Diese Darstellungen betreffen den SQL-Benutzer direkt, da es keine Konstanten oder Variablen mit den Datentypen DATE, TIME oder TIMESTAMP gibt. Daher muss ein Wert für Datum und Uhrzeit, der abgerufen werden soll, einer Zeichenfolgevariablen zugeordnet werden. Die Darstellung als Zeichenfolge entspricht normalerweise dem Standardformat der Werte für Datum und Uhrzeit, die dem Landes-/Gebietscode des Clients zugeordnet sind, sofern diese nicht durch Angabe der Formatoption DATETIME bei der Vorkompilierung des Programms oder beim Binden an die Datenbank überschrieben werden. Wenn eine gültige Zeichenfolge zur Darstellung des Werts für Datum und Uhrzeit in einer Operation mit einem internen Wert für Datum und Uhrzeit verwendet wird, wird die Zeichenfolge vor Ausführung der Operation in das interne Format für Datum, Zeit oder Zeitmarke umgesetzt. Gültige Zeichenfolgendarstellungen von Werten für Datum und Uhrzeit werden in den folgenden Abschnitten definiert. Anmerkung: Grafikzeichenfolge-Darstellungen von Werten für Datum und Uhrzeit werden nur in Unicode-Datenbanken unterstützt. 8.3.3.2 Zeichenfolgen für das Datum Zur Darstellung des Datums können Zeichenfolgen verwendet werden, die mit einer Ziffer beginnen und aus mindestens 8 Zeichen bestehen. Abschließende Leerzeichen sind zulässig. Führende Nullen bei den Monats- und Tagesangaben des Datums können wegfallen. Die Tabelle "Formate zur Darstellung des Datums als Zeichenfolge" bleibt unverändert. 8.3.3.3 Zeichenfolgen für die Uhrzeit Zur Darstellung der Uhrzeit können Zeichenfolgen verwendet werden, die mit einer Ziffer beginnen und aus mindestens 4 Zeichen bestehen. Abschließende Leerzeichen sind zulässig. Eine führende Null kann bei den Stundenangaben wegfallen, und die Sekunden können ganz wegfallen. Wenn Sie die Sekunden nicht angeben, wird eine implizite Angabe von 0 Sekunden angenommen. 13:30 entspricht daher 13:30:00. Die Tabelle "Formate zur Darstellung der Uhrzeit als Zeichenfolge" bleibt unverändert. 8.3.3.4 Zeichenfolgen für Zeitmarken Zur Darstellung einer Zeitmarke können Zeichenfolgen verwendet werden, die mit einer Ziffer beginnen und aus mindestens 16 Zeichen bestehen. Die vollständige Darstellung einer Zeitmarke hat das Format jjjj-mm-tt-hh.mm.ss.nnnnnn. Abschließende Leerzeichen sind zulässig. Führende Nullen können aus der Monats-, Tages- oder Stundenangabe der Zeitmarke weggelassen werden. Mikrosekunden können vollständig abgeschnitten oder weggelassen werden. Wenn Sie Ziffern in der Mikrosekundenangabe weglassen, wird eine implizite Angabe von 0 angenommen. Dementsprechend ist 1991-3-2-8.30.00 äquivalent zu 1991-03-02-08.30.00.000000. 8.3.3.5 Aspekte von Zeichensätzen Zeichenfolgen für Datum und Zeitmarke dürfen nur aus Ziffern und Begrenzersymbolen bestehen. 8.3.3.6 Datums- und Uhrzeitformate Die Zeichenfolgen für Datums- und Zeitformate entsprechen dem Standardformat der Werte für Datum und Uhrzeit, die dem Landes-/Gebietscode der Anwendung zugeordnet sind. Dieses Standardformat kann durch Angeben der Formatoption DATETIME beim Vorkompilieren oder Binden an die Datenbank überschrieben werden. Systemverwaltung: Implementierung 9.1 Neue Methode zur Angabe von DMS-Behältern unter Windows 2000 und neueren Systemen DB2 verwendet jetzt eine neue Methode zur Angabe von unformatierten DMS-Tabellenbereichsbehältern unter Windows 2000 und neueren Systemen. Jede Hauptplattenpartition oder jeder dynamische Datenträger wird bei der Erstellung einer global eindeutigen Kennung zugeordnet, der so genannten GUID (Globally Unique Identifier). Diese GUID kann bei der Angabe der Behälter in einer Tabellenbereichsdefinition als Einheiten-ID angegeben werden. Da die GUIDs im gesamten System eindeutig sind, hat eine Konfiguration mit mehreren Knoten für jeden Knoten eine eindeutige GUID, selbst wenn die Definitionen der Plattenpartitionen gleich sind. Ein Tool namens db2listvolumes.exe wurde bereitgestellt, um die GUIDs für alle in einem Windows-System definierten Platteneinheiten anzuzeigen. Dieses Tool erzeugt zwei Dateien in dem Verzeichnis, in dem es ausgeführt wurde. Eine Datei, volumes.xml, enthält Informationen zu jeder Platteneinheit. Sie dient zur einfachen Anzeige in einem beliebigen XML-fähigen Browser. Die andere Datei, tablespace.ddl, enthält die erforderliche Syntax zur Angabe der Tabellenbereichsbehälter. Bevor Sie tablespace.ddl verwenden, müssen Sie sie aktualisieren, so dass sie die übrigen für die Tabellenbereichsdefinition erforderlichen Daten enthält. Das Tool db2listvolumes benötigt keine Befehlszeilenargumente. 9.2 Beispiel für "Erweitern der Steuerzentrale" Das im Anhang "Erweitern der Steuerzentrale" aufgeführte Beispiel ist nicht korrekt und funktioniert daher nicht. Verwenden Sie statt dessen die folgenden Informationen für das Java-Beispiel: Das Beispielprogramm PluginEx.java befindet sich im Unterverzeichnis samples/java. PluginEx.java wird zusammen mit DB2 Application Development Client installiert. Zur Kompilierung von PluginEx.java müssen folgende Anweisungen in classpath enthalten sein: Auf Windows-Plattformen: LAUFWERK: \sqllib\java\swingall.jar LAUFWERK: \sqllib\cc\com.jar LAUFWERK: \sqllib\cc Dabei ist LAUFWERK das Laufwerk, auf dem DB2 installiert ist. Auf UNIX-Plattformen: /u/db2inst1/sqllib/java/swingall.jar /u/db2inst1/sqllib/cc Dabei ist /u/db2inst1 das Verzeichnis, in dem DB2 installiert ist. Erstellen Sie die Datei db2plug.zip mit allen Klassen, die durch die Kompilierung von PluginEx.java generiert wurden. Diese Datei sollte nicht komprimiert sein. Setzen Sie z. B. folgenden Befehl ab: zip -r0 db2plug.zip PluginEx*.class Dieser Befehl nimmt alle CLASS-Dateien in die Datei db2plug.zip auf und behält den relativen Pfad bei. Folgen Sie den Anweisungen in der Datei PluginEx.java, um das Beispiel zu kompilieren und auszuführen. Die Schnittstelle CCObject enthält statischere Konstanten als die im Anhang zur Erweiterung der Steuerzentrale im Handbuch "Systemverwaltung" aufgeführten. Im Folgenden sind die Java-Schnittstellen zur Erweiterung der Steuerzentrale aufgeführt (CCExtension, CCObject, CCM enuAction, CCToolBarAction). Diese Schnittstellen dienen hier nur zur Referenz. CCExtension: // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; /** * The CCExtension interface allows users to extend the Control Center user * interface by adding new toolbar buttons, new menu items and * remove some predefined set of existing menu actions. * * To do so, create a java file which imports the * com.ibm.db2.tools.cc.navigator package and implements this interface. * The new file provides the implementation of the getObjects() and * getToolbarActions() function. * * The getObjects() function returns an array of CCObjects which defines * the existing * objects which the user would like to add new menu actions or remove * the alter or configure menu actions. * * The getToolbarActions() function returns an array of CCToolbarActions * which is added to the Control Center main toolbar. * * A single CCExtension subclass file or multiple CCExtension subclass * files can be used to define the Control Center extensions. In order * for the Control Center to make use of these extensions, use the * following setup procedures: * (1) Create a "db2plug.zip" file which contains all the CCExtension * subclass files. The files should not be compressed. For example, * if the CCExtension files are in the plugin package and they are * located in the plugin directory, issue * zip -r0 db2plug.zip plugin\*.class * This command will put all the plugin package class files into the * db2plug.zip file and preserve their relative path information. * (2) To run WEBCC as an applet, put the db2plug.zip file in where the * tag points to in the WEBCC html file. * To run the Control Center as an application, put * the db2plug.zip in a directory pointed to by the CLASSPATH * envirnoment variable and where the Control Center is run. * * For browsers that support multiple archives, just add "db2plug.zip" * to the archive list of the WEBCC html page. Otherwise, all the * CCExtension, CCObject, CCToolbarAction, CCMenuAction subclass files * will have to be in their relative path depending on which package * they belong to. */ public interface CCExtension { /** * Get an array of CCObject subclass objects which define * a list of objects to be overrided in the * Control Center * @return CCObject[] CCObject subclass objects array */ public CCObject[] getObjects(); /** * Get an array of CCToolbarAction subclass objects which represent * a list of buttons to be added to the Control Center * main toolbar. * @return CCToolbarAction[] CCToolbarAction subclass objects array */ public CCToolbarAction[] getToolbarActions(); } CCObject CCObject: // // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; /** * The CCObject interface allows users to define a new object to be * inserted into the Control Center tree or changing the behavior of the * menu actions of an existing object. */ public interface CCObject { /** * The following static constants defines a list of object type * available to be added to the Control Center tree. */ public static final int UDB_SYSTEMS_FOLDER = 0; public static final int UDB_SYSTEM = 1; public static final int UDB_INSTANCES_FOLDER = 2; public static final int UDB_INSTANCE = 3; public static final int UDB_DATABASES_FOLDER = 4; public static final int UDB_DATABASE = 5; public static final int UDB_TABLES_FOLDER = 6; public static final int UDB_TABLE = 7; public static final int UDB_TABLESPACES_FOLDER = 8; public static final int UDB_TABLESPACE = 9; public static final int UDB_VIEWS_FOLDER = 10; public static final int UDB_VIEW = 11; public static final int UDB_ALIASES_FOLDER = 12; public static final int UDB_ALIAS = 13; public static final int UDB_TRIGGERS_FOLDER = 14; public static final int UDB_TRIGGER = 15; public static final int UDB_SCHEMAS_FOLDER = 16; public static final int UDB_SCHEMA = 17; public static final int UDB_INDEXES_FOLDER = 18; public static final int UDB_INDEX = 19; public static final int UDB_CONNECTIONS_FOLDER = 20; public static final int UDB_CONNECTION = 21; public static final int UDB_REPLICATION_SOURCES_FOLDER = 22; public static final int UDB_REPLICATION_SOURCE = 23; public static final int UDB_REPLICATION_SUBSCRIPTIONS_FOLDER = 24; public static final int UDB_REPLICATION_SUBSCRIPTION = 25; public static final int UDB_BUFFERPOOLS_FOLDER = 26; public static final int UDB_BUFFERPOOL = 27; public static final int UDB_APPLICATION_OBJECTS_FOLDER = 28; public static final int UDB_USER_DEFINED_DISTINCT_DATATYPES_FOLDER = 29; public static final int UDB_USER_DEFINED_DISTINCT_DATATYPE = 30; public static final int UDB_USER_DEFINED_DISTINCT_FUNCTIONS_FOLDER = 31; public static final int UDB_USER_DEFINED_DISTINCT_FUNCTION = 32; public static final int UDB_PACKAGES_FOLDER = 33; public static final int UDB_PACKAGE = 34; public static final int UDB_STORE_PROCEDURES_FOLDER = 35; public static final int UDB_STORE_PROCEDURE = 36; public static final int UDB_USER_AND_GROUP_OBJECTS_FOLDER = 37; public static final int UDB_DB_USERS_FOLDER = 38; public static final int UDB_DB_USER = 39; public static final int UDB_DB_GROUPS_FOLDER = 40; public static final int UDB_DB_GROUP = 41; public static final int UDB_DRDA_TABLES_FOLDER = 42; public static final int UDB_DRDA_TABLE = 43; public static final int UDB_NODEGROUPS_FOLDER = 44; public static final int UDB_NODEGROUP = 45; public static final int S390_SUBSYSTEMS_FOLDER = 46; public static final int S390_SUBSYSTEM = 47; public static final int S390_BUFFERPOOLS_FOLDER = 48; public static final int S390_BUFFERPOOL = 49; public static final int S390_VIEWS_FOLDER = 50; public static final int S390_VIEW = 51; public static final int S390_DATABASES_FOLDER = 52; public static final int S390_DATABASE = 53; public static final int S390_TABLESPACES_FOLDER = 54; public static final int S390_TABLESPACE = 55; public static final int S390_TABLES_FOLDER = 56; public static final int S390_TABLE = 57; public static final int S390_INDEXS_FOLDER = 58; public static final int S390_INDEX = 59; public static final int S390_STORAGE_GROUPS_FOLDER = 60; public static final int S390_STORAGE_GROUP = 61; public static final int S390_ALIASES_FOLDER = 62; public static final int S390_ALIAS = 63; public static final int S390_SYNONYMS_FOLDER = 64; public static final int S390_SYNONYM = 65; public static final int S390_APPLICATION_OBJECTS_FOLDER = 66; public static final int S390_COLLECTIONS_FOLDER = 67; public static final int S390_COLLECTION = 68; public static final int S390_PACKAGES_FOLDER = 69; public static final int S390_PACKAGE = 70; public static final int S390_PLANS_FOLDER = 71; public static final int S390_PLAN = 72; public static final int S390_PROCEDURES_FOLDER = 73; public static final int S390_PROCEDURE = 74; public static final int S390_DB_USERS_FOLDER = 75; public static final int S390_DB_USER = 76; public static final int S390_LOCATIONS_FOLDER = 77; public static final int S390_LOCATION = 78; public static final int S390_DISTINCT_TYPES_FOLDER = 79; public static final int S390_DISTINCT_TYPE = 80; public static final int S390_USER_DEFINED_FUNCTIONS_FOLDER = 81; public static final int S390_USER_DEFINED_FUNCTION = 82; public static final int S390_TRIGGERS_FOLDER = 83; public static final int S390_TRIGGER = 84; public static final int S390_SCHEMAS_FOLDER = 85; public static final int S390_SCHEMA = 86; public static final int S390_CATALOG_TABLES_FOLDER = 87; public static final int S390_CATALOG_TABLE = 88; public static final int DCS_GATEWAY_CONNECTIONS_FOLDER = 89; public static final int DCS_GATEWAY_CONNECTION = 90; public static final int S390_UTILITY_OBJECTS_FOLDER = 91; public static final int S390_DATASET_TEMPLATES_FOLDER = 92; public static final int S390_DATASET_TEMPLATE = 93; public static final int S390_UTILITY_LISTS_FOLDER = 94; public static final int S390_UTILITY_LIST = 95; public static final int S390_UTILITY_PROCEDURES_FOLDER = 96; public static final int S390_UTILITY_PROCEDURE = 97; /** * Total number of object types */ public static final int NUM_OBJECT_TYPES = 98; /** * Get the name of these object * * The function returns the name of this object. This name * can be of three types: * (1) Fully qualified name * Syntax: xxxxx-yyyyy-zzzzz * where xxxxx-yyyyy is the fully quality name of the parent * object and zzzzz is the name of the new object. * Note: Parent and child object name is separated by '-' character. * If a schema name is required to identify object, the fully * qualified name is represented by xxxxx-yyyyy-wwwww.zzzzz * where wwwww is the schema name. * Only the behavior of the object that match this fully * quality name will be affected. * (2) Parent fully qualified name * Syntax: xxxxx-yyyyy * where xxxxx-yyyyy is the fully qualified name of the * parent object. * When the object type is folder (ie. DATABASES_FOLDER), the * getName() should only return the fully qualified name of the * folder's parent. * Only the behavior of the object that match this name * and the specific type return by the getType() function will be * affected. * (3) null * Syntax: null * If null is return, the CCMenuActions returns by the * getMenuActions() call will be applied to all objects of type * returns by the getType() call. * @return String object name */ public String getName(); /** * Get the type of this object * @return int return one of the static type constants defined in this * interface */ public int getType(); /** * Get the CCMenu Action array which defines the list of menu actions * to be created for object * return CCMenuAction[] CCMenuAction array */ public CCMenuAction[] getMenuActions(); /** * Check if this object is editable. If not, the Alter related menu * items will be removed from the object's popup menu * return boolean If false, the Alter menu item will be remove from the * object's popup menu. * Return true if you do not wish to modify current Alter menu item * behaviour. */ public boolean isEditable(); /** * Check if this object is configurable. If not, the configuration * related menu items will be removed from the object's popup menu * return boolean If false, the Configuration related menu item will be * removed from the object's popup menu. * Return true if you do not wish to modify current Configuration * behaviour. */ public boolean isConfigurable(); } CCMenuAction: // // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; import java.awt.event.*; import javax.swing.*; /** * The CCMenuAction class allows users to define a new menu item to be added * to a Control Center object. The new menu item will be added at the end of * an object's popup menu. * * Note: If the object has a Control Center Refresh and/or * Filter menu item, the new menu item will be inserted before the Refresh * and Filter menu. The Control Center Refresh and Filter menu items are * always at the end of the popup menu. */ public interface CCMenuAction { /** * Get the name of this action * @return String Name text on the menu item */ public String getMenuText(); /** * Invoked when an action occurs. * @param e Action event */ public void actionPerformed(ActionEvent e); } CCToolBarAction // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; import java.awt.event.*; import javax.swing.*; /** * The CCToolbarAction interface class allows users to define a new action * to be added to the Control Center toolbar. */ public interface CCToolbarAction { /** * Get the name of this action * @return String Name text on the menu item, or toolbar button hover help */ public String getHoverHelpText(); /** * Get the icon for the toolbar button * Any toolbar CCAction should override this function and return * a valid ImageIcon object. Otherwise, the button will have no icon. * @return ImageIcon Icon to be displayed */ public ImageIcon getIcon(); /** * Invoked when an action occurs. * @param e Action event */ public void actionPerformed(ActionEvent e); } Systemverwaltung: Optimierung 10.1 Temporäre Systemtabellenschemata Das Schema für eine temporäre Systemtabelle ergibt sich durch die Anwendungs- und die Berechtigungs-ID, die es erstellen. Wenn diese Daten verfügbar sind, heißt das Schema, in dem die Tabelle erstellt wird, . In einigen Fällen wird bei der Erstellung der Tabellen nur eine dieser IDs Bezeichnung des Schemas verwendet, manchmal aber auch keine. Dies kann zu Tabellen wie AUTHID.TEMPTABLENAME, oder .TEMPTABLENAME führen. Sie können die Schemainformationen für diese Tabellen mit dem Befehl GET SNAPSHOT anzeigen. Informationen zu diesem Befehl finden Sie im Handbuch Command Reference 10.2 Kapitel 8. Leistung bei der Ausführung 10.2.1 Blockbasierter Pufferpool Diese Funktion wird nur in der Sun Solaris-Betriebsumgebung unterstützt. Aufgrund von E/A-Systemaufwand ist das Bereitstellen von Seiten von Platte aufwendig. Die DB2-Bereitstellungsfunktion verbessert den Durchsatz erheblich, wenn die Verarbeitung mit E/A überlappt werden kann. Die meisten Plattformen bieten leistungsfähige Basiselemente zum Lesen zusammenhängender Seiten von Platte in nicht zusammenhängende Speicherbereiche. Diese Basiselemente werden in der Regel als "gestreutes Lesen" oder "über Vektor gesteuerte E/A" bezeichnet. Auf einigen Plattformen kann sich die Leistung dieser Basiselemente nicht mit der Leistung von E/A in großen Blockgrößen messen. Standardmäßig sind die Pufferpools seitenbasiert. D. h., zusammenhängende Seiten auf Platte werden in nicht zusammenhängende Seiten im Speicher bereitgestellt. Die Bereitstellungsleistung kann auf diesen Plattformen noch weiter verbessert werden, wenn Seiten von Platte in zusammenhängende Seiten in einem Pufferpool gelesen werden können. Mit der Registrierdatenbankvariablen DB2_BLOCK_BASED_BP können Sie einen Bereich im Pufferpool erstellen, der Sätze zusammenhängender Seiten enthält. Diese Sätze zusammenhängender Seiten werden als "Blöcke" bezeichnet. Durch das Setzen dieser Registrierdatenbankvariablen liest eine sequenzielle Bereitstellung die Seiten von Platte direkt in diese Blöcke, statt jede Seite einzeln zu lesen. Dadurch wird die /A-Leistung verbessert. Weitere Informationen zu dieser Registrierdatenbankvariablen finden Sie im Abschnitt zu den Registrierungs- und Umgebungsvariablen des Handbuchs Systemverwaltung. Mehrere Tabellenbereiche unterschiedlicher Speicherbereichsgrößen können an einen Pufferpool derselben Blockgröße gebunden werden. Es besteht eine enge Beziehung zwischen Speicherbereichsgrößen und Blockgrößen, obwohl es sich dabei um unterschiedliche Konzepte handelt. Ein Speicherbereich ist die Granularität, mit der Tabellenbereiche einheitenübergreifend in mehreren Behältern gespeichert werden. Ein Block ist die einzige Granularität, bei der E/A-Server, die sequenzielle Bereitstellungsanforderungen abarbeiten, blockbasierte E/A in Betracht ziehen. Einzelne sequenzielle Bereitstellungsanforderungen verwenden Seiten in Speicherbereichsgröße. Wenn eine solche Bereitstellungsanforderung empfangen wird, ermittelt der E/A-Server den Aufwand und die Vorteile der Abarbeitung jeder Anforderung bei blockbasierter E/A (wenn ein blockbasierter Bereich im Pufferpool vorhanden ist) im Vergleich zur seitenbasierten E/A mit gestreutem Lesen. Der Vorteil von blockbasierter E/A ist der Leistungsvorteil durch das Lesen von zusammenhängenden Platten in zusammenhängenden Speicher. Der Aufwand ist die Größe des verschwendeten Pufferpoolspeichers, der sich bei dieser Methode ergeben kann. Die Verschwendung von Pufferpoolspeicher kann bei blockbasierter E/A zwei Ursachen haben: Die Anzahl der Seiten in der Bereitstellungsanforderung ist geringer als die Anzahl der Seiten in einem Block. D. h., die Speicherbereichsgröße ist geringer als die Blockgröße. Einige der als Teil der Bereitstellungsanforderung angeforderten Seiten sind bereits im Seitenbereich des Pufferpools. Anmerkung: Die einzelnen Blöcke im blockbasierten Bereich eines Pufferpools können nicht weiter unterteilt werden. Die Seiten im Block müssen alle zusammenhängen. Daher wird unter Umständen Platz verschwendet. Der E/A-Server erlaubt einige verschwendete Seiten in jedem Block, um die Vorteile der blockbasierten E/A nutzen zu können. Wenn jedoch ein zu großer Teil eines Blocks verschwendet wird, kehrt der E/A-Server zur seitenbasierten Bereitstellung in den Seitenbereich des Pufferpools zurück. Ein Teil der E/A bei der Bereitstellung ist daher nicht blockbasiert. Dies ist keine optimale Rahmenbedingung. Für eine optimale Leistung sollten Sie Tabellenbereiche der gleichen Speicherbereichsgröße haben, die an einen Pufferpool derselben Blockgröße gebunden sind. Eine gute Leistung kann auch noch erreicht werden, wenn die Speicherbereichsgröße einiger Tabellen die Blockgröße des Pufferpools übersteigt, an den sie gebunden sind. Es empfiehlt sich nicht, Tabellenbereiche an einen Pufferpool zu binden, wenn die Speicherbereichsgröße geringer als die Blockgröße ist. Anmerkung: Der Blockbereich eines Pufferpools wird nur für sequenzielle Bereitstellung verwendet. Wenn wenig oder keine sequenzielle Bereitstellung auf Ihrem System auftritt, ist der Blockbereich ein verschwendeter Teil des Pufferpools. Es ist nicht möglich, AWE und blockbasierte Unterstützung gleichzeitig für einen Pufferpool einzurichten. Wenn die Registrierdatenbankvariablen DB2_AWE und DB2_BLOCK_BASED_BP beide auf denselben Pufferpool verweisen, hat AWE Vorrang. Die blockbasierte Unterstützung wird in diesem Fall inaktiviert und erst wieder aktiviert, wenn AWE inaktiviert ist. Ein Pufferpool, der erweiterten Speicher nutzt, unterstützt keine blockbasierte E/A. 10.2.1.1 Beispiel für einen blockbasierten Pufferpool Bevor Sie mit einem der Beispiele arbeiten, müssen Sie die Kennungen für die Pufferpools auf Ihrem System kennen. Die ID des Pufferpools sehen Sie in der Spalte BUFFERPOOLID der Systemkatalogsicht SYSCAT.BUFFERPOOLS. Szenario 1 Sie haben einen Pufferpool mit der ID 4, der 1000 Seiten enthält. Sie wollen einen Blockbereich erstellen, der aus 700 Seiten besteht, wobei jeder Block 32 Seiten enthält. Sie müssen dazu folgenden Befehl ausführen: db2set DB2_BLOCK_BASED_BP=4,700,32 Beim Start der Datenbank wird der Pufferpool mit der ID 4 mit einem Blockbereich von 672 Seiten und einem Seitenbereich von 328 Seiten erstellt. Die 700 gewünschten Seiten in diesem Beispiel können nicht ohne Rest durch 32 geteilt werden. D. h., die angegebene Blockbereichsgröße muss mit folgender Formel auf die nächste Blockgrößengrenze verringert werden: ((Blockbereichsgröße)) FLOOR(-----------------) X Blockgröße ( (Blockgröße) ) ( 700 ) = FLOOR(-----------------) X 32 ( 32 ) = 21 x 32 = 672 Szenario 2 Sie haben einen Pufferpool mit der ID 11, der 3000 Seiten enthält. Sie wollen einen Blockbereich erstellen, der aus 2700 Seiten besteht. Sie müssen dazu folgenden Befehl ausführen: db2set DB2_BLOCK_BASED_BP=11,2700 Beim Start der Datenbank wird der Pufferpool mit der ID 11 mit einem Blockbereich von 2688 Seiten und einem Seitenbereich von 312 Seiten erstellt. Da für die Blockgröße kein expliziter Wert angegeben ist, wird der Standardwert 32 verwendet. Die 2700 gewünschten Seiten in diesem Beispiel können nicht ohne Rest durch 32 geteilt werden. D. h., die angegebene Blockbereichsgröße muss mit folgender Formel auf die nächste Blockgrößengrenze verringert werden: ((Blockbereichsgröße)) FLOOR(-----------------) X Blockgröße ( (Blockgröße) ) ( 2700 ) = FLOOR(-----------------) X 32 ( 32 ) = 84 x 32 = 2688 10.3 Kapitel 10. Skalieren der Konfiguration über das Hinzufügen von Prozessoren 10.3.1 Probleme beim Hinzufügen von Knoten zu einer partitionierten Datenbank Wenn einer partitionierten Datenbank, die mindestens einen temporären Systemtabellenbereich mit einer anderen Seitengröße als der Standardseitengröße (4 KB) hat, Knoten hinzugefügt werden, kann folgende Fehlernachricht und ein SQLCODE-Wert angezeigt werden: "SQL6073N Das Hinzufügen von Knoten ist fehlgeschlagen". Dies passiert, weil beim Erstellen des Knotens nur der Pufferpool IBMDEFAULTBP mit einer Seitengröße von 4 KB vorhanden ist. Sie können z. B. den Befehl db2start verwenden, um der aktuellen partitionierten Datenbank einen Knoten hinzuzufügen: DB2START NODENUM 2 ADDNODE HOSTNAME neuerhost PORT 2 Wenn die partitionierte Datenbank temporäre Systemtabellenbereiche mit der Standardseitengröße hat, wird die folgende Nachricht zurückgegeben: SQL6075W Die Operation START DATABASE MANAGER wurde erfolgreich zum Knoten hinzugefügt. Der Knoten ist erst aktiv, nachdem alle Knoten gestoppt und erneut gestartet wurden. Wenn jedoch die partitionierte Datenbank temporäre Systemtabellenbereiche mit einer anderen Größe als der Standardseitengröße hat, wird die folgende Nachricht zurückgegeben: SQL6073N Das Hinzufügen von Knoten ist fehlgeschlagen. SQLCODE-Wert = "<-902>" In einem ähnlichen Beispiel können Sie den Befehl ADD NODE verwenden, nachdem die Datei db2nodes.cfg manuell mit der neuen Knotenbeschreibung aktualisiert wurde. Nachdem die Datei editiert und der Befehl ADD NODE mit einer partitionierten Datenbank mit temporären Systemtabellenbereichen mit der Standardseitengröße ausgeführt wurde, wird folgende Nachricht zurückgegeben: DB20000I Der Befehl ADD NODE wurde erfolgreich ausgeführt. Wenn jedoch die partitionierte Datenbank temporäre Systemtabellenbereiche mit einer anderen Größe als der Standardseitengröße hat, wird die folgende Nachricht zurückgegeben: SQL6073N Das Hinzufügen von Knoten ist fehlgeschlagen. SQLCODE-Wert = "<-902>" Eine Möglichkeit, die oben dargestellten Probleme zu vermeiden, ist die Ausführung des folgenden Befehls: DB2SET DB2_HIDDENBP=16 Dieser Befehl muss vor dem Befehl db2start oder ADD NODE abgesetzt werden. Durch diese Registrierungsvariable kann DB2 verdeckte Pufferpools von je 16 Seiten zuordnen, die jeweils eine von der Standardgröße abweichende Seitengröße verwenden. Dadurch kann die Operation ADD NODE erfolgreich durchgeführt werden. Eine weitere Möglichkeit zur Umgehung dieses Problems ist die Angabe der Klausel WITHOUT TABLESPACES beim Befehl ADD NODE oder db2start. Danach müssen Sie die Pufferpools mit der Anweisung CREATE BUFFERPOOL erstellen und die temporären Systemtabellenbereiche mit der Anweisung ALTER TABLESPACE dem Pufferpool zuordnen. Wenn einer vorhandenen Knotengruppe, die mindestens einen Tabellenbereich mit einer anderen Seitengröße als der Standardseitengröße (4 KB) hat, Knoten hinzugefügt werden, kann folgende Fehlernachricht angezeigt werden: "SQL0647N Pufferpool "" ist zur Zeit nicht aktiv." Dieser Fehler tritt auf, weil die auf dem neuen Knoten erstellten Pufferpools mit einer vom Standard abweichenden Seitengröße für die Tabellenbereiche nicht aktiviert wurden. Sie können z. B. die Anweisung ALTER NODEGROUP verwenden, um einen Knoten zu einer Knotengruppe hinzuzufügen: DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) Wenn die Knotengruppe Tabellenbereiche mit der Standardseitengröße hat, wird die folgende Nachricht zurückgegeben: SQL1759W Es ist erforderlich, die Knotengruppe umzuverteilen, um die Datenpartitionierung für Objekte in der Knotengruppe "" zu ändern, damit hinzugefügte Knoten aufgenommen oder gelöschte Knoten entfernt werden können. Wenn jedoch die Knotengruppe Tabellenbereiche mit einer anderen Größe als der Standardseitengröße hat, wird die folgende Nachricht zurückgegeben: SQL0647N Pufferpool "" ist zur Zeit nicht aktiv. Eine Möglichkeit zum Umgehen dieses Problems besteht darin, Pufferpools für jede Seitengröße zu erstellen und sie dann wieder mit der Datenbank zu verbinden, bevor Sie die Anweisung ALTER NODEGROUP absetzen: DB2START CONNECT TO mpp1 CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192 CONNECT RESET CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) Eine zweite Umgehungsmöglichkeit für dieses Problem besteht in der Ausführung des folgenden Befehls: DB2SET DB2_HIDDENBP=16 Dies muss erfolgen, bevor Sie den Befehl db2start und die Anweisungen CONNECT und ALTER NODEGROUP absetzen. Ein weiteres Problem kann auftreten, wenn die Anweisung ALTER TABLESPACE verwendet wird, um einem Tabellenbereich einen Knoten hinzuzufügen. Beispiel: DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2) Diese Reihe von Befehlen und Anweisungen generiert die Fehlernachricht SQL0647N (nicht die erwartete Nachricht SQL1759W). Damit diese Änderung korrekt abgeschlossen wird, sollten Sie die Verbindung zur Datenbank wiederherstellen, nachdem die Anweisung ALTER NODEGROUP... WITHOUT TABLESPACES ausgeführt wurde. DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES CONNECT RESET CONNECT TO mpp1 ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2) Eine weitere Umgehungsmöglichkeit für dieses Problem besteht in der Ausführung des folgenden Befehls: DB2SET DB2_HIDDENBP=16 Dies muss erfolgen, bevor Sie den Befehl db2start und die Anweisungen CONNECT, ALTER NODEGROUP und ALTER TABLESPACE absetzen. 10.4 Kapitel 13. Konfigurieren von DB2 10.4.1 Beendigungsstatus der Protokollarchivierung jetzt häufiger geprüft Zur Verringerung der für die Wiederherstellung benötigten Zeit durch Vermeidung unnötiger Protokollarchivierungsanforderungen prüft der Datenbankserver jetzt den Beendigungsstatus des Protokollarchivs, wenn eine neue Protokolldatei erstellt wird und wenn sich das erste aktive Protokoll ändert. 10.4.2 Korrektur des Abschnitts zum Sortieren von Informationen (collate_info) Die Dokumentation zum Sortieren von Information gibt fälschlicherweise an, dass der Parameter collate_info nur über die API GET DATABASE CONFIGURATION angezeigt werden kann. Dies ist nicht korrekt. Sie können die API GET DATABASE CONFIGURATION nicht verwenden, um den Parameter collate_info anzuzeigen. Sie müssen stattdessen die API db2CfgGet verwenden. 10.5 DB2-Registrierungsvariablen und -Umgebungsvariablen 10.5.1 Korrekturen an Leistungsvariablen Tabelle 5. Leistungsvariablen Variablenname Betriebssystem Werte Beschreibung DB2_BINSORT Alle Standardeinstellung=YES Werte: YES oder NO Aktiviert einen neuen Sortieralgorithmus, der die CPU-Zeit und die abgelaufene Zeit für Sortierungen reduziert. Dieser neue Algorithmus weitet die extrem effiziente Integer-Sortiertechnik von DB2 UDB auf alle Sortierdatentypen wie BIGINT, CHAR, VARCHAR, FLOAT und DECIMAL sowie auf Kombinationen aus diesen Datentypen aus. Zur Aktivierung dieses neuen Algorithmus verwenden Sie den folgenden Befehl: db2set DB2_BINSORT = yes DB2_BLOCK_BASED_BP Solaris-Betriebsumgebung Standardeinstellung=Keine Werte: je nach Parameter Gibt die erforderlichen Werte zum Erstellen eines Blockbereichs in einem Pufferpool an. Die ID des Pufferpools ist erforderlich. Sie ist in der Spalte BUFFERPOOLID der Systemkatalogsicht SYSCAT.BUFFERPOOLS zu sehen. Die Anzahl der Seiten, die im Pufferpool für blockbasierte E/A zugewiesen werden sollen, muss angegeben werden. Die Anzahl der Seiten, die in einen Block aufgenommen werden sollen, ist optional. Der Standardwert ist 32. Das Format für die Verwendung diser Registrierdatenbankvariablen sieht folgendermaßen aus: DB2_BLOCK_BASED_BP=PUFFERPOOL-ID,BLOCKBEREICHSGRÖSSE,[BLOCKGRÖSSE];... Mehrere Pufferpools können mit derselben Variablen als blockbasiert definiert werden, indem die einzelnen Einträge durch Semikolon getrennt werden. Der Wert für BLOCKGRÖSSE kann zwischen 2 und 256 liegen. Wenn keine Blockgröße angegeben ist, wird der Standardwert 32 verwendet. Wenn die angegebene Blockbereichsgröße über 98% der Gesamtgröße des Pufferpools beträgt, wird der Pufferpool nicht blockbasiert. Es ist sinnvoll, immer einen gewissen Teil des Pufferpools im seitenbasierten Bereich des Pufferpools zu haben, da die Möglichkeit besteht, dass einzelne Seiten erforderlich sind, selbst wenn der Großteil der E/A im System eine sequenzielle Bereitstellung ist. Wenn der Wert für die Blockbereichsgröße nicht ein Mehrfaches der Blockgröße ist, wird er auf die nächste Blockgrößengrenze verringert. Weitere Informationen zur blockbasierten E/A finden Sie in DB2_NO_FORK_CHECK UNIX Standardeinstellung=OFF Werte: ON oder OFF Wenn diese Variable den Wert "ON" hat, schützt der Clientprozess sich nicht vor einer Anwendung, die eine Kopie des Prozesses zur Ausführung erstellt (Aufspaltung). Wenn Aufspaltung auftritt, sind die Ergebnisse unvorhersehbar. Die Ergebnisse könnten keine Auswirkungen, negative Auswirkungen, einige Fehlercodes oder ein Trap der Anwendung sein. Wenn Sie sicher sind, dass Ihre Anwendung keine Aufspaltung verursacht und Sie eine bessere Leistung wünschen, sollten Sie den Wert dieser Variablen in "ON" ändern. DB2_MINIMIZE_LIST_PREFETCH Alle Standardeinstellung=NO Werte: YES oder NO Vorablesezugriff über Listen ist eine spezielle Methode des Tabellenzugriffs, die die qualifizierenden Satz-IDs aus dem Index abruft, sie nach Seitennummer sortiert und dann die Datenseiten bereitstellt. Manchmal verfügt das Optimierungsprogramm nicht über genaue Informationen, um zu bestimmen, ob der Vorablesezugriff über Listen eine gute Zugriffsmethode ist. Dies könnte z. B. auftreten, wenn Prädikatauswahlmöglichkeiten Parametermarken oder Hostvariablen enthalten, die verhindern, dass das Optimierungsprogramm die Auswahlmöglichkeit über Katalogstatistiken ermittelt. Diese Registrierdatenbankvariable verhindert, dass das Optimierungsprogramm in solchen Fällen den Vorablesezugriff über Listen versucht. DB2_INLIST_TO_NLJN Alle Standardeinstellung=NO Werte: YES oder NO In einigen Fällen kann der SQL-Compiler ein Listenprädikat IN in eine Verknüpfung umschreiben. Die folgende Abfrage z. B. SELECT * FROM EMPLOYEE WHERE DEPTNO IN ('D11', 'D21', 'E21') könnte umgeschrieben werden in: SELECT * FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO) WHERE DEPTNO = V.DNO Diese Überarbeitung könnte später eine bessere Leistung bieten, wenn ein Index für DEPTNO vorhanden ist. Die Liste der Werte würde zuerst abgerufen und durch eine verschachtelte Schleife mittels des Index mit EMPLOYEE verknüpft, um das Verknüpfungsprädikat anzuwenden. Manchmal verfügt das Optimierungsprogramm nicht über genaue Informationen, um die beste Verknüpfungsmethode für die umgeschriebene Version der Abfrage zu bestimmen. Dies kann auftreten, wenn die IN-Liste Parametermarken oder Hostvariablen enthält, die verhindern, dass das Optimierungsprogramm Katalogstatistiken zur Ermittlung der Auswahlmöglichkeit ermittelt. Diese Registrierdatenbankvariable veranlasst das Optimierungsprogramm, bevorzugt verschachtelte Schleifen für die Verknüpfung von Wertelisten mittels der Tabelle mit der IN-Liste als innere Tabelle in der Verknüpfung zu verwenden. 10.5.2 Neue Parameter für Registrierdatenbankvariable DB2BPVARS Die Registrierdatenbankvariable DB2BPVARS unterstützt zwei neue Parameter: NUMPREFETCHQUEUES und PREFETCHQUEUESIZE. Diese Parameter gelten für alle Plattformen und können zur Verbesserung des Vorablesezugriffs für Pufferpooldaten verwendet werden. Betrachten Sie beispielsweise den sequenziellen Vorablesezugriff, bei dem die gewünschte Größe des Vorablesezugriffsspeichers in PREFETCHSIZE/EXTENTSIZE Vorablesezugriffsanforderungen unterteilt ist. In diesem Fall werden Anforderungen in Vorablesewarteschlangen eingereiht, von denen E/A-Server zugeteilt werden, um asynchrone Ein-/Ausgabe durchzuführen. DB2 verwaltet eine Warteschlange der Größe max( 100 , 2*NUM_IOSERVERS ) für jede Datenbankpartition. In einigen Umgebungen ergeben sich Leistungsverbesserungen mit mehreren Warteschlangen und/oder mit Warteschlangen einer anderen Größe. Die Anzahl der Vorablesewarteschlangen sollte höchstens der Hälfte der Anzahl der E/A-Server entsprechen. Berücksichtigen Sie beim Setzen dieses Parameters andere Parameter wie PREFETCHSIZE, EXTENTSIZE, NUM_IOSERVERS, die Pufferpoolgröße und DB2_BLOCK_BASED_BP sowie Auslastungsmerkmale wie die Anzahl aktueller Benutzer. Wenn Sie denken, dass die Standardwerte für Ihre Umgebung zu klein sind, erhöhen Sie die Werte zuerst nur ein wenig. Sie könnten z. B. NUMPREFETCHQUEUES=4 und PREFETCHQUEUESIZE=200 festlegen. Nehmen Sie Änderungen an diesen Parametern kontrolliert vor, so dass Sie die Auswirkungen der Änderung überwachen und beurteilen können. Tabelle 6. Überblick über die neuen Parameter Parametername Standardwert Gültiger Bereich NUMPREFETCHQUEUES 1 1 bis NUM_IOSERVERS Wenn der Parameter auf einen niedrigeren Wert als 1 eingestellt ist, ändern Sie den Wert in 1. Wenn er auf einen höheren Wert als NUM_IOSERVERS eingestellt ist, setzen Sie ihn auf den Wert von NUM_IOSERVERS. PREFETCHQUEUESIZE max(100,2*NUM_IOSERVERS) 1 bis 32767 Wenn der Parameter auf einen niedrigeren Wert als 1 eingestellt ist, setzen Sie ihn auf den Standardwert. Wenn er auf einen höheren Wert als 32767 eingestellt ist, setzen Sie ihn auf 32767. 10.5.3 Korrekturen und Ergänzungen zu verschiedenen Registrierungsvariablen Die Registrierungsvariable DB2_NEWLOGPATH2 ist verfügbar für alle Betriebssysteme. Eine neue Variable, DB2_ROLLFORWARD_NORETRIEVE, wurde eingeführt. Die korrekten Informationen für beide Variablen sind unten aufgeführt. Tabelle 7. Verschiedene Variablen Variablenname Betriebssystem Werte Beschreibung DB2_NEWLOGPATH2 ALLE Standardeinstellung=NO Werte: YES oder NO Mit diesem Parameter können Sie angeben, ob ein sekundärer Pfad zur Implementierung von doppelter Protokollierung verwendet werden soll. Der verwendete Pfad wird generiert, indem eine "2" an den aktuellen Wert des Datenbankkonfigurationsparameters logpath angehängt wird. DB2_ROLLFORWARD_NORETRIEVE ALLE Standardeinstellung=(nicht festgelegt) Werte: YES oder NO Wenn der Datenbankkonfigurationsparameter USEREXIT aktiviert ist, werden Protokolldateien automatisch bei aktualisierenden Wiederherstellungen vom Archiv abgerufen. Mit der Variablen DB2_ROLLFORWARD_NORETRIEVE können Sie angeben, dass aktualisierende Wiederherstellungen keine Protokolldateien aus dem Archiv abrufen sollen. Diese Variable ist standardmäßig inaktiviert. Setzen Sie diese Variable auf YES, wenn Sie nicht wollen, dass bei der aktualisierenden Wiederherstellung Protokolldateien automatisch abgerufen werden. Setzen Sie die Variable z. B. auf YES in einer Konfiguration mit Bereitschaftsmodus (Hot Standby), wenn Sie verhindern wollen, dass Protokolleinträge, die von einer fehlerhaften Anwendung erzeugt wurden, das Ausweichsystem beschädigen. 10.5.4 Korrekturen und Ergänzungen zu allgemeinen Registrierungsvariablen Eine neue Variable, DB2_REDUCED_OPTIMIZATION, wurde eingeführt. Tabelle 8. Allgemeine Registrierungsvariable Variablenname Betriebssystem Werte Beschreibung DB2_REDUCED_OPTIMIZATION ALLE Standardeinstellung=NO Werte: YES, NO oder beliebige ganze Zahl Mit dieser Registrierungsvariablen können Sie einige der Optimierungstechniken bei spezifischen Optimierungsstufen inaktivieren. Wenn Sie die Anzahl der verwendeten Optimierungstechniken verringern, verringern Sie auch die Dauer und die Ressourcennutzung der Optimierung. Anmerkung: Die Optimierungsdauer und die Ressourcennutzung können zwar verringert werden, das Risiko eines nicht optimalen Datenzugriffsplans erhöht sich jedoch. Wenn die Variable auf NO gesetzt ist: Das Optimierungsprogramm ändert seine Optimierungstechniken nicht. Wenn die Variable auf YES gesetzt ist: Wenn die Optimierungsstufe maximal 5 (Standardeinstellung) beträgt, inaktiviert das Optimierungsprogramm einige Optimierungstechniken, die beträchtliche Vorbereitungszeit und Ressourcen benötigen würden, die jedoch in der Regel keinen besseren Zugriffsplan ergeben. Wenn die Optimierungsstufe genau 5 ist, reduziert das Optimierungsprogramm einige zusätzliche Techniken oder inaktiviert sie. Dadurch können die Optimierungsdauer und die Ressourcennutzung weiter verringert werden, aber auch das Risiko eines nicht optimalen Zugriffsplans kann weiter erhöht werden. Bei Optimierungsstufen unter 5 sind einige dieser Techniken eventuell sowieso nicht in Verwendung. Wenn sie jedoch in Verwendung sind, bleiben sie weiter in Verwendung. Wenn die Variable auf eine ganze Zahl gesetzt ist: Die Auswirkung ist dieselbe wie bei YES, mit dem folgenden zusätzlichen Verhalten für dynamisch vorbereitete Abfragen, die mit Stufe 5 optimiert werden: Wenn die Gesamtanzahl von Verknüpfungen in einem Abfrageblock die Einstellung übersteigt, wechselt das Optimierungsprogramm zur schnellen Verknüpfungsaufzählung statt weitere Optimierungstechniken zu inaktivieren, wie oben für Optimierungsstufe 5 beschrieben ist, was impliziert, dass die Abfrage mit einer Stufe ähnlich Optimierungsstufe 2 optimiert wird. Weitere Informationen zu schneller und dynamischer Verknüpfungsaufzählung finden Sie unter "Suchstrategien zur Auswahl der optimalen Verknüpfungsmethode" im Handbuch Systemverwaltung: Optimierung. Beachten Sie, dass die dynamische Optimierungsverringerung bei Optimierungsstufe 5, wie sie in "Anpassen der Optimierungsklasse" im Handbuch Systemverwaltung: Optimierung beschrieben ist, Vorrang hat vor dem Verhalten für die Optimierungsstufe 5 bei DB2_REDUCED_OPTIMIZATION = YES sowie vor dem Verhalten für die Einstellung auf eine ganze Zahl. Administering Satellites Guide and Reference 11.1 Setting up Version 7.2 DB2 Personal Edition and DB2 Workgroup Edition as Satellites The sections that follow describe how to set up Windows-based Version 7.2 DB2 Personal Edition and DB2 Workgroup Edition systems so that they can be used as fully functional satellites in a satellite environment. For information about the terms and concepts used in the information that follows, refer to the Administering Satellites Guide and Reference. You can find this book at the following URL: http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v6pubs.d2w/en_main For Technotes that supplement the information in the Administering Satellites Guide and Reference, refer to the following URL: http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/index.d2w/report 11.1.1 Prerequisites To set up either DB2 Personal Edition or DB2 Workgroup Edition as satellites, you require the following: A DB2 control server The DB2 control server is a DB2 Enterprise Edition system that runs on Windows NT or AIX, and has the Control Server component installed. The DB2 Enterprise Edition system that you use must be at Version 6 with FixPak 2 or higher, or Version 7 at any FixPak level. If you have a Version 6 Enterprise Edition system that you want to use as the DB2 control server, see 11.1.3, Installing FixPak 2 or Higher on a Version 6 Enterprise Edition System. If you are using Version 7 and do not have the Control Server component installed, install this component, re-install any FixPaks that you have already installed, then create the DB2 control server instance and satellite control database. Refer to the Administering Satellites Guide and Reference for instructions on creating these objects. Anmerkung: If you are installing a Version 7.2 Enterprise Edition system on Windows NT for use as the DB2 control server, and you want to perform a response file installation, see the Technote entitled DB2 Control Server Response File Keywords for information about the keywords to specify in the response file. The DB2 control server instance and the satellite control database The DB2 control server instance is typically called DB2CTLSV, and the satellite control database is called SATCTLDB. The DB2 control server instance and the satellite control database are on the Enterprise Edition system, and, on Windows NT, are automatically created when you install DB2 with the Control Server component. If you install DB2 on AIX, see the Administering Satellites Guide and Reference for information about creating the DB2 control server instance and the satellite control database. The Satellite Administration Center The Satellite Administration Center is the set of GUI tools that you use to set up and administer the satellite environment. You access this set of tools from the Control Center. For more information about the Satellite Administration Center and the satellite environment, see the Administering Satellites Guide and Reference, and the online help that is available from the Satellite Administration Center. If you are running a Version 6 Control Center, see 11.1.4, Upgrading a Version 6 Control Center and Satellite Administration Center. If you have not already used the Satellite Administration Center to set up the satellite environment and to create the object that represents the new satellite in the Satellite Administration Center, you should do so before installing the satellite. For more information, see the description of how to set up and test a satellite environment in the Administering Satellites Guide and Reference. A Version 7.2 Personal Edition or Workgroup Edition system that you want to use as a satellite. 11.1.1.1 Installation Considerations When you install either DB2 Personal Edition or DB2 Workgroup Edition, you do not have to select any special component to enable either system to synchronize. If you intend to perform a response file installation, see Performing a Response File Installation for the keywords that you should specify when installing the Version 7.2 system. If you are performing an interactive installation of your Version 7.2 system, see 11.1.2, Configuring the Version 7.2 System for Synchronization after you finish installing DB2 for values that you must set at the Version 7.2 system to enable it to synchronize. Performing a Response File Installation If you are performing a response file installation of Version 7.2 DB2 Personal Edition or DB2 Workgroup Edition, you can set the following keywords in the response file. If you decide to not specify one or more of these keywords during the response file installation, see 11.1.2, Configuring the Version 7.2 System for Synchronization for additional steps that you must perform after installing DB2 to enable the Version 7.2 system to synchronize. You can also use the instructions in this section if you want to change any values that were specified during the response file installation. db2.db2satelliteid Sets the satellite ID on the system. Anmerkung: If you do not specify this keyword, the satellite ID is automatically set to the user ID that was used to install DB2. If you want to use this user ID as the satellite ID, you do not have to specify a value for this keyword. db2.db2satelliteappver Sets the application version on the system. Anmerkung: If you do not specify this keyword, the application version on the satellite is automatically set to V1R0M00. If you want to use this value as the application version, you do not have to specify a value for this keyword. db2.satctldb_username Sets the user name to be used for the system to connect to the satellite control database. db2.satctldb_password Sets the password that the user name passes to the DB2 control server when the user name connects to the satellite control database. After you complete the response file installation, the Version 7.2 system is ready to synchronize. You should issue the db2sync -t command on the satellite to verify that the values specified on the satellite are correct, and that the satellite can connect to the satellite control database. For additional information about performing a response file installation, refer to the Administering Satellites Guide and Reference. Anmerkungen: In Version 7, user IDs and passwords are required for the creation of all services on Windows NT and Windows 2000. These user IDs and passwords are specified in the response file by keyword pairs. The first keyword pair found in the response file becomes the default user ID and password for all services, unless you provide an override for a service by specifying the specific keyword pair for that service. In Version 6, the admin.userid and the admin.password keywords could be specified during a response file installation of DB2 Satellite Edition to specify the user ID and password that would be used by the Remote Command Service. For Version 7.2 Personal Edition and Workgroup Edition, if you specify these keywords, they are used for the DB2DAS00 instance on the Version 7.2 system. For a DB2 Version 7.2 system, the Remote Command Service will use the user ID and password that is used by the DB2 instance on the system. If you do not specify values for db2.userid and db2.password, the defaulting rule described above applies. In Version 6, you could create a database when installing DB2 Satellite Edition using a response file installation. You cannot create a database during a response file installation on the Version 7.2 Personal Edition or Workgroup Edition system that you intend to use as a satellite. The following keywords (which are described in the Administering Satellites Guide and Reference), are not supported: db2.userdb_name db2.userdb_recoverable db2.userdb_rep_src 11.1.2 Configuring the Version 7.2 System for Synchronization If you install the Version 7.2 system interactively, several values must be set on the DB2 Personal Edition or DB2 Workgroup Edition system after installing DB2 before the system can synchronize. Anmerkung: You can execute an operating system script on the system to set all values at the satellite except for the user ID and password that the satellite uses to connect to the satellite control database (see step 4). Set the satellite ID by using the db2set command. If you install DB2 Personal Edition or DB2 Workgroup Edition interactively, the satellite ID is automatically set to the user ID that was used to install DB2. If you want to use this user ID as the satellite ID, you do not have to perform this step. For information about setting the satellite ID, see the Administering Satellites Guide and Reference. Set the application version on the satellite by using the db2sync -s command. If you install DB2 Personal Edition or DB2 Workgroup Edition interactively, the application version on the satellite is automatically set to V1R0M00. If you want to use this value as the application version, you do not have to perform this step. You can use the db2sync -g command on the satellite to view the current setting of the application version. If you want to change this value, issue the db2sync -s command. You are prompted to provide a new value for the application version. For more information about setting the application version, see the Administering Satellites Guide and Reference. Issue the catalog node and catalog database commands on the satellite to catalog the DB2 control server instance and the satellite control database, SATCTLDB, at the satellite. You can also use the db2sync -t command on the satellite to open the DB2 Synchronizer application in test mode. If the SATCTLDB database is not cataloged at the satellite when you issue the command, the Catalog Control Database window opens. You can either use the DB2 discovery feature that is available from the Catalog Control Database window to catalog the DB2 control server and the SATCTLDB database, or you can type the hostname and server name in this window. You will also be prompted to specify the user ID and password that the satellite will use to connect to the satellite control database, as described in step 4. Anmerkung: After you install Version 7.2 DB2 Personal Edition or DB2 Workgroup Edition interactively, the DB2 Synchronizer does not start automatically in test mode (as was the case for Version 6 DB2 Satellite Edition). Issue the db2sync -t command on the satellite to: Specify the user ID and the password that the satellite will use to connect to the satellite control database If synchronization credentials are not already stored at the satellite, the Connect to Control Database window opens. You must use this window to specify the user ID and password the satellite will use to connect to the satellite control database. Verify the values that are set on the satellite are correct Verify that the satellite can connect to the satellite control database After you complete these configuration tasks, the Version 7.2 system is ready to synchronize. 11.1.3 Installing FixPak 2 or Higher on a Version 6 Enterprise Edition System For a Version 6 Enterprise Edition system to be used as a DB2 control server, the system must be at FixPak 2 or higher. The sections that follow describe the tasks that you must perform to upgrade a Version 6 Enterprise Edition system on Windows NT or AIX for use as a DB2 control server. If you are using a Version 6 Control Center, also perform the steps in 11.1.4, Upgrading a Version 6 Control Center and Satellite Administration Center to verify that you have the correct level of the Control Center and the Satellite Administration Center to administer the satellite environment. 11.1.3.1 Upgrading Version 6 DB2 Enterprise Edition for Use as the DB2 Control Server For a Version 6 DB2 Enterprise Edition system to be used as the DB2 control server, it must be installed with the Control Server component, and DB2 Enterprise Edition should be at the FixPak 2 service level, or higher. Depending on whether the DB2 control server component is installed, and the service level of DB2 Enterprise Edition, you will have to perform one of the following tasks: Install the DB2 control server component to an existing DB2 Enterprise Edition V6.1 system and install FixPak 2 or higher. Then update the satellite control database (SATCTLDB) on the system. Upgrade an already installed DB2 control server to the FixPak 2 level or higher. Use the information that follows to identify which of the two preceding tasks you need to perform, and the steps that apply to your situation. The following is a summary of the steps that you will perform. First, assess the current state of your DB2 Enterprise Edition installation. You will determine whether the Control Server component is installed, and the service level of DB2. Second, based on the state information that you obtain, you will determine what needs to be done. Third, you will perform the necessary steps to upgrade DB2 Enterprise Edition. The DB2 control server can only run on DB2 Enterprise Edition for Windows NT and AIX. Continue with the instructions that are appropriate for your platform: Upgrading DB2 Enterprise Edition on Windows NT Upgrading DB2 Enterprise Edition on AIX Upgrading DB2 Enterprise Edition on Windows NT Use the information in the sections that follow to determine the current service level of your Version 6 DB2 Enterprise Edition system, and the steps that you need to perform to update the system to the FixPak 2 service level or higher. You will need to perform the steps of one or more of the following sections: Assessing DB2 Enterprise Edition on Windows NT Determining What Needs to Be Done Installing the Control Server Component on Windows NT Installing FixPak 2 or Higher on Windows NT Upgrading the SATCTLDB on Windows NT Assessing DB2 Enterprise Edition on Windows NT If you have DB2 Enterprise Edition installed on Windows NT, perform the following steps: Check whether the Control Server component is installed. Use the Registry Editor to display the list of installed components: Enter regedit at a command prompt. Under the HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\Components registry key, check whether the Control Server is listed. If it is not listed, the control server is not installed. Determine the service level of DB2 Enterprise Edition. Issue the db2level command from a command prompt. Use the table that follows to interpret the output: Values of Key Fields in the db2level output Your DB2 system is at: Release Level Informational Tokens SQL06010 01010104 db2_v6, n990616 Version 6.1 base SQL06010 01020104 DB2 V6.1.0.1, n990824, WR21136 Version 6.1 plus FixPak 1 SQL06010 01030104 DB2 V6.1.0.6, s991030, WR21163 or DB2 V6.1.0.9, s000101, WR21173 Version 6.1 plus FixPak 2 Anmerkung: If the level is greater than 01030104, your system is at a higher FixPak than FixPak 2. Record the information that you find, and continue at Determining What Needs to Be Done. Determining What Needs to Be Done Using the information that you have gathered, find the row in the following table that applies to your situation, and follow the steps that are required to prepare your DB2 Enterprise Edition system to support the DB2 control server at the FixPak 2 level or higher. Sections that follow the table provide instructions for performing the required steps. Consider checking off each step as you perform it. Only perform the steps that apply to your situation. Control Server Component Installed Service Level of DB2 Enterprise Edition System Steps required to prepare your DB2 Enterprise Edition system No Version 6.1 base, or Version 6.1 plus FixPak 1, or Version 6.1 plus FixPak 2 or higher Perform the following steps: Installing the Control Server Component on Windows NT Installing FixPak 2 or Higher on Windows NT Upgrading the SATCTLDB on Windows NT Yes Version 6.1 base, or Version 6.1 plus FixPak 1 Perform the following steps: Installing FixPak 2 or Higher on Windows NT Upgrading the SATCTLDB on Windows NT Yes Version 6.1, plus FixPak 2 or higher Perform the following step: Upgrading the SATCTLDB on Windows NT Installing the Control Server Component on Windows NT To install the Control Server component on Windows NT: Ensure that all database activity on the system is complete before proceeding. Insert the DB2 Universal Database Enterprise Edition Version 6.1 CD in the CD drive. If the installation program does not start automatically, run the setup command in the root of the CD to start the installation process. When prompted, shut down all the processes that are using DB2. On the Welcome window, select Next. On the Select Products window, ensure that DB2 Enterprise Edition is selected. On the Select Installation Type panel, click Custom. On the Select Components panel, ensure that the Control Server component is selected, and click Next. Anmerkung: If you select other components that are not already installed on your system, these components will be installed too. You cannot alter the drive or directory in which DB2 is installed. On the Configure DB2 Services panels, you can modify the protocol values and the start-up options for the Control Server instance, or take the default values. Either modify the defaults and click Next, or click Next to use the defaults. Click Next on the Start Copy files window to begin the installation process. When the file copying process is complete, you have the option of rebooting your system. You should reboot now. The changes made to the system for the Control Server do not take effect until the system is rebooted. When the installation process is complete and you have rebooted the system, the satellite control database (SATCTLDB) that was created as part of the Control Server installation must be cataloged in the DB2 instance if you want to use the Control Center and Satellite Administration Center locally on the system. To catalog the SATCTLDB database: Open a DB2 Command Window by selecting Start>Programs>DB2 for Windows NT>Command Window Ensure that you are in the db2 instance. Issue the set command and check the value of db2instance. If the value is not db2, issue the following command: set db2instance=db2 Catalog the db2ctlsv instance by entering the following command: db2 catalog local node db2ctlsv instance db2ctlsv Catalog the SATCTLDB database by entering the following command db2 catalog database satctldb at node db2ctlsv Commit the cataloging actions by entering the following command: db2 terminate Close the DB2 Command Window. Installing FixPak 2 or Higher on Windows NT To upgrade an existing Version 6 DB2 Enterprise Edition system on Windows NT to FixPak 2 or higher, either: Download the latest FixPak for DB2 Enterprise Edition for Windows NT V6.1 from the Web, along with its accompanying readme. The FixPak can be downloaded by following the instructions at URL: http://www.ibm.com/software/data/db2/db2tech/version61.html Install the FixPak following the instructions in the readme.txt file. Use a DB2 Universal Database, Version 6.1 FixPak for Windows NT CD that is at FixPak 2 level or higher, and follow the instructions in the readme.txt file in the WINNT95 directory on the CD to complete the installation. Upgrading the SATCTLDB on Windows NT To upgrade the SATCTLDB database on Windows NT Determine the level of the SATCTLDB database: Log on with a user ID that has local administrative authority on the Windows NT system. Open a DB2 Command Window by selecting Start>Programs>DB2 for Windows NT>Command Window. Connect to the SATCTLDB by entering the following command db2 connect to satctldb Determine if the trigger I_BATCHSTEP_TRGSCR exists in the database by issuing the following query: db2 select name from sysibm.systriggers where name='I_BATCHSTEP_TRGSCR' Record the number of rows that are returned. Enter the following command to close the connection to the database: db2 connect reset If step 1d returned one row, the database is at the correct level. In this situation, skip step 2, and continue at step 3. If zero (0) rows are returned, the database is not at the correct level, and must be upgraded, as described in step 2, before you can perform step 3. To upgrade the SATCTLDB database, perform the following steps. Enter all commands in the DB2 Command Window: Switch to the directory \misc, where is the install drive and path, for example c:\sqllib. Ensure that you are in the db2ctlsv instance. Issue the set command and check the value of db2instance. If the value is not db2ctlsv, issue the following command: set db2instance=db2ctlsv Drop the SATCTLDB database by entering the following command: db2 drop database satctldb Create the new SATCTLDB database by entering the following command: db2 -tf satctldb.ddl -z satctldb.log Issue the following command: db2 terminate Bind the db2satcs.dll stored procedure to the SATCTLDB database. Perform the following steps: Connect to the SATCTLDB database by entering the following command db2 connect to satctldb Switch to the directory \bnd, where is the install drive and path, for example c:\sqllib. Issue the bind command, as follows: db2 bind db2satcs.bnd Enter the following command to close the connection to the database: db2 connect reset Close the DB2 Command Window. Upgrading DB2 Enterprise Edition on AIX Use the information in the sections that follow to determine the current service level of your Version 6 DB2 Enterprise Edition system, and the steps that you need to perform to update the system to the FixPak 2 service level, or higher. You will need to perform the steps of one or more of the following sections: Assessing DB2 Enterprise Edition on AIX Determining What Needs to Be Done Installing the Control Server Component on AIX Installing FixPak 2 or Higher on AIX Upgrading the SATCTLDB Database on AIX Assessing DB2 Enterprise Edition on AIX If you have Version 6 DB2 Enterprise Edition installed on AIX, perform the following steps: Check whether the Control Server component is installed. Enter the following command: lslpp -l | grep db2_06_01.ctsr If no data is returned, the Control Server component is not installed. Determine the service level of the DB2 Enterprise Edition. Log on as a DB2 instance owner, and issue the db2level command. Use the table that follows to interpret the output: Values of Key Fields in the db2level output Your DB2 system is at: Release Level Informational Tokens SQL06010 01010104 db2_v6, n990616 Version 6.1 base SQL06010 01020104 DB2 V6.1.0.1, n990824, U465423 Version 6.1 plus FixPak 1 SQL06010 01030104 DB2 V6.1.0.6, s991030, U468276 or DB2 V6.1.0.9, s000101, U469453 Version 6.1 plus FixPak 2 Anmerkung: If the level is greater than 01030104, your system is at a higher FixPak than FixPak 2. Record the information that you find, and continue at Determining What Needs to Be Done. Determining What Needs to Be Done Using the information that you have gathered, find the row in the following table that applies to your situation, and follow the steps that are required to prepare your Version 6 DB2 Enterprise Edition system to support the DB2 control server at the FixPak 2 level. Sections that follow the table provide instructions for performing the required steps. Consider checking off each step as you perform it. Only perform the steps that apply to your situation. Control Server Component Installed Service Level of DB2 Enterprise Edition System Steps required to prepare your DB2 Enterprise Edition system No Version 6.1 base, or Version 6.1 plus FixPak 1, or Version 6.1 plus FixPak 2 or higher Perform the following steps: Installing the Control Server Component on AIX Installing FixPak 2 or Higher on AIX Upgrading the SATCTLDB Database on AIX Yes Version 6.1 base, or Version 6.1 plus FixPak 1 Perform the following steps: Installing FixPak 2 or Higher on AIX Upgrading the SATCTLDB Database on AIX Yes Version 6.1, plus FixPak 2 or higher Perform the following step: Upgrading the SATCTLDB Database on AIX Installing the Control Server Component on AIX To install the Control Server component on AIX Log on as a user with root authority. Insert the DB2 Universal Database Enterprise Edition Version 6.1 CD in the CD drive. Change to the directory where the CD is mounted, for example, cd /cdrom. Type the following command to start the DB2 installer: ./db2setup When the DB2 Installer window opens, use the tab key to select the Install option, and press Enter. Locate the Enterprise Edition line and use the tab key to select the Customize option beside it. Press Enter. Select the DB2 Control Server component, tab to OK, and press Enter. Follow the instructions on the remaining windows to complete the installation of the DB2 Control Server component. When the installation process is complete, create the DB2CTLSV instance and the SATCTLDB database. To perform these tasks, follow the detailed instructions in "Setting up the DB2 Control Server on AIX" in Chapter 13 of the Administering Satellites Guide and Reference. Installing FixPak 2 or Higher on AIX To upgrade an existing DB2 Enterprise Edition system AIX to FixPak 2 or higher, either: Download the latest FixPak for DB2 Enterprise Edition for AIX V6.1 from the Web, along with its accompanying FixPak readme. The FixPak can be downloaded by following the instructions at URL: http://www.ibm.com/software/data/db2/db2tech/version61.html Install the FixPak following the instructions in the FixPak readme file. Use a DB2 Universal Database, Version 6.1 FixPak for AIX CD that is at FixPak 2 level or higher, and follow the instructions in the readme directory on the CD to complete the installation. Ensure that you have updated the DB2CTLSV instance by running the db2iupdt command as instructed in the FixPak readme file. Upgrading the SATCTLDB Database on AIX To upgrade the SATCTLDB database on AIX: Determine the level of the SATCTLDB database: Log in as db2ctlsv. Ensure that the database server has been started. If the server is not started, issue the db2start command. Connect to the SATCTLDB database by entering the following command: db2 connect to satctldb Determine if the trigger I_BATCHSTEP_TRGSCR exists in the database by issuing the following query: db2 "select name from sysibm.systriggers where name='I_BATCHSTEP_TRGSCR'" Record the number of rows that are returned. Enter the following command to close the connection to the database: db2 connect reset If step 1d returned one row, the database is at the correct level. In this situation, skip step 2, and continue at step 3. If zero (0) rows are returned, the database is not at the correct level, and must be upgraded, as described in step 2, before you can perform step 3. To upgrade the SATCTLDB database to the FixPak 2 level, perform the following steps. Enter all commands in the DB2 Command Window: Switch to the $HOME/sqllib/misc directory. Drop the SATCTLDB database by entering the following command: db2 drop database satctldb Create the new SATCTLDB database by entering the following command: db2 -tf satctldb.ddl -z $HOME/satctldb.log Issue the following command: db2 terminate Bind the db2satcs.dll stored procedure to the SATCTLDB database. Perform the following steps: Connect to the SATCTLDB database by entering the following command db2 connect to satctldb Switch to the directory $HOME/sqllib/bnd. Issue the bind command, as follows: db2 bind db2satcs.bnd Enter the following command to close the connection to the database: db2 connect reset 11.1.4 Upgrading a Version 6 Control Center and Satellite Administration Center To use a Version 6 Control Center and Satellite Administration Center with a Version 6 DB2 control server and satellite control database (SATCTLDB) that have been upgraded to FixPak 2 or higher, the tools must also be upgraded to FixPak 2 or higher. If the Control Center and the Satellite Administration Center are running on the same system as the DB2 control server, they were upgraded when the DB2 Enterprise Edition system was upgraded to FixPak 2. However, if you run these tools on another system, you must upgrade this system to the FixPak 2 level or higher. To upgrade this system to FixPak 2 or higher: Download the latest FixPak for your product at the V6.1 level from the Web, along with its accompanying readme. FixPaks can be downloaded by following the instructions at URL: http://www.ibm.com/software/data/db2/db2tech/version61.html Install the FixPak following the instructions in the readme file. Use a DB2 Universal Database, Version 6.1 FixPak CD for the operating system that you are running that is at FixPak 2 level or higher, and follow the instructions in the readme to complete the installation. Command Reference 12.1 Aktualisierung verfügbar Das Handbuch Command Reference wurde für FixPak 4 aktualisiert, und die aktuelle PDF-Version kann online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. Die vorliegenden Informationen gelten zusätzlich zum aktualisierten Handbuch. Die gesamte aktualisierte Dokumentation ist auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. 12.2 db2updv7 - Update Database to Version 7 Current Fix Level This command updates the system catalogs in a database to support the current FixPak in the following ways: Enables the use of the new built-in functions: ABS, DECRYPT_BIN, DECRYPT_CHAR, ENCRYPT, GETHINT, MULTIPLY_ALT, and ROUND. Enables the use of the new built-in functions for Unicode databases: DATE(vargraphic), TIME(vargraphic), TIMESTAMP(vargraphic), GRAPHIC(datetime-expression), GRAPHIC(date-expression), GRAPHIC(time-expression), and VARGRAPHIC(datetime-expression). Enables the use of the new built-in procedures (GET_ROUTINE_SAR and PUT_ROUTINE_SAR). Adds or applies corrections to WEEK_ISO and DAYOFWEEK_ISO functions on Windows and OS/2 databases. Applies a correction to table packed descriptors for tables migrated from Version 2 to Version 6. Creates the view SYSCAT.SEQUENCES. Creates the system objects needed in order to use a DB2 version 8 client to connect to a DB2 version 7 server. Authorization sysadm Required Connection Database. This command automatically establishes a connection to the specified database. Command Syntax >>-db2updv7---d--database_name--+--------------------------+----> '--u--userid---p--password-' >--+----+------------------------------------------------------>< '--h-' Command Parameters -d database-name Specifies the name of the database to be updated. -u userid Specifies the user ID. -p password Specifies the password for the user. -h Displays help information. When this option is specified, all other options are ignored, and only the help information is displayed. Example After installing the FixPak, update the system catalog in the sample database by issuing the following command: db2updv7 -d sample Usage Notes This tool can only be used on a database running DB2 Version 7.1 or Version 7.2 with at least FixPak 2 installed. If the command is issued more than once, no errors are reported and each of the catalog updates is applied only once. To enable the new built-in functions, all applications must disconnect from this database and the database must be deactivated if it has been activated. 12.3 Additional Context for ARCHIVE LOG Usage Note The usage notes for ARCHIVE LOG currently state that using this command will cause a database to lose a portion of its log sequence number (LSN) space, and thereby hasten the exhaustion of valid LSNs. To put this space usage into context, if you have a log file size of 100MB and run ARCHIVE LOG every five minutes, it will still take approximately 40 years to exhaust the valid LSNs. Under most operating conditions, you will not experience an impact. 12.4 REBIND The syntax diagram for the REBIND command should appear as follows: Missing value Befehlssyntax >>-REBIND--+---------+--package-name----------------------------> '-PACKAGE-' .-ANY----------. >--RESOLVE--+-CONSERVATIVE-+----------------------------------->< 12.5 RUNSTATS In the documentation for the RUNSTATS command, the last paragraph of the "Usage Notes" has incorrect information. The last paragraph currently states what happens when inconsistencies are found when running the RUNSTATS command with and without distribution or index statistics. The statistics that are dropped or retained are not stated correctly. What follows are the correct statements about what happens. If you issue RUNSTATS on a table, then previously collected distribution statistics are dropped. If you issue RUNSTATS on indexes only, then previously collected distribution statistics are retained. 12.6 db2inidb - Initialize a Mirrored Database The description of the RELOCATE USING configfile parameter should appear as follows: Specifies that the database files are to be relocated based on the information listed in the configuration file prior to initializing the database as a snapshot, standby or mirror. Anmerkung: For information on the format of the configuration file, see the Data Movement Utilities Guide and Reference. 12.6.1 Usage Information If the RELOCATE USING configfile parameter is specified and the database is relocated successfully, then the configuration file is copied into the database directory and renamed db2path.cfg. During any subsequent crash recoveries or rollfoward recoveries, this configuration file is used to dynamically rename the container paths during the log file processing. If you initialize a snapshot or a mirror database, then the configuration file is removed automatically after the recovery completes. If you initialize a standby database, then the configuration file is not only removed after the recovery completes but is also removed if you cancel the recovery process. If you are working with a standby database that you are keeping in the pending state so that you can continually roll it forward, and you add new containers to the original database, then you can manually update the db2path.cfg file to indicate where the containers should be stored for the standby database. If you do not specify a location for the new containers, then DB2 will attempt to store them in the same location as the originals. 12.7 db2relocatedb (new command) db2relocatedb - Relocate Database Renames a database, or relocates a database or part of a database (e.g., container, log directory) as specified in the configuration file provided by the user. This tool makes the necessary changes to the DB2 instance and database support files. Berechtigung None Erforderliche Verbindung None Befehlssyntax >>-db2relocatedb---f--configFilename--------------------------->< Befehlsparameter -f configFilename Specifies the name of the file containing configuration information necessary for relocating the database. This can be a relative or absolute filename. The format of the configuration file is: DB_NAME=oldName,newName DB_PATH=oldPath,newPath INSTANCE=oldInst,newInst NODENUM=nodeNumber LOG_DIR=oldDirPath,newDirPath CONT_PATH=oldContPath1,newContPath1 CONT_PATH=oldContPath2,newContPath2 ... Where: DB_NAME Specifies the name of the database being relocated. If the database name is being changed, both the old name and the new name must be specified. This is a required field. DB_PATH Specifies the path of the database being relocated. This is the path where the database was originally created. If the database path is changing, both the old path and new path must be specified. This is a required field. INSTANCE Specifies the instance where the database exists. If the database is being moved to a new instance, both the old instance and new instance must be specified. This is a required field. NODENUM Specifies the node number for the database node being changed. The default is 0. LOG_DIR Specifies a change in the location of the log path. If the log path is being changed, then both the old path and new path must be specified. This specification is optional if the log path resides under the database path, in which case the path is updated automatically. CONT_PATH Specifies a change in the location of table space containers. Both the old and new container path must be specified. Multiple CONT_PATH lines can be provided if there are multiple container path changes to be made. This specification is optional if the container paths reside under the database path, in which case the paths are updated automatically. Anmerkung: Blank lines or lines beginning with a comment character (#) will be ignored. Beispiele Example 1 To change the name of the database TESTDB to PRODDB in the instance DB2INST1 that resides on the path /home/db2inst1, create the following configuration file: DB_NAME=TESTDB,PRODDB DB_PATH=/home/db2inst1 INSTANCE=db2inst1 NODENUM=0 Save the configuration file as relocate.cfg and use the following command to make the changes to the database files: db2relocatedb -f relocate.cfg Example 2 To move the database DATAB1 from the instance JSMITH on the path /dbpath to the instance PRODINST do the following: Move the files in the directory /dbpath/jsmith to /dbpath/prodinst. Use the following configuration file with the db2relocatedb command to make the changes to the database files: DB_NAME=DATAB1 DB_PATH=/dbpath INSTANCE=jsmith,prodinst NODENUM=0 Example 3 The database PRODDB exists in the instance INST1 on the path /databases/PRODDB. The location of two tablespace containers needs to be changed as follows: SMS container /data/SMS1 needs to be moved to /DATA/NewSMS1. DMS container /data/DMS1 needs to be moved to /DATA/DMS1. After the physical directories and files have been moved to the new locations, the following configuration file can be used with the db2relocatedb command to make changes to the database files so that they recognize the new locations: DB_NAME=PRODDB DB_PATH=/databases/PRODDB INSTANCE=inst1 NODENUM=0 CONT_PATH=/data/SMS1,/DATA/NewSMS1 CONT_PATH=/data/DMS1,/DATA/DMS1 Example 4 The database TESTDB exists in the instance DB2INST1 and was created on the path /databases/TESTDB. Table spaces were then created with the following containers: TS1 TS2_Cont0 TS2_Cont1 /databases/TESTDB/TS3_Cont0 /databases/TESTDB/TS4/Cont0 /Data/TS5_Cont0 /dev/rTS5_Cont1 TESTDB is to be moved to a new system. The instance on the new system will be NEWINST and the location of the database will be /DB2. When moving the database, all of the files that exist in the /databases/TESTDB/db2inst1 directory must be moved to the /DB2/newinst directory. This means that the first 5 containers will be relocated as part of this move. (The first 3 are relative to the database directory and the next 2 are relative to the database path.) Since these containers are located within the database directory or database path, they do not need to be listed in the configuration file. If the 2 remaining containers are to be moved to different locations on the new system, they must be listed in the configuration file. After the physical directories and files have been moved to their new locations, the following configuration file can be used with db2relocatedb to make changes to the database files so that they recognize the new locations: DB_NAME=TESTDB DB_PATH=/databases/TESTDB,/DB2 INSTANCE=db2inst1,newinst NODENUM=0 CONT_PATH=/Data/TS5_Cont0,/DB2/TESTDB/TS5_Cont0 CONT_PATH=/dev/rTS5_Cont1,/dev/rTESTDB_TS5_Cont1 Example 5 The database TESTDB has 2 partitions on nodes 10 and 20. The instance is SERVINST and the database path is /home/servinst on both nodes. The name of the database is being changed to SERVDB and the database path is being changed to /databases on both nodes. In addition, the log directory is being changed on node 20 from /testdb_logdir to /servdb_logdir. Since changes are being made to both nodes, a configuration file must be created for each node and db2relocatedb must be run on each node with the corresponding configuration file. On node 10, the following configuration file will be used: DB_NAME=TESTDB,SERVDB DB_PATH=/home/servinst,/databases INSTANCE=servinst NODE_NUM=10 On node 20, the following configuration file will be used: DB_NAME=TESTDB,SERVDB DB_PATH=/home/servinst,/databases INSTANCE=servinst NODE_NUM=20 LOG_DIR=/testdb_logdir,/servdb_logdir Hinweise zur Verwendung If the instance that a database belongs to is changing, the following must be done before running this command to ensure that changes to the instance and database support files will be made: If a database is being moved to another instance, create the new instance. Copy the files/devices belonging to the databases being copied onto the system where the new instance resides. The path names must be changed as necessary. Change the permission of the files/devices that were copied so that they are owned by the instance owner. If the instance is changing, the tool must be run by the new instance owner. In a EEE environment, this tool must be run against every node that requires changes. A separate configuration file must be supplied for each node, that includes the NODENUM value of the node being changed. For example, if the name of a database is being changed, every node will be affected and the db2relocatedb command must be run with a separate configuration file on each node. If containers belonging to a single node are being moved, the db2relocatedb command only needs to be run once on that node. Siehe auch For more information, see the db2inidb - Initialize a Mirrored Database command in the Command Reference. 12.8 db2move The db2move tool now has two addtional options, --aw and --sn. Full documentation for this tool follows: Database Movement Tool This tool facilitates the movement of large numbers of tables between DB2 databases located on workstations. The tool queries the system catalog tables for a particular database and compiles a list of all user tables. It then exports these tables in PC/IXF format. The PC/IXF files can be imported or loaded to another local DB2 database on the same system, or can be transferred to another workstation platform and imported or loaded to a DB2 database on that platform. Anmerkung: Tables with structured type columns are not moved when this tool is used. Berechtigung This tool calls the DB2 export, import, and load APIs, depending on the action requested by the user. Therefore, the requesting user ID must have the correct authorization required by those APIs, or the request will fail. Befehlssyntax .-------------------------. V | >>-db2move--dbname--action----+---------------------+-+-------->< +--tc--table-creators-+ +--tn--table-names----+ +--sn--schema names---+ +--io--import-option--+ +--lo--load-option----+ +--l--lobpaths--------+ +--u--userid----------+ +--p--password--------+ '--aw-----------------' Befehlsparameter dbname Name of the database. action Must be one of: EXPORT, IMPORT, or LOAD. -tc table-creators. The default is all creators. This is an EXPORT action only. If specified, only those tables created by the creators listed with this option are exported. If not specified, the default is to use all creators. When specifying multiple creators, each must be separated by commas; no blanks are allowed between creator IDs. The maximum number of creators that can be specified is 10. This option can be used with the "-tn" and "-sn" options to select the tables for export. An asterisk (*) can be used as a wildcard character that can be placed anywhere in the string. -tn table-names. The default is all user tables. This is an EXPORT action only. If specified, only those tables whose names match exactly those in the specified string are exported. If not specified, the default is to use all user tables. When specifying multiple table names, each must be separated by commas; no blanks are allowed between table names. The maximum number of table names that can be specified is 10. This option can be used with the "-tc" and "-sn" options to select the tables for export. db2move will only export those tables whose names are matched with specified table names and whose creators are matched with specified table creators. An asterisk (*) can be used as a wildcard character that can be placed anywhere in the string. -sn schema names. The default is ALL SCHEMAS. This is an EXPORT action only. If specified, only those tables whose schemas match exactly those in the specified string are exported. If not specified, the default is to use all schemas. When specifying multiple schema names, each must be separated by commas; no blanks are allowed between schema names. The maximum number of schema names that can be specified is 10. This option can be used with the "-tc" and "-tn" options to select the tables for export. db2move will only export those tables whose names are matched with specified table names, whose schemas are matched with specific table schemas, and whose creators are matched with specified table creators. An asterisk (*) can be used as a wildcard character that can be placed anywhere in the string. Anmerkung: Schema names less than 8 characters in length are padded to be 8 characters long. For example, if you want to include the schemas "AUSER" and "BUSER"and use the wildcard character, you must specify -sn *USER*. -io import-option. The default is REPLACE_CREATE. Valid options are INSERT, INSERT_UPDATE, REPLACE, CREATE, and REPLACE_CREATE. -lo load-option. The default is INSERT. Valid options are INSERT and REPLACE. -l lobpaths. The default is the current directory. This option specifies the absolute path names where LOB files are created (as part of EXPORT) or searched for (as part of IMPORT or LOAD). When specifying multiple LOB paths, each must be separated by commas; no blanks are allowed between LOB paths. If the first path runs out of space (during EXPORT), or the files are not found in the path (during IMPORT or LOAD), the second path will be used, and so on. If the action is EXPORT, and LOB paths are specified, all files in the LOB path directories are deleted, the directories are removed, and new directories are created. If not specified, the current directory is used for the LOB path. -u userid. The default is the logged on user ID. Both user ID and password are optional. However, if one is specified, the other must be specified. If the command is run on a client connecting to a remote server, user ID and password should be specified. -p password. The default is the logged on password. Both user ID and password are optional. However, if one is specified, the other must be specified. If the command is run on a client connecting to a remote server, user ID and password should be specified. -aw allow warnings. Used for the EXPORT action only. If this option is specified, then any tables that receive warnings during export will be included in the db2move.lst file. If the option is omitted, then any tables that cause warnings during export are not included in the db2move.lst file. A table's .ixf file and .msg file are generated regardless of whether or not this option is used. Beispiele db2move sample export This will export all tables in the SAMPLE database; default values are used for all options. db2move sample export -tc userid1,us*rid2 -tn tbname1,*tbname2 This will export all tables created by "userid1" or user IDs LIKE "us%rid2", and with the name "tbname1" or table names LIKE "%tbname2". db2move sample import -l D:\LOBPATH1,C:\LOBPATH2 This example is applicable to OS/2 or the Windows operating system only. The command will import all tables in the SAMPLE database; LOB paths "D:\LOBPATH1" and "C:\LOBPATH2" are to be searched for LOB files. db2move sample load -l /home/userid/lobpath,/tmp This example is applicable to UNIX-based systems only. The command will load all tables in the SAMPLE database; both the /home/userid/lobpath subdirectory and the tmp subdirectory are to be searched for LOB files. db2move sample import -io replace -u userid -p password This will import all tables in the SAMPLE database in REPLACE mode; the specified user ID and password will be used. Hinweise zur Verwendung This tool exports, imports, or loads user-created tables. If a database is to be duplicated from one operating system to another operating system, db2move facilitates the movement of the tables. It is also necessary to move all other objects associated with the tables, such as aliases, views, triggers, user-defined functions, and so on. db2look (DB2 Statistics and DDL Extraction Tool; see the Command Reference) can facilitate the movement of some of these objects by extracting the data definition language (DDL) statements from the database. When export, import, or load APIs are called by db2move, the FileTypeMod parameter is set to lobsinfile. That is, LOB data is kept in separate files from PC/IXF files. There are 26 000 file names available for LOB files. The LOAD action must be run locally on the machine where the database and the data file reside. When the load API is called by db2move, the CopyTargetList parameter is set to NULL; that is, no copying is done. If logretain is on, the load operation cannot be rolled forward later. The table space where the loaded tables reside is placed in backup pending state and is not accessible. A full database backup, or a table space backup, is required to take the table space out of backup pending state. When issued on a Version 5.2 client against a Version 6 database, this tool does not support table or column names that are greater than 18 characters in length. Files Required/Generated When Using EXPORT: Input: None. Output: EXPORT.out The summarized result of the EXPORT action. db2move.lst The list of original table names, their corresponding PC/IXF file names (tabnnn.ixf), and message file names (tabnnn.msg). This list, the exported PC/IXF files, and LOB files (tabnnnc.yyy) are used as input to the db2move IMPORT or LOAD action. tabnnn.ixf The exported PC/IXF file of a specific table. tabnnn.msg The export message file of the corresponding table. tabnnnc.yyy The exported LOB files of a specific table. "nnn" is the table number, "c" is a letter of the alphabet, "yyy" is a number ranging from 001 to 999. These files are created only if the table being exported contains LOB data. If created, these LOB files are placed in the lobpath directories. There are a total of 26 000 possible names for the LOB files. system.msg The message file containing system messages for creating or deleting file or directory commands. This is only used if the action is EXPORT and a LOB path is specified. Files Required/Generated When Using IMPORT: Input: db2move.lst An output file from the EXPORT action. tabnnn.ixf An output file from the EXPORT action. tabnnnc.yyy An output file from the EXPORT action. Output: IMPORT.out The summarized result of the IMPORT action. tabnnn.msg The import message file of the corresponding table. Files Required/Generated When Using LOAD: Input: db2move.lst An output file from the EXPORT action. tabnnn.ixf An output file from the EXPORT action. tabnnnc.yyy An output file from the EXPORT action. Output: LOAD.out The summarized result of the LOAD action. tabnnn.msg The LOAD message file of the corresponding table. 12.9 Additional Option in the GET ROUTINE Command This command now supports the HIDE BODY parameter, which specifies that the body of the routine must be replaced by an empty body when the routine text is extracted from the catalogs. This does not affect the compiled code; it only affects the text. GET ROUTINE Befehlssyntax >>-GET ROUTINE--INTO--file_name--FROM--+----------+-------------> '-SPECIFIC-' >----PROCEDURE----routine_name--+-----------+------------------>< '-HIDE BODY-' 12.10 CREATE DATABASE DB2 now supports new collation sequence keywords, IDENTITY_16BIT and SQL_CS_IDENTITY_16BIT, for Unicode databases. When IDENTITY_16BIT is specified for the CLP CREATE DATABASE command or SQLEDBDESC.SQLDBCSS is set to SQL_CS_IDENTITY_16BIT in the sqlecrea() -- Create Database API, all data in the Unicode database will be collated using the CESU-8 order. CESU-8 is Compatibility Encoding Scheme for UTF-16: 8-Bit, and as of this writing, its specification is contained in the Draft Unicode Technical Report #26 available at the Unicode Technical Consortium web site(www.unicode.org). CESU-8 is binary identical to UTF-8 except for the Unicode supplementary characters, that is, those characters that are defined outside the 16-bit Basic Multilingual Plane (BMP or Plane 0). In UTF-8 encoding, a supplementary character is represented by one 4-byte sequence, but the same character in CESU-8 requires two 3-byte sequences. In a Unicode database, CHAR, VARCHAR, LONG VARCHAR, and CLOB data are stored in UTF-8, and GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC, and DBCLOB data are stored in UCS-2. For IDENTITY or SQL_CS_NONE collation, non-supplementary characters in UTF-8 and UCS-2 have identical binary collation, but supplementary characters in UTF-8 collate differently from the same characters in UCS-2. IDENTITY_16BIT or SQL_CS_IDENTITY_16BIT ensures all characters, supplementary and non-supplementary, in a DB2 Unicode databases have the same binary collation. Datenwiederherstellung und hohe Verfügbarkeit Handbuch und Referenz 13.1 Datenwiederherstellung und hohe Verfügbarkeit Handbuch und Referenz - Online Das neue Handbuch Datenwiederherstellung und hohe Verfügbarkeit Handbuch und Referenz ist jetzt im HTML- und PDF-Format online über http://www.ibm.com/software/data/db2/udb/winos2unix/support verfügbar. Diese Informationen waren bisher im Handbuch Systemverwaltung enthalten. Die vorliegenden Informationen gelten zusätzlich zum aktualisierten Handbuch. Die gesamte aktualisierte Dokumentation ist auch auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. 13.2 Neues Verhalten bei der Archivprotokollierung Vor FixPak 4 prüfte DB2 nur auf Abschluss der Archivierung, wenn eine neue Protokolldatei benötigt wurde. Jetzt prüft DB2 immer dann auf Archivierungsabschluss, wenn sich das erste aktive Protokoll ändert. Daher werden Informationen früher und häufiger auf Platte aufgezeichnet. Dies hat den Vorteil, dass bei einem Systemabsturz die auf Platte gespeicherten Informationen (zu denen Protokolldateien erfolgreich archiviert wurden) genauer sind und DB2 die Archivierungsanforderungen nicht für bereits archivierte Protokolldateien neu absetzen muss. Das Verhalten von DB2 nach Erkennung der erfolgreichen Archivierung einer bestimmten Protokolldatei ändert sich nicht. DB2 erkennt jetzt die Fertigstellung von Protokollarchivierungen früher und benennt sie früher um. Inaktive abgeschnittene Protokolldateien werden gelöscht. Daher kann die Anzahl der Protokolldateien im Pfad für aktive Protokolldateien unter dem Datenbankkonfigurationswert LOGPRIMARY liegen. In diesem Fall erstellt DB2 bei Bedarf neue Protokolldateien. Vor dieser Änderung wurde beim Neustart der Datenbank die Anzahl der Protokolle auf maximal den Wert von LOGPRIMARY verringert. Jetzt prüft DB2 beim Neustart der Datenbank zuerst das Datenbankprotokollverzeichnis. Wenn die Anzahl leerer Protokolle unter der Anzahl primärer Protokolle liegt, weist DB2 neue Protokolle zu, damit die beiden Anzahlen gleich sind. Wenn mehr leere Protokolle verfügbar sind, als es primäre Protokolle im Datenbankverzeichnis gibt, lässt DB2 den Neustart der Datenbank mit allen verfügbaren leeren Protokollen im Datenbankverzeichnis zu. Nach dem Beenden der Datenbank bleiben alle sekundären Protokolldateien beim Neustart im Pfad für aktive Protokolldateien. Zum Löschen des Pfads für aktive Protokolldateien kann der Befehl DB2 ARCHIVE LOG verwendet werden. 13.3 Verwendung der zurückgestellten Ein-/Ausgabe für Datenbankwiederherstellung Die unten aufgeführten Informationen zum Dienstprogramm db2inidb haben Vorrang vor den Informationen im Handbuch Neue Funktionen von Version 7.2. db2inidb ist ein Tool, das mit DB2 geliefert wird und das Wiederherstellungen nach Systemabstürzen durchführen oder eine Datenbank in den Status "Aktualisierende Wiederherstellung anstehend" setzen kann. Die zurückgestellte Ein-/Ausgabe unterstützt fortlaufende Systemverfügbarkeit, indem sie eine vollständige Implementierung für die Handhabung der Onlineteilung einer Spiegeldatenbank, d. h. Teilung einer Spiegeldatenbank ohne Herunterfahren der Datenbank, bietet. Wenn Sie sich keine Offline- oder Onlinesicherungen einer großen Datenbank leisten können, können Sie Sicherungen oder Systemkopien von einem Spiegelimage mit Hilfe zurückgestellter Ein-/Ausgabe und eines Image einer geteilten Spiegeldatenbank erstellen. Zurückgestellte E/A verhindert das Schreiben auf Platte, während das Image der geteilten Spiegeldatenbank einer Datenbank erstellt wird. Neben der Onlinesicherung und -wiederherstellung sollten alle Datenbankoperationen normal funktionieren, während eine Datenbank zurückgestellt ist. Einige Operationen warten jedoch eventuell darauf, dass E/A-Schreibvorgänge fortgesetzt werden, wenn benutzte Seiten aus dem Pufferpool auf Platte geschrieben oder Puffer protokolliert werden müssen. Diese Operationen sollten normal fortgesetzt werden, sobald die Datenbank-E/A wieder aufgenommen wird. Es ist wichtig, dass die Datenbank-E/A von derselben Verbindung wieder aufgenommen wird, von der sie ursprünglich zurückgestellt wurde, und dass keine andere Verarbeitung über diese Verbindung ausgeführt wird, bis die Datenbank-E/A wieder aufgenommen wird. Andernfalls können nachfolgende Verbindungsversuche blockieren, wenn sie das Schreiben benutzter Seiten aus dem Pufferpool auf Platte erfordern. Nachfolgende Verbindungen werden beendet, sobald die Ein-/Ausgabe der Datenbank wieder aufgenommen wird. Wenn Ihre Verbindungsversuche blockieren und es unmöglich ist, die Ein-/Ausgabe von der Verbindung fortzusetzen, die Sie zum Zurückstellen verwendet haben, müssen Sie den Befehl RESTART mit der Option WRITE RESUME durchführen. Unter diesen Umständen nimmt der Befehl RESTART die Ein-/Ausgabe wieder auf, ohne eine Wiederherstellung nach Systemabsturz durchzuführen. Der Befehl RESTART mit der Option WRITE RESUME führt eine Wiederherstellung nach Systemabsturz nur dann durch, wenn Sie ihn nach einem Datenbankabsturz verwenden. In einer Umgebung mit partitionierten Datenbanken müssen Sie E/A-Schreibvorgänge nicht auf allen Partitionen gleichzeitig zurückstellen. Sie können eine Untermenge mit einer oder mehreren Partitionen zurückstellen, um geteilte Spiegeldatenbanken für Offlinesicherungen zu erstellen. Wenn der Katalogknoten in der Untermenge enthalten ist, muss er als letzte Partition zurückgestellt werden. Beim Spiegeln einer Datenbank wird vor allem der gesamte Inhalt des Datenbankverzeichnisses und des lokalen Datenbankverzeichnisses kopiert. Das lokale Datenbankverzeichnis, sqldbdir, befindet sich auf derselben Ebene der Dateistruktur wie das Hauptdatenbankverzeichnis. Wenn das Protokollverzeichnis und die Tabellenbereichsbehälter sich nicht im Datenbankverzeichnis befinden, müssen sie ebenfalls kopiert werden. Da die geteilte Spiegeldatenbank von diesen Verzeichnispfaden abhängt, müssen die Pfade, in die diese Verzeichnisse kopiert werden, identisch mit denen auf dem primären System sein. Dies bedeutet, dass das Exemplar ebenfalls das gleiche sein muss. Als Ergebnis dieser Abhängigkeit ist es nicht möglich, eine Spiegeldatenbank auf demselben System wie die primäre Datenbank zu erstellen, sofern nicht die neue Option "relocate" des Tools db2inidb verwendet wird. Die Option "relocate" ermöglicht es, eine Datenbank auf einem bestimmten System mit einer angegebenen Konfigurationsdatei zu verlagern. Dies kann das Ändern des internen Datenbankverzeichnisses, des Behälterverzeichnisses, des Protokollverzeichnisses, des Exemplarnamens und der Datenbanknamen umfassen. Wenn das Datenbankverzeichnis, die Behälterverzeichnisse und das Protokollverzeichnis erfolgreich auf andere Verzeichnispfade auf demselben System wie die primäre Datenbank gespiegelt wurden, kann das Tool db2inidb zusammen mit der Option "relocate" verwendet werden, um die internen Pfade der gespiegelten Datenbnak zu aktualisieren. Ein Nutzungsszenario mit dieser Option finden Sie weiter unten. Je nachdem, wie die Speichereinheiten gespiegelt werden, ist die Verwendung von db2inidb unterschiedlich. Im Folgenden wird davon ausgegangen, dass die gesamte Datenbank konsistent im Speichersystem gespiegelt wird. In einer Umgebung mit mehreren Knoten muss das Tool db2inidb auf jeder Partition ausgeführt werden, bevor die geteilte Spiegeldatenbank von einer der Partitionen verwendet werden kann. Das Tool db2inidb kann mit dem Befehl db2_all auf allen Partitionen gleichzeitig ausgeführt werden. Erstellen einer Klondatenbank Das Ziel ist, einen Klon der primären Datenbank zu erhalten, der auf einem anderen System verwendet werden kann. Die folgende Prozedur beschreibt, wie eine Klondatenbank erstellt werden kann: Stellen Sie E/A-Schreibvorgänge in der primären Datenbank mit folgendem Befehl zurück: db2 set write suspend for database Verwenden Sie Betriebssystem- und Plattensubsystembefehle zum Heraustrennen der Spiegeldatenbank aus der primären Datenbank. Stellen Sie sicher, dass Sie die Daten und die Protokolle teilen. Nehmen Sie E/A-Schreibvorgänge in der primären Datenbank mit folgendem Befehl wieder auf: db2 set write resume for database Nach dem Ausführen des Befehls sollte die primäre Datenbank wieder im normalen Zustand sein. Hängen Sie die geteilte Spiegeldatenbank der primären Datenbank auf einem anderen System an. Starten Sie das Datenbankexemplar auf dem anderen System mit folgendem Befehl: db2start Starten Sie die DB2-Wiederherstellung nach Systemabsturz mit folgendem Befehl: db2inidb datenbankname AS SNAPSHOT Anmerkung: Dieser Befehl entfernt den Status des zurückgestellten Schreibens und macht die Änderungen von Transaktionen rückgängig, die zum Zeitpunkt der Teilung abliefen. Sie können diesen Prozess auch für eine Offlinesicherung verwenden. Wenn sie jedoch in der primären Datenbank wiederhergestellt wird, kann diese Sicherung nicht mehr zur aktualisierenden Wiederherstellung verwendet werden, da die Protokollkette nicht übereinstimmt. Verwenden der geteilten Spiegeldatenbank als Bereitschaftsdatenbank Während die gespiegelte (Bereitschafts-)Datenbank ständig über die Protokolle aktualisierend wiederhergestellt wird, werden neue Protokolle, die von der primären Datenbank erstellt werden, ständig vom primären System abgerufen. Die folgende Prozedur beschreibt, wie die geteilte Spiegeldatenbank als Bereitschaftsdatenbank verwendet werden kann: Stellen Sie E/A-Schreibvorgänge in der primären Datenbank zurück: db2 set write suspend for database Verwenden Sie Betriebssystem- und Plattensubsystembefehle zum Heraustrennen der Spiegeldatenbank aus der primären Datenbank. Stellen Sie sicher, dass Sie nur die Daten und nicht die Protokolle teilen. Setzen Sie die E/A-Schreibvorgänge in der primären Datenbank fort, so dass sie zurück in die normale Verarbeitung wechselt. db2 set write resume for database Hängen Sie die geteilte Spiegeldatenbank der Datenbank auf einem anderen System an. Starten Sie das primäre Datenbankexemplar mit dem Befehl db2start. Setzen Sie die Spiegeldatenbank in den Status "Aktualisierende Wiederherstellung anstehend": db2inidb datenbankname AS STANDBY Anmerkung: Dieser Befehl entfernt den Status des zurückgestellten Schreibens und setzt die gespiegelte Datenbank in den Status "Aktualisierende Wiederherstellung anstehend". Kopieren Sie Protokolle, indem Sie ein Benutzer-Exit-Programm einrichten, um Protokolldateien vom primären System abzurufen, damit sichergestellt ist, dass die neuesten Protokolle für diese gespiegelte Datenbank verfügbar sind. Stellen Sie die Datenbank bis zum Ende der Protokolle aktualisierend wieder her. Kehren Sie zurück zu Schritt g, und wiederholen Sie diesen Prozess, bis die primäre Datenbank inaktiv ist. Stellen Sie die Datenbank bis zum Ende der Protokolle aktualisierend wieder her. Verwenden Sie dabei die Option AND STOP, um die Datenbank wieder in den Onlinestatus zu setzen. Die Datenbank kann jetzt verwendet werden. Verwenden der geteilten Spiegeldatenbank als Sicherungsimage Die folgende Prozedur beschreibt, wie die gespiegelte Datenbank als Sicherungsimage zur Wiederherstellung über die primäre Datenbank verwendet werden kann: Stoppen Sie das primäre Datenbankexemplar mit dem Befehl db2stop. Verwenden Sie Betriebssystem- und Plattensubsystembefehle, um die gespiegelten Daten zurück über die primäre Datenbank zu kopieren. Kopieren Sie die Protokolldatei nicht zurück. Die Protokolle auf der primären Datenbank müssen für aktualisierende Wiederherstellungen verwendet werden. Starten Sie das primäre Datenbankexemplar mit dem Befehl db2start. Führen Sie den folgenden Befehl aus, um die gespiegelte Datenbank in den Status "Aktualisierende Wiederherstellung anstehend" zu setzen und das zurückgestellte Schreiben zu beenden: db2inidb datenbankname AS MIRROR Stellen Sie die Datenbank bis zum Ende der Protokolle aktualisierend wieder her. Verwenden Sie dabei die Option AND STOP, um die Datenbank wieder in den Onlinestatus zu setzen. Die Datenbank kann jetzt verwendet werden. Teilen einer Spiegeldatenbank auf demselben System wie die primäre Datenbank Die folgende Prozedur beschreibt, wie Sie die Option "relocate" des Tools db2inidb zum Spiegeln einer Datenbank auf demselben System wie die primäre Datenbank verwenden können. Bei dem Beispiel wird davon ausgegangen, dass die Datenbank unter einem neuen Exemplar verwendet wird. Erstellen Sie ein neues Exemplar auf dem aktuellen System. Stellen Sie E/A-Schreibvorgänge in der primären Datenbank zurück: db2 set write suspend for database Verwenden Sie Betriebssystem- und Plattensubsystembefehle zum Heraustrennen der Spiegeldatenbank aus der primären Datenbank. Anmerkung: Das Datenbankverzeichnis, das lokale Datenbankverzeichnis, die Behälterverzeichnisse und das Protokollverzeichnis müssen in das neue Exemplar kopiert werden. Wenn die Behälterverzeichnisse oder das Protokollverzeichnis unter dem Datenbankverzeichnis vorhanden sind, müssen nur das Datenbankverzeichnis und das lokale Datenbankverzeichnis kopiert werden. Setzen Sie die E/A-Schreibvorgänge in der primären Datenbank fort, so dass sie zurück in die normale Verarbeitung wechselt: db2 set write resume for database Erstellen Sie eine Konfigurationsdatei mit den folgenden Informationen: DB_NAME=name,optionaler-neuer-name DB_PATH=primärer-db-verzeichnispfad,gespiegelter-db-verzeichnispfad INSTANCE=primäres-exemplar,gespiegeltes-exemplar LOG_DIR=primäres-db-protokollverzeichnis,gespiegeltes-db-protokollverzeichnis CONT_PATH=pfad-für-primären-db-behälter-#1, pfad-für-gespiegelten-db-behälter-#1 ... CONT_PATH=pfad-für-primären-db-behälter-#n, pfad-für-gespiegelten-db-behälter-#n NODENUM=knoten-# Anmerkung: Die Felder LOG_DIR und CONT_PATH sind nur erforderlich, wenn das Protokollverzeichnis und die Behälterverzeichnisse sich nicht im Datenbankverzeichnis befinden. Alle anderen Felder sind erforderlich, mit Ausnahme von NODENUM, das standardmäßig den Wert null verwendet, wenn nichts anderes angegeben ist. Starten Sie die Datenbank vom neu erstellten Exemplar: db2start Verlagern Sie die gespiegelte Datenbank, heben Sie den Zurücksetzungsstatus auf, und setzen Sie die Spiegeldatenbank in den Status "Aktualisierende Wiederherstellung anstehend": db2inidb datenbankname as STANDBY relocate using konfigurationsdatei Kopieren Sie Protokolle, indem Sie ein Benutzer-Exit-Programm einrichten, das Protokolldateien von der primären Datenbank abruft, damit sichergestellt ist, dass die neuesten Protokolle für diese gespiegelte Datenbank verfügbar sind. Stellen Sie die Datenbank bis zum Ende der Protokolle aktualisierend wieder her. Kehren Sie zurück zu Schritt h, und wiederholen Sie diesen Prozess, bis die primäre Datenbank inaktiv ist. Stellen Sie die Datenbank bis zum Ende der Protokolle aktualisierend wieder her. Verwenden Sie dabei die Option AND STOP, um die Datenbank wieder in den Onlinestatus zu setzen. Die Datenbank kann jetzt verwendet werden. 13.4 Neues Sicherungs- und Wiederherstellungsverhalten bei LOGRETAIN=CAPTURE Wenn eine Datenbank mit LOGRETAIN=CAPTURE konfiguriert ist, können die folgenden Operationen nicht ausgeführt werden: Onlinedatenbanksicherung Online- oder Offlinesicherung auf Tabellenbereichsebene Online- oder Offlinewiederherstellung auf Tabellenbereichsebene Nach einer Datenbankwiederherstellung mit einem Offlinesicherungsimage, das mit LOGRETAIN=CAPTURE erstellt wurde, wird die Datenbank nicht in den Status Aktualisierende Wiederherstellung anstehend gesetzt. Eine Datenbankwiederherstellung mit einem Onlinedatenbanksicherungsimage, das mit LOGRETAIN=CAPTURE erstellt wurde (Version 7.2 vor FixPak 4), wird unterstützt. 13.5 Teilsicherung und -wiederherstellung - Zusätzliche Informationen Während der zweiten Verarbeitungsphase wird das Datenbankprotokoll abgefragt, um eine Kette von Sicherungsimages zu erstellen, die erforderlich sind, um die angeforderte Wiederherstellung durchzuführen. Wenn dies aus irgendeinem Grund nicht möglich ist und DB2 keine komplette Kette der erforderlichen Images erstellen kann, wird die Wiederherstellungsoperation beendet, und eine Fehlernachricht wird zurückgegeben. In diesem Fall ist eine automatische Teilwiederherstellung nicht möglich, und Sie müssen den Befehl RESTORE DATABASE mit der Option INCREMENTAL ABORT absetzen. Dadurch werden verbleibende Ressourcen bereinigt, so dass Sie mit einer manuellen Teilwiederherstellung fortfahren können. Während der dritten Verarbeitungsphase stellt DB2 jedes der übrigen Sicherungsimages in der erzeugten Kette wieder her. Wenn in dieser Phase ein Fehler auftritt, müssen Sie den Befehl RESTORE DATABASE mit der Option INCREMENTAL ABORT absetzen, um verbleibende Ressourcen zu bereinigen. Sie müssen dann ermitteln, ob der Fehler behoben werden kann, bevor Sie erneut versuchen, den Befehl RESTORE abzusetzen oder eine Teilwiederherstellung durchzuführen. 13.6 NEWLOGPATH2 umbenannt in DB2_NEWLOGPATH2 Verweise auf die Registrierdatenbankvariable NEWLOGPATH2 wurden in DB2_NEWLOGPATH2 geändert. 13.7 Auswählen einer Sicherungsmethode für DB2 Data Links Manager unter AIX oder der Solaris-Betriebsumgebung Bevor Sie in der Standardvorgabedatei von Tivoli Storage Manager die Option PASSWORDACCESS einstellen, müssen Sie sicherstellen, dass /usr/lib eine symbolische Verbindung zur Bibliotheksdatei libApiDS.a enthält. 13.8 Tivoli Storage Manager -- LAN Free Data Transfer DB2 Universal Database erlaubt es Benutzern jetzt, die LAN Free Data Transfer-Technologie von Tivoli für Sicherungen und Wiederherstellungen auf einem TSM-Server zu verwenden. Wenn Sie eine der folgenden Versionen von DB2 Universal Database in Verbindung mit ADSM 3.1.x-Clients von Tivoli verwenden, können Probleme beim Sichern oder Wiederherstellen auf einem TSM-Server auftreten: DB2 für AIX (32-Bit) DB2 für Solaris-Betriebsumgebung (32-Bit) DB2 für HP-UX (32-Bit). Wenn diese Probleme bei Ihnen auftreten, führen Sie die folgenden Schritte aus, um sie zu beheben: Setzen Sie einen Befehl db2stop ab. Suchen Sie das Verzeichnis sqllib/adsm auf dem DB2 UDB-Server. Erstellen Sie eine Sicherungskopie von libtadsm.a. Es reicht aus, eine Kopie namens libtadsm.a.bak davon herzustellen. Kopieren Sie libadsm.a nach libtasdm.a. Setzen Sie einen Befehl db2start ab. Setzen Sie den fehlgeschlagenen Sicherungs- oder Wiederherstellungsbefehl erneut ab. Versetzen von Daten Dienstprogramme und Referenz 14.1 Erweiterte Identitätswerte jetzt vollständig vom Dienstprogramm EXPORT unterstützt Das Dienstprogramm EXPORT unterstützt jetzt erweiterte Identitätswerte vollständig. Sowohl Client als auch Server müssen mit FixPak 7 oder höher ausgeführt werden, damit diese Funktion genutzt werden kann. 14.2 Änderung der Handhabung von LOB-Dateien durch EXPORT, IMPORT und LOAD DB2 UDB nutzt jetzt LOB-Positionskennungen (LOB Location Specifiers - LLS) beim Importieren und Laden von Informationen zu großen Objekten (Large Objects - LOBs). Dadurch können mehrere LOBs in einer einzigen Datei gespeichert werden. Eine LLS ist eine Zeichenfolge, die angibt, wo sich LOB-Daten innerhalb einer Datei befinden. Das Format der LLS lautet dateiname.erw.nnn.mmm/. Dabei ist dateiname.erw der Name der Datei, die das LOB enthält, nnn ist die relative Position des LOB in der Datei (gemessen in Byte), und mmm ist die Länge des LOB (in Byte). Die LLS db2exp.001.123.456/ gibt z. B. an, dass sich das LOB in der Datei db2exp.001 befindet, an der relativen Position von 123 Byte in der Datei beginnt und 456 Byte lang ist. Wenn in der LLS als Größe 0 angegeben ist, wird angenommen, dass das LOB die Länge 0 hat. Wenn als Länge -1 angegeben ist, wird das LOB als NULL betrachtet, und der Dateiname und die relative Position sind nicht von Belang. Beim Exportieren von Daten mit dem Änderungswert lobsinfile werden die LOBs nicht immer in unterschiedliche Dateien gestellt. Es können mehrere LOBs in jeder LOB-Datei und mehrere LOB-Dateien pro LOB-Pfad vorhanden sein. Die Datendatei enthält jetzt LLS-Einträge statt nur Dateinamen. Die Import- und Ladefunktionen wurden ebenfalls geändert, um mit den Änderungen der Exportfunktion umgehen zu können. Beim Laden oder Importieren von Daten mit der Option modified by lobsinfile werden LLSs für jede der entsprechenden LOB-Spalten erwartet. Wenn ein anderes Element als eine LLS für eine LOB-Spalte gefunden wird, behandelt die Datenbank es als LOB-Datei und lädt die gesamte Datei als LOB. 14.2.1 IXF-Überlegungen Es gibt drei neue IXF-Datentypen. Diese drei Typen entsprechen großen Zeichenobjekten (Character Large Objects - CLOBs), großen Binärobjekten (Binary Large Objects - BLOBs) und großen Doppelbytezeichenobjekten (Double-Byte Character Large Objects - DBCLOBs), wenn sie durch LLSs dargestellt werden. Die Werte dieser Datentypen lauten 964, 960 bzw. 968. IXF-Dateien setzen jetzt voraus, dass jede LOB-Spalte ihren eigenen D-Eintrag hat. Dieser wird automatisch vom Tool EXPORT erzeugt, muss jedoch manuell erstellt werden, wenn Sie ein Dienstprogramm eines Fremdanbieters zum Erstellen der IXF-Dateien verwenden. Darüber hinaus ist eine LLS für jedes LOB in der Tabelle und nicht nur für die LOBs ungleich null erforderlich. Wenn eine LOB-Spalte null ist, müssen Sie eine LLS schreiben, die ein Null-LOB darstellt. 14.3 Codepage-Unterstützung für die Dienstprogramme IMPORT, EXPORT und LOAD Die Dienstprogramme IMPORT, EXPORT und LOAD können jetzt zur Übertragung von Daten aus der neuen chinesischen Codepage GB 18030 (Codepage-Kennung 5488) und der neuen japanischen Codepage ShiftJIS X0213 (Codepage-Kennung 1394) in DB2-UDB-Unicode-Datenbanken verwendet werden. Darüber hinaus kann das Dienstprogramm EXPORT zur Übertragung von Daten von DB2-UDB-Unicode-Datenbanken in Daten der Codepage GB 18030 oder ShiftJIS X0213 verwendet werden. Der folgende Befehl z B. lädt die Shift_JISX0213-Datendatei u/jp/user/x0213/data.del auf einem Client mit Fernverbindung in MYTABLE: db2 load client from /u/jp/user/x0213/data.del of del modified by codepage=1394 insert into mytable Dabei befindet MYTABLE sich in einer DB2-UDB-Unicode-Datenbank. 14.4 Kapitel 2. Import 14.4.1 Verwenden von IMPORT mit gepufferten INSERT-Operationen Die Anmerkung am Ende dieses Abschnitts muss wie folgt lauten: Anmerkung: In allen Umgebungen mit Ausnahme von EEE werden gepufferte Einfügungen während Importen inaktiviert, bei denen der Parameter INSERT_UPDATE angegeben ist. 14.5 Kapitel 3. Load 14.5.1 Statusangaben für anstehende Aktionen nach einer Ladeoperation Die beiden ersten Sätze im letzten Absatz dieses Abschnitts wurden wie folgt geändert: Der vierte mögliche Status, der dem LOAD-Prozess zugeordnet ist (Status "Überprüfung anstehend"), bezieht sich auf referenzielle Integritätsbedingungen und Prüfungen auf Integritätsbedingungen, auf DATALINKS-Integritätsbedingungen, auf AST-Integritätsbedingungen oder auf Integritätsbedingungen für generierte Spalten. Wenn eine vorhandene Tabelle beispielsweise eine übergeordnete Tabelle mit einem Primärschlüssel ist, auf den ein Fremdschlüssel in einer abhängigen Tabelle verweist, werden beim Ersetzen von Daten in der übergeordneten Tabelle beide Tabellen (nicht der Tabellenbereich) in den Status "Überprüfung anstehend" versetzt. 14.5.2 LOAD-Rahmenbedingungen und -Einschränkungen Für generierte Spalten und das Dienstprogramm LOAD gelten die folgenden Rahmenbedingungen: Eine Tabelle mit einer generierten Spalte in einem eindeutigen Index kann nur dann geladen werden, wenn die generierte Spalte eine INCLUDE-Spalte des Index ist oder der Dateitypwert generatedoverride verwendet wird. Bei Verwendung dieses Werts wird erwartet, dass alle Werte für die Spalte in der Eingabedatendatei bereitgestellt werden. Eine Tabelle mit einer generierten Spalte in einem Partitionierungsschlüssel kann nur dann geladen werden, wenn der Dateitypwert generatedoverride verwendet wird. Bei Verwendung dieses Werts wird erwartet, dass alle Werte für die Spalte in der Eingabedatendatei bereitgestellt werden. 14.5.3 Dateitypänderungswert "totalfreespace" Der Dateitypänderungswert totalfreespace (LOAD) wurde modifiziert, so dass er jetzt einen Wert zwischen 0 und 2 147 483 647 akzeptiert. 14.6 Kapitel 4. AutoLoader 14.6.1 AutoLoader - Rahmenbedingungen und Einschränkungen Die Rahmenbedingungen und Einschränkungen für das Dienstprogramm AutoLoader wurden um folgende Angaben erweitert: AutoLoader muss auf einem der Serverknoten ausgeführt werden. Wenn mehrere Exemplare vorhanden sind, kann AutoLoader nur für Datenbanken verwendet werden, die sich lokal auf dem Exemplar befinden, das in der Umgebungsvariablen DB2INSTANCE angegeben ist. 14.6.2 Verwenden von AutoLoader Die folgenden Angaben wurden dem Abschnitt "Vor der Verwendung von AutoLoader" hinzugefügt: Stellen Sie vor dem Aufrufen des Dienstprogramms AutoLoader sicher, dass rsh und/oder rexec korrekt funktionieren. rexec wird verwendet, um ferne Prozesse zu erzeugen, wenn das Kennwort in der AutoLoader-Konfigurationsdatei angegeben ist. Anderenfalls wird rsh verwendet. 14.6.3 "rexecd" erforderlich für die Ausführung von AutoLoader bei aktivierter Authentifizierung Im Abschnitt "AutoLoader-Optionen" wird den Beschreibungen der Parameter AUTHENTICATION und PASSWORD folgende Anmerkung hinzugefügt: Wenn Sie in einer Linux-Umgebung den AutoLoader mit aktivierter Authentifizierung (AUTHENTICATION=YES) ausführen, muss rexecd auf allen Maschinen aktiviert sein. Ist rexecd nicht aktiviert, wird folgende Fehlernachricht generiert: openbreeze.torolab.ibm.com: Die Verbindung wurde zurückgewiesen. SQL6554N Beim Versuch, einen Prozess fern auszuführen, ist ein Fehler aufgetreten. Die folgenden Fehlernachrichten werden in der Datei db2diag.log generiert: 2000-10-11-13.04.16.832852 Instance:svtdbm Node:000 PID:19612(db2atld) Appid: oper_system_services sqloRemoteExec Probe:31 14.6.4 AutoLoader kann auf AIX-Systemen vor 4.3.3 während einer Aufspaltung blockieren AutoLoader ist ein Multi-Thread-Programm und einer der Threads spaltet mit 'fork' einen anderen Prozess ab. Durch das Abspalten eines Kindprozesses wird ein Image des Elterprozess-Speichers im Kindprozess erstellt. Auf AIX-Systemen vor AIX 4.3.3 ist es möglich, dass Sperren, die von libc.a für die Verwaltung mehrerer Threads verwendet werden, die wiederum Speicher aus dem Freispeicher zuordnen, im selben Prozess gleichzeitig von einem nicht aufspaltenden Thread definiert werden. Da der nicht aufspaltende Thread im Kindprozess nicht vorhanden ist, wird diese Sperre im Kindprozess nie freigegeben, so dass der Elterprozess manchmal blockiert wird. AIX 4.3.3 enthält eine Programmkorrektur für ein libc-Problem, das AutoLoader bei einer Aufspaltung zum Blockieren bringen könnte. 14.7 Anhang C, Dateiformate der Dienstprogramme EXPORT/IMPORT/LOAD Dieser Abschnitt wurde wie folgt aktualisiert: Die Dienstprogramme EXPORT, IMPORT und LOAD werden nicht unterstützt, wenn Sie mit einem Unicode-Client eingesetzt werden, der mit einer Nicht-Unicode-Datenbank verbunden ist. Dateien von Unicode-Clients werden nur unterstützt, wenn der Unicode-Client mit einer Unicode-Datenbank verbunden ist. Replikation Referenzhandbuch 15.1 Replikationsserver und Nicht-IBM Server Sie müssen DataJoiner Version 2 oder höher verwenden, um Daten auf bzw. von Nicht-IBM Server(n) wie Informix, Microsoft SQL Server, Oracle, Sybase oder Sybase SQL Anywhere zu replizieren. Für diese Replikationsart können Sie die relationale Verbindungsfunktion nicht verwenden, da DB2 Relational Connect Version 7 keine Aktualisierungsfunktion besitzt. Außerdem benötigen Sie DJRA (DataJoiner Replication Administration) für die Verwaltung dieser heterogenen Replikation auf allen Plattformen (AS/400, OS/2, OS/390, UNIX und Windows) für alle Versionen von DB2 und DataJoiner. 15.2 Replikation unter Windows 2000 DB2 DataPropagator Version 7 ist mit dem Betriebssystem Windows 2000 kompatibel. 15.3 Bekannter Fehler beim Speichern von SQL-Dateien Wenn Sie die Steuerzentrale in DB2 Connect Personal Edition verwenden, können Sie keine SQL-Dateien speichern. Wenn Sie versuchen, eine SQL-Datei zu speichern, bekommen Sie eine Fehlermeldung, dass der Datenbankverwaltungsserver (Database Administration Server, DAS) nicht aktiv ist, obwohl der Server eigentlich nicht verfügbar ist, weil er nicht mit DB2 Connect PE ausgeliefert wird. 15.4 Aliasnamen des Apply-Programms und der Steuerzentrale Damit das Apply-Programm korrekt funktioniert, müssen die vom Apply-Programm verwendeten Aliasnamen mit den Aliasnamen übereinstimmen, die die Steuerzentrale verwendet. 15.5 DB2-Verwaltung Es wird empfohlen, dass Sie die neuesten DB2-Pflegeprogramme für die verschiedenen DB2-Produkte installieren, die Sie in Ihrer Replikationsumgebung verwenden. 15.6 Dienstprogramm "Data Difference" im Internet Sie können das Dienstprogramm "Data Difference" aus dem Internet unter ftp://ftp.software.ibm.com/ps/products/datapropagator/fixes/ herunterladen. Dieses Dienstprogramm ist ein Beispieldienstprogramm, das Sie verwenden können, um zwei Versionen derselben Datei zu vergleichen und eine Ausgabedatei zu erstellen, die die Unterschiede anzeigt. Einzelangaben finden Sie in der Readme-Datei, die dem Beispielsdienstprogramm beiliegt. 15.7 Kapitel 3. Beispielszenario für die Datenreplikation 15.7.1 Replikationsszenarios Ein neues Szenario für die Replikation heterogener Daten finden Sie auf der Bibliotheksseite der DataPropagator-Website (http://www.ibm.com/software/data/dpropr/). Führen Sie die Schritte in diesem Szenario aus, um Änderungen von einer Replikationsquellentabelle in einer Oracle-Datenbank unter AIX in eine Zieltabelle einer Datenbank in DB2 für Windows NT zu kopieren. Dieses Szenario verwendet DB2 DataJoiner Replication Administration (DJRA), Auslöser für Erfassungsfunktion, das Apply-Programm und DB2 DataJoiner. In Kapitel 3, "Beispielszenario für die Datenreplikation", im Abschnitt "Einrichten der Replikationsumgebung für dieses Szenario" sollte Schritt 6, "Erstellen einer Kennwortdatei", wie folgt lauten: Schritt 6: Erstellen einer Kennwortdatei Da das Apply-Programm eine Verbindung zum Quellenserver herstellen muss, müssen Sie eine Kennwortdatei für die Benutzerauthentifizierung erstellen. Stellen Sie sicher, dass die Benutzer-ID, mit der das Apply-Programm ausgeführt wird, die Kennwortdatei lesen kann. Gehen Sie wie folgt vor, um eine Kennwortdatei zu erstellen: Wechseln Sie in einem Eingabeaufforderungsfenster von Windows NT in das Verzeichnis C:\scripts. Erstellen Sie in diesem Verzeichnis eine neue Datei namens DEPTQUAL.PWD. Sie können diese Datei mit einem beliebigen Texteditor, z. B. Editor, erstellen. Die Namenskonvention für die Kennwortdatei lautet: applyqual.pwd. Dabei ist applyqual eine Zeichenfolge, die der Groß-/Kleinschreibung und dem Wert des Apply-Qualifikationsmerkmals entsprechen muss, das beim Erstellen der Subskriptionsgruppe verwendet wurde. Für dieses Szenario lautet das Apply-Qualifikationsmerkmal DEPTQUAL. Anmerkung: Die Namenskonvention von Version 5 von DB2 DataPropagator wird ebenfalls unterstützt. Der Inhalt der Kennwortdatei hat das folgende Format: SERVER=server USER=benutzer-id PWD=kennwort Dabei gilt Folgendes: server Der Name des Quellen-, Ziel- oder Steuerungsservers, so wie er in der Subskriptionsgruppentabelle erscheint. Für dieses Szenario lauten diese Namen SAMPLE und COPYDB. benutzer-id Die Benutzer-ID, die Sie zum Verwalten dieser Datenbank verwenden wollen. Bei den Betriebssystemen Windows NT und UNIX wird bei diesem Wert zwischen Groß-/Kleinschreibung unterschieden. kennwort Das Kennwort zur Benutzer-ID. Bei den Betriebssystemen Windows NT und UNIX wird bei diesem Wert zwischen Groß-/Kleinschreibung unterschieden. Nehmen Sie in diese Datei keine Leer- oder Kommentarzeilen auf. Fügen Sie nur Servernamen, Benutzer-IDs und Kennwörter hinzu. Der Inhalt der Kennwortdatei sollte ähnlich wie das folgende Beispiel aussehen: SERVER=SAMPLE USER=subina PWD=subpw SERVER=COPYDB USER=subina PWD=subpw Weitere Informationen zur DB2-Authentifizierung und -Sicherheit finden Sie im Handbuch IBM DB2 Systemverwaltung. 15.8 Kapitel 5. Planung der Replikationsumgebung 15.8.1 Tabellen- und Spaltennamen Die Replikation unterstützt Leerzeichen in Tabellen- und Spaltennamen nicht. 15.8.2 DATALINK-Replikation DATALINK-Replikation ist für die Solaris-Betriebsumgebung im FixPak 1 für Version 7.1 verfügbar. Sie erfordert einen FTP-Dämon, der auf dem Quellen-DATALINK- und dem Ziel-DATALINK-Dateisystem ausgeführt wird und den Befehl MDTM (modtime) unterstützt, der die Zeit der letzten Änderung für eine bestimmte Datei anzeigt. Wenn Sie Version 2.6 oder eine andere Version der Solaris-Betriebsumgebung verwenden, die keine FTP-Unterstützung für MDTM umfasst, benötigen Sie weitere Software wie WU-FTPD. Sie können DATALINK-Spalten nicht zwischen DB2-Datenbanken unter AS/400 und DB2-Datenbanken auf anderen Plattformen replizieren. Auf der AS/400-Plattform wird die Replikation des Kommentarattributs von DATALINK-Werten nicht unterstützt. Wenn Sie AIX 4.2 ausführen, müssen Sie vor der Ausführung des Standard-Benutzer-Exit-Programms (ASNDLCOPY) die vorläufige Programmkorrektur für APAR IY03101 (AIX 4210-06 RECOMMENDED MAINTENANCE FOR AIX 4.2.1) installieren. Diese vorläufige Programmkorrektur enthält eine Y2K-Korrektur für den Befehl "modtime/MDTM" im FTP-Dämon. Sie können die Korrektur prüfen, indem Sie die letzte von dem Befehl "modtime " zurückgegebene Änderungszeit anzeigen. Dabei ist eine Datei, die nach dem 1. Januar 2000 geändert worden ist. Wenn die Zieltabelle eine externe CCD-Tabelle ist, ruft DB2 DataPropagator die Routine ASNDLCOPY auf, um DATALINK-Dateien zu replizieren. Die neuesten Informationen zur Verwendung der Programme ASNDLCOPY und ASNDLCOPYD finden Sie im Prolog des Quellencodes der jeweiligen Programme. Es gelten folgende Einschränkungen: Interne CCD-Tabellen können DATALINK-Bezugswerte, aber keine DATALINK-Werte enthalten. Komprimierte externe CCD-Tabellen können DATALINK-Werte enthalten. Nicht komprimierte CCD-Zieltabellen können keine DATALINK-Spalten enthalten. Wenn der Quellenserver mit dem Zielserver identisch ist, darf die Subskriptionsgruppe keine Elemente mit DATALINK-Spalten enthalten. 15.8.3 LOB-Einschränkungen Komprimierte interne CCD-Tabellen können keine Verweise auf LOB-Spalten oder LOB-Bezugswerte haben. 15.8.4 Planen der Replikation Der Abschnitt "Konnektivität" im Kapitel "Planung der Replikationsumgebung" sollte noch folgenden Text enthalten: Wenn das Apply-Programm keine Verbindung zum Steuerungsserver herstellen kann, wird das Apply-Programm beendet. Wenn Sie Datenblockung für AS/400 verwenden, müssen Sie sicherstellen, dass die Gesamtmenge der Replikationsdaten während des Intervalls "4 Millionen Zeilen" nicht übersteigt, nicht "4 MB", wie im Abschnitt "Datenblockung bei hohem Änderungsaufkommen" angegeben. 15.9 Kapitel 6. Einrichten der Replikationsumgebung 15.9.1 Vorbedingung für beliebige Tabellenreplikation Wenn Sie eine beliebige Tabellenreplikation (Update-Anywhere Replication) mit Konflikterkennung und mehr als 150 Elementen in einer Subskriptionsgruppe einrichten wollen, müssen Sie folgende DDL ausführen, um auf dem Steuerungsserver die Tabelle ASN.IBMSNAP_COMPENSATE zu erstellen: CREATE TABLE ASN.IBMSNAP_COMPENSATE ( APPLY_QUAL char(18) NOT NULL, MEMBER SMALLINT, INTENTSEQ CHAR(10) FOR BIT DATA, OPERATION CHAR(1)); 15.9.2 Einrichten Ihrer Replikationsumgebung Im Abschnitt "Anpassen von CD-Tabellennamen, Indexnamen und Tabellenbereichsnamen" wird gesagt, dass sich die Datei DPREPL.DFT im Verzeichnis \sqllib\bin oder \sqllib\java befindet. Dies ist nicht korrekt. DPREPL.DFT befindet sich im Verzeichnis \sqllib\cc. Die Beschreibung der Sicherungsbegrenzung im Unterabschnitt "Angabe von Anpassungsparametern für das Capture-Programm" in Abschnitt "Einrichten des Capture-Programms" in Kapitel 6 "Einrichten der Replikationsumgebung" sollte darauf hinweisen, dass die Sicherungsbegrenzung nur verwendet wird, um Zeilen zu entfernen, wenn "Capture" neu gestartet wird oder wenn Sie den Befehl "Capture prune" verwenden. Wenn Sie "Capture" mit der Option "auto-pruning" gestartet haben, verwendet der Befehl die Sicherungsbegrenzung zum Entfernen von Reihen nicht. 15.10 Kapitel 8. Fehlerbestimmung Replication Analyzer funktioniert auf Windows 32-Bit-Systemen und unter AIX. Bei der Verwendung von Analyzer unter AIX müssen Sie sicherstellen, dass das Verzeichnis sqllib/bin in Ihrer Umgebungsvariablen PATH vor /usr/local/bin angezeigt wird, damit keine Konflikte mit /usr/local/bin/analyze auftreten. Replication Analyzer hat optional zwei zusätzliche Schlüsselwörter: CT und AT. CT=n Zeigt nur diejenigen Einträge der Capture-Trace-Tabelle an, die weniger als n Tage alt sind. Dieses Schlüsselwort ist optional. Wenn Sie es nicht angeben, wird der Standardwert (7 Tage) verwendet. AT=n Zeigt nur diejenigen Einträge der Apply-Prüfprotokolltabelle an, die weniger als n Tage alt sind. Dieses Schlüsselwort ist optional. Wenn Sie es nicht angeben, wird der Standardwert (7 Tage) verwendet. Beispiel: analyze mydb1 mydb2 f=mydirectory ct=4 at=2 deepcheck q=applyqual1 Für Replication Analyzer werden folgende Schlüsselwortinformationen aktualisiert: deepcheck Weist Replication Analyzer an, eine ausführlichere Analyse vorzunehmen, einschließlich Bereinigungsinformationen für CD- und UOW-Tabelle, Tabellenbereichspartitionierung von DB2 für OS/390 und Zusatzinformationen für die Komprimierung sowie einer Analyse der Zielindizes im Hinblick auf die Subskriptionsschlüssel, Subskriptionsdauer und SQL-Anweisungsfehler in der Subskriptionsgruppe. Die Analyse umfasst alle Server. Dieses Schlüsselwort ist optional. lightcheck Gibt an, dass folgende Informationen aus dem Bericht ausgeklammert werden sollen: alle Spaltendetails aus der Tabelle ASN.IBMSNAP_SUBS_COLS, Fehler, Anomalien oder Auslassungen bei der Subskription sowie falsche oder ineffiziente Indizes. Diese Informationsverringerung spart Ressourcen und verkleinert die HTML-Ausgabedatei. Diese Schlüsselwort ist optional und gegenseitig ausschließend mit dem Schlüsselwort "deepcheck". Analyzer-Tools stehen in vorläufigen Programmkorrekturen für die Replikation auf AS/400-Plattformen zur Verfügung. Diese Tools erfassen Informationen zu Ihrer Replikationsumgebung und erzeugen eine HTML-Datei, die Sie zur Unterstützung bei der Fehlerbestimmung an Ihren IBM Ansprechpartner senden können. Laden Sie zum Abrufen der AS/400-Tools die entsprechende vorläufige Programmkorrektur (PTF) herunter (für das Produkt 5769DP2 müssen Sie beispielsweise PTF SF61798 oder deren neueste Version herunterladen). Fügen Sie dem Abschnitt "Fehlerbehebung" das folgende Problem und seine Lösung hinzu: Problem: Das Apply-Programm führt Schleifen aus, ohne Änderungen zu replizieren; die Apply-Prüfprotokolltabelle zeigt STATUS=2 an. Die Subskriptionsgruppe enthält mehrere Quellentabellen. Zur Verbesserung der Bearbeitung von Detailpunkten für eine Quelle in der Gruppe wird eine interne CCD-Tabelle für diese Quellentabelle definiert, jedoch in einer anderen Subskriptionsgruppe. Die Quellentabelle wird aktualisiert, aber der Apply-Prozess, der die interne CCD-Tabelle füllt, wird asynchron ausgeführt (z. B. wird das Apply-Programm möglicherweise nicht gestartet oder ein Ereignis nicht ausgelöst, usw.). Das Apply-Programm, das Aktualisierungen von der Quellen- in die Zieltabelle repliziert, führt Schleifen aus, weil es darauf wartet, dass die interne CCD-Tabelle aktualisiert wird. Starten Sie zum Stoppen der Schleifen das Apply-Programm (oder lösen Sie das Ereignis aus, das die Replikation verursacht) für die interne CCD-Tabelle. Das Apply-Programm füllt die interne CCD-Tabelle und ermöglicht dem Apply-Programm in der Warteschleife, Änderungen von allen Quellentabellen zu verarbeiten. Eine ähnliche Situation könnte bei einer Subskriptionsgruppe auftreten, die Quellentabellen mit internen CCD-Tabellen enthält, die von mehreren Apply-Programmen gefüllt werden. 15.11 Kapitel 9. Capture und Apply für AS/400 Der Text unter "Anmerkung zur Arbeitsverwaltung" muss wie folgt lauten: Sie können die Standarddefinitionen ändern oder eigene Definitionen bereitstellen. Wenn Sie eine eigene Beschreibung des Subsystems erstellen, müssen Sie es QZSNDPR nennen und in einer anderen Bibliothek als QDPR erstellen. Weitere Informationen zum Ändern dieser Definitionen finden Sie in der Veröffentlichung "OS/400 Work Management V4R3", SC41-5306. Fügen Sie dem Abschnitt "Prüfen und Anpassen der Installation von DB2 DataPropagator für AS/400" Folgendes hinzu: Wenn Sie aufgrund einer hohen Anzahl an Transaktionen große Probleme mit Zugriffskonflikten haben, können Sie den Standardwert für das Wartezeitlimit von 30 auf 120 erhöhen. Sie können den Job bei jedem Start von Capture ändern oder das Standardzeitlimit mit der folgenden Prozedur für alle Jobs ändern, die in Ihrem Subsystem ausgeführt werden: Setzen Sie folgenden Befehl ab, um durch Kopieren von QGPL/QBATCH ein Objekt einer neuen Klasse zu erstellen: CRTDUPOBJ OBJ(QBATCH) FROMLIB(QGPL) OBJTYPE(*CLS) TOLIB(QDPR) NEWOBJ(QZSNDPR Ändern Sie den Zeitlimitwert für die neu erstellte Klasse (beispielsweise in 300 Sekunden): CHGCLS CLS(QDPR/QZSNDPR) DFTWAIT(300) Ändern Sie den Route-Eintrag in der Subsystembeschreibung QDPR/QZSNDPR, damit die neue Klasse verwendet wird: CHGRTGE SBSD(QDPR/QZSNDPR) SEQNBR(9999) CLS(QDPR/QZSNDPR Der Unterabschnitt "Verwenden der Exit-Routine DLTJRNRCV (Delete Journal Receiver)" des Abschnitts "Das Journal" in Kapitel 9, "Capture und Apply für AS/400", sollte den folgenden Satz enthalten: Wenn Sie die Registrierung für die gelöschte Journalempfänger-Exit-Routine entfernen, stellen Sie sicher, dass alle Journale, die als Quellentabellen verwendet werden, den Eintrag DLTRCV(*NO) haben. Die Parameter des Befehls ADDEXITPGM unter der Überschrift "Registrieren der Exit-Routine DLTJRNRCV (Delete Journal Receiver) auf erweiterten Systemen" müssen wie folgt lauten: ADDEXITPGM EXITPNT(QIBM_QJO_DLT_JRNRCV) FORMAT(DRCV0100) PGM(QDPR/QZSNDREP) PGMNBR(*LOW) CRTEXITPNT(*NO) PGMDTA(65535 10 QSYS) 15.12 Kapitel 10. Capture und Apply für OS/390 In Kapitel 10 wurden die folgenden Absätze aktualisiert: 15.12.1 Vorbedingungen für DB2 DataPropagator für OS/390 Sie müssen DB2 für OS/390 Version 5, DB2 für OS/390 Version 6 oder DB2 für OS/390 Version 7 haben, um DB2 DataPropagator für OS/390 Version 7 (V7) auszuführen. 15.12.2 UNICODE- und ASCII-Schemata für Codeumsetzung unter OS/390 DB2 DataPropagator für OS/390 V7 unterstützt die UNICODE- und ASCII-Schemata für Codeumsetzung. Um die neuen Schemata für Codeumsetzung ausnutzen zu können, müssen Sie DB2 für OS/390 V7 haben, und Sie müssen Ihre Quelle, Ihr Ziel und Ihre Steuertabellen von DB2 DataPropagator manuell erstellen oder konvertieren, wie in den folgenden Abschnitten beschrieben wird. Ihre vorhandene Replikationsumgebung arbeitet allerdings mit DB2 DataPropagator für OS/390 V7, auch wenn Sie keine Schemata für Codeumsetzung ändern. 15.12.2.1 Auswählen eines Schemas für Codeumsetzung Wenn Ihre Quellen-, CD- und Zieltabellen dasselbe Schema für Codeumsetzung verwenden, können Sie den Aufwand zur Datenkonvertierung in Ihrer Replikationsumgebung minimieren. Wenn Sie Schemata für Codeumsetzung für die Tabellen auswählen, befolgen Sie die Regel für eine einzelne ID für codierten Zeichensatz: Zeichendaten in einem Tabellenbereich können in ASCII, UNICODE oder EBCDIC codiert werden. Alle Tabellen in einem Tabellenbereich müssen dasselbe Schema für Codeumsetzung verwenden. Das Schema für Codeumsetzung für alle Tabellen in einer SQL-Anweisung muss dasselbe sein. Außerdem müssen alle Tabellen, die Sie in Sichten und Verknüpfungen verwenden, dasselbe Schema für Codeumsetzung verwenden. Wenn Sie die Regel für eine einzelne ID für codierten Zeichensatz nicht befolgen, entdeckt DB2 die Verletzung und gibt SQLCODE -873 während des Bindens oder der Ausführung zurück. Welche Tabellen in ASCII oder UNICODE sein sollten, hängt von Ihrer Client-/Serverkonfiguration ab. Befolgen Sie besonders die folgenden Regeln, wenn Sie ein Schema für Codeumsetzung für die Tabellen auswählen: Quellen- oder Zieltabellen in DB2 für OS/390 können EBCDIC, ASCII oder UNICODE verwenden. Sie können aus oder in Tabellen kopiert werden, die dasselbe Schema für Codeumsetzung oder ein anderes Schema eines unterstützten Datenbankverwaltungssystems (DB2-Systemfamilie oder nicht DB2 mit DataJoiner) haben. Auf einem Quellenserver von DB2 für OS/390 müssen alle CD-, UOW-, Register- und Löschsteuertabellen auf demselben Server dasselbe Schema für Codeumsetzung verwenden. Geben Sie das Schema für Codeumsetzung immer ausdrücklich an, um die Konsistenz sicherzustellen. Alle Steuertabellen (ASN.IBMSNAP_SUBS_xxxx) auf demselben Steuerungsserver müssen dasselbe Schema für Codeumsetzung verwenden. Andere Steuertabellen können beliebige Schemata für Codeumsetzung verwenden. Es wird allerdings empfohlen, dass die Tabelle ASN.IBMSNAP_CRITSEC in EBCDIC bleibt. 15.12.2.2 Einstellen von Schemata für Codeumsetzung Ändern Sie die SQL, die zum Generieren der Tabellen verwendet wird, wie folgt, um das passende Schema für Codeumsetzung für Tabellen anzugeben: Erstellen Sie neue Quellen- und Zieltabellen mit dem passenden Schema für Codeumsetzung, oder ändern Sie das Schema für Codeumsetzung der vorhandenen Ziel- und Quellentabellen. Es wird empfohlen, dass Sie die Programme "Capture" und "Apply" stoppen, bevor Sie das Schema für Codeumsetzung von vorhandenen Tabellen ändern. Danach sollten Sie einen Kaltstart für das Programm "Capture" ausführen und das Programm "Apply" erneut starten. Gehen Sie wie folgt vor, um das Schema für Codeumsetzung von vorhandenen Tabellen zu ändern: Verwenden Sie das Dienstprogramm REORG, um die vorhandene Tabelle zu kopieren. Löschen Sie die vorhandene Tabelle. Erstellen Sie die Tabelle erneut, und geben Sie dabei das neue Schema für Codeumsetzung an. Verwenden Sie das Dienstprogramm LOAD, um die alten Daten in die neue Tabelle zu laden. Weitere Informationen zu den Dienstprogrammen LOAD und REORG finden Sie in DB2 Universal Database for OS/390 Utility Guide and Reference. Erstellen Sie neue Steuertabellen mit dem passenden Schema für Codeumsetzung, oder ändern Sie das Schema für Codeumsetzung für vorhandene Steuertabellen. Die Datei DPCNTL.MVS wird mit DB2 für OS/390 im Verzeichnis sqllib\samples\repl ausgeliefert und enthält einige Anweisungen CREATE TABLE, die die Steuertabellen erstellen. Fügen Sie für die Tabellen, die in ASCII oder UNICODE sein müssen (z. B. ASN.IBMSNAP_REGISTER und ASN.IBMSNAP_PRUNCNTL), das Schlüsselwort CCSID ASCII oder CCSID UNICODE hinzu, wie in dem folgenden Beispiel gezeigt wird: CREATE TABLE ASN.IBMSNAP_PRUNCNTL ( TARGET_SERVER CHAR( 18) NOT NULL, TARGET_OWNER CHAR( 18) NOT NULL, TARGET_TABLE CHAR( 18) NOT NULL, SYNCHTIME TIMESTAMP, SYNCHPOINT CHAR( 10) FOR BIT DATA, SOURCE_OWNER CHAR( 18) NOT NULL, SOURCE_TABLE CHAR( 18) NOT NULL, SOURCE_VIEW_QUAL SMALLINT NOT NULL, APPLY_QUAL CHAR( 18) NOT NULL, SET_NAME CHAR( 18) NOT NULL, CNTL_SERVER CHAR( 18) NOT NULL, TARGET_STRUCTURE SMALLINT NOT NULL, CNTL_ALIAS CHAR( 8) ) CCSID UNICODE DATA CAPTURE CHANGES IN TSSNAP02; Verwenden Sie die Dienstprogramme REORG und LOAD, um vorhandene Steuer- und CD-Tabellen zu verändern. Wenn Sie neue Replikationsquellen oder Subskriptionsgruppen erstellen, ändern Sie die vom Verwaltungs-Tool generierte SQL-Datei, um das passende Schema für Codeumsetzung anzugeben. Die SQL hat einige Anweisungen CREATE TABLE, die verwendet werden, um die CD- und Zieltabellen für die Replikationsquelle und die Subskriptionsgruppe zu erstellen. Fügen Sie das Schlüsselwort CCSID ASCII oder CCSID UNICODE hinzu, wo es benötigt wird. Beispiel: CREATE TABLE user1.cdtable1 ( employee_name varchar, employee_age decimal ) CCSID UNICODE; Weitere Informationen zu IDs für codierten Zeichensatz finden Sie im Handbuch DB2 UDB for OS/390 SQL Reference. 15.13 Kapitel 11. Capture und Apply für UNIX-Plattformen 15.13.1 Einstellen der Umgebungsvariablen für Capture und Apply unter UNIX und Windows Wenn Sie eine Quellendatenbank mit einer anderen Codepage als der Standard-Codepage erstellt haben, setzen Sie die Umgebungsvariable DB2CODEPAGE auf diese Codepage. Schlagen Sie weitere Informationen zum Ermitteln von Codepage-Werten im Handbuch DB2 Systemverwaltung nach, bevor Sie DB2CODEPAGE festlegen. Der Befehl "Capture" muss in derselben Codepage ausgeführt werden, wie die Datenbank, für die er Daten erfasst. DB2 ermittelt die Codepage für Capture aus der Umgebung, die während der Ausführung von Capture aktiv ist. Wenn DB2CODEPAGE nicht festgelegt ist, ermittelt DB2 den Codepage-Wert des Betriebssystems. Der Wert, der vom Betriebssystem ermittelt wird, ist für Capture korrekt, wenn Sie die Standard-Codepage bei der Erstellung der Datenbank verwendet haben. 15.14 Kapitel 14. Tabellenstrukturen Fügen Sie der Beschreibung der Statusspalte für den Wert "2" folgenden Satz hinzu: Wenn Sie interne CCD-Tabellen verwenden und in der Statusspalte der Apply-Prüfprotokolltabelle wiederholt der Wert "2" angezeigt wird, lesen Sie den Abschnitt zum Problem, dass das Apply-Programms sich einer Schleife befindet, ohne die Änderungen zu replizieren, und die Apply-Prüfprotokolltabelle die Statusangabe 2 enthält. Dieser Abschnitt befindet sich in Kapitel 8. 15.15 Kapitel 15. Nachrichten der Programme Capture und Apply Die Nachricht ASN0017E sollte wie folgt lauten: ASN0017E Das Capture-Programm hat einen schwerwiegenden internen Fehler festgestellt und konnte die korrekte Fehlernachricht nicht anzeigen. Der Routinenname ist "routine". Der Rückkehrcode ist "rückkehrcode". Nachricht ASN1027S muss hinzugefügt werden: ASN1027S Es wurden zu viele große Objekte (LOBs) angegeben. Fehlercode: "". Erläuterung: Es wurden zu viele Spalten für große Objekte (BLOB, CLOB oder DBCLOB) für ein Element einer Subskriptionsgruppe angegeben. Die maximal zulässige Spaltenanzahl ist 10. Benutzeraktion: Entfernen Sie die überzähligen Spalten für große Objekte aus dem Element einer Subskriptionsgruppe. Nachricht ASN1048E muss folgendermaßen lauten: ASN1048E Die Ausführung eines Apply-Zyklus ist fehlgeschlagen. Alle Einzelangaben sind in der Apply-Prüflistentabelle zu finden: "" Erläuterung: Ein Apply-Zyklus ist fehlgeschlagen. In der Nachrichtet bezeichnet "" den "", "" und "". Benutzeraktion: Stellen Sie anhand der APPERRM-Felder in der Prüfprotokolltabelle fest, warum der Apply-Zyklus fehlgeschlagen ist. 15.16 Anhang A. Starten der Programme Capture und Apply über einer Anwendung Die Kommentare zu der Beispielroutine, mit der die Programme Capture und Apply gestartet werden, enthalten einige Fehler. Der Code in dem Beispiel ist jedoch korrekt. Der letzte Teil des Beispiels bezieht sich auf die Apply-Parameter, obwohl die Kommentare angeben, dass er sich auf die Capture-Parameter bezieht. Beispiele der Apply- und Capture-API und ihrer jeweiligen Makefiles finden Sie in folgenden Verzeichnissen: Für NT - sqllib\samples\repl Für UNIX - sqllib/samples/repl System Monitor Guide and Reference 16.1 db2ConvMonStream In the Usage Notes, the structure for the snapshot variable datastream type SQLM_ELM_SUBSECTION should be sqlm_subsection. 16.2 Maximum Database Heap Allocated (db_heap_top) The Maximum Database Heap Allocated data element is not collected by the DB2 Version 7 database manager. Troubleshooting Guide 17.1 Starting DB2 on Windows 95, Windows 98, and Windows ME When the User Is Not Logged On For a db2start command to be successful in a Windows 95, Windows 98, or Windows Millennium Edition (ME) environment, you must either: Log on using the Windows logon window or the Microsoft Networking logon window Issue the db2logon command (see note 1 for information about the db2logon command). In addition, the user ID that is specified either during the logon or for the db2logon command must meet DB2's requirements (see note 2). When the db2start command starts, it first checks to see if a user is logged on. If a user is logged on, the db2start command uses that user's ID. If a user is not logged on, the db2start command checks whether a db2logon command has been run, and, if so, the db2start command uses the user ID that was specified for the db2logon command. If the db2start command cannot find a valid user ID, the command terminates. During the installation of DB2 Universal Database Version 7 on Windows 95, Windows 98, and Windows ME, the installation software, by default, adds a shortcut to the Startup folder that runs the db2start command when the system is booted (see note 1 for more information). If the user of the system has neither logged on nor issued the db2logon command, the db2start command will terminate. If you or your users do not normally log on to Windows or to a network, you can hide the requirement to issue the db2logon command before a db2start command by running commands from a batch file as follows: Create a batch file that issues the db2logon command followed by the db2start.exe command. For example: @echo off db2logon db2local /p:password db2start cls exit Name the batch file db2start.bat, and store it in the /bin directory that is under the drive and path where you installed DB2. You store the batch file in this location to ensure that the operating system can find the path to the batch file. The drive and path where DB2 is installed is stored in the DB2 registry variable DB2PATH. To find the drive and path where you installed DB2, issue the following command: db2set -g db2path Assume that the db2set command returns the value c:\sqllib. In this situation, you would store the batch file as follows: c:\sqllib\bin\db2start.bat To start DB2 when the system is booted, you should run the batch file from a shortcut in the Startup folder. You have two options: Modify the shortcut that is created by the DB2 installation program to run the batch file instead of db2start.exe. In the preceding example, the shortcut would now run the db2start.bat batch file. The shortcut that is created by DB2 installation program is called DB2 - DB2.lnk, and is located in c:\WINDOWS\Start Menu\Programs\Start\DB2 - DB2.lnk on most systems. Add your own shortcut to run the batch file, and delete the shortcut that is added by the DB2 installation program. Use the following command to delete the DB2 shortcut: del "C:\WINDOWS\Start Menu\Programs\Startup\DB2 - DB2.lnk" If you decide to use your own shortcut, you should set the close on exit attribute for the shortcut. If you do not set this attribute, the DOS command prompt is left in the task bar even after the db2start command has successfully completed. To prevent the DOS window from being opened during the db2start process, you can create this shortcut (and the DOS window it runs in) set to run minimized. Anmerkung: As an alternative to starting DB2 during the boot of the system, DB2 can be started prior to the running of any application that uses DB2. See note 5 for details. If you use a batch file to issue the db2logon command before the db2start command is run, and your users occasionally log on, the db2start command will continue to work, the only difference being that DB2 will use the user ID of the logged on user. See note 1 for additional details. Anmerkungen: The db2logon command simulates a user logon. The format of the db2logon command is: db2logon userid /p:password The user ID that is specified for the command must meet the DB2 naming requirements (see note 2 for more information). If the command is issued without a user ID and password, a window opens to prompt the user for the user ID and password. If the only parameter provided is a user ID, the user is not prompted for a password; under certain conditions a password is required, as described below. The user ID and password values that are set by the db2logon command are only used if the user did not log on using either the Windows logon window or the Microsoft Networking logon window. If the user has logged on, and a db2logon command has been issued, the user ID from the db2logon command is used for all DB2 actions, but the password specified on the db2logon command is ignored When the user has not logged on using the Windows logon window or the Microsoft Networking logon window, the user ID and password that are provided through the db2logon command are used as follows: The db2start command uses the user ID when it starts, and does not require a password. In the absence of a high-level qualifier for actions like creating a table, the user ID is used as the high-level qualifier. For example: If you issue the following: db2logon db2local Then issue the following: create table tab1 The table is created with a high-level qualifier as db2local.tab1. You should use a user ID that is equal to the schema name of your tables and other objects. When the system acts as client to a server, and the user issues a CONNECT statement without a user ID and password (for example, CONNECT TO TEST) and authentication is set to server, the user ID and password from the db2logon command are used to validate the user at the remote server. If the user connects with an explicit user ID and password (for example, CONNECT TO TEST USER userID USING password), the values that are specified for the CONNECT statement are used. In Version 7, the user ID that is either used to log on or specified for the db2logon command must conform to the following DB2 requirements: It cannot be any of the following: USERS, ADMINS, GUESTS, PUBLIC, LOCAL, or any SQL reserved word that is listed in the SQL Reference. It cannot begin with: SQL, SYS or IBM Characters can include: A through Z (Windows 95, Windows 98, and Windows ME support case-sensitive user IDs) 0 through 9 @, #, or $ You can prevent the creation of the db2start shortcut in the Startup folder during a customized interactive installation, or if you are performing a response file installation and specify the DB2.AUTOSTART=NO option. If you use these options, there is no db2start shortcut in the Startup folder, and you must add your own shortcut to run the db2start.bat file. On Windows 98 and Windows ME an option is available that you can use to specify a user ID that is always logged on when Windows 98 or Windows ME is started. In this situation, the Windows logon window will not appear. If you use this option, a user is logged on and the db2start command will succeed if the user ID meets DB2 requirements (see note 2 for details). If you do not use this option, the user will always be presented with a logon window. If the user cancels out of this window without logging on, the db2start command will fail unless the db2logon command was previously issued, or invoked from the batch file, as described above. If you do not start DB2 during a system boot, DB2 can be started by an application. You can run the db2start.bat file as part of the initialization of applications that use DB2. Using this method, DB2 will only be started when the application that will use it is started. When the user exits the application, a db2stop command can be issued to stop DB2. Your business applications can start DB2 in this way, if DB2 is not started during the system boot. To use the DB2 Synchronizer application or call the synchronization APIs from your application, DB2 must be started if the scripts that are download for execution contain commands that operate either against a local instance or a local database. These commands can be in database scripts, instance scripts, or embedded in operating system (OS) scripts. If an OS script does not contain Command Line Processor commands or DB2 APIs that use an instance or a database, it can be run without DB2 being started. Because it may be difficult to tell in advance what commands will be run from your scripts during the synchronization process, DB2 should normally be started before synchronization begins. If you are calling either the db2sync command or the synchronization APIs from your application, you would start DB2 during the initialization of your application. If your users will be using the DB2 Synchronizer shortcut in the DB2 for Windows folder to start synchronization, the DB2 Synchronization shortcut must be modified to run a db2sync.bat file. The batch file should contain the following commands to ensure that DB2 is running before synchronization begins: @echo off db2start.bat db2sync.exe db2stop.exe cls exit In this example, it is assumed that the db2start.bat file invokes the db2logon and db2start commands as described above. If you decide to start DB2 when the application starts, ensure that the installation of DB2 does not dd a shortcut to the Startup folder to start DB2. See note 3 for details. 17.2 Chapter 1. Good Troubleshooting Practices 17.2.1 Problem Analysis and Environment Collection Tool There is a utility that will help you identify some of the information associated with your problem and will collect other relevant information to assist DB2 Customer Support to understand your environment and your problem. Much of what is collected using this utility is discussed in the rest of this chapter. The utility is db2support. Details about the syntax and command line options is found in the Command Reference. The purpose of the utility is to collect environmental data about your client or server machine that is running DB2; and then to collect and package a large portion of the output as browsable XML, HTML, or a compressed file archive. The utility also has an option that allows for the collection of some data from you about the nature of your problem using an interactive question and answer process. This process will help you clarify the problem and also provide information to DB2 Customer Support when you finally contact them regarding your problem. Anmerkung: A thin or runtime client is not able to use this utility. The utility requires that the client have the DB2 engine libraries installed. 17.2.1.1 Collection Outputs The utility produces a compressed collection (single file archive) of important database system information. Included in this archive is an HTML report of the most essential information, which you can use to view the information. By default, db2support will not collect table data, schema (DDL), or logs in order to protect the security and sensitivity of customer data. With some options, the user may elect to include aspects of their schema and data (such as including archived logs). Options that expose database schema or data should be used carefully. When db2support is invoked, a message indicating how sensitive data is dealt with will be displayed. The following are the files to be collected and compressed into a single archive: Collected under all conditions db2diag.log All trap files Lock list files (with -d) Dump files User exit (with -d) Buffer pool and table space (SPCS) control files (with -d) Various system related files Output from various system commands db config (with -d) dbm config files Log File Header file (with -d) Recovery History File db2cli.ini Optionally collected Active log files Contents of db2dump directory (i.e. what was not collected above) Core files (-a for all core file, -r for only the most recent core file) Extended system information (-s) The following files make up the content of the HTML report: Collected under all conditions PMR number, if one exists. (if -n was specified) Operating system and level. (e.g. AIX 4.2.1) DB2 release information. Engine library header information. Detecting 32- or 64-bit DB2 install path information. For EEE report contents of db2nodes.cfg How many CPUs, disks, and how much memory. List of databases on this instance. Registry information, environment, including path & libpath. Disk freespace for current filesystem and inodes for Unix. JDK level. dbm config. Listing of the database recovery history file. 'ls -lR' (or windows equivilant) of the sqllib directory. LIST NODE DIRECTORY LIST ADMIN NODE DIRECTORY LIST DCS DIRECTORY LIST DCS APPLICATIONS EXTENDED List of all installed software. Collected if '-s' is specified Detailed disk information (partition layout, type, LVM information, etc.) Detailed network information Kernel statistics Firmware versions Other platform specific commands Collected if DB2 has been started Client connection state db/dbm config (db cfg require -d option) CLI config Memory pool info (size and consumed). Complete data if -d option used. LIST ACTIVE DATABASES LIST DATALINKS MANAGERS LIST DCS APPLICATIONS Collected if -c has been specified and a connection to the database can be made Number of user tables Approximate size of DB data Database snapshot Application snapshot Buffer pool information LIST APPLICATIONS LIST COMMAND OPTIONS LIST DATABASE DIRECTORY LIST INDOUBT TRANSACTIONS LIST NODEGROUPS LIST NODES LIST ODBC DATA SOURCES LIST PACKAGES/TABLES LIST TABLESPACE CONTAINERS LIST TABLESPACES LIST DRDA IN DOUBT TRANSACTIONS If '-q' is specified, collect the following The interactive question and answer mode is started. With the exception of an optional "describe your problem" question and a small number of requests for customer information, all of the questions will have multiple choice answers from which to select. All of the questions, including follow up questions, and the answers will be collected. In some cases, the utility will ask you to carry out a task and place the results of that task in an additional directory. A small decision tree is used during the interactive mode to determine the questions to ask. These interactive questions assist in determining the category of the problem and based on the category a few other relevant questions may be asked and additional data collected. At the end of the questions, any data that would have been collected in the automatic mode, will also be collected. The answers to all questions are stored in preparation to be sent to service along with any data collected in automatic mode. 17.2.1.2 Viewing detailed_system_info.html If you are running db2support on a non-English installation and are experiencing difficulties properly viewing detailed_system_info.html, you may need to use Internet Explorer version 5 or later with DOS encoding. To change the encoding, select View --> Encoding --> Central European (DOS). If you do not already have the required encoding support, then Internet Explorer prompts you to download the required files from the Microsoft Updates web site. This information does not apply to double-byte languages (Simplified Chinese, Traditional Chinese, Japanese and Korean). 17.2.1.3 Viewing DB2 Support Tool Syntax One Page at a Time To view the syntax for the DB2 Support Tool one page at a time, run the following command: db2support | more 17.3 Chapter 2. Troubleshooting the DB2 Universal Database Server Under the "Locking and Deadlocks" section, under the "Applications Slow or Appear to Hang" subsection, change the description under "Lock waits or deadlocks are not caused by next key locking" to : Next key locking guarantees Repeatable Read (RR) isolation level by automatically locking the next key for all INSERT and DELETE statements and the next higher key value above the result set for SELECT statements. For UPDATE statements that alter key parts of an index, the original index key is deleted and the new key value is inserted. Next key locking is done on both the key insertion and key deletion. It is required to guarantee ANSI and SQL92 standard RR, and is the DB2 default. Examine snapshot information for the application. If the problem appears to be with next key locking, you can set the DB2_RR_TO_RS option on if none of your applications rely on Repeatable Read (RR) behavior and it is acceptable for scans to skip over uncommitted deletes. When DB2_RR_TO_RS is on, RR behavior cannot be guaranteed for scans on user tables because next key locking is not done during index key insertion and deletion. Catalog tables are not affected by this option. The other change in behavior is that with DB2_RR_TO_RS on, scans will skip over rows that have been deleted but not committed, even though the row may have qualified for the scan. For example, consider the scenario where transaction A deletes the row with column1=10 and transaction B does a scan where column1>8 and column1<12. With DB2_RR_TO_RS off, transaction B will wait for transaction A to commit or rollback. If it rolls back, the row with column1=10 will be included in the result set of transaction B's query. With DB2_RR_TO_RS on, transaction B will not wait for transaction A to commit or rollback. It will immediately receive query results that do not include the deleted row. Do not use this option if you require ANSI and SQL92 standard RR or if you do not want scans to skip uncommitted deletes. 17.4 Chapter 8. Troubleshooting DB2 Data Links Manager In Version 7 FixPak 2, an SQL1179W warning message is generated by the server when precompiling a source file or binding a bind file without specifying a value for the FEDERATED option. The same message is generated when the source file or bind file includes static SQL references to a nickname. There are two exceptions: For clients that are at an earlier FixPak than Version 7 FixPak 2 or for downlevel clients, the sqlaprep() API does not report this SQL1179W warning in the message file. The Command Line Processor PRECOMPILE command also does not output the warning in this case. For clients that are at an earlier FixPak than Version 7 FixPak 2 or for downlevel clients, the sqlabndx API does report this SQL1179W warning in the message file. However, the message file also incorrectly includes an SQL0092N message indicating that no package was created. This is not correct as the package is indeed created. The Command Line Processor BIND command returns the same erroneous warning. 17.5 Chapter 15. Logged Information 17.5.1 Gathering Stack Traceback Information on UNIX-Based Systems The Troubleshooting Guide incorrectly states that to activate stack traceback on every node of a multi-node system, you need to use the db2_all command. Only the db2_call_stack command is needed. Use of db2_all and db2_call_stack together will cause an error. Verwenden von DB2 Universal Database auf 64-Bit-Plattformen 18.1 Kapitel 5. Konfiguration 18.1.1 LOCKLIST Die folgenden Informationen sollten Tabelle 2 hinzugefügt werden. Parameter Vorherige Obergrenze Aktuelle Obergrenze LOCKLIST 60000 524288 18.1.2 shmsys:shminfo_shmmax DB2-Benutzer des 64-Bit-Betriebssystems Solaris sollten gegebenenfalls den Wert von shmsys:shminfo_shmmax in /etc/system erhöhen, um großen gemeinsam genutzten Datenbankspeicher zuordnen zu können. Das Handbuch DB2 für UNIX Einstieg empfiehlt, diesen Parameter auf 90% des physischen RAM in der Maschine (in Byte) einzustellen. Diese Empfehlung gilt auch für 64-Bit-Implementierungen. Es gibt jedoch ein Problem mit der folgenden Empfehlung im Handbuch DB2 für UNIX Einstieg: Wenn ein Benutzer bei 32-Bit-Systemen mit mehr als 4 GB RAM (bis zu 64 GB ist insgesamt im Solaris-Betriebssystem möglich) den Wert von shmmax auf einen größeren Wert als 4 GB einstellt und einen 32-Bit-Kernel verwendet, beachtet der Kernel nur die unteren 32 Bit der Zahl, was manchmal zu einem sehr kleinen Wert für shmmax führt. 18.2 Kapitel 6. Einschränkungen Derzeit wird LDAP auf 64-Bit-Betriebssystemen nicht unterstützt. 32-Bit- und 64-Bit-Datenbanken können nicht im selben Pfad erstellt werden. Wenn z. B. eine 32-Bit-Datenbank in vorhanden ist, schlägt der folgende Befehl: db2 create db on mit der Nachricht "SQL10004C Beim Zugriff auf das Datenbankverzeichnis trat ein E/A-Fehler auf" fehl, wenn er von einem 64-Bit-Exemplar abgesetzt wird. XML Extender Verwaltung und Programmierung Release-Informationen für IBM DB2 XML Extender finden Sie auf der Website von DB2 XML: http://www.ibm.com/software/data/db2/extenders/xmlext/library.html MQSeries In diesem Abschnitt wird beschrieben, wie DB2 und MQSeries zur Erstellung von Anwendungen verwendet werden können, die sowohl Nachrichtenübertragung als auch Datenbankzugriff ermöglichen. Der Schwerpunkt liegt hierbei auf einer Reihe von Funktionen, die benutzerdefinierten Funktionen (UDFs - User-Defined Functions) ähneln und in DB2 Universal Database Version 7.2 optional aktiviert werden können. Durch diese Basisfunktionen können zahlreiche Anwendungen unterstützt werden, von der einfachen Ereignisaufzeichnung bis zum Data Warehousing. Weitere Informationen zu Data Warehousing-Anwendungen finden Sie im kürzlich aktualisierten Handbuch Data Warehouse-Zentrale Verwaltung, das Sie von http://www.ibm.com/software/data/db2/udb/winos2unix/support herunterladen können. 20.1 Installation und Konfiguration für die DB2 MQSeries-Funktionen In diesem Abschnitt wird beschrieben, wie eine DB2-Umgebung zur Verwendung der DB2 MQSeries-Funktionen konfiguriert werden muss. Nach erfolgreicher Durchführung der folgenden Prozedur können die DB2 MQSeries-Funktionen in SQL aufgerufen werden. Eine Beschreibung der Funktionen finden Sie im Abschnitt zum Handbuch "SQL Reference" in den Release-Informationen. Die Konfiguration und Aktivierung der DB2 MQSeries-Funktionen erfolgt grundsätzlich wie folgt: Installieren Sie MQSeries auf jeder physischen Maschine. Installieren Sie MQSeries AMI auf jeder physischen Maschine. Aktivieren und konfigurieren Sie die DB2 MQSeries-Funktionen. Zur Verwendung der P/S-Funktionen (Publish/Subscribe - Veröffentlichen/Teilnehmen), die innerhalb der DB2 MQSeries-Funktionen zur Verfügung stehen, müssen entweder MQSeries Integrator oder die P/S-Funktionen von MQSeries auf jeder physischen Maschine installiert werden. Informationen zu MQSeries Integrator finden Sie unter http://www.ibm.com/software/ts/mqseries/integrator . Informationen zur P/S-Funktionalität von MQSeries finden Sie unter http://www.ibm.com/software/ts/mqseries/txppacs ("category 3"). 20.1.1 Installieren von MQSeries Zunächst muss sichergestellt werden, dass mindestens MQSeries Version 5.1 mit dem neuesten FixPak auf Ihrem DB2-Server installiert ist. Wenn dies der Fall ist, können Sie mit dem nächsten Schritt ("Installieren von MQSeries AMI") fortfahren. DB2 Version 7.2 enthält eine Kopie des MQSeries-Servers, der mit DB2 verwendet werden muss. Plattformspezifische Anweisungen zum Installieren von MQSeries oder Aktualisieren einer vorhandenen MQSeries-Installation finden Sie in den zugehörigen Einstiegshandbüchern unter folgender Adresse: http://www.ibm.com/software/ts/mqseries/library/manuals. Stellen Sie sicher, dass für den Installationsprozess ein Standard-Warteschlangenmanager definiert wird. 20.1.2 Installieren von MQSeries AMI Der nächste Schritt besteht in der Installation von MQSeries Application Messaging Interface (AMI). Dabei handelt es sich um eine Erweiterung der Programmierschnittstellen von MQSeries, wobei eine klare Trennung von verwaltungs- und programmierbezogenen Tasks vorgenommen wird. Für die DB2 MQSeries-Funktionen ist die Installation dieser Schnittstelle erforderlich. Wenn MQSeries AMI bereits auf dem DB2-Server installiert ist, fahren Sie mit dem nächsten Schritt ("Aktivieren der DB2 MQSeries-Funktionen") fort. Wenn MQSeries AMI nicht installiert ist, können Sie das Produkt über das mit DB2 7.2 gelieferte Installationspaket installieren, oder eine AMI-Kopie von der MQSeries-Website für Unterstützungspakete unter http://www.ibm.com/software/ts/mqseries/txppacs herunterladen. Die AMI befindet sich unter "Category 3 - Product Extensions". Der Einfachheit halber gehört eine Kopie von MQSeries AMI zum Lieferumfang von DB2. Diese Datei befindet sich im Verzeichnis sqllib/cfg. Der Name der Datei ist betriebssystemabhängig: AIX Version ab 4.3 ma0f_ax.tar.Z HP-UX ma0f_hp.tar.Z Solaris-Betriebsumgebung ma0f_sol7.tar.Z oder mq0f_sol26.tar.Z Windows (32-Bit) ma0f_nt.zip Führen Sie den normalen AMI-Installationsprozess gemäß den Beschreibungen in der Readme-Datei zu AMI durch, die im komprimierten Installationsimage enthalten ist. 20.1.3 Aktivieren der DB2 MQSeries-Funktionen In diesem Schritt wird eine Datenbank für die DB2 MQSeries-Funktionen konfiguriert und aktiviert. Das Dienstprogramm enable_MQFunctions ist ein flexibler Befehl, der zunächst sicherstellt, dass die richtige MQSeries-Umgebung eingerichtet wurde. Dann wird eine Standardkonfiguration für die DB2 MQSeries-Funktionen erstellt und installiert. Anschließend wird die angegebene Datenbank mit diesen Funktionen aktiviert, und das ordnungsgemäße Funktionieren der Konfiguration wird bestätigt. Fahren Sie für Windows NT oder Windows 2000 mit Schritt 5 fort. Richten Sie Gruppen unter UNIX ein. Wenn Sie die Funktionen unter UNIX aktivieren, müssen der MQSeries-Gruppe mqm zuerst der DB2-Exemplareigner (häufig db2inst1) und die den abgeschirmten UDFs (häufig db2fenc1) zugeordnete Benutzer-ID hinzugefügt werden. Dies ist erforderlich, damit die DB2-Funktionen auf MQSeries zugreifen können. Setzen Sie die DB2-Umgebungsvariablen unter UNIX. Fügen Sie die Umgebungsvariable AMT_DATA_PATH der von DB2 verarbeitbaren Liste hinzu. Die Datei $INSTHOME/sqllib/profile.env kann editiert werden. Fügen Sie DB2ENVLIST die Umgebungsvariable AMT_DATA_PATH hinzu. Der Befehl db2set kann ebenfalls verwendet werden. Starten Sie unter UNIX das Datenbankexemplar erneut. Das Datenbankexemplar muss erneut gestartet werden, damit die Änderungen an der Umgebungsvariablen wirksam werden. Wechseln Sie unter UNIX in das Verzeichnis $INSTHOME/sqllib/cfg und unter Windows in das Verzeichnis %DB2PATH%/cfg. Führen Sie den Befehl enable_MQFunctions aus, um eine Datenbank für die DB2 MQSeries-Funktionen zu konfigurieren und zu aktivieren. Führen Sie diesen Schritt in einer DB2 UDB EEE-Umgebung nur für den Katalogknoten aus. Eine komplette Beschreibung dieses Befehls finden Sie in 20.6, enable_MQFunctions. Einige allgemeine Beispiele werden weiter unten erläutert. Nach erfolgreicher Durchführung wird die angegebene Datenbank aktiviert und die Konfiguration getestet. Setzen Sie nach Herstellung einer Verbindung zur aktivierten Datenbank zum Testen der Funktionen mit dem Befehlszeilenprozessor die folgenden Befehle ab: values DB2MQ.MQSEND('ein Test') values DB2MQ.MQRECEIVE() Die erste Anweisung sendet die Nachricht "ein Test" an die Warteschlange DB2MQ_DEFAULT_Q. Mit der zweiten Anweisung wird die Nachricht wieder empfangen. Anmerkung: Bei Ausführung von enable_MQFunctions wird eine MQSeries-Standardumgebung erstellt. Der MQSeries-Warteschlangenmanager DB2MQ_DEFAULT_MQM und die Standard-Warteschlange DB2MQ_DEFAULT_Q werden erstellt. Ferner werden die Dateien amt.xml, amthost.xml und amt.dtd erstellt, sofern sie nicht bereits in dem Verzeichnis enthalten sind, auf das AMT_DATA_PATH verweist. Wenn die Datei amthost.xml vorhanden ist und keine Definition für connectionDB2MQ enthält, wird der Datei eine Zeile mit den entsprechenden Informationen hinzugefügt. Eine Kopie der Originaldatei wird als DB2MQSAVE.amthost.xml gespeichert. 20.2 MQSeries - Nachrichtendarstellung MQSeries unterstützt drei Nachrichtenübertragungsmodelle: Datagramme, Veröffentlichen/Teilnehmen (Publish/Subscribe - P/S) und Anfordern/Antworten (Request/Reply - R/R). Nachrichten, die als Datagramme gesendet werden, werden an ein einzelnes Ziel gesendet, ohne dass eine Antwort erwartet wird. Beim P/S-Modell sendet mindestens ein Herausgeber eine Nachricht an einen Veröffentlichungsservice, der die Nachricht an mindestens einen interessierten Subskribenten verteilt. Das R/R-Modell ist dem Datagramm-Modell ähnlich, der Sender erwartet jedoch eine Antwort. 20.3 Nachrichtenstruktur MQSeries unterstützt oder erfordert keine bestimmte Struktur der zu übertragenden Nachrichten. Andere Produkte, wie beispielsweise MQSeries Integrator (MQSI), bieten dagegen Unterstützung für Nachrichten, die als C-, Cobol- oder XML-Zeichenfolgen erstellt wurden. Strukturierte Nachrichten werden in MQSI durch ein Nachrichten-Repository definiert. XML-Nachrichten verfügen normalerweise über eine selbsterklärende Nachrichtenstruktur und können ebenfalls über das Repository verwaltet werden. Nachrichten können auch unstrukturiert sein. In diesem Fall ist zum syntaktischen Analysieren oder Erstellen des Nachrichteninhalts Benutzercode erforderlich. Nachrichten dieser Art sind häufig semistrukturiert, d. h zum Unterteilen der Felder innerhalb der Nachricht werden Bytepositionen oder feste Begrenzer verwendet. Der Assistent "MQSeries Assist" bietet Unterstützung für semistrukturierte Nachrichten. XML-Nachrichten werden durch einige der neuen Funktionen von DB2 XML Extender unterstützt. 20.4 MQSeries - Funktionsübersicht DB2 UDB Version 7.2 enthält eine Reihe von MQSeries-Funktionen zum Einfügen von Nachrichtenübertragungsoperationen in SQL-Anweisungen. Diese Unterstützung gilt folglich für alle Anwendungen, die in einer der unterstützten Sprachen (z. B. C, Java oder SQL) unter Verwendung einer beliebigen Datenbankschnittstelle geschrieben wurden. Bei allen nachfolgenden Beispielen wurde SQL verwendet. In diesem Fall kann SQL von anderen Programmiersprachen für standardmäßige Verarbeitungsvorgänge verwendet werden. Alle oben beschriebenen Nachrichtendarstellungen von MQSeries werden unterstützt. Weitere Informationen zu den MQSeries-Funktionen finden Sie im Abschnitt zum Handbuch "SQL Reference" in den Release-Informationen. In einer Basiskonfiguration befinden sich ein MQSeries-Server und DB2 auf dem Datenbankserver. Die MQSeries-Funktionen werden in DB2 installiert und ermöglichen den Zugriff auf den MQSeries-Server. DB2-Clients können auf allen Maschinen installiert sein, auf die der DB2-Server zugreifen kann. Mehrere Clients können über die Datenbank gleichzeitig auf die MQSeries-Funktionen zugreifen. Über die bereitgestellten Funktionen können DB2-Clients innerhalb von SQL-Anweisungen Nachrichtenübertragungsoperationen durchführen. Diese Nachrichtenübertragungsoperationen ermöglichen DB2-Anwendungen die Kommunikation untereinander oder mit anderen MQSeries-Anwendungen. Der Befehl enable_MQFunctions wird zur Aktivierung einer DB2-Datenbank für die MQSeries-Funktionen verwendet. Dabei wird eine einfache Standardkonfiguration erstellt, die von Client-Anwendungen ohne weitere Verwaltungsmaßnahmen verwendet werden kann. Eine Beschreibung hierzu finden Sie in 20.6, enable_MQFunctions und 20.7, disable_MQFunctions. Die Standardkonfiguration ermöglicht Anwendungsprogrammierern einen schnellen Einstieg und bietet eine einfachere Entwicklungsschnittstelle. Weitere Funktionen können bei Bedarf inkrementell konfiguriert werden. Beispiel 1: Die SQL-Anweisung zum Senden einer einfachen Nachricht unter Verwendung der Standardkonfiguration lautet wie folgt: VALUES DB2MQ.MQSEND('einfache nachricht') Die Nachricht einfache nachricht wird an den MQSeries-Warteschlangenmanager und an die von der Standardkonfiguration definierte Warteschlange gesendet. MQSeries Application Messaging Interface (AMI) nimmt eine klare Trennung zwischen den Nachrichtenübertragungsoperationen und den Definitionen für die Ausführung dieser Operationen vor. Die Definitionen befinden sich in einer externen Repository-Datei und werden vom AMI-Verwaltungs-Tool verwaltet. Aus diesem Grund ist die Entwicklung und Verwaltung von AMI-Anwendungen einfach. Die DB2 MQSeries-Funktionen basieren auf der MQSeries-Schnittstelle AMI. AMI unterstützt zur Speicherung von Konfigurationsdaten eine externe Konfigurationsdatei, die AMI-Repository genannt wird. Die Standardkonfiguration enthält ein MQSeries AMI-Repository, das für DB2 konfiguriert ist. Die beiden Schlüsselkonzepte von MQSeries AMI, Servicepunkte und Richtlinien, werden in die DB2 MQSeries-Funktionen übertragen. Ein Servicepunkt ist ein logischer Endpunkt, von dem eine Nachricht gesendet oder empfangen werden kann. Im AMI-Repository wird jeder Servicepunkt durch den Namen einer Warteschlange und einen Warteschlangenmanager von MQSeries definiert. Richtlinien legen die Qualität von Serviceoptionen fest, die für einen bestimmten Nachrichtenübertragungsvorgang verwendet werden. Die wichtigsten Qualitäten sind die Nachrichtenpriorität und der Datenbankzugriff. Dabei werden Standardservicepunkte und Standard-Richtliniendefinitionen zur Verfügung gestellt, die der Entwickler zur weiteren Anwendungsvereinfachung verwenden kann. Beispiel 1 kann umgeschrieben werden, um den Standardservicepunkt und den Richtliniennamen wie folgt explizit anzugeben: Beispiel 2: VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY', 'einfache Nachricht') Warteschlangen können von mindestens einer Anwendung auf dem Server bedient werden, auf dem sich die Warteschlangen und Anwendungen befinden. In zahlreichen Konfigurationen werden zur Unterstützung unterschiedlicher Anwendungen und Einsatzmöglichkeiten mehrere Warteschlangen definiert. Aus diesem Grund ist es oft wichtig, bei MQSeries-Anforderungen unterschiedliche Servicepunkte zu definieren. Das folgende Beispiel veranschaulicht dies: Beispiel 3: VALUES DB2MQ.MQSEND('ODS_Eingabe', 'einfache Nachricht') Anmerkung: Da in diesem Beispiel keine Richtlinie angegeben wurde, wird die Standardrichtlinie verwendet. 20.4.1 Einschränkungen MQSeries bietet die Möglichkeit, Nachrichten- und Datenbankoperationen in einer einzelnen Arbeitseinheit als autarke Transaktion zu kombinieren. Diese Funktion wird von den MQSeries-Funktionen unter Unix und Windows ursprünglich nicht unterstützt. Bei Verwendung der Sende- oder Empfangsfunktionen beträgt die maximale Länge einer Nachricht vom Typ VARCHAR 4000 Zeichen. Die maximale Länge beim Senden und Empfangen einer Nachricht vom Typ CLOB beträgt 1 MB. Dies sind auch die maximalen Nachrichtengrößen zur Veröffentlichung einer Nachricht mit MQPublish. Manchmal sind beim Arbeiten mit CLOB-Nachrichten und VARCHAR-Nachrichten unterschiedliche Befehle erforderlich. Im allgemeinem verwendet die CLOB-Version einer MQ-Funktion die identiche Syntax wie di e entsprechende VARCHAR-Version. Der einzige Unterschied besteht darin, dass an ihren Namen "CLOB" angehängt wird. Das CLOB-Äquivalent von MQREAD z. B. heißt MQREADCLOB. Eine ausführliche Liste dieser Funktionen finden Sie in 43.7.3, CLOB data now supported in MQSeries functions. 20.4.2 Fehlercodes Die Rückkehrcodes von MQSeries-Funktionen finden Sie in Anhang B des Handbuchs zu MQSeries Application Messaging Interface. 20.5 Einsatzszenarios Die MQSeries-Funktionen können in einer Vielzahl von Szenarios verwendet werden. In diesem Abschnitt werden einige der allgemeineren Szenarios, einschließlich Basis-Nachrichtenübertragung, Anwendungskonnektivität und Datenveröffentlichung, beschrieben. 20.5.1 Basis-Nachrichtenübertragung Die grundlegendste Form der Nachrichtenübertragung mit den DB2 MQSeries-Funktionen findet statt, wenn alle Datenbankanwendungen mit demselben DB2-Server verbunden sind. Die Clients können mit dem Server lokal oder in einer Netzwerkumgebung verbunden sein. In einem einfachen Szenario ruft Client A die Funktion MQSEND auf, um eine benutzerdefinierte Zeichenfolge an den standardmäßig definierten Servicestandort zu senden. Die MQSeries-Funktionen werden dann in DB2 auf dem Datenbankserver ausgeführt. Zu einem späteren Zeitpunkt ruft Client B die Funktion MQRECEIVE auf, um die Nachricht am Kopfsatz der vom Standardservice definierten Warteschlange zu entfernen und an den Client zurückzugeben. Die MQSeries-Funktionen für diesen Vorgang werden wieder von DB2 ausgeführt. Datenbankclients können die einfache Nachrichtenübertragung auf unterschiedliche Weise verwenden. Im Folgenden werden einige allgemeine Verwendungsmöglichkeiten der Nachrichtenübertragung erläutert: Datenerfassung - Informationen werden in Form von Nachrichten von einer oder mehreren, möglicherweise unterschiedlichen Informationsquellen empfangen. Bei diesen Informationsquellen kann es sich um Handelsanwendungen wie SAP oder intern entwickelte Anwendungen handeln. Die diesbezüglichen Daten können von Warteschlangen empfangen und in Datenbanktabellen zur weiteren Verarbeitung oder Analyse gespeichert werden. Verteilung der Auslastung - Verarbeitungsaufträge werden an eine Warteschlange übergeben, die von mehreren Exemplaren derselben Anwendung gemeinsam verwendet wird. Wenn ein Exemplar einen Auftrag übernehmen kann, empfängt es eine Nachricht mit dem entsprechenden Verarbeitungsauftrag vom Anfang der Warteschlange. Auf diese Weise kann die Auslastung, die sich aus einer Warteschlange mit einem Pool von Aufträgen ergibt, auf mehrere Exemplare aufgeteilt werden. Senden von Anwendungssignalen - Wenn mehrere Prozesse zusammenarbeiten, werden Nachrichten häufig zur Koordinierung der entsprechenden Verarbeitungsvorgänge verwendet. Nachrichten dieser Art können auszuführende Befehle oder Verarbeitungsaufträge enthalten. Normalerweise werden die Anwendungssignale hier nur in eine Richtung gesendet. Der die Nachricht auslösende Teilnehmer erwartet keine Antwort. Weitere Informationen hierzu finden Sie in 20.5.4.1, R/R-Kommunikation. Senden von Anwendungshinweisen - Das Senden von Anwendungshinweisen ähnelt dem Senden von Anwendungssignalen, da der Initiator die Daten ohne Erwartung einer Antwort sendet. Normalerweise enthalten Anwendungshinweise jedoch Daten zu bereits stattgefundenen Geschäftsereignissen. 20.5.4.2, P/S stellt eine erweiterte Form des Sendens von Anwendungshinweisen dar. Das folgende Szenario ist eine Erweiterung des obigen Szenarios und berücksichtigt die Nachrichtenübertragung von einem fernen Standort. Nachrichten werden hierbei zwischen Maschine A und Maschine B ausgetauscht. Die Vorgehensweise ist wie folgt: Der DB2-Client gibt bei der Ausführung eines MQSEND-Aufrufs einen Zielservice an, der eine ferne Warteschlange auf Maschine B repräsentiert. Die eigentliche MQSeries-Arbeit zum Senden der Nachricht wird von den DB2 MQSeries-Funktionen ausgeführt. Der MQSeries-Server auf Maschine A akzeptiert die Nachricht und garantiert, dass sie an die vom Servicepunkt und der aktuellen MQSeries-Konfiguration von Maschine A definierte Zieladresse gesendet wird. Der Server stellt fest, dass es sich um eine Warteschlange auf Maschine B handelt. Dann versucht er, die Nachricht an den MQSeries-Server auf Maschine B zu übergeben, wobei der Vorgang bei Bedarf transparent wiederholt wird. Der MQSeries-Server auf Maschine B akzeptiert die Nachricht vom Server auf Maschine A und übergibt sie an die Bestimmungswarteschlange auf Maschine B. Ein MQSeries-Client auf Maschine B fordert die Nachricht am Kopfsatz der Warteschlange an. 20.5.2 Senden von Nachrichten Unter Verwendung von MQSEND legt ein DB2-Benutzer oder -Entwickler fest, welche Daten zu welchem Zeitpunkt an welche Zieladresse gesendet werden. In der IT-Branche wird dieser Vorgang als "Senden und Vergessen" (Send and Forget) bezeichnet. Damit ist gemeint, dass der Sender die Nachricht nur sendet und sich im Hinblick auf den ordnungsgemäßen Empfang der Nachricht auf die garantierten Übergabeprotokolle von MQSeries verlässt. Diese Vorgehensweise wird in den folgenden Beispielen verdeutlicht. Beispiel 4: Senden einer benutzerdefinierten Zeichenfolge an den Servicepunkt meinPlatz mit der Richtlinie hohePriorität: VALUES DB2MQ.MQSEND('meinPlatz','hohePriorität','test') In diesem Fall bezieht sich die Richtlinie hohePriorität auf eine Richtlinie, die im AMI-Repository definiert ist, die MQSeries-Priorität auf die höchste Stufe setzt und möglicherweise andere Servicequalitäten, wie beispielsweise den Datenbankzugriff, ebenfalls anpasst. Der Nachrichteninhalt kann aus beliebigen gültigen Kombinationen von SQL- und benutzerdefinierten Daten bestehen. Dazu gehören verschachtelte Funktionen, Operatoren und Umsetzungsausdrücke. Unter Verwendung der Tabelle EMPLOYEE mit den VARCHAR-Spalten LASTNAME, FIRSTNAME und DEPARTMENT gehen Sie zum Senden einer Nachricht, die diese Informationen für jeden Mitarbeiter in Abteilung 5LGA enthält, beispielsweise wie folgt vor: Beispiel 5: SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Wenn die Tabelle eine ganzzahlige Spalte AGE enthält, kann sie wie folgt eingefügt werden: Beispiel 6: SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT|| ' ' || char(AGE)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Wenn die Tabelle EMPLOYEE eine Spalte RESUME vom Typ CLOB anstelle einer Spalte AGE hat, könnte eine Nachricht mit den Angaben für jeden Mitarbeiter in der Abteilung 5LGA mit folgenden Informationen gesendet werden: Beispiel 7: SELECT DB2MQ.MQSEND (clob(LASTNAME) || ' ' || clob(FIRSTNAME) || ' ' || clob(DEPARTMENT) || ' ' || RESUME)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Beispiel 8: Das folgende Beispiel zeigt schließlich, wie Nachrichteninhalt mit einem gültigem SQL-Ausdruck abgeleitet werden kann. Unter Verwendung einer zweiten Tabelle DEPT mit den VARCHAR-Spalten DEPT_NO und DEPT_NAME können Nachrichten gesendet werden, die LASTNAME und DEPT_NAME für den Mitarbeiter enthalten: Beispiel 8: SELECT DB2MQ.MQSEND(e.LASTNAME || ' ' || d.DEPTNAME) FROM EMPLOYEE e, DEPT d WHERE e.DEPARTMENT = d.DEPTNAME 20.5.3 Nachrichten abrufen Mit den DB2 MQSeries-Funktionen können Nachrichten empfangen oder gelesen werden. Der Unterschied zwischen Lesen und Empfangen besteht darin, dass die Nachricht beim Lesen an den Kopfsatz der Warteschlange zurückgegeben, also nicht aus der Warteschlange entfernt wird. Bei Empfangsoperationen wird die Nachricht aus der Warteschlange entfernt. Eine Nachricht, die über eine Empfangsoperation abgerufen wird, kann nur einmal abgerufen werden. Eine Nachricht, die über einen Lesevorgang abgerufen wird, kann dagegen viele Male abgerufen werden. Die folgenden Beispiele veranschaulichen dies: Beispiel 8: VALUES DB2MQ.MQREAD() Dieses Beispiel gibt eine VARCHAR-Zeichenfolge mit der Nachricht am Kopfsatz der Warteschlange zurück, die über den Standardservice unter Verwendung der Standardrichtlinie für die Servicequalität definiert wurde. Wichtig ist zu beachten, dass ein Nullwert zurückgegeben wird, wenn keine Nachrichten zum Lesen vorhanden sind. Die Warteschlange wird durch diese Operation nicht geändert. Beispiel 9: VALUES DB2MQ.MQRECEIVE('Employee_Changes') Das obige Beispiel zeigt, wie eine Nachricht aus dem Kopfsatz der Warteschlange entfernt werden kann, die vom Service Employee_Changes unter Verwendung der Standardrichtlinie definiert wurde. Eine äußerst leistungsstarke Funktion von DB2 besteht darin, eine Tabelle aus einer benutzerdefinierten (oder von DB2 gelieferten) Funktion zu erstellen. Mit dieser Tabellenfunktion können Sie den Inhalt einer Warteschlange als DB2-Tabelle speichern. Das folgende Beispiel zeigt eine vereinfachte Form dieses Vorgangs: Beispiel 10: SELECT t.* FROM table ( DB2MQ.MQREADALL()) t Diese Abfrage gibt eine Tabelle zurück, die aus allen Nachrichten der vom Standardservice definierten Warteschlange und den Metadaten zu diesen Nachrichten besteht. Die vollständige Definition der zurückgegebenen Tabellenstruktur ist im Anhang definiert. Die erste Spalte gibt den Inhalt der Nachricht wieder, und die restlichen Spalten enthalten die Metadaten. Wenn nur die Nachrichten zurückgegeben werden sollen, kann das Beispiel wie folgt geändert werden: Beispiel 11: SELECT t.MSG FROM table (DB2MQ.MQREADALL()) t Die von einer Tabellenfunktion zurückgegebene Tabelle unterscheidet sich nicht von einer Tabelle, die direkt aus der Datenbank abgerufen wird. Für diese Tabelle gibt es folglich zahlreiche Verwendungsmöglichkeiten. Sie können den Inhalt der Tabelle beispielsweise mit einer anderen Tabelle verbinden oder die Anzahl der Nachrichten in einer Warteschlange zählen: Beispiel 12: SELECT t.MSG, e.LASTNAME FROM table (DB2MQ.MQREADALL() ) t, EMPLOYEE e WHERE t.MSG = e.LASTNAME Beispiel 13: SELECT COUNT(*) FROM table (DB2MQ.MQREADALL()) t Ferner können Sie die Tatsache verdecken, dass die Tabellenquelle eine Warteschlange ist, indem Sie eine Sicht für die Tabellenfunktion erstellen. Das folgende Beispiel erstellt beispielsweise eine Sicht namens NEW_EMP der Warteschlange, auf die von einem Service namens NEW_EMPLOYEES verwiesen wird: Beispiel 14: CREATE VIEW NEW_EMP (msg) AS SELECT t.msg FROM table (DB2MQ.MQREADALL()) t In diesem Fall wird die Sicht nur durch eine einzelne Spalte definiert, die eine vollständige Nachricht enthält. Wenn die Nachrichten einfach strukturiert sind (z. B. bestehend aus zwei Feldern mit einer festen Länge), können die integrierten DB2-Funktionen zur syntaktischen Analyse der beiden Spalten verwendet werden. Wenn Sie beispielsweise wissen, dass Nachrichten an eine bestimmte Warteschlange stets einen Nachnamen aus 18 Zeichen, gefolgt von einem Vornamen aus 18 Zeichen enthalten, können Sie wie folgt eine Sicht definieren, die jedes Feld als separate Spalte enthält: Beispiel 15: CREATE VIEW NEW_EMP2 AS SELECT left(t.msg,18) AS LNAME, right(t.msg,18) AS FNAME FROM table(DB2MQ.MQREADALL()) t Der MQSeries-Assistent, eine neue Funktion von DB2 Stored Procedure Builder, kann zur Erstellung neuer DB2-Tabellenfunktionen und DB2-Sichten verwendet werden, die Spalten begrenzte Nachrichtenstrukturen zuordnen. Schließlich wird häufig gewünscht, den Inhalt mindestens einer Nachricht in der Datenbank zu speichern. Hierzu kann zum Bearbeiten und Speichern des Nachrichteninhalts die volle SQL-Funktionalität genutzt werden. Das folgende Beispiel veranschaulicht dies vermutlich auf einfachste Weise: Beispiel 16: INSERT INTO MESSAGES SELECT t.msg FROM table (DB2MQ.MQRECEIVEALL()) t Unter Verwendung der Tabelle MESSAGES, die eine einzelne VARCHAR(2000)-Spalte enthält, fügt die obige Anweisung die Nachrichten aus der Standard-Servicewarteschlange in die Tabelle ein. Diese Vorgehensweise kann für unterschiedliche Situationen weiter abgewandelt werden. 20.5.4 Anwendungsübergreifende Konnektivität Die Anwendungsintegration ist ein allgemeiner Bestandteil vieler Lösungen. Ob es um die Integration einer erworbenen Anwendung in eine vorhandene Infrastruktur oder die Integration einer neu entwickelten Anwendung in eine vorhandene Umgebung geht - in vielen Fällen stellt sich die Aufgabe, einen heterogenen Verbund von Subsystemen als funktionierende Einheit zusammenzufügen. MQSeries wird im Allgemeinen als notwendiges Tool für die Anwendungsintegration erachtet. Da MQSeries von den meisten Hardware- und Softwarekomponenten bzw. Sprachumgebungen aufgerufen werden kann, ist eine Verbindung zwischen äußerst heterogenen Anwendungsgruppen möglich. In diesem Abschnitt werden einige Anwendungsintegrationsszenarios und deren Verwendung mit DB2 beschrieben. Da das Themengebiet sehr groß ist, kann die Anwendungsintegration in diesem Rahmen nicht umfassend behandelt werden. Deshalb liegt der Schwerpunkt auf zwei einfachen Themen: R/R-Kommunikation sowie MQSeries Integrator und P/S. 20.5.4.1 R/R-Kommunikation Die R/R-Kommunikation ist eine Methode, die von Anwendungen häufig zur Anforderung von Services anderer Anwendungen verwendet wird. Eine Möglichkeit besteht darin, dem Serviceprovider eine Nachricht mit einer Arbeitsanforderung zu senden. Nachdem die entsprechende Arbeit durchgeführt wurde, kann der Provider die Ergebnisse (oder nur eine Beendigungsbestätigung) an den Anforderer zurücksenden. Bei Verwendung der oben beschriebenen Basis-Nachrichtenübertragungsmethoden ist die Anforderung des Senders jedoch in keiner Weise mit der Antwort des Serviceproviders verbunden. Sofern der Anforderer vor dem Fortfahren nicht auf eine Antwort wartet, muss für die Zuordnung der Anwort zur entsprechenden Anforderung ein bestimmtes Verfahren verwendet werden. Hierzu ist allerdings keine gesonderte Entwicklung notwendig, da MQSeries eine Korrelations-ID zur Verfügung stellt, die einen Bezug zwischen den beteiligten Nachrichten herstellt. Dieses Verfahren kann auf unterschiedliche Weise eingesetzt werden. Am einfachsten ist es jedoch, wenn der Anforderer die Nachricht wie im folgenden Beispiel gezeigt mit einer bekannten Korrelations-ID kennzeichnet: Beispiel 17: DB2MQ.MQSEND ('meinRequester','meineRichtlinie','SendeStatus:kund1','Anf1') Durch diese Anweisung wird der Anweisung MQSEND der Parameter Anf1 hinzugefügt, um die Korrelations-ID für die Anforderung anzugeben. Verwenden Sie zum Empfangen einer Antwort die entsprechende Anweisung MQRECEIVE, um die erste vom angegebenen Service definierte Nachricht selektiv abzurufen, die mit der Korrelations-ID wie folgt übereinstimmt: Beispiel 18: DB2MQ.MQRECEIVE('meinEmpfänger','meineRichtlinie','Anf1') Wenn die die Anforderung verarbeitende Anwendung ausgelastet ist und der Anforderer vor dem Senden der Antwort die Anweisung MQRECEIVE ausgibt, werden keine Nachrichten gefunden, die mit dieser Korrelations-ID übereinstimmen. Zum Empfangen von Serviceanforderung und Korrelations-ID wird eine Anweisung wie die folgende verwendet: Beispiel 19: SELECT msg, correlid FROM table (DB2MQ.MQRECEIVEALL('aServiceProvider','meineRichtlinie',1)) t Dadurch wird die Nachricht und die Korrelations-ID der ersten Anforderung vom Service aServiceprovider zurückgegeben. Sobald der Service ausgeführt wurde, wird eine entsprechende Antwortnachricht an die von aRequester beschriebene Warteschlange gesendet. In der Zwischenzeit können vom Serviceanforderer andere Tätigkeiten ausgeführt werden. Es gibt keine Sicherheit, dass die ursprüngliche Serviceanforderung innerhalb des festgelegten Zeitraums eine Antwort erhält. Zeitlimits auf Anwendungsebene wie diese fallen in den Aufgabenbereich der Entwickler. Der Anforderer muss eine Abfrage durchführen, um das Vorliegen einer Antwort zu prüfen. Der Vorteil dieser zeitlich unabhängigen asynchronen Verarbeitung liegt darin, dass der Anforderer und der Serviceprovider völlig unabhängig voneinander arbeiten können. Sie kann beispielsweise in Umgebungen eingesetzt werden, in denen Anwendungen nur zeitweilig miteinander verbunden sind, oder in eher stapelorientierten Umgebungen, in denen mehrere Anforderungen oder Antworten vor der Verarbeitung in Spalten zusammengefasst werden. Diese Art der Spaltenberechnung wird häufig in Data Warehouse-Umgebungen verwendet, um ein Data Warehouse oder einen aktiven Datenspeicher regelmäßig zu aktualisieren. 20.5.4.2 P/S Einfache Datenveröffentlichung Ein weiteres häufiges Szenario der Anwendungsintegration besteht darin, dass eine Anwendung andere Anwendungen über wichtige Ereignisse informiert. Hierzu wird einfach eine Nachricht an eine Warteschlange gesendet, die von einer anderen Anwendung überwacht wird. Der Inhalt der Nachricht kann aus einer benutzerdefinierten Zeichenfolge oder aus Datenbankspalten bestehen. Oft muss nur eine Nachricht unter Verwendung der Funktion MQSEND gesendet werden. Wenn diese Nachricht gleichzeitig an mehrere Empfänger gesendet werden soll, kann die Verteilerfunktion von MQSeries AMI verwendet werden. Ein Verteiler wird mithilfe des Verwaltungs-Tools von AMI definiert. Ein Verteiler umfasst eine Liste individueller Services. Eine an einen Verteiler gesendete Nachricht wird an jeden innerhalb der Liste definierten Service gesendet. Dies ist vor allem dann besonders nützlich, wenn einige Services immer an allen Nachrichten interessiert sind. Das folgende Beispiel zeigt, wie eine Nachricht an die interessierten Parteien im Verteiler gesendet wird: Beispiel 20: DB2MQ.MQSEND('interessierteGruppen','allgemein interessante Informationen'); Wenn für Nachrichten an bestimmte Services bessere Kontrollmöglichkeiten zur Verfügung stehen sollen, muss die P/S-Funktion verwendet werden. P/S-Systeme bieten normalerweise eine skalierbare und sichere Umgebung, in der sich viele Subskribenten registrieren können, um Nachrichten von mehreren Herausgebern zu empfangen. Zur Unterstützung dieser Funktionalität kann die MQPublish-Schnittstelle in Verbindung mit MQSeries Integrator oder der P/S-Funktion von MQSeries verwendet werden. MQPublish ermöglicht dem Benutzer, der Nachricht optional ein Thema hinzuzufügen. Mit dem Thema kann der Subskribent die zu akzeptierenden Nachrichten genauer definieren. Zu diesem Zweck müssen die folgenden Schritte ausgeführt werden: Ein MQSeries-Administrator konfiguriert die P/S-Funktionalität von MQSeries Integrator. Interessierte Anwendungen nehmen an Subskriptionspunkten teil, die über die MQSI-Konfiguration definiert werden, und geben optional für sie interessante Themen an. Jeder Subskribent wählt die für ihn relevanten Themen aus und kann ferner auf die inhaltsbasierten Subskriptionsmethoden von MQSeries Integrator V2 zurückgreifen. Wichtig ist zu beachten, dass Warteschlangen, die über einen Servicenamen dargestellt werden, den Subskribenten definieren. Eine DB2-Anwendung veröffentlicht eine Nachricht an den Servicepunkt "Wetter". Die Nachricht gibt als Wetter Schneeregen und als Thema München an. Interessierte Subskribenten werden also darüber informiert, dass es in München Schneeregen gibt. Die tatsächliche Veröffentlichung der Nachricht wird von den DB2 MQSeries-Funktionen übernommen. Die Nachricht wird an MQSeries Integrator unter Verwendung des Servicenamens "Wetter" gesendet. MQSI akzeptiert die Nachricht, führt die von der MQSI-Konfiguration definierten Verarbeitungsschritte durch, und bestimmt die entsprechenden Subskriptionen. Dann wird die Nachricht an die betroffenen Subskribenten-Warteschlangen weitergeleitet. Anwendungen, die am Service "Wetter" teilnehmen und für München registriert sind, empfangen die Nachricht Schneeschauer im jeweiligen Empfangsservice. Zum Veröffentlichen dieser Daten unter Verwendung aller Standardeinstellungen und eines Nullthemas wird die folgende Anweisung verwendet: Beispiel 21: SELECT DB2MQ.MQPUBLISH(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT|| ' ' ||char(AGE)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Bei vollständiger Angabe aller Parameter und Vereinfachung der Nachricht, so dass nur LASTNAME enthalten ist, lautet die Anweisung wie folgt: Beispiel 22: SELECT DB2MQ.MQPUBLISH('HR_INFO_PUB', 'SPECIAL_POLICY', LASTNAME, 'ALL_EMP:5LGA', 'MANAGER') FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Diese Anweisung veröffentlicht Nachrichten an den Veröffentlichungsservice HR_INFO_PUB, wobei der Service SPECIAL_POLICY verwendet wird. Die Nachrichten weisen darauf hin, dass der Sender das Thema MANAGER ist. Die Zeichenfolge für das Thema zeigt, dass mehrere Themen angegeben werden können, die mit einem Doppelpunkt (:) miteinander verknüpft werden. In diesem Beispiel können sich die Subskribenten aufgrund der Verwendung von zwei Themen für ALL_EMP oder nur für 5LGA registrieren, um die Nachrichten zu empfangen. Für den Empfang veröffentlichter Nachrichten muss sich der Benutzer zunächst für Nachrichten mit einem bestimmten Thema registrieren und den Namen des Subskribentenservices angeben, an die die Nachrichten gesendet werden sollen. Wichtig ist zu beachten, dass ein AMI-Subskribentenservice einen Broker- und einen Empfängerservice definiert. Der Broker-Service gibt an, wie der Subskribent mit dem P/S-Broker kommuniziert. Der Empfängerservice ist der Service, an den die mit der Subskription übereinstimmenden Nachrichten gesendet werden. Bei der folgenden Anweisung erfolgt eine Registrierung für das Thema ALL_EMP. Beispiel 23: DB2MQ.MQSUBSCRIBE('einSubskribent', 'ALL_EMP') Nachdem eine Teilnehmerberechtigung für eine Anwendung eingerichtet wurde, werden Nachrichten mit dem Betreff ALL_EMP an den vom Subskribentenservice definierten Empfängerservice gesendet. Eine Anwendung kann über mehrere gleichzeitig geltende Subskriptionen verfügen. Um die entsprechenden Nachrichten für eine Subskription zu erhalten, kann eine der Standardfunktionen für den Nachrichtenabruf verwendet werden. Wenn der Subskribentenservice einSubskribent den Empfängerservice beispielsweise als einSubskribentEmpfänger definiert, wird die erste Nachricht von der folgenden Anweisung ohne Löschen gelesen: Beispiel 24: DB2MQ.MQREAD('einSubskribentEmpfänger') Zur Ermittlung der Nachrichten und der zugehörigen Themen kann eine der Tabellenfunktionen verwendet werden. Die folgende Anweisung empfängt die ersten fünf Nachrichten von einSubskribentEmpfänger und zeigt sowohl Nachricht als auch Thema an: Beispiel 25: SELECT t.msg, t.topic FROM table (DB2MQ.MQRECEIVEALL('aSubscriberReceiver',5)) t Zum Lesen aller Nachrichten mit dem Betreff ALL_EMP kann unter Verwendung von SQL folgende Anweisung ausgegeben werden: Beispiel 26: SELECT t.msg FROM table (DB2MQ.MQREADALL('einSubskribentEmpfänger')) t WHERE t.topic = 'ALL_EMP' Anmerkung: Wichtig ist zu beachten, dass bei Verwendung von MQRECEIVEALL mit einer Integritätsbedingung die gesamte Warteschlange verarbeitet wird und nicht nur Nachrichten mit dem Betreff ALL_EMP. Dies liegt daran, dass vor Anwendung der Integritätsbedingung die Tabellenfunktion ausgeführt wird. Wenn an einem bestimmten Thema kein Interesse mehr besteht, muss die Teilnehmerberechtigung mit einer Anweisung wie folgt explizit aufgehoben werden: Beispiel 27: DB2MQ.MQUNSUBSCRIBE('einSubskribent', 'ALL_EMP') Nach Ausgabe dieser Anweisung sendet der P/S-Broker keine für diese Subskription relevanten Nachrichten mehr. Automatisierte Veröffentlichung Ein weiteres wichtiges Verfahren der Datenbank-Nachrichtenübertragung ist die automatisierte Veröffentlichung. Unter Verwendung des Auslöser-Tools in DB2 können Nachrichten im Rahmen eines Auslöseraufrufs automatisch veröffentlicht werden. Zwar können für die automatisierte Datenveröffentlichung auch andere Verfahren verwendet werden, der auslöserbasierte Ansatz gewährt Administratoren und Entwicklern jedoch große Freiheit bei der Erstellung von Nachrichteninhalt und hohe Flexibilität bei der Definition von Auslöse-Aktionen. Wie bei anderen Verfahren müssen auch bei der Verwendung von Auslösern die Häufigkeit der Ausführung und die diesbezüglichen Kosten berücksichtigt werden. Die folgenden Beispiele veranschaulichen die Verwendung von Auslösern mit den DB2 MQSeries-Funktionen. Das folgende Beispiel zeigt, wie einfach es ist, bei der Einstellung eines neuen Mitarbeiters eine Nachricht zu veröffentlichen. Alle Benutzer oder Anwendungen, die am Service HR_INFO_PUB teilnehmen und sich für NEW_EMP registrieren, erhalten eine Nachricht mit dem Einstellungsdatum, dem Namen und der Abteilung des neuen Mitarbeiters. Beispiel 28: CREATE TRIGGER neuer_mitarbeiterAFTER INSERT ON employee REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL VALUES DB2MQ.MQPUBLISH('HR_INFO_PUB&', 'NEW_EMP', current date || ' ' || LASTNAME || ' ' || DEPARTMENT) 20.6 enable_MQFunctions enable_MQFunctions Aktiviert die DB2 MQSeries-Funktionen für die angegebene Datenbank und stellt sicher, dass die Funktionen ordnungsgemäß ausgeführt werden können. Der Befehl schlägt fehl, wenn MQSeries und MQSeries AMI nicht installiert und konfiguriert sind. Berechtigung Die folgenden Parameter sind verfügbar: sysadm dbadm IMPLICIT_SCHEMA für die Datenbank, wenn der implizite oder explizite Schemaname der Funktion nicht vorhanden ist. Zugriffsrecht CREATEIN für das Schema, wenn der Schemaname, DB2MQ, vorhanden ist. Befehlssyntax >>-enable_MQFunctions---n--datenbank---u--benutzer-id-----------> >---p--kennwort--+-------+--+------------+--------------------->< '-force-' '-noValidate-' Befehlsparameter -n datenbank Gibt den Namen der Datenbank an, die aktiviert werden soll. -u benutzer-id Gibt die Benutzer-ID für die Verbindung mit der Datenbank an. -p kennwort Gibt das Kennwort für die Benutzer-ID an. -force Gibt an, dass Warnungen während einer Reinstallation ignoriert werden sollen. -noValidate Gibt an, dass die Gültigkeitsprüfung der DB2 MQSeries-Funktionen nicht ausgeführt wird. Beispiele Im folgenden Beispiel werden DB2 MQ-Funktionen erstellt. Der Benutzer stellt eine Verbindung zur Datenbank SAMPLE her. Das Standardschema DB2MQ wird verwendet. enable_MQFunctions -n sample -u benutzer1 -p kennwort1 Hinweise zur Verwendung Die DB2 MQ-Funktionen werden unter dem Schema DB2MQ ausgeführt, das durch diesen Befehl automatisch erstellt wird. Vor Ausführung des Befehls: Stellen Sie sicher, dass MQ und AMI installiert sind und MQSeries ab Version 5.1 verwendet wird. Stellen Sie sicher, dass die Umgebungsvariable $AMT_DATA_PATH definiert ist. Wechseln Sie in das Unterverzeichnis cfg von DB2PATH. Unter UNIX: Verwenden Sie db2set, um DB2ENVLIST AMT_DATA_PATH hinzuzufügen. Stellen Sie sicher, dass das der UDF-Ausführung zugeordnete Benutzerkonto ein Element der mqm-Gruppe ist. Stellen Sie sicher, dass der Benutzer, der diesen Befehl aufruft, ein Element der mqm-Gruppe ist. Anmerkung: AIX 4.2 wird von MQSeries 5.2 nicht unterstützt. 20.7 disable_MQFunctions disable_MQFunctions Inaktiviert die DB2 MQSeries-Funktionen für die angegebene Datenbank. Berechtigung Die folgenden Parameter sind verfügbar: sysadm dbadm IMPLICIT_SCHEMA für die Datenbank, wenn der implizite oder explizite Schemaname der Funktion nicht vorhanden ist. Zugriffsrecht CREATEIN für das Schema, wenn der Schemaname, DB2MQ, vorhanden ist. Befehlssyntax >>-disable_MQFunctions---n--datenbank---u--benutzer-id----------> >---p--kennwort------------------------------------------------>< Befehlsparameter -n datenbank Gibt den Namen der Datenbank an. -u benutzer-id Gibt die Benutzer-ID für die Verbindung mit der Datenbank an. -p kennwort Gibt das Kennwort für die Benutzer-ID an. Beispiele Im folgenden Beispiel werden die DB2 MQ-Funktionen für die Datenbank SAMPLE inaktiviert. disable_MQFunctions -n sample -u benutzer1 -p kennwort1 Verwaltungs-Tools Teilinhaltsverzeichnis Weitere Konfiguration vor dem Ausführen von Tools 21.1 Inaktivieren des Gleitkomma-Stack unter Linux 21.2 Specific Java Level Required in a Japanese Linux Environment Steuerzentrale 22.1 Auswählen einer umgeleiteten Wiederherstellung macht das Wiederherstellen der Datenbank erforderlich 22.2 Fähigkeit zur Verwaltung von DB2-Servern für VSE und VM 22.3 Java 1.2-Unterstützung für die Steuerzentrale 22.4 Verknüpfungsfehler bei der Verwendung der Onlinehilfefunktion im Windows-Betriebssystem 22.5 Direktaufruf über die Tastatur funktioniert nicht 22.6 Java-Steuerzentrale unter OS/2 22.7 Fehler "Dateizugriff verweigert" beim Versuch, einen beendeten Job im Journal im Windows-Betriebssystem anzuzeigen 22.8 Testverbindung für Aktualisierung auf mehreren Systemen 22.9 Steuerzentrale für DB2 für OS/390 22.10 Erforderliche Korrektur für die Steuerzentrale für OS/390 22.11 Änderung am Dialogfenster "Räumlichen Verweis erstellen" 22.12 Informationen zur Fehlerbehebung für die DB2-Steuerzentrale 22.13 Fehlerbehebung der Steuerzentrale auf UNIX-Systemen 22.14 Mögliches Problem der Kurzhilfe bei OS/2 22.15 Hilfe für den Konfigurationsparameter "jdk11_path" 22.16 Solaris-Systemfehler (SQL10012N) bei der Verwendung der Prozedurzentrale oder des Journals 22.17 Hilfe für die Datei DPREPL.DFT 22.18 Starten mehrerer Steuerzentralen-Applets 22.19 Onlinehilfefunktion für die Steuerzentrale bei der Ausführung als Applet 22.20 Ausführen der Steuerzentrale im Applet-Modus (Windows 95) 22.21 Arbeiten mit großen Abfrageergebnissen Befehlszentrale 23.1 Seite "Interaktiv" der Befehlszentrale erkennt jetzt Anweisungsabschlusszeichen Information - Unterstützung 24.1 Korrekturen am Dokument "Java - Beispiele" 24.2 Verknüpfungsfehler im Windows-Betriebssystem 24.3 Öffnen externer Web-Links in Netscape Navigator, wenn Netscape bereits geöffnet ist (UNIX-Systeme) 24.4 Probleme beim Starten von "Information - Unterstützung" Stored Procedure Builder 25.1 Unterstützung für gespeicherte Java-Prozeduren für z/OS oder OS/390 25.2 Unterstützung für gespeicherte SQL-Prozeduren für z/OS oder OS/390 25.3 Aktualisierte Verweise des Stored Procedure Builder auf z/OS- oder OS/390-Dokumentation 25.4 Unterstützung für die Einstellung von Ergebnismengenmerkmalen 25.5 Löschen von Prozeduren aus einer DB2-Datenbank unter Windows NT Assistenten 26.1 Einstellen der Speicherbereichsgröße in "Assistent: Datenbank erstellen" 26.2 Assistent "MQSeries Assist" 26.3 Assistent "OLE DB Assist" Weitere Konfiguration vor dem Ausführen von Tools 21.1 Inaktivieren des Gleitkomma-Stack unter Linux In einer Linux-Umgebung mit glibc 2.2.x müssen Sie den Gleitkomma-Stack inaktivieren, bevor Sie die DB2-Java-GUI-Tools, wie z. B. die Steuerzentrale, ausführen. Damit der Gleitkomma-Stack inaktiviert wird, setzen Sie die Kernelumgebungsvariable LD_ASSUME_KERNEL wie folgt auf 2.2.5: bash$ export LD_ASSUME_KERNEL=2.2.5 21.2 Specific Java Level Required in a Japanese Linux Environment Linux users need a specific JDK level when running the DB2 Java GUI tools, such as the Control Center, on a Japanese environment. For example, Red Hat Linux 6.2J/7J/7.1/7.2 users should use IBMJava118-SDK-1.1.8-2.0.i386.rpm level. Steuerzentrale 22.1 Auswählen einer umgeleiteten Wiederherstellung macht das Wiederherstellen der Datenbank erforderlich Wenn Sie beim Wiederherstellen einer Datenbank mit den GUI-Tools die Option für umgeleitete Wiederherstellung auswählen, müssen Sie die Datenbank wiederherstellen. Sobald Sie die Option ausgewählt haben, startet die Wiederherstellung im Hintergrund, und die Datenbank wird in den Status 'Wiederherstellung anstehend' gesetzt. Wenn Sie Ihre Aktion dann abbrechen, ist die Datenbank erst wieder verfügbar, nachdem Sie eine andere Wiederherstellung ausgeführt haben. 22.2 Fähigkeit zur Verwaltung von DB2-Servern für VSE und VM Die Unterstützung von Datenbanken mit DB2 Server für VSE und VM durch die Steuerzentrale von DB2 Universal Database Version 7 wurde erweitert. Alle Datenbankobjekte von DB2 Server für VSE und VM können von der Steuerzentrale angezeigt werden. Unterstützt werden auch die Anweisungen CREATE INDEX, REORGANIZE INDEX und UPDATE STATISTICS sowie der Befehl REBIND. REORGANIZE INDEX und REBIND erfordern die Ausführung einer gespeicherten Prozedur auf den Hosts mit DB2 Server für VSE und VM. Diese gespeicherte Prozedur wird von der Steuerzentrale für VSE und VM von DB2 Server für VSE und VM bereitgestellt. Durch die voll integrierte Steuerzentrale kann der Benutzer DB2 unabhängig von der Plattform verwalten, auf der der DB2-Server ausgeführt wird. Objekte von DB2 Server für VSE und VM werden im Hauptfenster der Steuerzentrale zusammen mit Objekten von DB2 Universal Database angezeigt. Die entsprechenden Funktionen und Dienstprogramme zur Verwaltung dieser Objekte werden durch Auswählen des Objekts aufgerufen. Beispielsweise kann ein Benutzer die Indizes einer bestimmten Datenbank auflisten, einen der Indizes auswählen und diesen reorganisieren. Der Benutzer kann auch die Tabellen einer Datenbank auflisten und die Statistik aktualisieren oder eine Tabelle als Replikationsquelle definieren. Informationen zum Konfigurieren der Steuerzentrale für Verwaltungsaufgaben an Objekten von DB2 Server für VSE und VM finden Sie im DB2 Connect Benutzerhandbuch oder im Handbuch Installation und Konfiguration Ergänzung. 22.3 Java 1.2-Unterstützung für die Steuerzentrale Die Steuerzentrale unterstützt bidirektionale Sprachen wie Arabisch oder Hebräisch mit der Bidi-Unterstützung von Java 1.2. Diese Unterstützung steht nur für die Windows NT-Plattform zur Verfügung. Java 1.2 muss installiert sein, damit die Steuerzentrale es erkennen und verwenden kann: JDK 1.2.2 ist auf der DB2 UDB-CD im Verzeichnis DB2\bidi\NT verfügbar. ibm-inst-n122p-win32-x86.exe ist das Installationsprogramm, ibm-jdk-n122p-win32-x86.exe die Datei für die Verteilung von JDK. Kopieren Sie beide Dateien in ein temporäres Verzeichnis auf Ihrer Festplatte und führen Sie das Installationsprogramm von dort aus. Installieren Sie das Produkt unter \java\Java12. Dabei ist der Installationspfad von DB2. Wählen Sie JDK/JRE nicht als System-VM aus, wenn Sie von der JDK/JRE-Installation dazu aufgefordert werden. Nach der erfolgreichen Installation von Java 1.2 wird beim normalen Starten der Steuerzentrale Java 1.2 verwendet. Wenn Sie Java 1.2 nicht mehr verwenden wollen, können Sie entweder JDK/JRE im Verzeichnis \java\Java12 deinstallieren oder das Unterverzeichnis \java\Java12 umbenennen. Anmerkung: Verwechseln Sie bitte nicht \java\Java12 mit \Java12. \Java12 ist Teil der DB2-Installation und enthält die JDBC-Unterstützung für Java 1.2. 22.4 Verknüpfungsfehler bei der Verwendung der Onlinehilfefunktion im Windows-Betriebssystem Bei der Verwendung der Onlinehilfefunktion der Steuerzentrale kann ein Fehler u. b. ein Verknüpfungsfehler auftreten. Wenn Sie vor kurzem einen neuen Web-Browser oder eine neue Version eines Web-Browsers installiert haben, stellen Sie sicher, dass HTML- und HTM-Dokumente dem korrekten Browser zugeordnet sind. Weitere Informationen finden Sie im Abschnitt der Windows-Hilfe zum Ändern des Programms, das beim Öffnen einer Datei gestartet wird. 22.5 Direktaufruf über die Tastatur funktioniert nicht In einigen Sprachen funktionieren einige Tastenkombinationen (Direktaufrufe über die Tastatur oder Hot Keys) für die Steuerzentrale auf UNIX-Systemen und unter OS/2 nicht. Verwenden Sie bitte die Maus zur Auswahl von Optionen. 22.6 Java-Steuerzentrale unter OS/2 Die Steuerzentrale muss auf einem HPFS-Laufwerk installiert werden. 22.7 Fehler "Dateizugriff verweigert" beim Versuch, einen beendeten Job im Journal im Windows-Betriebssystem anzuzeigen Bei DB2 Universal Database für Windows NT tritt der Fehler "Dateizugriff verweigert" auf, wenn versucht wird, das Journal zu öffnen, um die Details eines Jobs anzuzeigen, der in der Prozedurzentrale erstellt wurde. Als Jobstatus wird "Beendet" angezeigt. Dieses Verhalten tritt auf, wenn ein Job, der in der Prozedurzentrale erstellt wurde, den Befehl START enthält. Verwenden Sie START/WAIT anstelle von START in der Stapeldatei und im Job, um dieses Verhalten zu vermeiden. 22.8 Testverbindung für Aktualisierung auf mehreren Systemen Die Funktionalität für eine Testverbindung für eine Aktualisierung auf mehreren Systemen in der Steuerzentrale der Version 7 wird von der Version des Zielexemplars eingeschränkt. Das Zielexemplar muss mindestens Version 7 sein, damit die "ferne" Testverbindungsfunktionalität ausgeführt werden kann. Um diese Funktionalität in Version 6 auszuführen, müssen Sie die Steuerzentrale lokal im Zielexemplar laden und von dort ausführen. 22.9 Steuerzentrale für DB2 für OS/390 Mit der Steuerzentrale von DB2 UDB für OS/390 können Sie die Verwendung Ihrer lizenzierten IBM DB2-Dienstprogramme verwalten. Dienstprogrammfunktionen, die Teil separat zu erwerbender Funktionen von DB2 UDB für OS/390 sind, müssen lizenziert und in Ihrer Umgebung installiert sein, bevor sie von der DB2-Steuerzentrale verwaltet werden können. Die Datenbank "CC390", die bei der Konfiguration eines DB2 für OS/390-Subsystems zusammen mit der Steuerzentrale definiert wird, wird für die interne Unterstützung der Steuerzentrale verwendet. Ändern Sie diese Datenbank nicht. Obwohl DB2 für OS/390 Version 7.1 nicht ausdrücklich im Inhaltsverzeichnis der Steuerzentrale oder in den Informationen von Information - Unterstützung erwähnt wird, unterstützt die Dokumentation die Funktionen von DB2 für OS/390 Version 7.1. Viele der spezifischen Funktionen von DB2 für OS/390 Version 6 beziehen sich auch auf DB2 für OS/390 Version 7.1 und einige Funktionen, die laut Inhaltsverzeichnis spezifisch für DB2 für OS/390 Version 7.1 sind, haben keine Versionsbezeichnung. Wenn Sie ein Subsystem von DB2 für OS/390 Version 7.1 auf Ihrer Steuerzentrale konfiguriert haben, haben Sie Zugriff auf die gesamte Dokumentation für diese Version. Für den Zugriff auf die Funktion DDL generieren und für deren Verwendung über die Steuerzentrale von DB2 für OS/390 muss die Funktion DDL generieren installiert sein: Für Version 5 installieren Sie DB2Admin 2.0 mit DB2 für OS/390 Version 5. Für Version 6 installieren Sie die kleine Programmierungserweiterung, die als vorläufige Programmkorrektur für die DB2Admin-Funktion von DB2 für OS/390 Version 6 verfügbar ist. Bei Version 7.1 ist die Funktion DDL generieren Teil der separat zu erwerbenden DB2Admin-Funktion von DB2 für OS/390 Version 7.1. Sie können über die Steuerzentrale auf Stored Procedure Builder zugreifen. Dazu muss dieses Programm jedoch beim Starten der DB2 UDB-Steuerzentrale bereits installiert sein. Es ist Teil von DB2 Application Development Client. Wenn Sie ein Subsystem von DB2 für OS/390 direkt auf der Workstation katalogisieren wollen, geben Sie an, dass Client-Konfiguration - Unterstützung verwendet werden soll. Aktivieren Sie auf der Seite Quelle den Radioknopf Verbindung zu einer Datenbank manuell konfigurieren. Geben Sie auf der Seite Protokoll die entsprechenden Kommunikationsinformationen ein. Geben Sie auf der Seite Datenbank den Subsystemnamen in das Feld Datenbankname ein. Wählen Sie auf der Seite Knotenoptionen das optionale Markierungsfeld Knotenoptionen konfigurieren aus. Wählen Sie MVS/ESA, OS/390 aus der Liste im Feld Betriebssystem aus. Klicken Sie Beenden an, um die Konfiguration abzuschließen. Wenn Sie ein Subsystem von DB2 für OS/390 über eine Gateway-Maschine katalogisieren wollen, führen Sie Schritt 1-6 oben auf der Gateway-Maschine und anschließend die folgenden Schritte aus: Starten Sie die Steuerzentrale auf der Client-Maschine. Klicken Sie den Systemordner mit Maustaste 2 an, und wählen Sie Hinzufügen aus. Geben Sie im Dialogfenster System hinzufügen den Namen der Gateway-Maschine in das Feld Systemname ein. Geben Sie DB2DAS00 in das Feld für das ferne Exemplar ein. Geben Sie für das TCP/IP-Protokoll in den Protokollparametern den Host-Namen der Gateway-Maschine in das Feld Host-Name ein. Geben Sie 523 in das Feld für den Servicenamen ein. Klicken Sie OK an, um das System hinzuzufügen. Die Gateway-Maschine sollte jetzt im Ordner Systeme enthalten sein. Erweitern Sie den Namen der Gateway-Maschine. Klicken Sie den Exemplarordner mit Maustaste 2 an, und wählen Sie Hinzufügen aus. Klicken Sie Aktualisieren im Dialogfenster Exemplar hinzufügen an, um die auf der Gateway-Maschine verfügbaren Exemplare anzuzeigen. Wenn die Gateway-Maschine ein Windows NT-System ist, wurde das DB2 für OS/390-Subsystem möglicherweise unter dem Exemplar DB2 katalogisiert. Wählen Sie das Exemplar aus. Die Protokollparameter werden für dieses Exemplar automatisch eingegeben. Klicken Sie OK an, um das Exemplar hinzuzufügen. Öffnen Sie den Ordner Exemplare, um das gerade hinzugefügte Exemplar anzuzeigen. Erweitern Sie das Exemplar. Klicken Sie den Datenbankordner mit Maustaste 2 an, und wählen Sie Hinzufügen aus. Klicken Sie Aktualisieren an, um die lokalen Datenbanken auf der Gateway-Maschine anzuzeigen. Wenn Sie ein DB2-Subsystem im Dialogfenster Datenbank hinzufügen hinzufügen, geben Sie den Subsystemnamen in das Feld Datenbankname ein. Optional: Geben Sie einen lokalen Aliasnamen für das Subsystem (oder die Datenbank) ein). Klicken Sie OK an. Sie haben das Subsystem erfolgreich in der Steuerzentrale hinzugefügt. Wenn Sie die Datenbank öffnen, sollte das DB2 für OS/390-Subsystem angezeigt werden. Der erste Absatz im Abschnitt zur Steuerzentrale für OS/390 lautet: Mit der Steuerzentrale von DB2 UDB für OS/390 können Sie die Verwendung Ihrer lizenzierten IBM DB2-Dienstprogramme verwalten. Dienstprogrammfunktionen, die Teil separat zu erwerbender Funktionen von DB2 UDB für OS/390 sind, müssen lizenziert und in Ihrer Umgebung installiert sein, bevor sie von der DB2-Steuerzentrale verwaltet werden können. Der Abschnitt sollte nun wie folgt lauten: Mit der Steuerzentrale von DB2 für OS/390 können Sie die Verwendung Ihrer lizenzierten IBM DB2-Dienstprogramme verwalten. Dienstprogrammfunktionen, die Teil separat zu erwerbender Funktionen sind, müssen lizenziert und in Ihrer Umgebung installiert sein, bevor sie von der DB2-Steuerzentrale verwaltet werden können. 22.10 Erforderliche Korrektur für die Steuerzentrale für OS/390 Sie müssen APAR PQ36382 auf 390 Enablement Feature von DB2 für OS/390 Version 5 und DB2 für OS/390 Version 6 anwenden, um diese Subsysteme mit der DB2 UDB-Steuerzentrale für Version 7 verwalten zu können. Ohne diese Korrektur können Sie die DB2 UDB-Steuerzentrale für Version 7 nicht für die Ausführung von Dienstprogrammen für diese Subsysteme verwenden. Die APAR-Korrektur sollte auf die folgenden Funktionsstatus-IDs (FMID) angewendet werden: DB2 für OS/390 Version 5 390 Enablement: FMID JDB551D DB2 für OS/390 Version 6 390 Enablement: FMID JDB661D 22.11 Änderung am Dialogfenster "Räumlichen Verweis erstellen" Die Druckknöpfe "<<" und ">>" wurden aus dem Dialogfenster Räumlichen Verweis erstellen entfernt. 22.12 Informationen zur Fehlerbehebung für die DB2-Steuerzentrale Im Kapitel Installation und Konfiguration der Steuerzentrale Ihres Handbuchs Einstieg werden Sie im Abschnitt Informationen zur Fehlerbehebung aufgefordert, in einem Befehlsfenster die Einstellung der Variablen CLASSPATH Ihres Client-Browsers aufzuheben, wenn beim Ausführen der Steuerzentrale als Applet Probleme auftreten. In diesem Abschnitt werden Sie auch aufgefordert, Ihren Browser aus demselben Befehlsfenster zu starten. Der Befehl zum Starten Ihres Browsers ist jedoch nicht angegeben. Geben Sie start iexplore ein, und drücken Sie die Eingabetaste, um den Internet Explorer zu starten. Wenn Sie Netscape starten wollen, geben Sie start netscape ein, und drücken Sie die Eingabetaste. Bei diesen Befehlen wird davon ausgegangen, dass der Pfad Ihres Browsers in PATH definiert ist. Ist dies nicht der Fall, fügen Sie eine PATH-Definition für Ihren Browser-Pfad hinzu oder wechseln Sie in das Installationsverzeichnis Ihres Browsers, und setzen Sie den Startbefehl erneut ab. 22.13 Fehlerbehebung der Steuerzentrale auf UNIX-Systemen Wenn Sie die Steuerzentrale auf einem UNIX-System nicht starten können, stellen Sie die Umgebungsvariable JAVA_HOME so ein, dass sie auf Ihre Java-Verteilung zeigt: Wenn Java unter /usr/jdk118 installiert ist, setzen Sie JAVA_HOME auf /usr/jdk118. Für die sh-, ksh- oder bash-Shell: export JAVA_HOME=/usr/jdk118. Für die csh- oder tcsh-Shell: setenv JAVA_HOME /usr/jdk118 22.14 Mögliches Problem der Kurzhilfe bei OS/2 Wenn Sie die Steuerzentrale unter OS/2 mit einer Bildschirmauflösung von 1024x768 und 256 Farben verwenden und Palette für Arbeitsoberfläche optimieren aktiviert ist, werden Kurzhilfen, die über den Rand des aktuellen Fensters hinausragen, möglicherweise mit schwarzem Text auf schwarzem Hintergrund angezeigt. Zur Behebung dieses Problems ändern Sie entweder die Anzeigeneinstellung auf mehr als 256 Farben oder inaktivieren Sie Palette für Arbeitsoberfläche optimieren. 22.15 Hilfe für den Konfigurationsparameter "jdk11_path" In der Hilfe der Steuerzentrale fehlt in der Beschreibung des Konfigurationsparameters für den Installationspfad von Java Development Kit 1.1 (jdk11_path) eine Zeile unter der Unterüberschrift Gilt für. Die vollständige Liste unter Gilt für lautet: Datenbankserver mit lokalen und fernen Clients Client Datenbankserver mit lokalen Clients Partitionierter Datenbankserver mit lokalen und fernen Clients Satellitendatenbankserver mit lokalen Clients 22.16 Solaris-Systemfehler (SQL10012N) bei der Verwendung der Prozedurzentrale oder des Journals Wenn ein Solaris-System über die Prozedurzentrale oder das Journal ausgewählt wird, kann der folgende Fehler auftreten: SQL10012N - Während des Ladens der angegebenen Bibliothek "/udbprod/db2as/sqllib/function/unfenced/db2scdar!ScheduleInfoOpenScan" trat ein unerwarteter Betriebssystemfehler auf. SQLSTATE=42724. Dies wird durch einen Programmfehler im Solaris-Laufzeit-Verbindungseditor verursacht. Wenden Sie die folgende Programmkorrektur an, um das Problem zu beheben: 105490-06 (107733 ersetzt 105490) für die Solaris-Betriebsumgebung 2.6 22.17 Hilfe für die Datei DPREPL.DFT In der Hilfe der Steuerzentrale für die Seite Replikation des Notizbuchs Tool - Einstellungen heißt es in Schritt 5d: Speichern Sie die Datei im Arbeitsverzeichnis für die Steuerzentrale (z. B. SQLLIB\BIN), so dass das System sie als Standarddatei verwenden kann. Schritt 5d sollte jedoch folgendermaßen lauten: Speichern Sie die Datei im Arbeitsverzeichnis für die Steuerzentrale (SQLLIB\CC), so dass das System sie als Standarddatei verwenden kann. 22.18 Starten mehrerer Steuerzentralen-Applets Sie können auf einer Maschine jeweils nur ein Steuerzentralen-Applet starten. Diese Einschränkung gilt für Steuerzentralen-Applets, die in allen unterstützten Browsern ausgeführt werden. 22.19 Onlinehilfefunktion für die Steuerzentrale bei der Ausführung als Applet Wenn die Steuerzentrale als Applet ausgeführt wird, funktioniert die Taste F1 nur in Fenstern und Notizbüchern, die Kurzhilfe enthalten. Sie können die Kurzhilfe in den folgenden Komponenten mit der Taste F1 aufrufen: DB2 Universal Database für OS/390 Assistenten Bei den übrigen Komponenten der Steuerzentrale wird über die Taste F1 keine Hilfe aufgerufen. Wenn Sie Hilfe für die anderen Komponenten anzeigen wollen, verwenden Sie den Druckknopf oder das Menü Hilfe. 22.20 Ausführen der Steuerzentrale im Applet-Modus (Windows 95) Ein Versuch, die Prozedurzentrale zu öffnen, kann fehlschlagen, wenn eine ungültige Benutzer-ID oder ein ungültiges Kennwort angegeben werden. Stellen Sie sicher, dass Sie beim Anmelden an der Steuerzentrale eine gültige Benutzer-ID und ein gültiges Kennwort angeben. 22.21 Arbeiten mit großen Abfrageergebnissen Es ist einfach für einen Benutzer, eine Abfrage zu erstellen, die eine große Zahl an Zeilen zurückgibt. Vorauszusagen, wieviele Zeilen tatsächlich zurückgegeben werden könnten, ist für einen Benutzer nicht so einfach. Eine Abfrage, die möglicherweise Tausende (oder Millionen) Zeilen zurückgeben könnte, verursacht die folgenden zwei Probleme: Es kann lange dauern, bis das Ergebnis abgerufen wird. Eine große Menge an Client-Speicherkapazität kann erforderlich sein, um das Ergebnis aufzubewahren. DB2 unterteilt große Ergebnismengen in Blöcke, um diesen Prozess zu ermöglichen. Die Ergebnisse einer Abfrage werden blockweise abgerufen und angezeigt. Das heißt Folgendes: Die Anzeigezeit wird reduziert, weil der erste Block einer Abfrage zum Anzeigen verfügbar ist, während die restlichen Blöcke abgerufen werden. Der Speicherbedarf auf dem Client wird verkleinert, weil zu jeder Zeit nur ein Block eines Abfrageergebnisses auf dem Client gespeichert ist. Gehen Sie wie folgt vor, um die Anzahl an Abfrageergebniszeilen im Speicher zu steuern: Öffnen Sie die Seite "Allgemein" im Notizbuch "Tools - Einstellungen". Wählen Sie im Abschnitt Maximalgröße Folgendes aus: Beispielinhalt, um die Anzahl der Ergebniszeilen zu begrenzen, die im Fenster "Beispielinhalt" angezeigt werden. Geben Sie die Blockgröße der Ergebnismenge (Anzahl Zeilen) in dem Eingabefeld an. Befehlszentrale, um die Anzahl der Ergebniszeilen zu begrenzen, die auf der Seite "Abfrageergebnisse" in der Befehlszentrale angezeigt werden. Geben Sie die Blockgröße der Ergebnismenge (Anzahl Zeilen) in dem Eingabefeld an. Wenn Sie mit den Ergebnissen einer Abfrage im Fenster "Beispielinhalt" oder auf der Seite "Abfrageergebnisse" in der Befehlszentrale arbeiten, gibt das Feld Zeilen im Speicher die Anzahl Zeilen an, die für die Abfrage im Speicher stehen. Diese Zahl ist niemals größer als die festgelegte Maximalgröße. Klicken Sie Weiter an, um den nächsten Block der Ergebnismenge abzurufen. Wenn Weiter inaktiv ist, haben Sie das Ende der Ergebnismenge erreicht. Befehlszentrale 23.1 Seite "Interaktiv" der Befehlszentrale erkennt jetzt Anweisungsabschlusszeichen Die Seite Interaktiv der Befehlszentrale erkennt jetzt das Anweisungsabschlusszeichen, das in den Tool-Einstellungen angegeben ist. Wenn kein Anweisungsabschlusszeichen angegeben ist, wird standardmäßig das Zeilenvorschubzeichen verwendet. Information - Unterstützung 24.1 Korrekturen am Dokument "Java - Beispiele" Das Dokument "Java - Beispiele" in Information - Unterstützung ist mit der Java-Beispielquelle verknüpft. Der Abschnitt "PluginEx.Java" dieser Quelle ist nicht aktuell. Aktuelle Informationen zur Erweiterung der Steuerzentrale finden Sie in der Readme-Datei zu den Java-Beispielen, der Datei PluginEx.java und in 9.2, Beispiel für Erweitern der Steuerzentrale. Auf Windows-Plattformen finden Sie die Readme-Datei und die Datei PluginEx.java im Verzeichnis x:\sqllib\samples\java. Dabei steht x für das Laufwerk, auf dem DB2 installiert ist. Unter UNIX finden Sie die Readme-Datei und die Datei PluginEx.java im Verzeichnis /u/db2inst1/sqllib/samples/java. Dabei steht /u/db2inst1 für das Verzeichnis, in dem DB2 installiert ist. 24.2 Verknüpfungsfehler im Windows-Betriebssystem Bei der Verwendung von Information - Unterstützung kann ein Verknüpfungsfehler auftreten. Wenn Sie vor kurzem einen neuen Web-Browser oder eine neue Version eines Web-Browsers installiert haben, stellen Sie sicher, dass HTML- und HTM-Dokumente dem korrekten Browser zugeordnet sind. Weitere Informationen finden Sie im Abschnitt der Windows-Hilfe zum Ändern des Programms, das beim Öffnen einer Datei gestartet wird. 24.3 Öffnen externer Web-Links in Netscape Navigator, wenn Netscape bereits geöffnet ist (UNIX-Systeme) Wenn Netscape Navigator bereits geöffnet ist und entweder ein lokales DB2-HTML-Dokument oder eine externe Website anzeigt, führt der Versuch, eine externe Website von Information - Unterstützung aus zu öffnen, zu einem Netscape-Fehler. Der Fehler gibt an, dass Netscape die Datei oder das Verzeichnis mit dem Namen der externen Site nicht finden kann. Schließen Sie das offene Netscape-Browserfenster, bevor Sie die externe Website öffnen, um dieses Problem zu umgehen. Netscape wird neu gestartet und zeigt die externe Website an. Dieser Fehler tritt nicht auf, wenn Sie versuchen, ein lokales DB2-HTML-Dokument zu öffnen, wenn Netscape bereits geöffnet ist. 24.4 Probleme beim Starten von "Information - Unterstützung" Auf einigen Systemen kann es vorkommen, dass Information - Unterstützung nur langsam startet, wenn Sie es über Erste Schritte im Menü Start oder mit dem Befehl db2ic aufrufen. Wenn dieses Problem auftritt, starten Sie die Steuerzentrale und wählen Sie Hilfe --> Information - Unterstützung aus. Stored Procedure Builder 25.1 Unterstützung für gespeicherte Java-Prozeduren für z/OS oder OS/390 In FixPak 7 wurden Stored Procedure Builder die folgenden funktionalen Erweiterungen hinzugefügt, um interpretierte gespeicherte Java-Prozeduren für DB2 für z/OS oder OS/390, Version 7 zu erstellen: Istkosten-Unterstützung Verbesserte Bearbeitung von Fehlernachrichten Aktivierung für LINUX/390-Server Unterstützung für das Zeichen "@" in einem Schemanamen einer gespeicherten Prozedur Kompilierte gespeicherte Java-Prozeduren werden in keiner Version von z/OS oder OS/390 unterstützt und können nicht mit Stored Procedure Builder erstellt werden. Dies gilt für alle Versionen von DB2. Voraussetzungen: Informationen zu Vorbedingungen und Konfigurationstasks in DB2 für z/OS oder OS/390 finden Sie in APAR PQ52329. Die Objektgruppen-ID muss der ID entsprechen, die beim Binden des JDBC-Treibers unter z/OS oder OS/390 verwendet wurde. Ändern Sie die Datei DB2SPB.ini, so dass sie die folgenden Einträge enthält: SPOPTION_WLM_JAVA_ENVIRONMENT = WLMENVJ SPOPTION_JAVAPROC_BUILDER = SYSPROC.DSNTJSPP SPOPTION_BIND_OPTIONS_JAVA = ACT(REP) SPOPTION_COLLIDJ = DSNJDBC Gehen Sie wie folgt vor, um eine gespeicherte Java-Prozedur für z/OS oder OS/390 mit Stored Procedure Builder zu erstellen: Öffnen Sie den Assistenten Gespeicherte Java-Prozedur einfügen: Klicken Sie unter einer z/OS- oder OS/390-Datenbankverbindung im Projektbaum den Ordner für gespeicherte Prozeduren mit Maustaste 2 an. Klicken Sie Einfügen -> Gespeicherte Java-Prozedur mit Assistent an. Der Assistent wird geöffnet. Füllen Sie die Felder im Assistenten aus, und geben Sie dabei die z/OS- oder OS/390-Optionen an: Die Objektgruppen-ID muss der ID entsprechen, die bei BIND PACKAGE(objektgruppen-id) angegeben wurde, als die JDBC-Treiber unter z/OS oder OS/390 gebunden wurden. Standardmäßig wird für das Java-Paket der Prozedurname verwendet, aber Sie können diesen Namen in einen beliebigen Namen ändern. Klicken Sie OK an. Die gespeicherte Prozedur wird erstellt und im Projektbaum aufgelistet. Klicken Sie die gespeicherte Prozedur mit Maustaste 2 an, und klicken Sie Build ausführen an. 25.2 Unterstützung für gespeicherte SQL-Prozeduren für z/OS oder OS/390 In FixPak 7 bietet Stored Procedure Builder eine verbesserte Verwendung der ALTER-Prozeduren beim Erstellen gespeicherter Prozeduren für DB2 für z/OS oder OS/390, Version 7 (APAR JR16764). Gehen Sie wie folgt vor, um eine gespeicherte SQL-Prozedur für z/OS oder OS/390 mit Stored Procedure Builder zu erstellen: Öffnen Sie den Assistenten Gespeicherte SQL-Prozedur einfügen: Klicken Sie unter einer z/OS- oder OS/390-Datenbankverbindung im Projektbaum den Ordner für gespeicherte Prozeduren mit Maustaste 2 an. Klicken Sie Einfügen -> Gespeicherte SQL-Prozedur mit Assistent an. Der Assistent wird geöffnet. Füllen Sie die Felder im Assistenten aus, und geben Sie dabei die z/OS- oder OS/390-Optionen an: Die Objektgruppen-ID muss der ID entsprechen, die bei BIND PACKAGE(objektgruppen-id) angegeben wurde, als die JDBC-Treiber unter z/OS oder OS/390 gebunden wurden. Standardmäßig wird für das SQL-Paket der Prozedurname verwendet, aber Sie können diesen Namen in einen beliebigen Namen ändern. Klicken Sie OK an. Die gespeicherte Prozedur wird erstellt und im Projektbaum aufgelistet. Klicken Sie die gespeicherte Prozedur mit Maustaste 2 an, und wählen Sie Build ausführen aus. 25.3 Aktualisierte Verweise des Stored Procedure Builder auf z/OS- oder OS/390-Dokumentation Auf der Seite "Übersicht über gespeicherte Prozeduren" der Onlinehilfefunktion von Stored Procedure Builder ist der Verweis auf IBM DB2 Universal Database SQL Procedures Guide and Reference Version 6 veraltet. Weitere Informationen zum Erstellen gespeicherter SQL-Prozeduren auf einem z/OS- oder OS/390-Server finden Sie in: DB2 UDB for z/OS or OS/390 SQL Reference DB2 UDB for z/OS or OS/390 Application Programming and SQL Guide 25.4 Unterstützung für die Einstellung von Ergebnismengenmerkmalen In FixPak 7 bietet der Stored Procedure Builder verbesserte Leistung beim Ausführen gespeicherter Prozeduren, die Ergebnismengen zurückgeben. Mit Stored Procedure Builder können Sie eine gespeicherte Prozedur zu Testzwecken ausführen. Durch Ausführen gespeicherter Prozeduren mit Stored Procedure Builder können Sie die erfolgreiche Erstellung in einer Datenbank und das Vorhandensein einer Ergebnismenge testen. Wenn Ihre gespeicherte Prozedur eine große Ergebnismenge zurückgibt, könnten Sie die Anzahl der im Ergebnisfenster angezeigten Zeilen und Spalte n einschränken. Gehen Sie wie folgt vor, um die Ergebnismengenmerkmale für gespeicherte Prozeduren zu editieren: Klicken Sie Datei -> Umgebungseigenschaften an. Klicken Sie die Indexzunge Ausgabe im Notizbuch Umgebungseigenschaften an. Wenn Sie alle Zeilen der Ergebnismenge einer gespeicherten Prozedur im Ergebnisfenster anzeigen wollen, wählen Sie das Markierungsfeld Alle Zeilen anzeigen aus. Wenn Sie die Anzahl der im Ergebnisfenster angezeigten Zeilen einschränken wollen, löschen Sie das Markierungsfeld Alle Zeilen anzeigen, und geben Sie eine Zahl in das Feld Anzahl der anzuzeigenden Zeilen ein. Wenn Sie alle Daten in jeder Spalte der Ergebnismenge einer gespeicherten Prozedur im Ergebnisfenster anzeigen wollen, wählen Sie das Markierungsfeld Alle Daten in jeder Spalte anzeigen aus. Wenn Sie die im Ergebnisfenster angezeigte Spaltenbreite einschränken wollen, löschen Sie das Markierungsfeld Alle Daten in jeder Spalte anzeigen, und geben Sie eine Zahl (für die Anzahl der Zeichen) in das Feld Maximale Spaltenbreite ein. Die Daten werden bei der Anzeige im Ergebnisfenster auf die entsprechende Spaltenbreite abgeschnitten. Klicken Sie OK an, um Ihre Änderungen anzuwenden. 25.5 Löschen von Prozeduren aus einer DB2-Datenbank unter Windows NT In früheren Versionen von Stored Procedure Builder funktionierte die Funktion DROP PROCEDURE beim Löschen von Prozeduren aus einer DB2-Datenbank unter Windows NT nicht korrekt. In FixPak 7 löscht Stored Procedure Builder Prozeduren aus einer DB2-Datenbank unter Windows NT korrekt. Assistenten 26.1 Einstellen der Speicherbereichsgröße in "Assistent: Datenbank erstellen" Mit Assistent: Datenbank erstellen können die Parameter für die Speicherbereichsgröße (EXTENTSIZE) und die Vorablesezugriffsgröße (PREFETCHSIZE) für den Benutzertabellenbereich (nicht jedoch für die Katalogtabellenbereiche oder temporären Tabellenbereiche) der neuen Datenbank eingestellt werden. Diese Funktion ist nur aktiviert, wenn mindestens ein Behälter für den Benutzertabellenbereich auf der Seite Benutzertabellen des Assistenten angegeben ist. 26.2 Assistent "MQSeries Assist" DB2 Version 7.2 enthält den neuen Assistenten "MQSeries Assist". Dieser Assistent erstellt eine Tabellenfunktion, die aus einer MQSeries-Warteschlange liest, indem sie die DB2-MQSeries-Funktionen verwendet, die in Version 7.2 ebenfalls neu sind. Der Assistent kann jede MQSeries-Nachricht als begrenzte Zeichenfolge behandeln oder als Spaltenzeichenfolge mit fester Länge, abhängig von Ihren Spezifikationen. Die erstellte Tabellenfunktion analysiert die Zeichenfolge syntaktisch und gibt jede MQSeries-Nachricht als Zeile der Tabellenfunktion zurück. Der Assistent ermöglicht es Ihnen auch, eine Sicht der Tabellenfunktion zu erstellen und eine MQSeries-Nachricht und das Tabellenfunktionsergebnis voranzuzeigen. Dieser Assistent kann über Stored Procedure Builder oder über die Data Warehouse-Zentrale gestartet werden. Voraussetzungen für diesen Assistenten: MQSeries Version 5.2 MQSeries Application Messaging Interface (AMI) DB2-MQSeries-Funktionen Einzelangaben zu diesen Voraussetzungen finden Sie in MQSeries. Wenn Sie Beispiele und Lernprogramme für den Assistenten "MQSeries Assist" benötigen, rufen Sie den Abschnitt mit den Lernprogrammen auf der Website http://www.ibm.com/software/data/db2/udb/ide. 26.3 Assistent "OLE DB Assist" Dieser Assistent hilft Ihnen dabei, eine Tabellenfunktion zu erstellen, die Daten von einem anderen Datenbankanbieter liest, der den OLE DB-Standard von Microsoft unterstützt. Sie können optional eine DB2-Tabelle mit den Daten erstellen, die von der OLE DB-Tabellenfunktion gelesen werden, und Sie können eine Sicht für die OLE DB-Tabellenfunktion erstellen. Dieser Assistent kann über Stored Procedure Builder oder über die Data Warehouse-Zentrale gestartet werden. Voraussetzungen für diesen Assistenten: Ein OLE DB-Anbieter (wie z. B. Oracle oder Microsoft SQL Server) OLE DB-Unterstützungsfunktionen Wenn Sie Beispiele und Lernprogramme für den Assistenten "OLE DB Assist" benötigen, rufen Sie den Abschnitt mit den Lernprogrammen auf der Website http://www.ibm.com/software/data/db2/udb/ide auf. Informationsmanagement Teilinhaltsverzeichnis Lernprogramm für das Informationsmanagement 27.1 Überarbeitetes Lernprogramm für das Informationsmanagement DB2 Universal Database Kurzüberblick Data Warehouse-Zentrale Systemverwaltung 29.1 Aktualisierung verfügbar 29.2 Funktionale Erweiterungen des Warehouse-Servers 29.3 Ausführen einer Trillium Batch System-JCL mit dem OS/390-Agenten 29.4 Zwei neue Beispielprogramme in der Data Warehouse-Zentrale 29.5 Managing ETI.Extract(R) Conversion Programs with DB2 Warehouse Manager aktualisiert 29.6 Importieren und Exportieren von Metadaten mit CWMI (Common Warehouse Metadata Interchange) 29.6.1 Einführung 29.6.2 Importieren von Metadaten 29.6.3 Aktualisieren der Metadaten nach dem Ausführen des Importdienstprogramms 29.6.4 Exportieren von Metadaten 29.7 Befehlssprachenmetadaten - Dienstprogramm IMPORT/EXPORT 29.7.1 Schlüsseldefinitionen 29.7.2 Schritt- und Prozesszeitpläne 29.8 SAP-Schrittinformationen 29.8.1 Erstellung logisch inkonsistenter Tabellen möglich 29.9 SAP Connector-Informationen 29.9.1 Installationseinschränkungen für SAP Connector 29.9.2 Leistung von GetDetail BAPI 29.10 Web Connector-Informationen 29.10.1 Unterstützte WebSphere Site Analyzer-Versionen DB2 OLAP Starter Kit 30.1 OLAP Server-Website 30.2 Unterstützte Betriebssystemservicestufen 30.3 Abschließen der Installation von DB2 OLAP Starter Kit unter UNIX 30.4 Weitere Konfiguration für die Solaris-Betriebsumgebung 30.5 Weitere Konfiguration für alle Betriebssysteme 30.6 Konfigurieren von ODBC für OLAP Starter Kit 30.6.1 Konfigurieren von Datenquellen auf UNIX-Systemen 30.6.1.1 Konfigurieren der ODBC-Umgebungsvariablen 30.6.1.2 Editieren der Datei odbc.ini 30.6.1.3 Hinzufügen einer Datenquelle zur Datei "odbc.ini" 30.6.1.4 Beispiel für ODBC-Einstellungen für DB2 30.6.1.5 Beispiel für ODBC-Einstellungen für Oracle 30.6.2 Konfigurieren des OLAP-Metadatenkatalogs auf UNIX-Systemen 30.6.3 Konfigurieren von Datenquellen auf Windows-Systemen 30.6.4 Konfigurieren des OLAP-Metadatenkatalog auf Windows-Systemen 30.6.5 Vorgehensweise nach dem Konfigurieren einer Datenquelle 30.7 Anmelden über OLAP Starter Kit Desktop 30.7.1 Beispiel für Starter Kit-Anmeldung 30.8 Manuelles Erstellen und Konfigurieren der Beispieldatenbanken für OLAP Starter Kit 30.9 Migrieren von Anwendungen nach OLAP Starter Kit Version 7.2 30.10 Bekannte Probleme und Einschränkungen 30.11 Fehlende EQD-Dateien des OLAP-Tabellenkalkulations-Add-In Information Catalog Manager Systemverwaltung 31.1 Initialisierungsprogramm von Information Catalog Manager 31.1.1 31.1.2 Lizenzfragen 31.1.3 Installationsfragen 31.2 Verbesserungen an Information Catalog Manager 31.3 Inkompatibilität zwischen Information Catalog Manager und Sybase in der Windows-Umgebung 31.4 Zugreifen auf Informationskataloge von DB2 Version 5 mit Information Catalog Manager von DB2 Version 7 31.5 Einrichten eines Informationskatalogs 31.6 Austauschen von Metadaten mit anderen Produkten 31.7 Austauschen von Metadaten mit dem Befehl "flgnxoln" 31.8 Austauschen von Metadaten mit dem Befehl "MDISDGC" 31.9 Aufrufen von Programmen Information Catalog Manager Programming Guide and Reference 32.1 Information Catalog Manager Reason Codes Information Catalog Manager Benutzerhandbuch Information Catalog Manager: Onlinenachrichten 34.1 Korrekturen an FLG-Nachrichten 34.1.1 Nachricht FLG0260E 34.1.2 Nachricht FLG0051E 34.1.3 Nachricht FLG0003E 34.1.4 Nachricht FLG0372E 34.1.5 Nachricht FLG0615E Information Catalog Manager: Onlinehilfefunktion 35.1 Information Catalog Manager für das Web DB2 Warehouse Manager Installation 36.1 Aktualisierung von "DB2 Warehouse Manager Installation" verfügbar 36.2 Softwarevoraussetzungen für Warehouse-Umsetzungsprogramme 36.3 Connector für SAP R/3 36.3.1 Vorbedingungen zur Installation 36.4 Connector für das Web 36.4.1 Vorbedingungen zur Installation 36.5 Überlegungen nach Abschluss der Installation des iSeries-Agenten 36.6 Vor der Verwendung von Umsetzungsprogrammen mit dem iSeries-Warehouse-Agenten Query Patroller Administration Guide 37.1 DB2 Query Patroller Client is a Separate Component 37.2 Changing the Node Status 37.3 Migrating from Version 6 of DB2 Query Patroller Using dqpmigrate 37.4 Enabling Query Management 37.5 Location of Table Space for Control Tables 37.6 New Parameters for dqpstart Command 37.7 New Parameter for iwm_cmd Command 37.8 New Registry Variable: DQP_RECOVERY_INTERVAL 37.9 Starting Query Administrator 37.10 User Administration 37.11 Data Source Administration 37.12 Creating a Job Queue 37.13 Job Accounting Table 37.14 Using the Command Line Interface 37.15 Query Enabler Notes 37.16 DB2 Query Patroller Tracker may Return a Blank Column Page 37.17 Additional Information for DB2 Query Patroller Tracker GUI Tool 37.18 Query Patroller and Replication Tools 37.19 Improving Query Patroller Performance 37.20 Verlorenes Zugriffsrecht EXECUTE für in Version 6 erstellte Benutzer von Query Patroller 37.21 Query Patroller - Einschränkungen 37.22 Appendix B. Troubleshooting DB2 Query Patroller Clients Lernprogramm für das Informationsmanagement 27.1 Überarbeitetes Lernprogramm für das Informationsmanagement FixPak 2 enthält überarbeitete Versionen des Lernprogramms für das Informationsmanagement und der Beispieldatenbank der Data Warehouse-Zentrale. Dadurch werden einige Probleme beseitigt, die in Version 7.1 bestanden. Gehen Sie wie folgt vor, um die überarbeitete Version der Beispieldatenbank für die Data Warehouse-Zentrale einzusetzen: Falls Sie die Beispieldatenbanken noch nicht installiert haben, erstellen Sie über die Klickstartleiste Erste Schritte neue Beispieldatenbanken. Klicken Sie Start an, und wählen Sie Programme --> IBM DB2 --> Erste Schritte aus. Wenn Sie die Beispieldatenbanken bereits früher installiert hatten, löschen Sie die Beispieldatenbanken DWCTBC, TBC_MD und TBC. Hatten Sie Daten hinzugefügt, die Sie auch weiterhin in den Beispieldatenbanken verwenden wollen, sichern Sie diese vor dem Löschen der Datenbanken. Gehen Sie wie folgt vor, um die drei Beispieldatenbanken zu löschen: Klicken Sie Start an, und wählen Sie Programme --> IBM DB2 --> Befehlsfenster aus, um das DB2-Befehlsfenster zu öffnen. Geben Sie im DB2-Befehlsfenster die folgenden drei Befehle ein, wobei Sie nach jedem Befehl die Eingabetaste drücken müssen: db2 drop database dwctbc db2 drop database tbc_md db2 drop database tbc Schließen Sie das DB2-Befehlsfenster. Erstellen Sie über die Klickstartleiste Erste Schritte neue Beispieldatenbanken. Klicken Sie Start an, und wählen Sie Programme --> IBM DB2 --> Erste Schritte aus. DB2 Universal Database Kurzüberblick Der Kurzüberblick ist unter DB2 für Linux oder Linux/390 nicht verfügbar. Der Kurzüberblick ist für die Ausführung mit kleinen Systemschriftarten optimiert. Sie müssen möglicherweise die Schriftgröße Ihres Web-Browsers anpassen, damit Sie den Kurzüberblick unter OS/2 korrekt anzeigen können. Informationen zur Anpassung der Schriftgröße finden Sie in der Hilfe Ihres Web-Browsers. Zur korrekten Anzeige des Kurzüberblicks (nur Einzelbytezeichensätze) empfiehlt es sich, eine Helvetica-Schrift mit 8 Punkt zu verwenden. Japanische und koreanische Kunden sollten eine Mincho-Schrift mit 8 Punkt verwenden. Sie müssen die Option für die Verwendung der Standardschriftarten anstelle der dokumentspezifischen Schriftarten in den Einstellungen auswählen. Es kann vorkommen, dass der Kurzüberblick hinter einem zweiten Browserfenster gestartet wird. Schließen Sie den Kurzüberblick, und führen Sie die Schritte in 3.4, Fehlernachrichten beim Versuch, Netscape zu starten, aus, um dieses Problem zu beheben. Beim Starten des Kurzüberblicks erhalten Sie möglicherweise einen JavaScript-Fehler ähnlich dem Folgenden: file:/C/Program Files/SQLLIB/doc/html/db2qt/index4e.htm, line 65: Window is not defined. Dieser JavaScript-Fehler verhindert, dass die Startseite des Kurzüberblicks, index4e.htm, automatisch geschlossen wird, nachdem der Kurzüberblick gestartet wurde. Sie können die Startseite des Kurzüberblicks schließen, indem Sie das Browserfenster schließen, in dem index4e.htm angezeigt wird. Im Abschnitt "Neue Funktionen" zum Thema Datenverwaltung wird angegeben, dass die Unterstützung der Protokollarchive nach Bedarf in Version 7.1 unterstützt wird. Dies ist nicht der Fall. Außerdem heißt es: Die Größe von Protokolldateien wurde von 4 GB auf 32 GB erhöht. Dieser Satz muss wie folgt lauten: Der insgesamt aktive Protokollbereich wurde von 4 GB auf 32 GB erhöht. Der Abschnitt zu DB2 Data Links Manager enthält folgenden Satz: Außerdem wird nun die Verwendung der Veritas-Schnittstelle XBSA für die Sicherung und Wiederherstellung mit NetBackup unterstützt. Dieser Satz muss wie folgt lauten: Außerdem wird nun die XBSA-Schnittstelle für die Dateiarchivierung und -wiederherstellung unterstützt. Speichermanager, die die XBSA-Schnittstelle unterstützen, sind z. B. Legato NetWorker und Veritas NetBackup. Data Warehouse-Zentrale Systemverwaltung 29.1 Aktualisierung verfügbar Das Handbuch Data Warehouse-Zentrale Systemverwaltung wurde für FixPak 4 aktualisiert, und die aktuelle PDF-Version kann online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. Die vorliegenden Informationen gelten zusätzlich zum aktualisierten Handbuch. Die gesamte aktualisierte Dokumentation ist auch auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. 29.2 Funktionale Erweiterungen des Warehouse-Servers Die folgenden Verbesserungen wurden für FixPak 5 am Warehouse-Server vorgenommen: Aktualisierung von Konfigurationsparametern Der Server aktualisiert nicht mehr kritische Konfigurationsparameter wie z. B. Servicenamen in eine leere Zeichenfolge. Nachricht DWC7906 aktualisiert Die Nachricht DWC7906 enthält jetzt Namen von Vorgängerschritten beim Melden von Abhängigkeitsproblemen. Die folgenden Verbesserungen wurden für FixPak 4 am Warehouse-Server vorgenommen: Fehler beim Agentensystemabschluss (Ursachencode = 7170), sekundärer Ursachencode = 6106. Dieser Fehler trat auf, wenn der Agent heruntergefahren wurde, bevor der Server eine Anforderung zum Abschalten des Systems gesendet hat. Dieser Fehler wurde unnötigerweise gemeldet. Jetzt wird er nicht mehr gemeldet. Systemnachricht und Kommentar in Protokolldatei geschrieben Wenn ein benutzerdefiniertes Programm beendet ist, werden die Systemnachricht und der Kommentar in die Warehouse-Protokolldatei geschrieben. Diese Nachrichten sind jetzt im Anzeigefenster Laufende Prozesse zu sehen. Inkrementelle Festschreibung funktioniert jetzt korrekt Wenn ein Fehler auftritt, während ein Schritt eine Zieldatenbank füllt und der Wert der inkrementellen Festschreibung größer 0 ist, werden alle Ergebnisse in der Zieldatenbank angezeigt, die vor dem Fehler festgeschrieben wurden. Vor FixPak 4 wurden Teilergebnisse gelöscht. Fehler, dass der Warehouse-Server nach der Änderung der Trace-Stufe nicht ausgeführt werden kann, korrigiert Der Warehouse-Server ruft den Namen des Protokollverzeichnisses aus der Systemumgebungsvariablen VWS_LOGGING ab. Wenn VWS_LOGGING fehlt oder auf einen ungültigen Verzeichnisnamen zeigt, wird statt dessen die Systemumgebungsvariable TEMP verwendet. Wenn TEMP fehlt oder auf einen ungültigen Verzeichnisnamen zeigt, werden die Tracedateien der Protokollfunktion auf c:\ geschrieben. Damit wird ein Fehler in den Versionen vor FixPak 4 behoben, der durch den Abruf eines ungültigen Protokollverzeichnisnamens aus der Registrierdatenbank verursacht wurde. Weitere Unterstützung für Festschreibungsbefehle in gespeicherten Prozeduren Der Warehouse-Server sendet nach der Ausführung benutzerdefinierter gespeicherter Prozeduren einen COMMIT-Befehl an den Agenten. Beispielinhalte erweitert Der Warehouse-Server muss nicht mehr auf eine Systemabschlussnachricht des Agenten warten, die Funktion zur Anzeige von Beispielinhalten läuft deshalb jetzt effizienter. Größe des Trace-Protokolldatei kann jetzt gesteuert werden Sie können jetzt die Größe einer Trace-Protokolldatei mit der neuen Systemumgebungsvariablen VWS_SERVER_LOG_MAX steuern. Wenn Sie den Wert von VWS_SERVER_LOG_MAX auf einen Wert größer 0 setzen, stoppt der Warehouse-Server die Vergrößerung der Protokolldatei, wenn er eine Größe erreicht, die etwa der vom Wert von VWS_SERVER_LOG_MAX angegebenen Byteanzahl entspricht. Wenn die Protokolldatei die Maximalgröße erreicht, werden die neuesten Trace-Protokolleinträge beibehalten und die ältesten Einträge überschrieben. Für umfangreiche Traces ist VWS_SERVER_LOG_MAX=150000000 (150 MB) eine vernünftige Größe. 29.3 Ausführen einer Trillium Batch System-JCL mit dem OS/390-Agenten Der OS/390-Agent unterstützt jetzt das benutzerdefinierte Trillium Batch System-Programm von, das vom Notizbuch Metadaten importieren der Data Warehouse-Zentrale erstellt wird. Bisher mussten Sie zum Ausführen einer Trillium Batch System JCL-Datei den Agenten von Windows, AIX oder der Solaris-Betriebsumgebung verwenden, um die JCL fern auszuführen. Mit dieser Aktualisierung können Sie die JCL mit dem OS/390-Agenten starten. Wenn Sie den benutzerdefinierten Trillium Batch System-Programmschritt mit dem Notizbuch Metadaten importieren für das Trillium Batch System erstellen, müssen Sie Ferner Host als Verbindung für den OS/390-Agenten auswählen, selbst wenn die JCL sich auf demselben System befindet wie der Agent. Alle Parameter für die ferne Hostverbindung müssen eingegeben werden. Nachdem Sie den benutzerdefinierten Trillium Batch System-Programmschritt erstellt haben, verwenden Sie das Notizbuch Merkmale des Trillium Batch System-Schritts, um die Agentensite in die Site des OS/390-Agenten zu ändern, den Sie verwenden wollen. Wenn der Name der JCL oder der Ausgabefehlerdatei Leerzeichen oder runde Klammern enthält, müssen Sie diese in doppelte Anführungszeichen einschließen, wenn Sie sie in die Fehlerdateifelder Prozedur oder JCL oder Ausgabe eingeben. 29.4 Zwei neue Beispielprogramme in der Data Warehouse-Zentrale Zwei neue Beispielprogramme wurden in die Data Warehouse-Zentrale aufgenommen: EEE_Load und File_Wait. Sie können das Programm EEE_Load verwenden, um Schritte zur Ausführung des DB2 UDB EEE-Autoloader-Programms in Ihren Data-Warehouse-Prozessen zu erstellen. Verwenden Sie das Programm File_Wait, um Schritte zu erstellen, die auf eine Datei warten und dann den nächsten Schritt in Ihrem Prozess ausführen, wenn die Datei verfügbar wird. Ausführlichere Informationen zu diesen Programmen finden Sie in der Datei README.UDP im Verzeichnis ..\SQLLIB\TEMPLATES\SAMPLES auf den Systemen, auf denen der Server der Data Warehouse-Zentrale installiert ist. 29.5 Managing ETI.Extract(R) Conversion Programs with DB2 Warehouse Manager aktualisiert Managing ETI.Extract(R) Conversion Programs with DB2 Warehouse Manager wurde jetzt aktualisiert und kann online von http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. 29.6 Importieren und Exportieren von Metadaten mit CWMI (Common Warehouse Metadata Interchange) 29.6.1 Einführung Zusätzlich zur bereits vorhandenen Unterstützung für Befehlssprachendateien kann die Data Warehouse-Zentrale jetzt Metadaten aus XML-Dateien, die dem CWM-Standard (Common Warehouse Metamodel) entsprechen, importieren und Daten in diese Dateien exportieren. Das Importieren und Exportieren dieser CWM-kompatiblen XML-Dateien wird als CWMI (Common Warehouse Metadata Interchange) bezeichnet. Sie können Metadaten aus den folgenden Objekten der Data Warehouse-Zentrale importieren bzw. in diese exportieren: Warehouse-Quellen Warehouse-Ziele Themenbereiche, einschließlich Prozessen, Quellen, Zielen, Schritten und überlappenden Beziehungen Benutzerdefinierte Programme Das CWMI-Dienstprogramm für den Import und Export unterstützt zurzeit bestimmte Arten von Metadaten nicht. Dazu gehören Zeitpläne, Warehouse-Schemata, Benutzer und Gruppen. Die Data Warehouse-Zentrale erstellt eine Protokolldatei mit den Ergebnissen der Im- und Exportprozesse. In der Regel wird die Protokolldatei im Verzeichnis x:\programmdateien\sqllib\logging (dabei ist x: das Laufwerk, auf dem DB2 installiert wurde) oder in dem Verzeichnis erstellt, das über die Umgebungsvariable VWS_LOGGING angegeben wurde. Die Protokolldatei ist eine Textdatei und kann mit einem beliebigen Texteditor angezeigt werden. 29.6.2 Importieren von Metadaten Sie können Metadaten über die Data Warehouse-Zentrale oder über die Befehlszeile importieren. Neue Objekte, die durch den Importprozess erstellt werden, werden der Standardsicherheitsgruppe der Data Warehouse-Zentrale zugeordnet. Weitere Informationen finden Sie in den vorliegenden Release-Informationen im Abschnitt zum Aktualisieren der Sicherheit nach dem Import. Wenn Sie Metadaten ohne einen Schritt importieren, können dem Schritt mehrere Dateien zugeordnet werden. Metadaten zum Schritt werden in einer XML-Datei gespeichert; gelegentlich werden dem Schritt zugeordnete Daten aber auch in BLOBs gespeichert. Die BLOB-Metadaten haben denselben Namen wie die XML-Datei, befinden sich aber in einzelnen Dateien, deren Erweiterungen durchnummeriert werden. Alle zugehörigen Schrittdateien müssen sich für den Import im selben Verzeichnis befinden. Aktualisieren von Schritten, die sich im Test- oder Produktionsmodus befinden Ein Schritt muss sich im Entwicklungsmodus befinden, damit die Data Warehouse-Zentrale die Metadaten des Schritts aktualisieren kann. Befindet sich der Schritt im Test- oder Produktionsmodus, muss er vor dem Import der Metadaten auf den Entwicklungsmodus herabgestuft werden: Melden Sie sich an der Data Warehouse-Zentrale an. Klicken Sie den Schritt, der herabgestuft werden soll, mit Maustaste 2 an, und klicken Sie dann Modus an. Klicken Sie Entwicklung an. Der Schritt befindet sich jetzt im Entwicklungsmodus. Setzen Sie den Schritt nach dem Import der Metadaten auf den Test- oder den Produktionsmodus zurück. Importieren von Daten über die Data Warehouse-Zentrale Sie können Metadaten über die Data Warehouse-Zentrale importieren: Melden Sie sich an der Data Warehouse-Zentrale an. Klicken Sie im linken Teilfenster Warehouse an. Klicken Sie Ausgewählt --> Metadaten importieren --> Datei im Datenaustauschformat an. Geben Sie im Fenster Metadaten importieren den Namen der Datei mit den Metadaten an, die Sie importieren wollen. Sie können den Dateinamen eingeben oder nach der Datei suchen. Wenn Sie die Speicherposition der Datei kennen, geben Sie den vollständig qualifiziertem Pfad und den Namen der Datei ein, die Sie importieren wollen. Achten Sie darauf, die Dateierweiterung .xml anzugeben, um festzulegen, dass Sie Metadaten im XML-Format importieren wollen. Andernfalls wird die Datei nicht korrekt verarbeitet. Gehen Sie wie folgt vor, um die Dateien zu durchsuchen: Klicken Sie den Druckknopf mit dem Auslassungszeichen (...) an. Ändern Sie den Dateityp im Dateifenster in XML. Wechseln Sie in das entsprechende Verzeichnis, und wählen Sie die Datei aus, die Sie importieren wollen. Anmerkung: Die Datei muss die Erweiterung .xml haben. Klicken Sie OK an. Klicken Sie OK im Fenster Metadaten importieren an, um den Vorgang zu beenden. Ein Statusfenster wird angezeigt, während die Data Warehouse-Zentrale die Datei importiert. Importieren von Metadaten über die Befehlszeile Sie können Metadaten auch über die Befehlszeile importieren. Die Befehlssyntax für den Import lautet wie folgt: CWMImport XML_datei dwcsteuerDB dwcBenutzerID dwcKW [PREFIX = DWCtbschema] XML_datei Der vollständig qualifizierte Pfad (einschließlich Laufwerk und Verzeichnis) und der Name der XML-Datei, die Sie importieren wollen. Dieser Parameter ist erforderlich. dwcControlDB Der Name der Warehouse-Steuerungsdatenbank, in die Sie Ihre Metadaten importieren wollen. Dieser Parameter ist erforderlich. dwcBenutzerID Die Benutzer-ID, mit der Sie eine Verbindung zur Warehouse-Steuerungsdatenbank herstellen. Dieser Parameter ist erforderlich. dwcKW Das Benutzerkennwort, mit dem Sie eine Verbindung zur Warehouse-Steuerungsdatenbank herstellen. Dieser Parameter ist erforderlich. [PREFIX=DWCtbschema] Der Name des Datenbankschemas für die Systemtabellen der Data Warehouse-Zentrale. Wird kein Wert für PREFIX= angegeben, wird der Standardschemaname IWH verwendet. Dieser Parameter ist optional. 29.6.3 Aktualisieren der Metadaten nach dem Ausführen des Importdienstprogramms Aktualisieren der Sicherheit nach dem Import Eine der Sicherheitsmaßnahmen der Data Warehouse-Zentrale besteht darin, Kennwörter weder zu importieren noch zu exportieren. Sie müssen die Kennwörter für neue Objekte ggf. aktualisieren. Ausführlichere Informationen zu Überlegungen beim Import von Metadaten finden Sie in Kapitel 12 des Handbuchs Data Warehouse-Zentrale Verwaltung. Beim Importieren von Metadaten werden alle Objekte der Standardsicherheitsgruppe zugeordnet. Sie können die Gruppen ändern, die Zugriff auf dieses Objekt haben: Melden Sie sich an der Data Warehouse-Zentrale an. Klicken Sie den Ordner, der das zu ändernde Objekt enthält, mit Maustaste 2 an. Klicken Sie Merkmale und anschließend die Indexzunge Sicherheit an. Entfernen Sie Gruppen aus der Liste der ausgewählten Warehouse-Gruppen, oder fügen Sie der Liste der verfügbaren Warehouse-Gruppen Gruppen hinzu. Klicken Sie OK an. 29.6.4 Exportieren von Metadaten Sie können Metadaten über die Data Warehouse-Zentrale oder über die Befehlszeile exportieren. Einige Schritte verfügen über Metadaten, die als BLOB gespeichert sind. Die BLOB-Metadaten werden in eine separate Datei exportiert, die denselben Namen wie die XML-Datei des Schritts hat, deren Erweiterung aber durchnummeriert wird (.1, .2 usw.). Exportieren von Daten über die Data Warehouse-Zentrale Sie können Metadaten über die Data Warehouse-Zentrale exportieren: Melden Sie sich an der Data Warehouse-Zentrale an. Klicken Sie im linken Teilfenster Warehouse an. Klicken Sie Ausgewählt --> Metadaten exportieren --> Datei im Datenaustauschformat an. Geben Sie im Fenster Metadaten exportieren den Namen der Datei mit den exportierten Metadaten an. Sie können den Dateinamen eingeben oder nach der Datei suchen: Wenn Sie die vollständig qualifizierten Pfad und den Namen der Datei kennen, geben Sie diese Angaben in das Feld für den Dateinamen ein. Achten Sie darauf, die Dateierweiterung .xml anzugeben, um festzulegen, dass Sie Metadaten im XML-Format exportieren wollen. Gehen Sie wie folgt vor, um die Dateien zu durchsuchen: Klicken Sie den Druckknopf mit dem Auslassungszeichen (...) an. Ändern Sie den Dateityp im Dateifenster in XML. Wechseln Sie in das entsprechende Verzeichnis, und wählen Sie die Datei aus, die Sie exportieren wollen. Anmerkung: Wenn Sie eine vorhandene Datei auswählen, wird diese mit den exportierten Metadaten überschrieben. Klicken Sie OK an. Wenn im Fenster Metadaten exportieren der korrekte Dateiname angezeigt wird, klicken Sie das Objekt, dessen Metadaten Sie exportieren wollen, in der Liste der verfügbaren Objekte an. Klicken Sie das Zeichen > an, um das ausgewählte Objekt aus der Liste der verfügbaren Objekte in die Liste der ausgewählten Objekte zu verschieben. Wiederholen Sie diese Schritte, bis alle Objekte, die Sie exportieren wollen, in der Liste der ausgewählten Objekte aufgeführt werden. Klicken Sie OK an. Die Data Warehouse-Zentrale erstellt eine Eingabedatei mit Informationen zu den Objekten der Data Warehouse-Zentrale, die Sie für den Export ausgewählt haben, und exportiert die Metadaten zu diesen Objekten anschließend. Ein Statusfenster wird angezeigt, während die Data Warehouse-Zentrale die Metadaten exportiert. Exportieren von Metadaten über die Befehlszeile Bevor Sie Metadaten über die Befehlszeile exportieren können, müssen Sie eine Eingabedatei erstellen. Die Eingabedatei ist eine Textdatei mit der Erweiterung .INP und listet alle Objekte, die Sie exportieren wollen, nach dem Objekttyp auf. Bei einem Export über die Data Warehouse-Zentrale wird die Eingabedatei automatisch erstellt, bei einem Export über die Befehlszeile muss diese Datei jedoch zuerst erstellt werden. Sie können die Eingabedatei mit einem beliebigen Texteditor erstellen. Geben Sie die Objektnamen so ein, wie sie in der Data Warehouse-Zentrale angezeigt werden. Stellen Sie sicher, dass die Datei sich in einem Verzeichnis mit Schreib-/Lesezugriff befindet. Beim Ausführen des Exportdienstprogramms schreibt die Data Warehouse-Zentrale die XML-Dateien in das Verzeichnis, in dem sich die Eingabedatei befindet. Eine Beispieleingabedatei: Prozess für Lernprogrammfakttabelle Dateiquelle für Lernprogramm Ziel für Lernprogramm Neue Programmgruppe Listen Sie im Abschnitt (Prozess) alle Prozesse auf, die Sie exportieren wollen. Listen Sie im Abschnitt (Informationsquellen) alle Warehouse-Quellen und -Ziele auf, die Sie exportieren wollen. Die Data Warehouse-Zentrale schließt die Tabellen und Spalten, die diesen Zielen und Quellen zugeordnet sind, automatisch ein. Listen Sie im Abschnitt (benutzerdefinierte Programme) die Programmgruppen auf, die Sie exportieren wollen. Geben Sie zum Exportieren der Metadaten den folgenden Befehl in eine DOS-Befehlszeile ein: CWMExport INPsteuerdatei dwcsteuerDB dwcBenutzerID dwcKW [PREFIX=DWCtbschema] INPsteuerdatei Der vollständig qualifizierte Pfad (einschließlich Laufwerk und Verzeichnis) und der Name der .INP-Datei mit den Objekten, die Sie exportieren wollen. Dieser Parameter ist erforderlich. dwcControlDB Der Name der Warehouse-Steuerungsdatenbank, aus der Sie exportieren wollen. Dieser Parameter ist erforderlich. dwcBenutzerID Die Benutzer-ID, mit der Sie eine Verbindung zur Warehouse-Steuerungsdatenbank herstellen. Dieser Parameter ist erforderlich. dwcKW Das Kennwort, mit dem Sie eine Verbindung zur Warehouse-Steuerungsdatenbank herstellen. Dieser Parameter ist erforderlich. [PREFIX=DWCtbschema] Der Name des Datenbankschemas für die Systemtabellen der Data Warehouse-Zentrale. Wird kein Wert für PREFIX= angegeben, wird standardmäßig IWH verwendet. Dieser Parameter ist optional. 29.7 Befehlssprachenmetadaten - Dienstprogramm IMPORT/EXPORT 29.7.1 Schlüsseldefinitionen Die in den Befehlssprachendateien definierten Primär- und Fremdschlüssel werden ignoriert, wenn es sich um die bereits in der Steuerungsdatenbank definierten Schlüssel handelt. Wenn die Schlüssel sich von den bereits definierten unterscheiden, tritt ein Fehler auf. 29.7.2 Schritt- und Prozesszeitpläne Schritt- und Prozesszeitpläne werden nicht mehr vom Dienstprogramm IMPORT gelöscht. In einer Befehlsdatei definierte Zeitpläne werden jetzt der aktuellen Liste der Zeitpläne hinzugefügt. Dies kann dazu führen, dass Zeitpläne doppelt auftreten. Doppelte Zeitpläne sollten vom Benutzer gelöscht werden, bevor Schritte in den Produktionsmodus hochgestuft werden. 29.8 SAP-Schrittinformationen 29.8.1 Erstellung logisch inkonsistenter Tabellen möglich Wenn alle folgenden Bedingungen erfüllt sind, ist die Zieltabelle möglicherweise logisch nicht konsistent. Das BO enthält die Exportparameter "GetList" und "GetDetail", und Sie haben alle Schlüsselfelder zugeordnet. Auf der Seite Ausgabeparameter des Notizbuchs mit den Merkmalen für den SAP-Schritt wird ein Exportparameter "GetList" ausgewählt, dessen SAP-Parametername sich vom dem für die Parameterzuordnung verwendeten unterscheidet. Anmerkung: SAP-Parametername bezieht sich auf den Teil des Parameters, der vor dem Punkt im vollständig qualifizierten Namen steht. Beim Parameter "DocList.DOCNUMBER" beispielsweise ist "DocList" der SAP-Parametername. Auf der Seite Ausgabeparameter des Notizbuchs mit den Merkmalen für den SAP-Schritt wird der Exportparameter "GetDetail" ausgewählt. Beispiel: "DocumentNumber" ist ein Schlüsselfeld. "DocList.DOCNUMBER" und "DocNumberSelection.OPTION" sind GetList-Exportparameter. "DocData.USERNAME" ist ein GetDetail-Exportparameter. Sie ordnen "DocumentNumber" "DocList.DOCNUMBER" zu. (Bedingung 1) Sie wählen "DocNumberSelection.OPTION" als Ausgabeparameter aus. (Bedingung 2, da "DocNumberSelection" und "DocList" unterschiedliche SAP-Parameternamen sind) Sie wählen "DocData.USERNAME" als Ausgabeparameter aus. (Bedingung 3, da dies ein GetDetail-Exportparameter ist) Diese Bedingungen führen zu einer Zieltabelle, deren Spaltenquellen GetList- und GetDetail-Parameter sind. Die logische Konsistenz der Beziehung zwischen den Spalten ist jedoch nicht garantiert. 29.9 SAP Connector-Informationen 29.9.1 Installationseinschränkungen für SAP Connector SAP Connector unterstützt nur englischsprachige Installationen des SAP R/3-Systems. 29.9.2 Leistung von GetDetail BAPI Wenn GetDetail viele Eingabeparameter hat, arbeitet GetDetail BAPI langsam. 29.10 Web Connector-Informationen 29.10.1 Unterstützte WebSphere Site Analyzer-Versionen Web Connector unterstützt nur WebSphere Site Analyzer Version 4.0. Er unterstützt zurzeit nicht Version 4.1. DB2 OLAP Starter Kit IBM DB2 OLAP Starter Kit 7.2 fügt die Unterstützung für Oracle, MS-SQL, Sybase und auf bestimmten Betriebssystemplattformen für das Verwaltungssystem für relationale Datenbanken (Relational Database Management System, RDBMS) von Informix. Version 7.2 enthält Scripts und Tools für alle unterstützten Verwaltungssysteme für relationale Datenbanken, einschließlich DB2. Es gibt einige Einschränkungen. Weitere Informationen finden Sie in 30.10, Bekannte Probleme und Einschränkungen. Die Servicestufe von DB2 OLAP Starter Kit for DB2 Universal Database Version 7.2 ist gleichbedeutend mit Programmkorrektur 2 für Hyperion Essbase 6.1 und Programmkorrektur 2 für Hyperion Integration Server 2.0. 30.1 OLAP Server-Website Die aktuellen Tipps für die Installation und den Einsatz von DB2 OLAP Starter Kit finden Sie auf der Bibliotheksseite der Website für DB2 OLAP Server: http://www.ibm.com/software/data/db2/db2olap/library.html 30.2 Unterstützte Betriebssystemservicestufen Die Serverkomponenten von OLAP Starter Kit for Version 7.2 unterstützen die folgenden Betriebssysteme und Servicestufen: Windows NT 4.0-Server mit SP 5 und Windows 2000 AIX Version 4.3.3 oder höher Solaris-Betriebssystem Version 2.6, 7 und 8 (Sun OS 5.6, 5.7 oder 5.8) Die Client-Komponenten laufen unter Windows 95, Windows 98, Windows NT 4.0 SP5 und Windows 2000. 30.3 Abschließen der Installation von DB2 OLAP Starter Kit unter UNIX Die Installation von DB2 OLAP Starter Kit verwendet im wesentlichen die Prozeduren der Installation von DB2 Universal Database für UNIX. Die Produktdateien werden vom Installationsprogramm in einem Systemverzeichnis gespeichert (für AIX: /usr/lpp/db2_07_01; für die Solaris-Betriebsumgebung: /opt/IBMdb2/V7.1). In der Exemplarerstellungsphase werden zwei DB2 OLAP-Verzeichnisse (essbase und is) im Ausgangsverzeichnis des Exemplarbenutzers unter sqllib erstellt. Nur ein Exemplar eines OLAP-Servers kann jeweils auf einer Maschine ausgeführt werden. Zum Abschluss dieser Konfiguration muss der Benutzer manuell das Verzeichnis is/bin so einstellen, dass es keine Programmverbindung zum Verzeichnis is/bin im System bildet. Es sollte eine Verbindung zu einem nicht schreibgeschützten Verzeichnis im Ausgangsverzeichnis des Exemplars herstellen. Zum Abschluss der Installation für die Solaris-Betriebsumgebung melden Sie sich mit der Exemplar-ID an, wechseln Sie in das Verzeichnis sqllib/is, und geben Sie folgende Befehle ein: rm bin mkdir bin cd bin ln -s /opt/IBMdb2/V7.1/is/bin/ismesg.mdb ismesg.mdb ln -s /opt/IBMdb2/V7.1/is/bin/olapicmd olapicmd ln -s /opt/IBMdb2/V7.1/is/bin/olapisvr olapisvr ln -s /opt/IBMdb2/V7.1/is/bin/essbase.mdb essbase.mdb ln -s /opt/IBMdb2/V7.1/is/bin/libolapams.so libolapams.so 30.4 Weitere Konfiguration für die Solaris-Betriebsumgebung In der Solaris-Betriebsumgebung treten eventuell Fehler auf, wenn das OLAP Starter Kit nicht mit dem entsprechenden ODBC-Treiber verknüpft ist. Führen Sie zur Verhinderung dieser Fehler den folgenden Befehl aus, der eine Verknüpfung in $ARBORPATH/bin erstellt, die auf den OLAP-Treiber sqllib/lib/libdb2.so zeigt: ln -s $HOME/sqllib/lib/libdb2.so libodbcinst.so 30.5 Weitere Konfiguration für alle Betriebssysteme Ab FixPak 3 von DB2 Universal Database Version 7 umfasst das DB2 OLAP Starter Kit Funktionen, für die Java erforderlich ist. Nach der Installation von FixPak 3 oder höher wird unter Umständen auf der OLAP Server-Konsole eine Fehlernachricht angezeigt, dass das zum Laden von JVM erforderliche Verzeichnis ([verzeichnis] [/export/home/arbor7sk/sqllib/essbase/java/]) nicht gefunden wurde. Führen Sie die folgenden Schritte aus, um diesen Fehler zu beheben: Melden Sie sich als DB2-Exemplareigner an. Suchen Sie das Verzeichnis, in dem Sie das DB2 OLAP Starter Kit installiert haben. Der Standardname für dieses Verzeichnis lautet essbase. Erstellen Sie im Verzeichnis essbase ein Unterverzeichnis namens java. Erstellen Sie im Unterverzeichnis java die folgenden leeren Dateien: essbase.jar essdefs.dtd jaxp.jar parser.jar udf.policy 30.6 Konfigurieren von ODBC für OLAP Starter Kit IBM DB2 OLAP Starter Kit 7.2 erfordert eine Datei ODBC.ini zur Verarbeitung von ODBC-Verbindungen (Open Database Connectivity) von OLAP Integration Server zu der relationalen Datenquelle und zum OLAP-Metadatenkatalog. Auf Windows-Systemen befindet sich diese Datei in der Registrierdatenbank unter HKEY_LOCAL_MACHINE/SOFTWARE/ODBC. Verwenden Sie ODBC Data Source Administrator, um Informationen zur Art zu speichern, mit der Sie die Verbindung zu einer relationalen Datenquelle herstellen. Auf UNIX-Systemen erstellt das Installationsprogramm ein Modell für die Datei odbc.ini. Editieren Sie die Datei mit Ihrem bevorzugten Editor, um Informationen zur Art zu speichern, mit der Sie die Verbindung zu einer relationalen Datenquelle herstellen. Die Datei ODBC.ini ist in ODBC-Softwarepaketen verfügbar und ist in der Microsoft Office-Software enthalten. Weitere Informationen zu Anwendungen, die ODBC-Treiber oder den ODBC-Administrator installieren, finden Sie auf der Website http://support.microsoft.com/. Anweisung für Oracle-Benutzer auf AIX-Maschinen: Für die Konfiguration von ODBC für Oracle müssen Sie die Datei ODBC.ini aktualisieren, damit sie auf die MERANT 3.6-Treiber zeigt. In Version 7.2 verwaltet OLAP Starter Kit ODBC-Verbindungen zu der relationalen Datenquelle und zum OLAP-Metadatenkatalog. OLAP Starter Kit verwendet ODBC-Treiber unter Windows NT 4.0, Windows 2000, AIX und Solaris, um diese ODBC-Verbindungen bieten zu können. Datenbankclient unter DB2 Universal Database Version 6: ODBC-Treiber für DB2 Version 6 unter Windows NT 4.0 SP5 oder Windows 2000, AIX 4.3.3 und Solaris Operating System 2.6, 7 oder 8 (Sun OS 5.6, 5.7 oder 5.8) Datenbankclient unter DB2 Universal Database 7.1: ODBC-Teiber für DB2 Version 7 unter Windows NT 4.0 SP5 oder Windows 2000, AIX 4.3.3 und Solaris Operating System 2.6, 7 oder 8 (Sun OS 5.6, 5.7 oder 5.8) Datenbankclient unter Oracle 8.04 und 8i SQL*Net 8.0: ODBC-Treiber für MERANT 3.6 unter Windows NT 4.0 SP5 oder Windows 2000, AIX 4.3.3 und Solaris Operating System 2.6, 7 oder 8 (Sun OS 5.6, 5.7 oder 5.8) MS SQL Server 6.5.201 (kein Datenbankclient erforderlich): ODBC-Treiber für MS SQL Server 6.5 unter Windows NT 4.0 SP5 oder Windows 2000 MS SQL Server 7.0 (kein Datenbankclient erforderlich): ODBC-Treiber für MS SQL Server 7.0 unter Windows NT 4.0 SP5 oder Windows 2000 30.6.1 Konfigurieren von Datenquellen auf UNIX-Systemen Unter AIX und Solaris müssen Sie die Umgebungsvariablen für ODBC manuell festlegen und die Datei odbc.ini editieren, um die relationalen Datenquellen und den OLAP-Metadatenkatalog zu konfigurieren. Stellen Sie sicher, dass Sie die Datei odbc.ini editieren, wenn Sie einen neuen Treiber oder eine neue Datenquelle hinzufügen oder wenn Sie den Treiber oder die Datenquelle ändern. Wenn Sie das DB2 OLAP Starter Kit unter AIX oder Solaris zum Zugriff auf Merant-ODBC-Quellen und DB2-Datenbanken nutzen wollen, ändern Sie den Wert des Attributs "Driver=" im Abschnitt zur DB2-Quelle der Datei .odbc.ini wie folgt: AIX: Der Treibername lautet "/usr/lpp/db2_07_01/lib/db2_36.o". Beispiel für einen ODBC-Quelleneintrag für AIX: [SAMPLE] Driver=/usr/lpp/db2_07_01/lib/db2_36.o Description=DB2 ODBC Database Database=SAMPLE Solaris-Betriebsumgebung: Der Treibername lautet "/opt/IBMdb2/V7.1/lib/libdb2_36.so". Beispiel für einen ODBC-Quelleneintrag für die Solaris-Betriebsumgebung: [SAMPLE] Driver=/opt/IBMdb2/V7.1/lib/libdb2_36.so Description=DB2 ODBC Database Database=SAMPLE 30.6.1.1 Konfigurieren der ODBC-Umgebungsvariablen Auf UNIX-Systemen müssen Sie die Umgebungsvariablen festlegen, um den Zugriff auf ODBC-Kernkomponenten zu aktivieren. Die Shell-Scripts is.sh und is.csh, die die erforderlichen Variablen festlegen, befinden sich im Starter Kit-Ausgangsverzeichnis. Sie müssen eines der Scripts ausführen, bevor Sie ODBC verwenden, um sich mit Datenquellen zu verbinden. Sie sollten diese Scripts in das Anmelde-Script des Benutzernamens integrieren, mit dem Sie OLAP Starter Kit ausführen. 30.6.1.2 Editieren der Datei odbc.ini Zum Konfigurieren einer Datenquelle in der Datei odb2.ini müssen Sie einen Namen und eine Beschreibung für die ODBC-Datenquelle hinzufügen und den ODBC-Treiberpfad, -Dateinamen und andere Treibereinstellungen in einem anderen Abschnitt angeben, den Sie für den Datenquellennamen erstellen. Das Installationsprogramm installiert eine Beispieldatei odbc.ini in dem Verzeichnis ISHOME. Die Datei enthält generische ODBC-Verbindungen und Konfigurationsinformationen für unterstützte ODBC-Treiber. Verwenden Sie diese Datei als Ausgangspunkt, um die ODBC-Treiber, die Sie verwenden, den relationalen Datenquellen und dem OLAP-Metadatenkatalog zuzuordnen. Wenn Sie eine andere Datei als odbc.ini verwenden, stellen Sie sicher, dass die Umgebungsvariable ODBCINI auf den Namen der Datei gesetzt ist, die Sie verwenden. 30.6.1.3 Hinzufügen einer Datenquelle zur Datei "odbc.ini" Öffnen Sie auf dem System, das die OLAP Starter Kit-Server ausführt, die Datei odbc.ini, indem Sie einen Texteditor wie z. B. vi verwenden. Suchen Sie den Abschnitt, der mit [ODBC Data Sources] beginnt, und fügen Sie eine neue Zeile mit dem Namen und der Beschreibung der Datenquelle hinzu. Zum Beispiel: meindat=Datenquelle für Analyse. Der Name der Datenquelle sollte mit dem Namen der Datenbank in dem RDBMS übereinstimmen, um Verwechslungen zu vermeiden. Fügen Sie der Datei einen neuen Abschnitt hinzu, indem Sie eine neue Zeile mit dem Namen der neuen Datenquelle in eckigen Klammern erstellen. Zum Beispiel: [meindat]. Fügen Sie in den Zeilen nach dem Datenquellennamen den vollständigen Pfad und Dateinamen des ODBC-Treibers, der für diese Datenquelle erforderlich ist, und alle anderen erforderlichen ODBC-Treiberinformationen hinzu. Verwenden Sie die Beispiele, die in den folgenden Abschnitten gezeigt werden, als Richtlinie für die Zuordnung der Datenquelle in Ihrem Verwaltungssystem für relationale Datenbanken. Stellen Sie sicher, dass die ODBC-Treiberdatei tatsächlich an der Adresse vorhanden ist, die Sie in der Einstellung Driver= angegeben haben. Wenn Sie das Editieren der Datei odbc.ini beendet haben, speichern Sie die Datei, und verlassen Sie den Texteditor. 30.6.1.4 Beispiel für ODBC-Einstellungen für DB2 Das folgende Beispiel zeigt, wie Sie die Datei odbc.ini editieren können, um mit DB2 Universal Database Version 6.1 unter AIX eine Verbindung zu der relationalen Datenquelle db2data herzustellen, wobei Sie einen nativen IBM DB2-ODBC-Treiber verwenden. Verwenden Sie in dem Editor vi den Befehl $ODBCINI, um die Datei odbc.ini zu editieren, und fügen Sie die folgenden Anweisungen ein: [ODBC Data Sources] db2data=DB2 Source Data on AIX ... [db2data] Driver=/home/db2inst1/sqllib/lib/db2.o Description=DB2-Datenquelle - AIX, nativ 30.6.1.5 Beispiel für ODBC-Einstellungen für Oracle Es folgt ein Beispiel, wie Sie die Datei odbc.ini editieren können, um mit Oracle Version 8 (unter der Solaris-Betriebsumgebung) eine Verbindung zu der relationalen Datenquelle oradata herzustellen, wobei Sie einen MERANT-ODBC-Treiber der Version 3.6 verwenden. In diesem Beispiel werden die Parameter anmelde-id und kennwort mit den tatsächlichen Werten überschrieben, die als Benutzername und Kennwort in OLAP Starter Kit verwendet werden. [ODBC Data Sources] oradata=Oracle8 Source Data on Solaris ... [mein-oracle] Driver= /export/home/users/dkendric/is200/odbclib/ARor815.so Description=meine Oracle-Quelle 30.6.2 Konfigurieren des OLAP-Metadatenkatalogs auf UNIX-Systemen Das Konfigurieren eines OLAP-Metadatenkatalogs unter AIX und Solaris ist ähnlich wie das Konfigurieren einer Datenquelle. Fügen Sie der Datei odbc.ini für die OLAP-Metadatenkatalogdatenbank einen Datenquellennamen und einen Abschnitt hinzu, wie in 30.6.1.2, Editieren der Datei odbc.ini beschrieben wird. Es sind keine anderen Änderungen erforderlich. Sie müssen eine OLAP-Metadatenkatalogdatenbank in einem unterstützten Verwaltungssystem für relationale Datenbanken erstellen, bevor Sie sie als ODBC-Datenquelle konfigurieren. Es folgt ein Beispiel, wie Sie die Datei odbc.ini editieren können, um mit DB2 Version 6.1 (in der Solaris-Betriebsumgebung) eine Verbindung zum OLAP-Metadatenkatalog "TBC_MD" herzustellen, wobei Sie einen nativen ODBC-Treiber verwenden: [ODBC Data Sources] ocd6a5a=db2 v6 ... [ocd6a5a] Driver=/home/db2instl/sqllib/lib/db2.0 Description=DB2 30.6.3 Konfigurieren von Datenquellen auf Windows-Systemen Zum Konfigurieren einer relationalen Datenquelle auf Windows NT- oder Windows 2000-Systemen müssen Sie den ODBC-Administrator starten und danach eine Verbindung zu der Datenquelle erstellen, die Sie für die Erstellung der OLAP-Modelle und OLAP-Metamodellstrukturen verwenden wollen. Führen Sie den ODBC-Administrator über die Windows-Systemsteuerung aus. Das folgende Beispiel erstellt eine DB2-Datenquelle. Die Dialogfenster für andere Verwaltungssysteme für relationale Datenbanken können anders aussehen. Führen Sie die folgenden Schritte aus, um eine relationale Datenquelle mit dem ODBC-Administrator zu konfigurieren: Öffnen Sie das Fenster "Systemsteuerung" auf dem Windows-Desktop. Führen Sie in dem Fenster "Systemsteuerung" einen der folgenden Schritte aus: Klicken Sie unter Windows NT das Symbol ODBC doppelt an, um das Dialogfenster "ODBC-Datenquellen-Administrator" zu öffnen. Klicken Sie unter Windows 2000 das Symbol Verwaltung doppelt an, klicken Sie danach das Symbol Datenquellen (ODBC) an, um das Dialogfenster "ODBC-Datenquellenadministrator" zu öffnen. Klicken Sie die Indexzunge System-DSN im Dialogfenster "ODBC-Datenquellenadministrator" an. Klicken Sie Hinzufügen an, um das Dialogfenster "Neue Datenquelle erstellen" zu öffnen. Wählen Sie einen passenden Treiber aus dem Listenfenster mit Treibern im Dialogfenster "Neue Datenquelle erstellen" des ODBC-Administrators aus, wie z. B. IBM DB2 ODBC Driver, und klicken Sie Fertig stellen an, um das Dialogfenster "IBM DB2-ODBC-Treiber - Hinzufügen" zu öffnen. Wählen Sie im Dialogfenster "IBM DB2-ODBC-Treiber - Hinzufügen" aus der Dropdown-Liste Aliasname der Datenbank den Namen der Datenbank für Ihre relationalen Quellendaten (z. B. TBC in derselben Anwendung) aus. Geben Sie eine optionale Beschreibung in das Textfenster Beschreibung ein, die angibt, wie Sie diesen Treiber verwenden, und klicken Sie Hinzufügen an. Geben sie z. B. die folgenden Wörter ein, um die Datenbank "Mein Geschäft" zu beschreiben: Kunden, Produkte, Märkte Sie können Folgendes eingeben, um die Beispielanwendungsdatenbank zu beschreiben: Relationale Beispieldatenquelle Die Beschreibungen helfen dabei, die verfügbaren Datenquellen für Ihre Auswahl anzugeben, wenn Sie eine Verbindung vom OLAP Starter Kit-Desktop herstellen. Klicken Sie OK an, um zum Dialogfenster "ODBC-Datenquellenadministrator" zurückzukehren. Der von Ihnen eingegebene Datenquellenname und der zugeordnete Treiber werden in dem Listenfenster Systemdatenquellen auf der Indexzunge System-DSN angezeigt. Gehen Sie wie folgt vor, um Konfigurationsinformationen zu einer Datenquelle zu editieren: Wählen Sie den Datenquellennamen aus, und klicken Sie Konfigurieren an, um das Dialogfenster "IBM DB2-ODBC-Treiber - Hinzufügen" zu öffnen. Korrigieren Sie alle Informationen, die Sie ändern wollen. Klicken Sie zweimal OK an, um das Fenster zu verlassen. 30.6.4 Konfigurieren des OLAP-Metadatenkatalog auf Windows-Systemen Starten Sie den ODBC-Administrator, und erstellen Sie danach eine Verbindung zu der Datenquelle, die die OLAP-Metadatenkatalogdatenbank enthält, um einen OLAP-Metadatenkatalog unter Windows NT oder Windows 2000 zu konfigurieren. Das folgende Beispiel erstellt eine DB2-Datenquelle. Dialogfenster für andere Verwaltungssysteme für relationale Datenbanken können anders aussehen. Führen Sie die folgenden Schritte aus, um eine Datenquelle für den OLAP-Metadatenkatalog zu erstellen: Öffnen Sie das Fenster "Systemsteuerung" auf dem Desktop. Führen Sie in dem Fenster "Systemsteuerung" einen der folgenden Schritte aus: Klicken Sie unter Windows NT das Symbol ODBC doppelt an, um das Dialogfenster "ODBC-Datenquellen-Administrator" zu öffnen. Klicken Sie unter Windows 2000 das Symbol Verwaltung doppelt an, klicken Sie danach das Symbol Datenquellen (ODBC) an, um das Dialogfenster "ODBC-Datenquellenadministrator" zu öffnen. Klicken Sie die Indexzunge System-DSN im Dialogfenster "ODBC-Datenquellenadministrator" an. Klicken Sie Hinzufügen an, um das Dialogfenster "Neue Datenquelle erstellen" zu öffnen. Wählen Sie einen passenden Treiber aus dem Listenfenster mit Treibern im Dialogfenster "Neue Datenquelle erstellen" des ODBC-Administrators aus, wie z. B. IBM DB2 ODBC Driver, und klicken Sie Fertig stellen an, um das Dialogfenster "IBM DB2-ODBC-Treiber - Hinzufügen" zu öffnen. Wählen Sie im Dialogfenster "ODBC IBM DB2 Driver - Hinzufügen" aus der Dropdown-Liste Aliasname der Datenbank den Namen der Datenbank für Ihren OLAP-Metadatenkatalog (z. B. TBC_MD in derselben Anwendung) aus. Der Name der ausgewählten Datenbank wird automatisch in dem Textfenster Name der Datenquelle angezeigt. Wenn Sie den Namen einer Datenquelle ändern wollen, wählen Sie den Namen aus, der im Textfenster Datenquellenname angezeigt wird, geben Sie einen neuen Namen ein, der angibt, wie Sie diesen Treiber verwenden und klicken Sie Hinzufügen an. Sie können z. B. den folgenden Namen eingeben, um anzugeben, dass Sie den Treiber verwenden, um eine Verbindung zum ersten OLAP-Metadatenkatalog herzustellen: Erster OLAP-Katalog Sie würden den folgenden Namen eingeben, um anzugeben, dass Sie eine Verbindung zu der OLAP-Metadatenkatalogdatenbank der Beispielanwendung herstellen: TBC_MD Geben Sie eine Beschreibung in das Textfenster Beschreibung ein, die angibt, wie Sie diesen Treiber verwenden. Sie können z. B. Folgendes eingeben, um den OLAP-Metadatenkatalog zu beschreiben: Meine ersten Modelle und Metamodellstrukturen Sie können Folgendes eingeben, um die OLAP-Metadatenkatalogdatenbank der Beispielanwendung zu beschreiben: Beispielmodelle und -Metamodellstrukturen Die Beschreibungen helfen Ihnen, den Katalog anzugeben, den Sie auswählen wollen, wenn Sie eine Verbindung vom OLAP Starter Kit-Desktop zum OLAP-Metadatenkatalog herstellen. Klicken Sie OK an, um zum Dialogfenster "ODBC-Datenquellenadministrator" zurückzukehren. Der von Ihnen eingegebene Datenquellenname und der zugeordnete Treiber werden in dem Listenfenster Systemdatenquellen auf der Indexzunge System-DSN angezeigt. Gehen Sie wie folgt vor, um Konfigurationsinformationen zu einer Datenquelle zu editieren: Wählen Sie den Datenquellennamen aus, und klicken Sie Konfigurieren an, um das Dialogfenster "IBM DB2-ODBC-Treiber - Hinzufügen" zu öffnen. Korrigieren Sie alle Informationen, die Sie ändern wollen. Klicken Sie zweimal OK an, um das Fenster zu verlassen. 30.6.5 Vorgehensweise nach dem Konfigurieren einer Datenquelle Nachdem Sie die relationale Datenquelle und den OLAP-Metadatenkatalog konfiguriert haben, können Sie über OLAP Starter Kit eine Verbindung zu ihnen herstellen. Sie können dann OLAP-Modelle und -Metamodellstrukturen erstellen, ändern und speichern. Der SQL-Server-ODBC-Treiber kann während eines Aufrufs einer SQL-Serverdatenbank das Zeitlimit überschreiten. Starten Sie den Aufruf erneut, wenn die Datenbank nicht ausgelastet ist. Erhöhen Sie den Zeitraum für das Zeitlimit, um dieses Problem zu vermeiden. Weitere Informationen zu dem Treiber, den Sie verwenden, finden Sie in der ODBC-Dokumentation. Weitere Informationen zu ODBC-Verbindungsproblemen und Lösungen finden Sie im Handbuch OLAP Integration Server System Administrator's Guide. 30.7 Anmelden über OLAP Starter Kit Desktop Wenn Sie OLAP Starter Kit Desktop für die Erstellung von OLAP-Modellen und -Metamodellstrukturen verwenden wollen, müssen Sie von der Client-Software eine Verbindung zu zwei Serverkomponenten herstellen: DB2 OLAP Integration Server und DB2 OLAP Server. Im Anmeldedialog werden Sie nach den Informationen gefragt, die Desktop für die Herstellung von Verbindungen zu diesen beiden Servern benötigt. Geben Sie auf der linken Seite des Dialogs Informationen zu DB2 OLAP Integration Server ein. Auf der rechten Seite geben Sie Informationen zu DB2 OLAP Server ein. Gehen Sie wie folgt vor, um eine Verbindung zu DB2 OLAP Integration Server herzustellen: Server: Geben Sie den Host-Namen oder die IP-Adresse Ihres Integration Server ein. Wenn der Integration Server auf derselben Workstation installiert ist wie Desktop, sind typische Werte "localhost" oder "127.0.0.1". OLAP Metadata Catalog: Wenn Sie eine Verbindung zu OLAP Integration Server herstellen, müssen Sie auch einen Metadatenkatalog angeben. OLAP Integration Server speichert Informationen zu den von Ihnen erstellten OLAP-Modellen und -Metamodellstrukturen in einer relationalen Datenbank, dem so genannten Metadatenkatalog. Diese relationale Datenbank muss für ODBC registriert sein. Die Katalogdatenbank enthält eine spezielle Gruppe relationaler Tabellen, die OLAP Integration Server erkennt. Im Anmeldedialog können Sie einen Integration Server angeben und dann das Feld OLAP Metadata Catalog erweitern, um eine Liste der ODBC-Datenquellennamen anzuzeigen, die OLAP Integration Server bekannt sind. Wählen Sie eine ODBC-Datenbank aus, die die Metadaten-Katalogtabellen enthält. User Name and Password: OLAP Integration Server stellt mit dem in diesem Feld angegebenen Benutzernamen und Kennwort eine Verbindung zum Metadatenkatalog her. Dies ist ein Anmeldekonto auf dem Server (nicht auf dem Client, sofern Server und Client nicht auf derselben Maschine aktiv sind). Der Benutzername muss der Benutzer sein, der den OLAP-Metadatenkatalog erstellt hat. Andernfalls kann OLAP Integration Server die relationalen Tabellen in der Katalogdatenbank nicht finden, da die Tabellenschemanamen anders sind. Die Informationen zu DB2 OLAP Server sind optional. Die Eingabefelder auf der rechten Seite des Anmeldedialogs können deshalb leer bleiben. Einige Operationen in Desktop und in Administration Manager setzen eine Verbindung zu DB2 OLAP Server voraus. Wenn Sie diese Felder leer lassen, zeigt Desktop den Anmeldedialog erneut an, wenn Integration Server eine Verbindung zu DB2 OLAP Server herstellen muss, um eine angeforderte Operation abzuschließen. Es empfiehlt sich daher, die Felder zu DB2 OLAP Server im Anmeldedialog immer auszufüllen. Gehen Sie wie folgt vor, um eine Verbindung zu DB2 OLAP Server herzustellen: Server: Geben Sie den Host-Namen oder die IP-Adresse Ihres DB2 OLAP Server ein. Wenn Sie OLAP Starter Kit ausführen, entspricht OLAP Server dem Integration Server. Wenn Integration Server und OLAP Server auf unterschiedlichen Hosts installiert sind, geben Sie den Host-Namen oder eine IP-Adresse ein, die auf OLAP Integration Server definiert ist. User Name and Password: OLAP Integration Server stellt mit dem in diesem Feld angegebenen Benutzernamen und Kennwort eine Verbindung zu DB2 OLAP Server her. Benutzername und Kennwort müssen bereits in DB2 OLAP Server definiert sein. OLAP Server verwaltet seine eigenen Benutzernamen und Kennwörter separat vom Betriebssystem des Hosts. 30.7.1 Beispiel für Starter Kit-Anmeldung Im folgenden Beispiel wird davon ausgegangen, dass Sie bei der Installation von OLAP Starter Kit die OLAP-Beispieldatenbank erstellt, db2admin als Administrator-Benutzer-ID und kennwort als Administratorkennwort ausgewählt haben. Für OLAP Integration Server: Der Server heißt localhost, der OLAP-Metadatenkatalog ist TBC_MD, der Benutzername lautet db2admin und das Kennwort ist kennwort. Für DB2 OLAP Server: Der Server heißt localhost und der Benutzername lautet db2admin. 30.8 Manuelles Erstellen und Konfigurieren der Beispieldatenbanken für OLAP Starter Kit Die Beispieldatenbanken werden bei der Installation von OLAP Starter Kit automatisch erstellt. Die folgenden Anweisungen beschreiben die manuelle Einrichtung der Katalog- und Beispieldatenbanken, sofern dies notwendig sein sollte. Öffnen Sie in Windows die Befehlszentrale mit Start-->Programme-->DB2 für Windows NT-->Befehlsfenster. Erstellen Sie die Produktionskatalogdatenbank: Geben Sie db2 create db OLAP_CAT ein. Geben Sie db2 connect to OLAP_CAT ein. Erstellen Sie Tabellen in der Datenbank: Wechseln Sie zu \SQLLIB\IS\ocscript\ocdb2.sql. Geben Sie db2 -tf ocdb2.sql ein. Erstellen Sie die Beispielquellendatenbank: Geben Sie db2 connect reset ein. Geben Sie db2 create db TBC ein. Geben Sie db2 connect to TBC ein. Erstellen Sie Tabellen in der Datenbank: Wechseln Sie in das Verzeichnis \SQLLIB\IS\samples\. Kopieren Sie tbcdb2.sql in \SQLLIB\samples\db2sampl\tbc. Kopieren Sie lddb2.sql in \SQLLIB\samples\db2sampl\tbc. Wechseln Sie in das Verzeichnis \SQLLIB\samples\db2sampl\tbc. Geben Sie db2 -tf tbcdb2.sql ein. Geben Sie db2 - vf lddb2.sql ein, um die Beispielquelldaten in die Tabellen zu laden. Erstellen Sie die Beispielkatalogdatenbank: Geben Sie db2 connect reset ein. Geben Sie db2 create db TBC_MD ein. Geben Sie db2 connect to TBC_MD ein. Erstellen Sie Tabellen in der Datenbank: Wechseln Sie in das Verzeichnis \SQLLIB\IS\samples\tbc_md. Kopieren Sie ocdb2.sql in \SQLLIB\samples\db2sampl\tbcmd. Kopieren Sie lcdb2.sql in \SQLLIB\samples\db2sampl\tbcmd. Wechseln Sie in das Verzeichnis \SQLLIB\samples\db2sampl\tbcmd. Geben Sie db2 -tf ocdb2.sql ein. Geben Sie db2 -vf lcdb2.sql ein, um die Beispielmetadaten in die Tabellen zu laden. Konfigurieren Sie ODBC für TBC_MD, TBC und OLAP_CAT: Öffnen Sie die Systemsteuerung von Windows NT mit Start-->Einstellungen-->Systemsteuerung. Wählen Sie ODBC (oder ODBC-Datenquellen) aus der Liste aus. Wählen Sie die Indexzunge System-DSN aus. Klicken Sie Hinzufügen an. Das Fenster Neue Datenquelle erstellen wird geöffnet. Wählen Sie IBMDB2ODBC Driver aus der Liste aus. Klicken Sie Fertig stellen an. Das Fenster IBM DB2-ODBC-Treiber - Hinzufügen wird geöffnet. Geben Sie den Namen der Datenquelle (OLAP_CAT) in das Feld Name der Datenquelle ein. Geben Sie den Aliasnamen in das Feld Aliasname der Datenbank ein oder klicken Sie den Pfeil nach unten an und wählen Sie OLAP_CAT aus der Liste aus. Klicken Sie OK an. Wiederholen Sie diese Schritte für die Datenbanken TBC_MD und TBC. 30.9 Migrieren von Anwendungen nach OLAP Starter Kit Version 7.2 Das Installationsprogramm installiert die Beispielanwendungen, -datenbanken und -datendateien von OLAP Starter Kit nicht erneut. Ihre vorhandenen Anwendungen und Datenbanken werden in keiner Weise beeinträchtigt. Es ist trotzdem immer empfehlenswert, Ihre Anwendungen und Datenbanken vor einer Installation zu sichern. Ihre Anwendungen werden automatisch nach Version 7.2 migriert, wenn Sie sie öffnen. 30.10 Bekannte Probleme und Einschränkungen In diesem Abschnitt werden bekannte Einschränkungen für DB2 OLAP Starter Kit aufgelistet. Kompatibilität von Informix RDBMS mit Merant-Treibern für Windows-Plattformen Damit die Merant-Treiber für Windows-Plattformen mit Informix RDBMS funktionieren, müssen die folgenden zwei Einträge zu der Anweisung PATH hinzugefügt werden: C:\Informix C:\Informix\bin Beide Einträge müssen sich am Anfang von PATH befinden. Mögliche Inkonsistenz zwischen Dimensionen in OLAP-Modellen und zugeordneten Metamodellstrukturen Unter bestimmten Bedingungen können Sie in einer Metamodellstruktur eine Dimension erstellen, die keine entsprechende Dimension in dem OLAP-Modell hat. Dies kann in dem folgenden Szenario passieren: Erstellen Sie ein neues OLAP-Modell, und speichern Sie es. Erstellen Sie eine Modellstruktur, die auf dem Modell basiert, speichern Sie die Modellstruktur aber nicht. Kehren Sie zu dem OLAP-Modell zurück, und löschen Sie eine Dimension, auf der eine der Dimensionen der Metamodellstruktur basiert. Kehren Sie zu der Metamodellstruktur zurück, speichern und schließen Sie sie, und öffnen Sie sie erneut. Die Metamodellstruktur enthält eine Dimension, die keine entsprechende Dimension in dem OLAP-Modell hat. OLAP Starter Kit kann nicht zwischen einer inkonsistenten Dimension, die auf diese Weise erstellt worden ist, und einer benutzerdefinierten Dimension in einer Metamodellstruktur unterscheiden. Deshalb wird die inkonsistente Dimension in der Metamodellstruktur angezeigt, aber die Metamodellstruktur behandelt sie als benutzerdefinierte Dimension, weil keine entsprechende Dimension in dem OLAP-Modell vorhanden ist. Auf Windows 2000-Plattformen verursacht die Einstellung der Umgebungsvariable für TMP Fehlschläge beim Laden von Elementen und Daten Wegen unterschiedlichen Einstellungen für die Standardsystem- und Benutzerumgebungsvariable TMP zwischen Windows 2000 und Windows NT schlagen Ladevorgänge von Elementen und Daten fehl, wenn OLAP Starter Kit auf Windows 2000-Plattformen ausgeführt wird. Die resultierende Fehlernachricht teilt den Benutzern mit, dass die temporäre Datei nicht erstellt werden konnte. Sie können diese Einschränkung unter Windows 2000 umgehen, indem Sie die folgenden Schritte ausführen: Erstellen Sie ein Verzeichnis mit dem Namen C:\TEMP Setzen Sie die Umgebungsvariable für das System und den Benutzer auf TMP=C:\TEMP Die Installation von ODBC ersetzt vorhandene Merant-Treiber nicht Die vorhandenen Merant 3.6-ODBC-Treiber werden mit dieser Installation nicht aktualisiert. Wenn Sie von OLAP Starter Kit Version 7.1, FixPak 2 oder früher aktualisieren, sollten Sie weiterhin die vorher installierten ODBC-Treiber verwenden. Verwenden von Merant-Informix-ODBC-Triebern auf UNIX-Plattformen Sie müssen einen der folgenden Schritte ausführen, um die Merant-Informix-ODBC-Treiber auf UNIX-Plattformen zu verwenden: Bevor Sie OLAP Starter Kit starten, setzen Sie die Umgebungsvariable LANG auf "en_US". Geben Sie für Korn-Shell z. B. Folgendes ein: export LANG='en_US' Setzen Sie diese Variable jedesmal, wenn Sie OLAP Starter Kit starten. Wenn Ihre Umgebungsvariable LANG bereits auf einen anderen Wert gesetzt ist, erstellen Sie nach der Installation die folgende symbolische Verbindung: ln -s $ISHOME/locale/en_US $ISHOME/locale/$LANG Mischen von Servicestufen von OLAP-Clients und -Servern IBM empfiehlt, dass Sie sowohl die Client- wie auch die Serverkomponenten von DB2 OLAP Starter Kit auf derselben Version und FixPak-Stufe halten. In einigen Situation können Sie allerdings unterschiedliche Servicestufen von Client- und Serverkomponenten mischen: Verwenden von Clients und Servern mit unterschiedlichen Servicestufen innerhalb einer Version IBM unterstützt die Verwendung von neueren Clients mit älteren Servern nicht und rät davon ab. Sie könnten allerdings ältere Clients mit neueren Servern verwenden, obwohl IBM das nicht unterstützt. Sie könnten einige Probleme bekommen. Zum Beispiel: Nachrichten vom Server könnten fehlerhaft sein. Sie können dieses Problem umgehen, indem Sie die Datei message.MDB auf dem Client aktualisieren, damit sie mit der Stufe des Servers übereinstimmt. Neue Serverfunktionen arbeiten nicht. Der Client, der Server oder beide könnten fehlschlagen, wenn Sie versuchen, eine neue Funktion zu verwenden. Der Client könnte sich nicht richtig mit dem Server verbinden. Verwenden von mehreren Servern mit einem einzelnen Client innerhalb einer Version Wenn Sie einen Client mit mehreren OLAP-Servern auf unterschiedlichen Maschinen oder Betriebssystemen verbinden müssen, empfiehlt IBM, dass alle dieselbe Version und Servicestufe haben sollten. Ihr Client sollte mindestens dieselbe Stufe wie die niedrigste Serverstufe haben. Wenn Sie auf Probleme stoßen, müssen Sie möglicherweise unterschiedliche Client-Maschinen verwenden, um mit dem jeweiligen Host übereinzustimmen oder alle Clients und Server auf dieselbe Servicestufe aktualisieren. Mischen von Clients und Servern von unterschiedlichen Versionen IBM unterstützt die Verwendung von OLAP Starter Kit-Clients und -Servern von Version 7.1 mit Clients und Servern von Version 7.2 nicht. Wenn IBM OLAP-Produkte auf eine neueren Versionsstand aktualisiert werden, gibt es häufig Netzwerkaktualisierungen und Änderungen das Datenformats, die erfordern, dass Client und Server denselben Versionsstand haben. Mischen von IBM-Produkten (DB2 OLAP Starter Kit) mit Hyperion-Produkten (Hyperion Essbase und Hyperion Integration Server) IBM unterstützt das Mischen von OLAP Starter Kit-Clients und -Servern von IBM mit Clients und Servern von Hyperion Solutions nicht. Es gibt einige unterschiedliche Funktionen , die Probleme verursachen könnten, obwohl das Mischen dieser Komponenten in einigen Situationen funktionieren könnte. 30.11 Fehlende EQD-Dateien des OLAP-Tabellenkalkulations-Add-In Im DB2 OLAP Starter Kit verfügt das Tabellenkalkulations-Add-In über eine Komponente namens Query Designer (EQD). Das Onlinehilfemenü für EQD enthält einen Druckknopf für das Lernprogramm, der nichts anzeigt. Das Material, das in den EQD-Lernprogrammen angezeigt werden sollte, ist ein Teil von Kapitel 2 aus dem OLAP Tabellenkalkulations-Add-In Benutzerhandbuch für Excel und dem OLAP Tabellenkalkulations-Add-In Benutzerhandbuch für Lotus 1-2-3. Alle Informationen im EQD-Lernprogramm sind als HTML-Versionen dieser Handbücher in Information - Unterstützung und als PDF-Versionen verfügbar. Information Catalog Manager Systemverwaltung 31.1 Initialisierungsprogramm von Information Catalog Manager 31.1.1 Das Initialisierungsdienstprogramm von Information Catalog Manager ermöglicht Ihnen jetzt das Anhängen einer SQL-Anweisung an das Ende der Anweisung CREATE TABLE mit Hilfe des folgenden Befehls: CREATEIC \DBTYPE dbart \DGNAME icm-name \USERID benutzer-id \PASSWORD kennwort \KA1 benutzer-id \TABOPT "verzeichnis:\tabopt.file" Sie können das Schlüsselwort TABOPT im Dienstprogramm CREATEIC von dem Verzeichnis aus angeben, in dem DB2 installiert ist. Der Wert nach dem Schlüsselwort TABOPT ist der Dateiname tabopt.file mit vollständigem Pfad. Wenn der Verzeichnisname Leerzeichen enthält, schließen Sie den Namen in Anführungszeichen ein. Der Inhalt der Datei tabopt.file muss Informationen enthalten, die an die Anweisung CREATE TABLE angehängt werden. Sie können beliebige der unten aufgeführten SQL-Anweisungen zum Schreiben in die Datei tabopt.file verwenden. Das ICM-Dienstprogramm liest diese Datei und hängt sie dann an die Anweisung CREATE TABLE an. Tabelle 9. SQL-Anweisungen IN MYTABLESPACE Erstellt eine Tabelle mit Daten in MYTABLESPACE DATA CAPTURE CHANGES Erstellt eine Tabelle und protokolliert SQL-Änderungen in einem erweiterten Format IN ACCOUNTING INDEX IN ACCOUNT_IDX Erstellt eine Tabelle mit Daten in ACCOUNTING und Index in ACCOUNT_IDX Die Maximalgröße der Nachrichtenkomponente beträgt 1000 Single-Byte-Zeichen. Diese neue Funktionalität ist nur bei Windows- und UNIX-Systemen verfügbar. 31.1.2 Lizenzfragen Es kann vorkommen, dass die folgende Nachricht angezeigt wird: FLG0083E: Sie haben keine gültige Lizenz für das Dienstprogramm zur Initialisierung von IBM Information Catalog Manager. Wenden Sie sich an Ihren Softwarehändler vor Ort oder an einen IBM Vertriebsbeauftragten. Sie müssen DB2 Warehouse Manager oder IBM DB2 OLAP Server erwerben und Information Catalog Manager installieren, das das Informationskatalog-Initialisierungsprogramm enthält. 31.1.3 Installationsfragen Wenn Sie DB2 Warehouse Manager oder IBM DB2 OLAP Server und danach eine andere Komponente von Information Catalog Manager Administrator (über die CD-ROM von DB2 Universal Database) auf derselben Workstation installiert haben, wurde das Informationskatalog-Initialisierungsprogramm möglicherweise überschrieben. Suchen Sie in diesem Fall im Verzeichnis \sqllib\bin die Dateien createic.bak und flgnmwcr.bak, und benennen Sie sie in createic.exe bzw. flgnmwcr.exe um. Wenn Sie weitere Information Catalog Manager-Komponenten von DB2 Universal Database aus installieren, müssen sich die Komponenten auf einer anderen Workstation befinden als der, auf der DB2 Warehouse Manager installiert ist. Weitere Informationen finden Sie in Kapitel 3 des DB2-Handbuchs Data Warehouse Manager Installation. 31.2 Verbesserungen an Information Catalog Manager Information Catalog Manager bietet die folgenden funktionalen Erweiterungen: ICM unterstützt jetzt den Import von ETI-Filterinformationen für die Quellen-/Zieldatenbank, -tabelle oder -spalte. Beim Registrieren im Warehouse werden neue ETI-Konvertierungsdaten für den ICM-Objekttyp zur Speicherung der Filterinformationen verwendet. Diese Objekte werden dann mit der Quellen-/Zieldatenbank, -tabelle oder -spalte verknüpft, für die sie definiert wurden. ICM kann durch die Registrierung unterschiedlicher ETI-Konvertierungen im selben ICM-Katalog eine bestimmte Quellen-/Zieldatenbank, -tabelle oder -spalte mit mehreren ETI-Konvertierungsdatenobjekten zu verknüpfen. Dieselbe Möglichkeit gibt es für Umsetzungen, wobei eine bestimmte Zielspalte durch die Registrierung unterschiedlicher ETI-Konvertierungen im selben ICM-Katalog jetzt mehrere Umsetzungen enthalten kann. Dazu nimmt ICM beim Import einer ETI*Extract-Zuordnung Änderungen am Umsetzungsschlüssel vor. Wenn Sie diese Merkmale aktivieren wollen, verwenden Sie ETI*Extract 4.2.1 mit MetaScheduler 4.1.0 für die Registrierung bei Data Warehouse Manager. Weitere Informationen zur Aktivierung dieser Funktionen finden Sie im Abschnitt "Hints and Tips" für DB2 Warehouse Manager unter http://www.ibm.com/software/data/db2/datawarehouse/support.html. Suchen Sie nach den Begriffen "ETI" oder "Application Data". 31.3 Inkompatibilität zwischen Information Catalog Manager und Sybase in der Windows-Umgebung Wird Information Catalog Manager (ICM) Version 7 auf derselben Windows NT- oder Windows 2000-Maschine installiert wie Sybase Open Client, tritt ein Fehler auf, und die Sybase-Dienstprogramme funktionieren nicht mehr. Eine der folgenden ähnliche Fehlernachricht wird angezeigt: Fail to initialize LIBTCL.DLL. Please make sure the SYBASE environment variable is set correctly. Vermeiden Sie dieses Szenario, indem Sie den Umgebungsparameter LC_ALL aus den Windows-Umgebungsparametern entfernen. LC_ALL ist ein Parameter für Ländereinstellungskategorien. Ländereinstellungskategorien sind Konstanten, mit denen die Lokalisierungsroutinen angeben, welcher Abschnitt der Ländereinstellungsinformationen für ein Programm zu verwenden ist. Die Ländereinstellung bezieht sich auf die Lokalität (Land/Gebiet), für die bestimmte Aspekte Ihres Programms angepasst werden können. Zu den Ländereinstellungen gehört z. B. das Datumsformat oder das Anzeigeformat für Währungen. LC_ALL betrifft das gesamte ländereinstellungsspezifische Verhalten (alle Kategorien). Wenn Sie den Umgebungsparameter LC_ALL entfernen, so dass ICM unter Windows NT mit Sybase koexistieren kann, funktionieren folgende Funktionen nicht mehr: Information Catalog-Benutzer Information Catalog-Administrator Information Catalog-Manager Das Entfernen des Parameters LC_ALL wirkt sich nur auf ICM aus. 31.4 Zugreifen auf Informationskataloge von DB2 Version 5 mit Information Catalog Manager von DB2 Version 7 Die Subkomponenten von Information Catalog Manager von DB2 Version 7 werden bei der Installation von DB2 Version 7 so konfiguriert, dass der Zugriff auf Informationskataloge unterstützt wird, die in Datenbanken von DB2 Version 6 und Version 7 gespeichert sind. Sie können die Konfiguration der Subkomponenten so modifizieren, dass Sie auch auf Informationskataloge in Datenbanken von DB2 Version 5 zugreifen können. Die Subkomponenten von Information Catalog Manager von DB2 Version 7 bieten keine Unterstützung für den Zugriff auf Daten von DB2 Version 2 oder sonstigen früheren Versionen. Gehen Sie wie folgt vor, um "Informationskatalog - Administrator", "Informationskatalog - Benutzer" und das Dienstprogramm zur Initialisierung des Informationskatalogs einzurichten, damit Sie auf Informationskataloge zugreifen können, die in Datenbanken von DB2 Version 5 gespeichert sind: Installieren Sie DB2 Connect Enterprise Edition Version 6 auf einer Workstation, auf welcher DB2 Version 7 Information Catalog Manager nicht installiert ist. DB2 Connect Enterprise Edition ist im Lieferumfang von DB2 Universal Database Enterprise Edition und DB2 Universal Database Enterprise - Extended Edition enthalten. Wenn Version 6 eines dieser beiden Produkte installiert ist, brauchen Sie DB2 Connect nicht separat zu installieren. Einschränkung: Sie können auf einer Windows NT- oder OS/2-Workstation nicht mehrere DB2-Versionen installieren. Sie können DB2 Connect auf einer anderen Windows NT-, OS/2- oder UNIX-Workstation installieren. Konfigurieren Sie Information Catalog Manager und DB2 Connect Version 6 für den Zugriff auf Daten von DB2 Version 5. Weitere Informationen finden Sie im DB2 Connect Benutzerhandbuch. Die folgenden Schritte geben eine Übersicht über die erforderlichen Schritte: Verwenden Sie auf einem System mit DB2 Version 5 den DB2- Befehlszeilenprozessor, um die Datenbank der Version 5 zu katalogisieren, auf die Information Catalog Manager zugreifen soll. Katalogisieren Sie auf dem DB2 Connect-System folgende Elemente mit dem DB2-Befehlszeilenprozessor: Den TCP/IP-Knoten für das System mit DB2 Version 5 Die Datenbank für das System mit DB2 Version 5 Den DCS-Eintrag für das System mit DB2 Version 5 Katalogisieren Sie auf der Information Catalog Manager-Workstation folgende Elemente mit dem DB2-Befehlszeilenprozessor: Den TCP/IP-Knoten für das DB2 Connect-System Die Datenbank für das DB2 Connect-System Informationen zur Katalogisierung von Datenbanken finden Sie in DB2 Universal Database Installation und Konfiguration Ergänzung. Binden Sie im Warehouse von Information Catalog Manager das DB2-CLI-Paket an alle Datenbanken, auf die mit DB2 Connect zugegriffen werden soll. Die folgenden DB2-Befehle sind Beispiele für das Binden von v5database, einer gedachten Datenbank von DB2 Version 5. Setzen Sie die folgenden Befehle mit dem DB2-Befehlszeilenprozessor ab. db2cli.lst und db2ajgrt befinden sich im Verzeichnis \sqllib\bnd. db2 connect to v5database user benutzer-id using kennwort db2 bind db2ajgrt.bnd db2 bind @db2cli.lst blocking all grant public Dabei gilt: benutzer-id ist die Benutzer-ID für v5database und kennwort ist das Kennwort für die Benutzer-ID. Beim Binden von db2cli.list an die Datenbank von DB2 Version 5 tritt ein Fehler auf. Dies liegt daran, dass große Objekte (LOBs) in dieser Konfiguration nicht unterstützt werden. Dieser Fehler hat keine Auswirkungen auf den Zugriff des Warehouse-Agenten auf die Datenbank von DB2 Version. Für den Zugriff auf Daten von DB2 Version 5 mit DB2 Connect ist das FixPak 14 für DB2 Universal Database Version 5 erforderlich, das seit Juni 2000 verfügbar ist. Informationen dazu finden Sie unter der APAR-Nummer JR14507 in diesem FixPak. 31.5 Einrichten eines Informationskatalogs Schritt 2 im ersten Abschnitt von Kapitel 1, "Informationskatalog konfigurieren", lautet: Wenn Sie DB2 Warehouse Manager oder DB2 OLAP Server installieren, wird ein Standardinformationskatalog in DB2 Universal Database für Windows NT erstellt. Diese Angabe ist nicht richtig. Sie müssen einen neuen Informationskatalog definieren. Weitere Informationen finden Sie im Abschnitt "Informationskatalog erstellen". 31.6 Austauschen von Metadaten mit anderen Produkten In Kapitel 6, "Metadaten mit anderen Produkten austauschen", im Abschnitt "OLAP-Objekte zur Veröffentlichung angeben" gibt es eine Anweisung im zweiten Abschnitt, die folgendermaßen lautet: Bei der Veröffentlichung von DB2 OLAP Integration Server-Metadaten wird eine Beziehung in Form einer Verknüpfung zwischen einer Objektart mit "Dimensionen innerhalb einer mehrdimensionalen Datenbank" im Informationskatalog und einem Tabellenobjekt in OLAP Integration Server erstellt. Dieser Text muss wie folgt lauten: Bei der Veröffentlichung von DB2 OLAP Integration Server-Metadaten wird eine Beziehung in Form einer Verknüpfung zwischen einer Objektart mit "Dimensionen innerhalb eines mehrdimensionalen Datenbankobjekts und eines Tabellenobjekts erstellt. Dieser Abschnitt erscheint auch in Anhang C, "Zuordnung von Metadaten", im Abschnitt "Zuordnung von Metadaten zwischen Information Catalog Manager und einem OLAP-Server". 31.7 Austauschen von Metadaten mit dem Befehl "flgnxoln" In Kapitel 6, "Metadaten mit anderen Produkten austauschen" gibt es einen Abschnitt "OLAP-Objekte zur Veröffentlichung angeben". Am Ende dieses Abschnitts ist ein Beispiel dazu, wie Sie mit dem Befehl flgnxoln OLAP Server-Metadaten in einem Informationskatalog veröffentlichen. In diesem Beispiel wird fälschlicherweise das Verzeichnis x:\Programmdateien\sqllib\logging für die Dateien db2olap.ctl und db2olap.ff angezeigt. Der Verzeichnisname muss x:\Programmdateien\sqllib\exchange lauten, wie weiter oben im Abschnitt zum Editieren der Steuerdatei beschrieben. 31.8 Austauschen von Metadaten mit dem Befehl "MDISDGC" Kapitel 6, "Metadaten mit anderen Produkten austauschen": "MDIS-konforme Metadaten in eine Befehlssprachendatei umsetzen". Sie können den Befehl MDISDGC nicht über die MS-DOS-Eingabeaufforderung absetzen. Sie müssen den Befehl MDISDGC über ein DB2-Befehlsfenster absetzen. Im ersten Satz des Abschnitts "Befehlssprachendatei in MDIS-konforme Metadaten umsetzen" wird auch gesagt, dass Sie den Befehl DGMDISC über die MS-DOS-Eingabeaufforderung absetzen müssen. Sie müssen den Befehl DGMDISC über ein DB2-Befehlsfenster absetzen. 31.9 Aufrufen von Programmen Einige Beispiele im Handbuch Information Catalog Manager Systemverwaltung zeigen Befehle, die den Verzeichnisnamen Programmdateien enthalten. Wenn Sie ein Programm aufrufen, das Programmdateien als Teil seines Pfadnamens enthält, müssen Sie den Programmaufruf in doppelte Anführungszeichen einschließen. Anhang B, "Vordefinierte Objektarten von Information Catalog Manager", z. B. enthält ein Beispiel im Abschnitt "Informationskatalog mit vordefinierten Objektarten initialisieren". Wenn Sie das Beispiel in diesem Abschnitt verwenden, erhalten Sie einen Fehler, wenn Sie es von einer DOS-Eingabeaufforderung ausführen. Das folgende Beispiel ist korrekt: "X:Programmdateien\SQLLIB\SAMPLES\SAMPDATA\DGWDEMO" /T benutzer-id kennwort icm-name Information Catalog Manager Programming Guide and Reference 32.1 Information Catalog Manager Reason Codes In Appendix D: Information Catalog Manager reason codes, some text might be truncated at the far right column for the following reason codes: 31014, 32727, 32728, 32729, 32730, 32735, 32736, 32737, 33000, 37507, 37511, and 39206. If the text is truncated, please see the HTML version of the book to view the complete column. Information Catalog Manager Benutzerhandbuch In Kapitel 2 gibt es einen Abschnitt "Registrieren eines Serverknotens und eines fernen Informationskatalogs". In diesem Abschnitt werden Schritte aufgelistet, die Sie von der DB2-Steuerzentrale aus ausführen können, bevor Sie einen fernen Informationskatalog mit Information Catalog Manager registrieren. Im letzten Absatz des Abschnitts heißt es, dass Sie nach der Durchführung einer Reihe von Schritten von der DB2-Steuerzentrale aus (Hinzufügen eines Systems, Hinzufügen eines Exemplars und Hinzufügen einer Datenbank) die Steuerzentrale schließen müssen, bevor Sie Information Catalog Manager öffnen. Diese Angabe ist nicht richtig. Es ist nicht notwendig, die Steuerzentrale vor dem Öffnen von Information Catalog Manager zu schließen. Dieselbe Korrektur gilt auch für den Abschnitt der Onlinehilfe zum Registrieren eines Serverknotens und eines fernen Informationskatalogs sowie für die Onlinehilfe für das Fenster zum Registrieren des Serverknotens und des Informationskatalogs. Information Catalog Manager: Onlinenachrichten 34.1 Korrekturen an FLG-Nachrichten 34.1.1 Nachricht FLG0260E Der zweite Satz in der Erläuterung der Nachricht muss wie folgt lauten: Der Fehler hat eine ROLLBACK-Operation für den Informationskatalog ausgelöst, bei dem der Fehler aufgetreten ist. Der Informationskatalog hat keinen stabilen Status, es wurden aber keine Änderungen vorgenommen. 34.1.2 Nachricht FLG0051E Der zweite Listenpunkt in der Erläuterung der Nachricht muss wie folgt lauten: Der Informationskatalog enthält zu viele Objekte oder Objektarten. Die Antwort des Administrators muss wie folgt lauten: Löschen Sie einige Objekte oder Objektarten aus dem aktuellen Informationskatalog mit Hilfe der Importfunktion. 34.1.3 Nachricht FLG0003E Die Erläuterung der Nachricht muss wie folgt lauten: Der Informationskatalog muss registriert werden, bevor Sie ihn verwenden können. Dieser Informationskatalog wurde möglicherweise nicht korrekt registriert. 34.1.4 Nachricht FLG0372E Der erste Satz in der Erläuterung der Nachricht sollte wie folgt lauten: Der Wert ATTACHMENT-IND wurde bei einem Objekt ignoriert, da es sich um ein Attachment-Objekt handelt. 34.1.5 Nachricht FLG0615E Der zweite Satz der Nachricht muss wie folgt lauten: Bei Information Catalog Manager ist ein unerwarteter Datenbankfehler aufgetreten, oder die Bindedatei kann im aktuellen Verzeichnis oder Pfad nicht gefunden werden. Information Catalog Manager: Onlinehilfefunktion Fenster "Informationskatalog": In der Onlinehilfefunktion wird bei der Option "Öffnen" im Menü "Ausgewählt" fälschlicherweise der Text "Öffnet das ausgewählte Objekt" angezeigt. Der Text muss lauten: "Öffnet das Fenster 'Suche definieren'". 35.1 Information Catalog Manager für das Web Wenn Sie einen Informationskatalog auf einem DB2 UDB für OS/390-System verwenden, ist die Suchfunktion ohne Beachtung von Groß-/Kleinschreibung nicht verfügbar. Dies gilt gleichermaßen für eine einfache und für eine erweiterte Suche. In der Onlinehilfefunktion wird nicht erklärt, dass bei allen Suchvorgängen in einem Informationskatalog von DB2 UDB für OS/390 für eine einfache Suche die Groß-/Kleinschreibung beachtet werden muss. Außerdem sind alle Objekte einer Gruppierungskategorie erweiterbar, selbst wenn keine zugrundeliegenden Objekte vorhanden ist. DB2 Warehouse Manager Installation 36.1 Aktualisierung von "DB2 Warehouse Manager Installation" verfügbar Das Handbuch DB2 Warehouse Manager Installation wurde aktualisiert, und die aktuelle PDF-Version kann online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. Die gesamte aktualisierte Dokumentation ist auch auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Die vorliegenden Informationen gelten zusätzlich zum aktualisierten Handbuch. 36.2 Softwarevoraussetzungen für Warehouse-Umsetzungsprogramme Java Developer's Kit (JDK) Version 1.1.8 oder später muss auf dem Datenbanksystem installiert sein, in dem Sie die Warehouse-Umsetzungsprogramme verwenden wollen. 36.3 Connector für SAP R/3 Bei der Zuordnung von Spalten aus Feldern eines SAP R/3-Geschäftsobjekts könnten einige der generierten Spaltennamen länger als 30 Zeichen sein. In diesem Fall gibt der generierte Spaltenname nur die ersten 30 Zeichen des SAP-Feldnamens wieder. Wenn der generierte Name nicht Ihren Wünschen entspricht, können Sie ihn im Notizbuch "Merkmale" für die Tabelle ändern. 36.3.1 Vorbedingungen zur Installation Wenn ein Wert in einem Bestimmungsfeld einer SAP-Quellenseite angegeben ist, setzen Sie die Umgebungsvariable RFC_INI. Geben Sie z. B. RFC_INI=c:\rfcapl.ini. an. Nachdem Sie diese Variable festgelegt haben, müssen Sie einen Warmstart der Maschine durchführen. 36.4 Connector für das Web Wenn bei der Ausführung des Connector für das Web Probleme auftreten, fordert der IBM Kundendienst möglicherweise an, dass Sie einen Trace für den Connector einsenden. Setzen Sie den Agenten-Trace in der Warehouse-Zentrale auf eine Stufe größer als 0, um den Trace für den Connector für das Web zu aktivieren. Die Trace-Datei hat den Namen WSApid.log. Dabei gilt Folgendes: pid ist die Windows-Prozess-ID für den Agenten. Die Trace-Datei wird in dem Verzeichnis \sqllib\logging erstellt. 36.4.1 Vorbedingungen zur Installation Installieren Sie die Java-Laufzeitumgebung (run-time environment, JRE) oder die virtuelle Java-Maschine (Java virtual machine, JVM) Version 1.2.2 oder später, und legen Sie sie als Standardeinstellung fest. Fügen Sie Ihrer Systemvariable PATH den Pfad für Version 1.2.2 von JRE hinzu (z. B. C:\JDKs\IBM\java12\bin;), um eine Version von JRE als Ihre Standardeinstellung festzulegen. Nachdem Sie Ihre Standard-JRE festgelegt haben, müssen Sie einen Warmstart der Maschine durchführen. Wenn Sie kein Java installiert haben, können Sie es von der Installations-CD-ROM von Data Warehouse Connectors installieren. 36.5 Überlegungen nach Abschluss der Installation des iSeries-Agenten Ändern Sie in Kapitel 4 im Abschnitt "Installieren des AS/400-Warehouse-Agenten (iSeries)" den ersten Absatz im Abschnitt "Überlegungen nach Abschluss der Installation" wie folgt: Der Warehouse-Agent führt alle Schrittfunktionen in einer einzigen Arbeitseinheit durch. Vor Version 4 Release 5 begrenzte DB2 Universal Database für iSeries die Anzahl der Zeilen in einem COMMIT-Bereich auf 4 Millionen. Diese Begrenzung wurde in Version 4 Release 5 auf 500 Millionen Zeilen erhöht. Wenn Sie ein System der Version 4 Release 4 (oder darunter) verwenden und längere Abfragen haben, unterteilen Sie entweder die Abfragen, oder verwenden Sie die vom Warehouse bereitgestellten FTP-Programme zum Versetzen von Daten. 36.6 Vor der Verwendung von Umsetzungsprogrammen mit dem iSeries-Warehouse-Agenten Entfernen Sie in Kapitel 4 den Abschnitt "Vor der Verwendung von Umsetzungsprogrammen mit dem iSeries-Warehouse-Agenten" und alle Unterabschnitte. Query Patroller Administration Guide 37.1 DB2 Query Patroller Client is a Separate Component The DB2 Query Patroller client is a separate component that is not part of the DB2 Administration client. This means that it is not installed during the installation of the DB2 Administration Client, as indicated in the Query Patroller Installation Guide. Instead, the Query Patroller client must be installed separately. The version and level of the Query Patroller client and the Query Patroller server must be the same. 37.2 Changing the Node Status The following is an update to the Node Administration section of the Query Patroller Administration Guide. Use the following procedure to change the node status: On the Node Administration page, select a node. Click on View / Edit. The Detailed Information for Node window opens. Select the new status in the Status Requested field. Anmerkung: Status Requested is the only field in the Detailed Information for Node window that can be changed; all other fields display values that have been supplied by DB2 Query Patroller. Click on OK. The following list provides information for each node parameter: Node ID Provides the ID for the node. Node Status Contains the current node status: Active indicates that the node is able to run jobs. Inactive indicates that the node's DB2 Query Patroller component is shut down. The node is not available to DB2 Query Patroller. To reactivate the node, use the iwm administrative user account to issue the dqpstart command. Quiescing indicates that the node is in transition to the quiescent state. Running jobs will complete, but no new jobs will be scheduled on the node. Quiesced indicates that the node is quiescent. The node is available to DB2 Query Patroller but no new jobs are being scheduled to that node. Status Requested Indicates what the node status will be changed to: Active indicates that the node will be made active. Inactive indicates that the node will be made inactive. Running jobs will complete and no new jobs will be scheduled. Force indicates that the node will be made inactive immediately. Running jobs are terminated immediately and no new jobs will be scheduled. Quiesced indicates that the node will be made quiescent. Running jobs will complete. Date/Time Last Status Indicates the date and time node status was last changed. Scheduled Jobs Provides the number of jobs scheduled to run plus the number of jobs running on this node. CPU Utilization Provides the CPU utilization of the node as a percentage (0 - 100). If CPU utilization information is not being collected, the value is -1. Disk Available Indicates the bytes available in the file system where results are created. If disk utilization is not being monitored, the value is -1. Node Manager PID Indicates the process ID of the node manager process. 37.3 Migrating from Version 6 of DB2 Query Patroller Using dqpmigrate The dqpmigrate command must be used if the Version 7 Query Patroller Server was installed over the Version 6 Query Patroller Server. For FixPak 2 or later, you do not have to run dqpmigrate manually as the installation of the FixPak runs this command for you. Without using this command, the existing users defined in v6 have no EXECUTE privileges on several new stored procedures added in Version 7. Anmerkung: dqpmigrate.bnd is found in the sqllib/bnd directory and dqpmigrate.exe is found in the sqllib/bin directory. To use dqpmigrate manually to grant the EXECUTE privileges, perform the following after installing the FixPak: Bind the /sqllib/bnd/dqpmigrate.bnd package file to the database where the Query Patroller server has been installed by entering the following command: db2 bind dqpmigrate.bnd Execute dqpmigrate by entering the following: dqpmigrate dbalias userid passwd 37.4 Enabling Query Management In the "Getting Started" chapter under "Enabling Query Management", the text should read: You must be the owner of the data base, or you must have SYSADM, SYSCTRL, or SYSMAINT authority to set database configuration parameters. 37.5 Location of Table Space for Control Tables In Chapter 1, System Overview, under DB2 Query Patroller Control Tables, the following text is to be added at the end of the section's first paragraph: The table space for the DB2 Query Patroller control tables must reside in a single-node nodegroup, or DB2 Query Patroller will not function properly. 37.6 New Parameters for dqpstart Command In Chapter 2, Getting Started, under Starting and Stopping DB2 Query Patroller, the following text is to be added following the last paragraph: New Parameters for the dqpstart command: RESTART parameter: Allows the user to replace the host name and/or the node type of the specified node in the dqpnodes.cfg file. DB2 Query Patroller will be started on this node. Anmerkung: Before running the DQPSTART command with the RESTART parameter, ensure the following: DB2 Query Patroller is already stopped on the host that is going to be replaced. DB2 Query Patroller is not already running on the new host. The syntax is as follows: dqpstart nodenum node_num restart hostname server | agent | none ADDNODE parameter: Allows the user to add a new node to the dqpnodes.cfg file. DB2 Query Patroller will be started on this node after the new node entry is added to the dqpnodes.cfg file. The syntax is as follows: dqpstart nodenum node_num addnode hostname server | agent | none DROPNODE parameter: Allows the user to drop a node from the dqnodes.cfg file. DB2 Query Patroller will be stopped on this node before the node entry is dropped from the dqpnodes.cfg file. The syntax is as follows: dqpstop nodenum node_num dropnode 37.7 New Parameter for iwm_cmd Command A new -v parameter has been added to the iwm_cmd command to allow the user to recover the status of the jobs that were running on the node specified. Only jobs on an inactive node are allowed to be recovered. This command should be issued when there is a node failure and there are some jobs running on that node or being cancelled at the time. Jobs that were in "Running" state will be resubmitted and set back to "Queued" state. Jobs that were in "Cancelling" state will be set to "Cancelled" state. The partial syntax is as follows: >>-iwm_cmd--+-------------------------------+-------------------> '--u--user_id--+--------------+-' '--p--password-' >---v--node_id_to_recover-------------------------------------->< node_id_to_recover Specifies the node on which the jobs are to be recovered. 37.8 New Registry Variable: DQP_RECOVERY_INTERVAL There is a new registry variable called DQP_RECOVERY_INTERVAL which is used to set the interval of time in minutes that the iwm_scheduler searches for recovery files. The default is 60 minutes. 37.9 Starting Query Administrator In the "Using QueryAdministrator to Administer DB2 Query Patroller" chapter, instructions are provided for starting QueryAdministrator from the Start menu on Windows. The first step provides the following text: If you are using Windows, you can select DB2 Query Patroller --> QueryAdministrator from the IBM DB2 program group. The text should read: DB2 Query Patroller --> QueryAdmin. 37.10 User Administration In the "User Administration" section of the "Using QueryAdministrator to Administer DB2 Query Patroller" chapter, the definition for the Maximum Elapsed Time parameter indicates that if the value is set to 0 or -1, the query will always run to completion. This parameter cannot be set to a negative value. The text should indicate that if the value is set to 0, the query will always run to completion. The Max Queries parameter specifies the maximum number of jobs that the DB2 Query Patroller will run simultaneously. Max Queries must be an integer within the range of 0 to 32767. 37.11 Data Source Administration In Chapter 3, Using Query Administrator to Administer DB2 Query Patroller, there are some new and changed descriptions for the data source parameters. Static Cost is the DB2 estimated cost of the query in timerons. This cost is stored in the job entry for each job. You can see it as the Estimated Cost when using Query Monitor to look at the job details of a job. Zero Cost Query is the query with a static cost, or estimated cost, of zero. No query actually has an estimated cost of zero (even the very simplest ones have a cost of around 5). Rather, this occurs if a job is submitted with the do not do cost analysis option. You can only choose this option if you have set up the user profile to allow it. In most cases, you will not have your user profiles set up in this way. You should keep this option for superusers like other administrators, selected special users, or yourself. These users can then run whatever queries they want. The system treats queries from these users as zero cost so that the queries are treated as high priority. Cost Time Zero, Cost Time Slope, Cost Time Interval, and Cost Time Min are no longer used. The Cost Factor is the multiplier to convert the Static Cost in timerons is not the cost in the accounting table. The cost in the accounting table is equal to the Static Cost multiplied by the Cost Factor. 37.12 Creating a Job Queue In the "Job Queue Administration" section of the "Using QueryAdministrator to Administer DB2 Query Patroller" chapter, the screen capture in the steps for "Creating a Job Queue" should be displayed after the second step. The Information about new Job Queue window opens once you click New on the Job Queue Administration page of the QueryAdministrator tool. References to the Job Queues page or the Job Queues tab should read Job Queue Administration page and Job Queue Administration tab, respectively. 37.13 Job Accounting Table In chapter 11, Monitoring the DB2 Query Patroller System, the section on Job Accounting describes the columns in the Job Accounting table. The table name is IWM.IWM003_JOB_ACCT. 37.14 Using the Command Line Interface For a user with User authority on the DB2 Query Patroller system to submit a query and have a result table created, the user may require CREATETAB authority on the database. The user does not require CREATETAB authority on the database if the DQP_RES_TBLSPC profile variable is left unset, or if the DQP_RES_TBLSPC profile variable is set to the name of the default table space. The creation of the result tables will succeed in this case because users have the authority to create tables in the default table space. 37.15 Query Enabler Notes When using third-party query tools that use a keyset cursor, queries will not be intercepted. In order for Query Enabler to intercept these queries, you must modify the db2cli.ini file to include: [common] DisableKeySetCursor=1 For AIX clients, please ensure that the environment variable LIBPATH is not set. Library libXext.a, shipped with the JDK, is not compatible with the library in the /usr/lib/X11 subdirectory. This will cause problems with the Query Enabler GUI. 37.16 DB2 Query Patroller Tracker may Return a Blank Column Page FixPak 3 includes a fix for the DB2 Query Patroller Tracker. The Tracker will now correctly report queries which hit no columns. An example of such a query is "SELECT COUNT(*) FROM ...". Since this kind of query does not hit any column in the table, the Tracker will present a blank page for the column page. This blank column page is not a defect. 37.17 Additional Information for DB2 Query Patroller Tracker GUI Tool The accounting table is used by the Tracker tool when used to display or analyze historical job data. In order to use Tracker, the administrator must first use Query Administrator to change the Accounting Status on the System Administrator panel to Write To Table. Then, whenever a job completes, extra information is saved in a job accounting table. Next, the administrator must log on to the Query Patroller server as user iwm and run the iwm_tracker (Tracker backend) tool. This tool should be run periodically when the system load is low, or just before when the Tracker tool is used. Finally, when these two tasks are completed, you can run the Tracker GUI tool to view or analyze the job data. If the cost factor is one, which is the default, then the cost displayed for each job using the Tracker is the same value as the cost displayed using Query Monitor. In both cases, the time is in timerons. However, you may want to use other units of value. Suppose you want to bill each user for their use of the system. If, for example, the charge is one dollar for 10 000 timerons of work, then you would enter a cost factor of 0.0001. This has the Tracker converting, storing, and displaying each job's cost in dollars. The Query Patroller Administration Guide discusses dollars per megabyte which is incorrect and should be replaced by dollars per timeron. 37.18 Query Patroller and Replication Tools Query Patroller Version 7 will intercept the queries of the replication tools (asnapply, asnccp, djra and analyze) and cause these tools to malfunction. A workaround is to disable dynamic query management when running these tools. 37.19 Improving Query Patroller Performance The following text should appear at the end of Chapter 6, Performance Tuning: Using the BIND Option, INSERT BUF to Improve DB2 Query Patroller Performance By default, DB2 Query Patroller creates result tables to store the results of the queries it manages. To increase the performance of inserts to these result tables, include the INSERT BUF option when binding one of the DB2 Query Patroller bind files. Bind the DB2 Query Patroller bind files to the database as follows: From the DB2_RUNTIME\bnd directory on Windows, or the DB2_RUNTIME/bnd path on UNIX, enter the following commands: db2 connect to database user iwm using password db2 bind @db2qp.lst blocking all grant public db2 bind iwmsx001.bnd insert buf db2 bind @db2qp_sp.lst db2 commit where database is the database the replacement database that will be managed by DB2 Query Patroller, and password is the password for the administrative user account, iwm. 37.20 Verlorenes Zugriffsrecht EXECUTE für in Version 6 erstellte Benutzer von Query Patroller Aufgrund einiger neuer gespeicherter Prozeduren (IWM.DQPGROUP, IWM.DQPVALUR, IWM.DQPCALCT und IWM.DQPINJOB), die Query Patroller Version 7 hinzugefügt wurden, verlieren Benutzer, die mit Query Patroller Version 6 erstellt wurden, das Zugriffsrecht EXECUTE für diese Pakete. FixPak 1 enthält eine Anwendung, die dieses Problem automatisch löst. Wenn Sie Benutzerinformationen mit DQP Query Admin modifizieren, versuchen Sie bitte nicht, vorhandene Benutzer aus der Liste zu entfernen. 37.21 Query Patroller - Einschränkungen Aufgrund von Einschränkungen der JVM-Plattform (Java Virtual Machine) wird Query Enabler unter HP-UX und NUMA-Q nicht unterstützt. Außerdem wird Query Patroller Tracker unter NUMA-Q nicht unterstützt. Sind alle Query Patroller-Client-Tools erforderlich, wird die Verwendung einer anderen Plattform (z. B. Windows NT) für die Ausführung dieser Tools auf einem HP-UX- oder NUMA-Q-Server empfohlen. 37.22 Appendix B. Troubleshooting DB2 Query Patroller Clients In Appendix B, Troubleshooting DB2 Query Patroller Clients, section: Common Query Enabler Problems, problem #2, the text of the first bullet is replaced with: Ensure that the path setting includes jre. Anwendungsentwicklung Teilinhaltsverzeichnis Administrative API Reference 38.1 db2ArchiveLog (new API) db2ArchiveLog 38.2 db2ConvMonStream 38.3 db2DatabasePing (new API) db2DatabasePing - Ping Database 38.4 db2HistData 38.5 db2HistoryOpenScan 38.6 db2Runstats 38.7 db2GetSnapshot - Get Snapshot 38.8 db2XaGetInfo (new API) db2XaGetInfo - Get Information for Resource Manager 38.9 db2XaListIndTrans (new API that supercedes sqlxphqr) db2XaListIndTrans - List Indoubt Transactions 38.10 Forget Log Record 38.11 sqlaintp - Get Error Message 38.12 sqlbctcq - Close Tablespace Container Query 38.13 sqleseti - Set Client Information 38.14 sqlubkp - Backup Database 38.15 sqlureot - Reorganize Table 38.16 sqlurestore - Restore Database 38.17 Documentation Error Regarding AIX Extended Shared Memory Support (EXTSHM) 38.18 SQLFUPD 38.18.1 locklist 38.19 SQLEDBDESC Application Building Guide 39.1 Aktualisierung verfügbar 39.2 Unterstützung für Linux unter S/390 und zSeries 39.3 Linux-Rexx-Unterstützung 39.4 Zusätzliche Anmerkungen zum Verteilen von kompilierten SQL-Prozeduren Application Development Guide 40.1 Aktualisierung verfügbar 40.2 Vorsichtsmaßnahmen beim Registrieren von C/C++-Routinen (benutzerdefinierte Funktionen, gespeicherte Prozeduren oder Methoden) unter Windows 40.3 Korrektur des Abschnitts "Debugging Stored Procedures in Java" 40.4 Neue Bestimmungen für executeQuery und executeUpdate 40.5 JDBC-Treiberunterstützung für zusätzliche Methoden 40.6 JDBC und 64-Bit-Systeme 40.7 IBM OLE DB Provider for DB2 UDB CLI Guide and Reference 41.1 Binding Database Utilities Using the Run-Time Client 41.2 Using Static SQL in CLI Applications 41.3 Limitations of JDBC/ODBC/CLI Static Profiling 41.4 ADT Transforms 41.5 Chapter 1. Introduction to CLI 41.5.1 Differences Between DB2 CLI and Embedded SQL 41.6 Chapter 3. Using Advanced Features 41.6.1 Writing Multi-Threaded Applications 41.6.2 Writing a DB2 CLI Unicode Application 41.6.2.1 Unicode Functions 41.6.2.2 New datatypes and Valid Conversions 41.6.2.3 Obsolete Keyword/Patch Value 41.6.2.4 Literals in Unicode Databases 41.6.2.5 New CLI Configuration Keywords 41.6.3 Microsoft Transaction Server (MTS) as Transaction Monitor 41.6.4 Scrollable Cursors 41.6.4.1 Server-side Scrollable Cursor Support for OS/390 41.6.5 Using Compound SQL 41.6.6 Using Stored Procedures 41.6.6.1 Privileges for building and debugging SQL and Java stored procedures 41.6.6.2 Writing a Stored Procedure in CLI 41.6.6.3 CLI Stored Procedures and Autobinding 41.7 Chapter 4. Configuring CLI/ODBC and Running Sample Applications 41.7.1 Configuration Keywords 41.7.1.1 CURRENTFUNCTIONPATH 41.7.1.2 SKIPTRACE 41.8 Chapter 5. DB2 CLI Functions 41.8.1 SQLBindFileToParam - Bind LOB File Reference to LOB Parameter 41.8.2 SQLColAttribute -- Return a Column Attribute 41.8.3 SQLGetData - Get Data From a Column 41.8.4 SQLGetInfo - Get General Information 41.8.5 SQLGetLength - Retrieve Length of A String Value 41.8.6 SQLNextResult - Associate Next Result Set with Another Statement Handle 41.8.6.1 Purpose 41.8.6.2 Syntax 41.8.6.3 Function Arguments 41.8.6.4 Usage 41.8.6.5 Return Codes 41.8.6.6 Diagnostics 41.8.6.7 Restrictions 41.8.6.8 References 41.8.7 SQLSetEnvAttr - Set Environment Attribute 41.8.8 SQLSetStmtAttr -- Set Options Related to a Statement 41.9 Appendix C. DB2 CLI and ODBC 41.9.1 ODBC Unicode Applications 41.9.1.1 ODBC Unicode Versus Non-Unicode Applications 41.10 Appendix D. Extended Scalar Functions 41.10.1 Date and Time Functions 41.11 Appendix K. Using the DB2 CLI/ODBC/JDBC Trace Facility Fehlernachrichten 42.1 Aktualisierung verfügbar 42.2 Nachrichtenaktualisierungen 42.3 Lesen des Nachrichtentexts (online) SQL Reference 43.1 SQL Reference - Aktualisierung verfügbar 43.2 Enabling the New Functions and Procedures 43.3 SET SERVER OPTION - Documentation Error 43.4 Correction to CREATE TABLESPACE Container-clause, and Container-string Information 43.5 Correction to CREATE TABLESPACE EXTENTSIZE information 43.6 GRANT (Table, View, or Nickname Privileges) - Documentation Error 43.7 MQSeries Information 43.7.1 Scalar Functions 43.7.1.1 MQPUBLISH 43.7.1.2 MQREADCLOB 43.7.1.3 MQRECEIVECLOB 43.7.1.4 MQSEND 43.7.2 Table Functions 43.7.2.1 MQREADALLCLOB 43.7.2.2 MQRECEIVEALLCLOB 43.7.3 CLOB data now supported in MQSeries functions 43.8 Data Type Information 43.8.1 Promotion of Data Types 43.8.2 Casting between Data Types 43.8.3 Assignments and Comparisons 43.8.3.1 String Assignments 43.8.3.2 String Comparisons 43.8.4 Rules for Result Data Types 43.8.4.1 Character and Graphic Strings in a Unicode Database 43.8.5 Rules for String Conversions 43.8.6 Expressions 43.8.6.1 With the Concatenation Operator 43.8.7 Predicates 43.9 Unicode Information 43.9.1 Scalar Functions and Unicode 43.10 GRAPHIC type and DATE/TIME/TIMESTAMP compatibility 43.10.1 String representations of datetime values 43.10.1.1 Date strings, time strings, and datetime strings 43.10.2 Casting between data types 43.10.3 Assignments and comparisons 43.10.4 Datetime assignments 43.10.5 DATE 43.10.6 GRAPHIC 43.10.7 TIME 43.10.8 TIMESTAMP 43.10.9 VARGRAPHIC 43.11 Larger Index Keys for Unicode Databases 43.11.1 ALTER TABLE 43.11.2 CREATE INDEX 43.11.3 CREATE TABLE 43.12 ALLOCATE CURSOR Statement Notes Section Incorrect 43.13 Additional Options in the GET DIAGNOSTICS Statement GET DIAGNOSTICS Statement 43.14 ORDER BY in Subselects 43.14.1 fullselect 43.14.2 subselect 43.14.3 order-by-clause 43.14.4 select-statement SELECT INTO statement 43.14.5 OLAP Functions (window-order-clause) New Input Argument for the GET_ROUTINE_SAR Procedure Required Authorization for the SET INTEGRITY Statement Appendix N. Exception Tables Unicode-Aktualisierungen 47.1 Einführung 47.1.1 DB2-Unicode-Datenbanken und -Anwendungen 47.1.2 Aktualisierung der Dokumentation Administrative API Reference 38.1 db2ArchiveLog (new API) db2ArchiveLog Closes and truncates the active log file for a recoverable database. If user exit is enabled, issues an archive request. Berechtigung One of the following: sysadm sysctrl sysmaint dbadm Erforderliche Verbindung This API automatically establishes a connection to the specified database. If a connection to the specified database already exists, the API will return an error. API-Include-Datei db2ApiDf.h C-API-Syntax /* File: db2ApiDf.h */ /* API: Archive Active Log */ SQL_API_RC SQL_API_FN db2ArchiveLog ( db2Uint32 version, void *pDB2ArchiveLogStruct, struct sqlca * pSqlca); typedef struct { char *piDatabaseAlias; char *piUserName; char *piPassword; db2Uint16 iAllNodeFlag; db2Uint16 iNumNodes; SQL_PDB_NODE_TYPE *piNodeList; db2Uint32 iOptions; } db2ArchiveLogStruct Generische API-Syntax /* File: db2ApiDf.h */ /* API: Archive Active Log */ SQL_API_RC SQL_API_FN db2gArchiveLog ( db2Uint32 version, void *pDB2ArchiveLogStruct, struct sqlca * pSqlca); typedef struct { db2Uint32 iAliasLen; db2Uint32 iUserNameLen; db2Uint32 iPasswordLen; char *piDatabaseAlias; char *piUserName; char *piPassword; db2Uint16 iAllNodeFlag; db2Uint16 iNumNodes; SQL_PDB_NODE_TYPE *piNodeList; db2Uint32 iOptions; } db2ArchiveLogStruct API-Parameter version Input. Specifies the version and release level of the variable passed in as the second parameter, pDB2ArchiveLogStruct. pDB2ArchiveLogStruct Input. A pointer to the db2ArchiveLogStruct structure. pSqlca Output. A pointer to the sqlca structure. iAliasLen Input. A 4-byte unsigned integer representing the length in bytes of the database alias. iUserNameLen A 4-byte unsigned integer representing the length in bytes of the user name. Set to zero if no user name is used. iPasswordLen Input. A 4-byte unsigned integer representing the length in bytes of the password. Set to zero if no password is used. piDatabaseAlias Input. A string containing the database alias (as cataloged in the system database directory) of the database for which the active log is to be archived. piUserName Input. A string containing the user name to be used when attempting a connection. piPassword Input. A string containing the password to be used when attempting a connection. iAllNodeFlag MPP only. Input. Flag indicating whether the operation should apply to all nodes listed in the db2nodes.cfg file. Valid values are: DB2ARCHIVELOG_NODE_LIST Apply to nodes in a node list that is passed in piNodeList. DB2ARCHIVELOG_ALL_NODES Apply to all nodes. piNodeList should be NULL. This is the default value. DB2ARCHIVELOG_ALL_EXCEPT Apply to all nodes except those in the node list passed in piNodeList. iNumNodes MPP only. Input. Specifies the number of nodes in the piNodeList array. piNodeList MPP only. Input. A pointer to an array of node numbers against which to apply the archive log operation. iOptions Input. Reserved for future use. 38.2 db2ConvMonStream In the Usage Notes, the structure for the snapshot variable datastream type SQLM_ELM_SUBSECTION should be sqlm_subsection. 38.3 db2DatabasePing (new API) db2DatabasePing - Ping Database Tests the network response time of the underlying connectivity between a client and a database server. This API can be used by an application when a host database server is accessed via DB2 Connect either directly or through a gateway. Berechtigung None Erforderliche Verbindung Database API-Include-Datei db2ApiDf.h C-API-Syntax /* File: db2ApiDf.h */ /* API: Ping Database */ /* ... */ SQL_API_RC SQL_API_FN db2DatabasePing ( db2Uint32 versionNumber, void *pParmStruct, struct sqlca * pSqlca); /* ... */ typedef SQL_STRUCTURE db2DatabasePingStruct { char iDbAlias[SQL_ALIAS_SZ + 1]; db2Uint16 iNumIterations; db2Uint32 *poElapsedTime; } Generische API-Syntax /* File: db2ApiDf.h */ /* API: Ping Database */ /* ... */ SQL_API_RC SQL_API_FN db2gDatabasePing ( db2Uint32 versionNumber, void *pParmStruct, struct sqlca * pSqlca); /* ... */ typedef SQL_STRUCTURE db2gDatabasePingStruct { db2Uint16 iDbAliasLength; char iDbAlias[SQL_ALIAS_SZ]; db2Uint16 iNumIterations; db2Uint32 *poElapsedTime; } API-Parameter versionNumber Input. Version and release of the DB2 Universal Database or DB2 Connect product that the application is using. Anmerkung: Constant db2Version710 or higher should be used for DB2 Version 7.1 or higher. pParmStruct Input. A pointer to the db2DatabasePingStruct Structure. iDbAliasLength Input. Length of the database alias name. Anmerkung: This parameter is not currently used. It is reserved for future use. iDbAlias Input. Database alias name. Anmerkung: This parameter is not currently used. It is reserved for future use. iNumIterations Input. Number of test request iterations. The value must be between 1 and 32767 inclusive. poElapsedTime Output. A pointer to an array of 32-bit integers where the number of elements is equal to iNumIterations. Each element in the array will contain the elapsed time in microseconds for one test request iteration. Anmerkung: The application is responsible for allocating the memory for this array prior to calling this API. pSqlca Output. A pointer to the sqlca structure. For more information about this structure, see the Administrative API Reference. Hinweise zur Verwendung A database connection must exist before invoking this API, otherwise an error will result. This function can also be invoked using the PING command. For a description of this command, see the Command Reference. 38.4 db2HistData The following entries should be added to Table 11. Fields in the db2HistData Structure: Field Name Data Type Description oOperation char See Table 12. oOptype char See Table 13. The following table will be added following Table 11. Table 12. Valid event values for oOperation in the db2HistData Structure Value Description C Definition COBOL/FORTRAN Definition A add tablespace DB2HISTORY_OP_ADD_TABLESPACE DB2HIST_OP_ADD_TABLESPACE B backup DB2HISTORY_OP_BACKUP DB2HIST_OP_BACKUP C load-copy DB2HISTORY_OP_LOAD_COPY DB2HIST_OP_LOAD_COPY D dropped table DB2HISTORY_OP_DROPPED_TABLE DB2HIST_OP_DROPPED_TABLE F roll forward DB2HISTORY_OP_ROLLFWD DB2HIST_OP_ROLLFWD G reorganize table DB2HISTORY_OP_REORG DB2HIST_OP_REORG L load DB2HISTORY_OP_LOAD DB2HIST_OP_LOAD N rename tablespace DB2HISTORY_OP_REN_TABLESPACE DB2HIST_OP_REN_TABLESPACE O drop tablespace DB2HISTORY_OP_DROP_TABLESPACE DB2HIST_OP_DROP_TABLESPACE Q quiesce DB2HISTORY_OP_QUIESCE DB2HIST_OP_QUIESCE R restore DB2HISTORY_OP_RESTORE DB2HIST_OP_RESTORE S run statistics DB2HISTORY_OP_RUNSTATS DB2HIST_OP_RUNSTATS T alter tablespace DB2HISTORY_OP_ALT_TABLESPACE DB2HIST_OP_ALT_TBS U unload DB2HISTORY_OP_UNLOAD DB2HIST_OP_UNLOAD The following table will also be added. Table 13. Valid oOptype values db2HistData Structure oOperation oOptype Description C/COBOL/FORTRAN Definition B F Offline DB2HISTORY_OPTYPE_OFFLINE N Online DB2HISTORY_OPTYPE_ONLINE I Incremental offline DB2HISTORY_OPTYPE_INCR_OFFLINE O Incremental online DB2HISTORY_OPTYPE_INCR_ONLINE D Delta offline DB2HISTORY_OPTYPE_DELTA_OFFLINE E Delta online DB2HISTORY_OPTYPE_DELTA_ONLIN F E End of log DB2HISTORY_OPTYPE_EOL P Point in time DB2HISTORY_OPTYPE_PIT L I Insert DB2HISTORY_OPTYPE_INSERT R Replace DB2HISTORY_OPTYPE_REPLACE Q S Quiesce share DB2HISTORY_OPTYPE_SHARE U Quiesce update DB2HISTORY_OPTYPE_UPDATE X Quiesce exclusive DB2HISTORY_OPTYPE_EXCL Z Quiesce reset DB2HISTORY_OPTYPE_RESET R F Offline DB2HISTORY_OPTYPE_OFFLINE N Online DB2HISTORY_OPTYPE_ONLINE I Incremental offline DB2HISTORY_OPTYPE_INCR_OFFLINE O Incremental online DB2HISTORY_OPTYPE_INCR_ONLINE T C Add containers DB2HISTORY_OPTYPE_ADD_CONT R Rebalance DB2HISTORY_OPTYPE_REB 38.5 db2HistoryOpenScan The following value will be added to the iCallerAction parameter. DB2HISTORY_LIST_CRT_TABLESPACE Select only the CREATE TABLESPACE and DROP TABLESPACE records that pass the other filters. 38.6 db2Runstats When the db2Runstats API is collecting statistics on indexes only, then previously collected distribution statistics are retained. Otherwise, the API will drop previously collected distribution statistics. 38.7 db2GetSnapshot - Get Snapshot The syntax for the db2GetSnapshot API should be as follows: int db2GetSnapshot( unsigned char version; db2GetSnapshotData *data, struct sqlca *sqlca); The parameters described in data are: typedef struct db2GetSnapshotData{ sqlma *piSqlmaData; sqlm_collected *poCollectedData void *poBuffer; db2uint32 iVersion; db2int32 iBufferSize; db2uint8 iStoreResult; db2uint16 iNodeNumber; db2uint32 *poOutputFormat; }db2GetSnapshotData; 38.8 db2XaGetInfo (new API) db2XaGetInfo - Get Information for Resource Manager Extracts information for a particular resource manager once an xa_open call has been made. Berechtigung None Erforderliche Verbindung Database API-Include-Datei sqlxa.h C-API-Syntax /* File: sqlxa.h */ /* API: Get Information for Resource Manager */ /* ... */ SQL_API_RC SQL_API_FN db2XaGetInfo ( db2Uint32 versionNumber, void * pParmStruct, struct sqlca * pSqlca); typedef SQL_STRUCTURE db2XaGetInfoStruct { db2int32 iRmid; struct sqlca oLastSqlca; } db2XaGetInfoStruct; API-Parameter versionNumber Input. Specifies the version and release level of the structure passed in as the second parameter, pParmStruct. pParmStruct Input. A pointer to the db2XaGetInfoStruct structure. pSqlca Output. A pointer to the sqlca structure. For more information about this structure, see the Administrative API Reference. iRmid Input. Specifies the resource manager for which information is required. oLastSqlca Output. Contains the sqlca for the last XA API call. Anmerkung: Only the sqlca that resulted from the last failing XA API can be retrieved. 38.9 db2XaListIndTrans (new API that supercedes sqlxphqr) db2XaListIndTrans - List Indoubt Transactions Provides a list of all indoubt transactions for the currently connected database. Geltungsbereich This API affects only the node on which it is issued. Berechtigung One of the following: sysadm dbadm Erforderliche Verbindung Database API-Include-Datei db2ApiDf.h C-API-Syntax /* File: db2ApiDf.h */ /* API: List Indoubt Transactions */ /* ... */ SQL_API_RC SQL_API_FN db2XaListIndTrans ( db2Uint32 versionNumber, void * pParmStruct, struct sqlca * pSqlca); typedef SQL_STRUCTURE db2XaListIndTransStruct { db2XaRecoverStruct * piIndoubtData; db2Uint32 iIndoubtDataLen; db2Uint32 oNumIndoubtsReturned; db2Uint32 oNumIndoubtsTotal; db2Uint32 oReqBufferLen; } db2XaListIndTransStruct; typedef SQL_STRUCTURE db2XaRecoverStruct { sqluint32 timestamp; SQLXA_XID xid; char dbalias[SQLXA_DBNAME_SZ]; char applid[SQLXA_APPLID_SZ]; char sequence_no[SQLXA_SEQ_SZ]; char auth_id[SQL_USERID_SZ]; char log_full; char connected; char indoubt_status; char originator; char reserved[8]; } db2XaRecoverStruct; API-Parameter versionNumber Input. Specifies the version and release level of the structure passed in as the second parameter, pParmStruct. pParmStruct Input. A pointer to the db2XaListIndTransStruct structure. pSqlca Output. A pointer to the sqlca structure. For more information about this structure, see the Administrative API Reference. piIndoubtData Input. A pointer to the application supplied buffer where indoubt data will be returned. The indoubt data is in db2XaRecoverStruct format. The application can traverse the list of indoubt transactions by using the size of the db2XaRecoverStruct structure, starting at the address provided by this parameter. If the value is NULL, DB2 will calculate the size of the buffer required and return this value in oReqBufferLen. oNumIndoubtsTotal will contain the total number of indoubt transactions. The application may allocate the required buffer size and issue the API again. oNumIndoubtsReturned Output. The number of indoubt transaction records returned in the buffer specified by pIndoubtData. oNumIndoubtsTotal Output. The Total number of indoubt transaction records available at the time of API invocation. If the piIndoubtData buffer is too small to contain all the records, oNumIndoubtsTotal will be greater than the total for oNumIndoubtsReturned. The application may reissue the API in order to obtain all records. Anmerkung: This number may change between API invocations as a result of automatic or heuristic indoubt transaction resynchronisation, or as a result of other transactions entering the indoubt state. oReqBufferLen Output. Required buffer length to hold all indoubt transaction records at the time of API invocation. The application can use this value to determine the required buffer size by calling the API with pIndoubtData set to NULL. This value can then be used to allocate the required buffer, and the API can be issued with pIndoubtData set to the address of the allocated buffer. Anmerkung: The required buffer size may change between API invocations as a result of automatic or heuristic indoubt transaction resynchronisation, or as a result of other transactions entering the indoubt state. The application may allocate a larger buffer to account for this. timestamp Output. Specifies the time when the transaction entered the indoubt state. xid Output. Specifies the XA identifier assigned by the transaction manager to uniquely identify a global transaction. dbalias Output. Specifies the alias of the database where the indoubt transaction is found. applid Output. Specifies the application identifier assigned by the database manager for this transaction. sequence_no Output. Specifies the sequence number assigned by the database manager as an extension to the applid. auth_id Output. Specifies the authorization ID of the user who ran the transaction. log_full Output. Indicates whether or not this transaction caused a log full condition. Valid values are: SQLXA_TRUE This indoubt transaction caused a log full condition. SQLXA_FALSE This indoubt transaction did not cause a log full condition. connected Output. Indicates whether or not the application is connected. Valid values are: SQLXA_TRUE The transaction is undergoing normal syncpoint processing, and is waiting for the second phase of the two-phase commit. SQLXA_FALSE The transaction was left indoubt by an earlier failure, and is now waiting for resynchronisation from the transaction manager. indoubt_status Output. Indicates the status of this indoubt transaction. Valid values are: SQLXA_TS_PREP The transaction is prepared. The connected parameter can be used to determine whether the transaction is waiting for the second phase of normal commit processing or whether an error occurred and resynchronisation with the transaction manager is required. SQLXA_TS_HCOM The transaction has been heuristically committed. SQLXA_TS_HROL The transaction has been heuristically rolled back. SQLXA_TS_MACK The transaction is missing commit acknowledgement from a node in a partitioned database. SQLXA_TS_END The transaction has ended at this database. This transaction may be re-activated, committed, or rolled back at a later time. It is also possible that the transaction manager encountered an error and the transaction will not be completed. If this is the case, this transaction requires heuristic actions, because it may be holding locks and preventing other applications from accessing data. Hinweise zur Verwendung A typical application will perform the following steps after setting the current connection to the database or to the partitioned database coordinator node: Call db2XaListIndTrans with piIndoubtData set to NULL. This will return values in oReqBufferLen and oNumIndoubtsTotal. Use the returned value in oReqBufferLen to allocate a buffer. This buffer may not be large enough if there are additional indoubt transactions because the initial invocation of this API to obtain oReqBufferLen. The application may provide a buffer larger than oReqBufferLen. Determine if all indoubt transaction records have been obtained. This can be done by comparing oNumIndoubtsReturned to oNumIndoubtTotal. If oNumIndoubtsTotal is greater than oNumIndoubtsReturned, the application can repeat the above steps. Siehe auch "sqlxhfrg - Forget Transaction Status", "sqlxphcm - Commit an Indoubt Transaction", and "sqlxphrl - Roll Back an Indoubt Transaction" in the Administrative API Reference. 38.10 Forget Log Record The following information will be added to Appendix F following the MPP Subordinator Prepare section. This log record is written after a rollback of indoubt transactions or after a commit of two-phase commit. The log record is written to mark the end of the transaction and releases any log resources held. In order for the transaction to be forgotten, it must be in a heuristically completed state. Tabelle 10. Forget Log Record Structure Description Type Offset (Bytes) Log header LogManagerLogRecordHeader 0(20) time sqluint64 20(8) Total Length: 28 bytes 38.11 sqlaintp - Get Error Message The following usage note is to be added to the description of this API: In a multi-threaded application, sqlaintp must be attached to a valid context; otherwise, the message text for SQLCODE -1445 cannot be obtained. 38.12 sqlbctcq - Close Tablespace Container Query Load is not a valid Authorization level for this API. 38.13 sqleseti - Set Client Information The data values provided with the API can also be accessed by SQL special register. The values in these registers are stored in the database code page. Data values provided with this API are converted to the database code page before being stored in the special registers. Any data value that exceeds the maximum supported size after conversion to the database code page will be truncated before being stored at the server. These truncated values will be returned by the special registers. The original data values will also be stored at the server and are not converted to the database code page. The unconverted values can be returned by calling the sqleqryi API. 38.14 sqlubkp - Backup Database For the BackupType parameter the SQLUB_FULL value will be replaced by the SQLUB_DB. A backup of all tablespaces in the database will be taken. To support the new incremental backup functionality the SQLUB_INCREMENTAL and SQLUB_DELTA parameters will also be added. An incremental backup image is a copy of all database data which has changed since the most recent successful, full backup. A delta backup image is a copy of all database data that has changed since the most recent successful backup of any type 38.15 sqlureot - Reorganize Table The following sentence will be added to the Usage Notes: REORGANIZE TABLE cannot use an index that is based on an index extension. 38.16 sqlurestore - Restore Database For the RestoreType parameter the SQLUD_FULL value will be replaced by the SQLUD_DB. A restore of all table spaces in the database will be taken. This will be run offline. To support the new incremental restore functionality the SQLUD_INCREMENTAL parameter will also be added. An incremental backup image is a copy of all database data which has changed since the most recent successful full backup. 38.17 Documentation Error Regarding AIX Extended Shared Memory Support (EXTSHM) In "Appendix E. Threaded Applications with Concurrent Access", Note 2 should now read: 2. By default, AIX does not permit 32-bit applications to attach to more than 11 shared memory segments per process, of which a maximum of 10 can be used for local DB2 connections. To use EXTSHM with DB2, do the following: In client sessions: export EXTSHM=ON When starting the DB2 server: export EXTSHM=ON db2set DB2ENVLIST=EXTSHM db2start On EEE, also add the following lines to sqllib/db2profile: EXTSHM=ON export EXTSHM 38.18 SQLFUPD 38.18.1 locklist The name of the token has changed from SQLF_DBTN_LOCKLIST to SQLF_DBTN_LOCK_LIST. The locklist parameter has been changed from a SMALLINT to a 64-bit unsigned INTEGER. The following addition should be made to the table of Updatable Database Configuration Parameters. Parameter Name Token Token Value Data Type locklist SQLF_DBTN_LOCK_LIST 704 Uint64 The new maximum for this parameter is 524 288. Additionally, in "Chapter 3. Data Structures", Table 53. Updatable Database Configuration Parameters incorrectly lists the token value for dbheap as 701. The correct value is 58. 38.19 SQLEDBDESC Two values will be added to the list of valid values for SQLDBCSS (defined in sqlenv). They are: SQL_CS_SYSTEM_NLSCHAR Collating sequence from system using the NLS version of compare routines for character types. SQL_CS_USER_NLSCHAR Collating sequence from user using the NLS version of compare routines for character types. Application Building Guide 39.1 Aktualisierung verfügbar Das Handbuch Application Building Guide wurde für FixPak 4 aktualisiert, und die aktuelle PDF-Version kann online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. Die gesamte aktualisierte Dokumentation ist auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. 39.2 Unterstützung für Linux unter S/390 und zSeries DB2 für Linux unter S/390 und zSeries unterstützt die folgenden Betriebssystemumgebungen: SuSE Version 7.0 SuSE SLES 7 TurboLinux Version 6.1 Anmerkung: Damit DB2 Version 7 unter SuSE SLES 7 ausgeführt werden kann, müssen Sie das Paket "libstdc++ v6.1 compat" installieren, das sich auf CD 1 der CDs für SuSE Linux Enterprise Server Developer's Edition im Pfad "CD1/suse/a1/compat.rpm" befindet. Diesen Schritt müssen Sie als Root ausführen. Zur Installation des Pakets hängen Sie das CD-Image an ein Verzeichnis an. Installieren Sie z. B. das Paket mit dem folgenden Befehl, um es an das Verzeichnis "/mnt" anzuhängen: rpm -Uh /mnt/CD1/suse/a1/compat.rpm Führen Sie anschließend ldconfig aus. 39.3 Linux-Rexx-Unterstützung DB2 für Linux für Intel x86 (32 Bit) unterstützt den Object REXX Interpreter für Linux Version 2.1. DB2 für Linux unter S/390 unterstützt Object REXX 2.2.0 für Linux/390. 39.4 Zusätzliche Anmerkungen zum Verteilen von kompilierten SQL-Prozeduren Stellen Sie auf UNIX-System sicher, dass der Exemplareigner (d. h., der Benutzer, unter dem die DB2-Steuerkomponente ausgeführt wird) und der Eigner der Datei $DB2PATH/adm/.fenced zur selben primären Gruppe gehören. Alternativ kann auch jeder dieser beiden Benutzer zu primären Gruppe des anderen gehören. Wenn eine GET ROUTINE- oder eine PUT ROUTINE-Operation (oder die entsprechende Prozedur) nicht erfolgreich ausgeführt werden kann, wird immer ein Fehler (SQLSTATE-Wert 38000) zusammen mit einem Diagnosetext mit Informationen zur Ursache des Fehlschlagens zurückgegeben. Wenn der für GET ROUTINE angegebene Prozedurname beispielsweise keine SQL-Prozedur angibt, wird der Diagnosetext "100, 02000" zurückgegeben, wobei "100" und "02000" der SQLCODE- bzw. der SQLSTATE-Wert sind, die über die Ursache des Problems Aufschluss geben. Der SQLCODE-Wert und der SQLSTATE-Wert in diesem Beispiel geben an, dass die für den angegebenen Prozedurnamen genannte Zeile in den Katalogtabellen nicht enthalten ist. Application Development Guide 40.1 Aktualisierung verfügbar Das Handbuch Application Development Guide wurde für FixPak 4 aktualisiert, und die aktuelle PDF-Version kann online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. Die vorliegenden Informationen gelten zusätzlich zum aktualisierten Handbuch. Die gesamte aktualisierte Dokumentation ist auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. 40.2 Vorsichtsmaßnahmen beim Registrieren von C/C++-Routinen (benutzerdefinierte Funktionen, gespeicherte Prozeduren oder Methoden) unter Windows Wenn Sie eine C- oder C++-Routine (benutzerdefinierte Funktion, gespeicherte Prozedur oder Methode) auf Windows(R)-Betriebssystemen registrieren, sollten Sie die folgende Vorsichtsmaßnahme beachten, wenn Sie einen Routinenrumpf in der Klausel EXTERNAL NAME einer Anweisung CREATE angeben. Wenn Sie eine absolute Pfad-ID verwenden, um den Routinenrumpf anzugeben, müssen Sie die Erweiterung .dll anhängen. Beispiel: CREATE PROCEDURE getSalary( IN inParm INT, OUT outParm INT ) LANGUAGE c PARAMETER STYLE sql DYNAMIC RESULT SETS 1 FENCED THREADSAFE RETURNS NULL ON NULL INPUT EXTERNAL NAME 'd:\mylib\myfunc.dll' 40.3 Korrektur des Abschnitts "Debugging Stored Procedures in Java" Im Abschnitt "Preparing to Debug" in Kapitel 21 werden Sie angewiesen, den Befehl db2dbugd zu verwenden. Dies ist nicht korrekt. Verwenden Sie stattdessen den folgenden Befehl: idebug -qdaemon -quiport=portno Die Standardportnummer ist 8000. idebug ist ein clientseitiger Dämon von IBM Distributed Debugger und gehört zum Lieferumfang von VisualAge für Java und WebSphere Studio Application Developer. 40.4 Neue Bestimmungen für executeQuery und executeUpdate In Übereinstimmmung mit dem Standard J2EE 1.3 lässt der DB2-JDBC-Treiber ab FixPak 5 die Verwendung einer anderen Anweisung als einer Abfrage mit executeQuery nicht mehr zu noch kann eine Abfrageanweisung mit executeUpdate verwendet werden. Wird dies dennoch versucht, tritt eine der folgenden Ausnahmebedingungen ein: CLI0637E QUERY nicht gefunden. CLI0637E UPDATE nicht gefunden. Verwenden Sie execute(), wenn der Anweisungstyp nicht bekannt ist. 40.5 JDBC-Treiberunterstützung für zusätzliche Methoden CallableStatement.getBlob() und CallableStatement.getClob() Der JDBC-Treiber unterstützt jetzt die Methoden CallableStatement.getBlob() und CallableStatement.getClob(). Da LOB-Querverweise in den Parametern gespeicherter Prozeduren nicht unterstützt, muss genügend Systemspeicher verfügbar sein, um die maximal mögliche Größe der LOB-Daten zu speichern. Diese wird über CREATE PROCEDURE festgelegt. Wenn nicht genügend Speicher verfügbar ist, tritt eine entsprechende Ausnahmebedingung auf. Diese Unterstützung ist für nicht katalogisierte gespeicherte Prozeduren nicht verfügbar. Statement.setFetchSize(int rows) und ResultSet.setFetchSize(int rows) Der JDBC-Treiber unterstützt jetzt Statement.setFetchSize(int rows) und ResultSet.setFetchSize(int rows). Diese Methoden können jetzt verwendet werden, um die Leistung von ResultSet zu verbessern. 40.6 JDBC und 64-Bit-Systeme JDBC wird für Exemplare oder Clients mit 64-Bit-Adressierung nicht unterstützt. Diese Einschränkung gilt auch für Systeme, auf denen DB2 UDB Version 7 (64-Bit) für AIX 4.3.3, für AIX 5, für Solaris-Betriebssysteme und für HP-UX ausgeführt wird. JDBC wird allerdings auf 32-Bit-Exemplaren unterstützt, unabhängig davon, ob auf dem System eine 64-Bit- oder 32-Bit-Version von DB2 UDB ausgeführt wird. 40.7 IBM OLE DB Provider for DB2 UDB Informationen zur Verwendung von IBM OLE DB Provider for DB2 finden Sie in http://www.ibm.com/software/data/db2/udb/ad/v71/oledb.html. CLI Guide and Reference 41.1 Binding Database Utilities Using the Run-Time Client The Run-Time Client cannot be used to bind the database utilities (import, export, reorg, the command line processor) and DB2 CLI bind files to each database before they can be used with that database. You must use the DB2 Administration Client or the DB2 Application Development Client instead. You must bind these database utilities and DB2 CLI bind files to each database before they can be used with that database. In a network environment, if you are using multiple clients that run on different operating systems, or are at different versions or service levels of DB2, you must bind the utilities once for each operating system and DB2-version combination. 41.2 Using Static SQL in CLI Applications For more information on using static SQL in CLI applications, see the Web page at: http://www.ibm.com/software/data/db2/udb/staticcli/ 41.3 Limitations of JDBC/ODBC/CLI Static Profiling JDBC/ODBC/CLI static profiling currently targets straightforward applications. It is not meant for complex applications with many functional components and complex program logic during execution. An SQL statement must have successfully executed for it to be captured in a profiling session. In a statement matching session, unmatched dynamic statements will continue to execute as dynamic JDBC/ODBC/CLI calls. An SQL statement must be identical character-by-character to the one that was captured and bound to be a valid candidate for statement matching. Spaces are significant: for example, "COL = 1" is considered different than "COL=1". Use parameter markers in place of literals to improve match hits. When executing an application with pre-bound static SQL statements, dynamic registers that control the dynamic statement behavior will have no effect on the statements that are converted to static. If an application issues DDL statements for objects that are referenced in subsequent DML statements, you will find all of these statements in the capture file. The JDBC/ODBC/CLI Static Profiling Bind Tool will attempt to bind them. The bind attempt will be successful with DBMSs that support the VALIDATE(RUN) bind option, but it fail with ones that do not. In this case, the application should not use Static Profiling. The Database Administrator may edit the capture file to add, change, or remove SQL statements, based on application-specific requirements. 41.4 ADT Transforms The following supercedes existing information in the book. There is a new descriptor type (smallint) SQL_DESC_USER_DEFINED_TYPE_CODE, with values: SQL_TYPE_BASE 0 (this is not a USER_DEFINED_TYPE) SQL_TYPE_DISTINCT 1 SQL_TYPE_STRUCTURED 2 This value can be queried with either SQLColAttribute or SQLGetDescField (IRD only). The following attributes are added to obtain the actual type names: SQL_DESC_REFERENCE_TYPE SQL_DESC_STRUCTURED_TYPE SQL_DESC_USER_TYPE The above values can be queried using SQLColAttribute or SQLGetDescField (IRD only). Add SQL_DESC_BASE_TYPE in case the application needs it. For example, the application may not recognize the structured type, but intends to fetch or insert it, and let other code deal with the details. Add a new connection attribute called SQL_ATTR_TRANSFORM_GROUP to allow an application to set the transform group (rather than use the SQL "SET CURRENT DEFAULT TRANSFORM GROUP" statement). Add a new statement/connection attribute called SQL_ATTR_RETURN_USER_DEFINED_TYPES that can be set or queried using SQLSetConnectAttr, which causes CLI to return the value SQL_DESC_USER_DEFINED_TYPE_CODE as a valid SQL type. This attribute is required before using any of the transforms. By default, the attribute is off, and causes the base type information to be returned as the SQL type. When enabled, SQL_DESC_USER_DEFINED_TYPE_CODE will be returned as the SQL_TYPE. The application is expected to check for SQL_DESC_USER_DEFINED_TYPE_CODE, and then to retrieve the appropriate type name. This will be available to SQLColAttribute, SQLDescribeCol, and SQLGetDescField. The SQLBindParameter does not give an error when you bind SQL_C_DEFAULT, because there is no code to allow SQLBindParameter to specify the type SQL_USER_DEFINED_TYPE. The standard default C types will be used, based on the base SQL type flowed to the server. For example: sqlrc = SQLBindParameter (hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 30, 0, &c2, 30, NULL); 41.5 Chapter 1. Introduction to CLI 41.5.1 Differences Between DB2 CLI and Embedded SQL Disregard the third item from the end of the list in the "Advantages of Using DB2 CLI" section. The correct information is as follows: DB2 CLI provides the ability to retrieve multiple rows and result sets generated from a stored procedure residing on a DB2 Universal Database server, a DB2 for MVS/ESA server (Version 5 or later), or an OS/400 server (Version 5 or later). Support for multiple result sets retrieval on OS/400 requires that PTF (Program Temporary Fix) SI01761 be applied to the server. Contact your OS/400 system administrator to ensure that this PTF has been applied. 41.6 Chapter 3. Using Advanced Features 41.6.1 Writing Multi-Threaded Applications The following should be added to the end of the "Multi-Threaded Mixed Applications" section: Anmerkung: It is recommended that you do not use the default stack size, but instead increase the stack size to at least 256 000. DB2 requires a minimum stack size of 256 000 when calling a DB2 function. You must ensure therefore, that you allocate a total stack size that is large enough for both your application and the minimum requirements for a DB2 function call. 41.6.2 Writing a DB2 CLI Unicode Application The following is a new section for this chapter. There are two main areas of support for DB2 CLI Unicode Applications: The addition of a set of functions that can accept Unicode string arguments in place of ANSI string arguments. The addition of new C and SQL data types to describe Unicode data. The following sections provide more information for both of these areas. To be considered a Unicode application, the application must set the SQL_ATTR_ANSI_APP connection attribute to SQL_AA_FALSE, before a connection is made. This will ensure that the CLI will use Unicode as the preferred method of communication between itself and the database. 41.6.2.1 Unicode Functions ODBC API functions have suffixes to indicate the format of their string arguments: those that accept unicode end in W; those that accept ANSI have no suffix. Anmerkung: ODBC adds equivalent functions with names that end in A, but these are not used by DB2 CLI. The following is a list of those functions that are available in DB2 CLI, which have both ANSI and Unicode Versions. SQLBrowseConnect SQLForeignKeys SQLPrimaryKeys SQLColAttribute SQLGetConnectAttr SQLProcedureColumns SQLColAttributes SQLGetConnectOption SQLProcedures SQLColumnPrivileges SQLGetCursorName SQLSetConnectAttr SQLColumns SQLGetDescField SQLSetConnectOption SQLConnect SQLGetDescRec SQLSetCursorName SQLDataSources SQLGetDiagField SQLSetDescField SQLDescribeCol SQLGetDiagRec SQLSetStmtAttr SQLDriverConnect SQLGetInfo SQLSpecialColumns SQLGetStmtAttr SQLStatistics SQLError SQLNativeSQL SQLTablePrivileges SQLExecDirect SQLPrepare SQLTables Unicode functions whose arguments are always the length of strings interpret these arguments as count-of-characters. Functions that return length information for server data also describe the display size and precision in terms of characters. When the length (transfer size of the data) could refer to string or nonstring data, the length is interpreted as a count of bytes. For example, SQLGetInfoW will still take the length as count-of-bytes, but SQLExecDirectW will use count-of-characters. CLI will return data from result sets in either Unicode or ANSI, depending on the application's binding. If an application binds to SQL_C_CHAR, the driver will convert SQL_WCHAR data to SQL_CHAR. An ODBC driver manager, if used, maps SQL_C_WCHAR to SQL_C_CHAR for ANSI drivers but does no mapping for Unicode drivers. 41.6.2.2 New datatypes and Valid Conversions Additional ODBC and CLI defined data types have been added to accommodate Unicode databases. These types supplement the set of C and SQL types that already exist. The new C type, SQL_C_WCHAR, indicates that the C buffer contains UCS-2 data in native endian format. The new SQL types, SQL_WCHAR, SQL_WVARCHAR, and SQL_WLONGVARCHAR, indicate that a particular column or parameter marker contains Unicode data. For DB2 Unicode databases, graphic columns will be described using the new types. Table 11. Supported Data Conversions S S Q Q L S S L _ Q Q _ C L L C S S _ _ _ _ Q Q T C C D S L L Y _ _ B S Q S _ _ P S S C B C S Q S S L S Q C C E Q Q L L L Q L S Q S Q _ Q L _ _ _ L L O O O L _ Q L Q L C L _ T T T _ S _ B B B _ C L _ L _ _ _ C Y Y I C Q C _ _ _ C _ _ C _ C T C _ P P M _ L _ L L L _ N C _ C _ I _ D E E E B _ D O O O B U _ W _ S N F O _ _ S I C B C C C I M C C L H Y L U D T T N _ C A A A G E H H O O I O B A I A A B H T T T I R A A N R N A L T M M R I A O O O N I SQL Data Type R R G T T T E E E P Y T R R R R T C BLOB X X D X CHAR D X X X X X X X X X X X X X CLOB D X X X DATE X X D X DBCLOB X X D X DECIMAL D X X X X X X X X X X DOUBLE X X X X X X D X X X FLOAT X X X X X X D X X X GRAPHIC X X D (Non-Unicode) GRAPHIC X X X X X X X X X X X X D X (Unicode) INTEGER X X D X X X X X X X LONG D X X VARCHAR LONG X X X D VARGRAPHIC (Non-Unicode) LONG X X X D VARGRAPHIC (Unicode) NUMERIC D X X X X X X X X REAL X X X X X D X X X SMALLINT X X X D X X X X X X BIGINT X X X X X X X X X D X TIME X X D X TIMESTAMP X X X X D VARCHAR D X X X X X X X X X X X X X VARGRAPHIC X X D (Non-Unicode) VARGRAPHIC X X X X X X X X X X X X D X (Unicode) Note: D Conversion is supported. This is the default conversion for the SQL data type. X All IBM DBMSs support the conversion. blank No IBM DBMS supports the conversion. o Data is not converted to LOB Locator types, rather locators represent a data value, refer to Using Large Objects for more information. o SQL_C_NUMERIC is only available on 32-bit Windows operating systems. 41.6.2.3 Obsolete Keyword/Patch Value Before Unicode applications were supported, applications that were written to work with single-byte character data could be made to work with double-byte graphic data by a series of cli ini file keywords, such as GRAPHIC=1,2 or 3, Patch2=7. These workarounds presented graphic data as character data, and also affected the reported length of the data. These keywords are no longer required for Unicode applications, and should not be used due to the risk of potential side effects. If it is not known if a particular application is a Unicode application, we suggest you try without any of the keywords that affect the handling of graphic data. 41.6.2.4 Literals in Unicode Databases In non-unicode databases, data in LONG VARGRAPHIC and LONG VARCHAR columns cannot be compared. Data in GRAPHIC/VARGRAPHIC and CHAR/VARCHAR columns can only be compared, or assigned to each other, using explicit cast functions since no implicit code page conversion is supported. This includes GRAPHIC/VARGRAPHIC and CHAR/VARCHAR literals where a GRAPHIC/VARGRAPHIC literal is differentiated from a CHAR/VARCHAR literal by a G prefix. For Unicode databases, casting between GRAPHIC/VARGRAPHIC and CHAR/VARCHAR literals is not required. Also, a G prefix is not required in front of a GRAPHIC/VARGRAPHIC literal. Provided at least one of the arguments is a literal, implicit conversions occur. This allows literals with or without the G prefix to be used within statements that use either SQLPrepareW() or SQLExecDirect(). Literals for LONG VARGRAPHICs still must have a G prefix. For more information, see "Casting Between Data Types" in "Chapter 3. Language Elements" of the SQL Reference. 41.6.2.5 New CLI Configuration Keywords The following three keywords have been added to avoid any extra overhead when Unicode applications connect to a database. DisableUnicode Keyword Description: Disables the underlying support for Unicode. db2cli.ini Keyword Syntax: DisableUnicode = 0 | 1 Default Setting: 0 (false) DB2 CLI/ODBC Settings Tab: This keyword cannot be set using the CLI/ODBC Settings notebook. The db2cli.ini file must be modified directly to make use of this keyword. Usage Notes: With Unicode support enabled, and when called by a Unicode application, CLI will attempt to connect to the database using the best client code page possible to ensure there is no unnecessary data loss due to code page conversion. This may increase the connection time as code pages are exchanged, or may cause code page conversions on the client that did not occur before this support was added. Setting this keyword to True (1) will cause all Unicode data to be converted to the application's local code page first, before the data is sent to the server. This can cause data loss for any data that cannot be represented in the local code page. ConnectCodepage Keyword Description: Specifies a specific code page to use when connecting to the data source to avoid extra connection overhead. db2cli.ini Keyword Syntax: ConnectCodepage = 0 | 1 | Default Setting: 0 DB2 CLI/ODBC Settings Tab: This keyword cannot be set using the CLI/ODBC Settings notebook. The db2cli.ini file must be modified directly to make use of this keyword. Usage Notes: Non-Unicode applications always connect to the database using the application's local code page, or the DB2Codepage environment setting. By default, CLI will ensure that Unicode applications will connect to Unicode databases using UTF-8 and UCS-2 code pages. The default for connecting to non-unicode databases is to use the databases's code page if the database server is running DB2 for Windows, DB2 for Unix or DB2 for OS/2. This ensures that there is no unnecessary data loss due to code page conversion. This keyword allows the user to specify the database's code page when connecting to a non-Unicode database in order to avoid any extra overhead on the connection. Specifying a value of 1 causes SQLDriverConnect() to return the correct value in the output connection string, so the value can be used on future SQLDriverConnect() calls. UnicodeServer Keyword Description: Indicates that the data source is a unicode server. Equivalent to setting ConnectCodepage=1208. db2cli.ini Keyword Syntax: UnicodeServer = 0 | 1 Default Setting: 0 DB2 CLI/ODBC Settings Tab: This keyword cannot be set using the CLI/ODBC Settings notebook. The db2cli.ini file must be modified directly to make use of this keyword. Usage Notes: This keyword is equivalent to ConnectCodepage=1208, and is added only for convenience. Set this keyword to avoid extra connect overhead when connecting to DB2 for OS/390 Version 7 or higher. There is no need to set this keyword for DB2 for Windows, DB2 for Unix or DB2 for OS/2 databases, since there is no extra processing required. 41.6.3 Microsoft Transaction Server (MTS) as Transaction Monitor The following corrects the default value for the DISABLEMULTITHREAD configuration keyword in the "Installation and Configuration" sub-section: DISABLEMULTITHREAD keyword (default 0) 41.6.4 Scrollable Cursors The following information should be added to the "Scrollable Cursors" section: 41.6.4.1 Server-side Scrollable Cursor Support for OS/390 The UDB client for the Unix, Windows, and OS/2 platforms supports updatable server-side scrollable cursors when run against OS/390 Version 7 databases. To access an OS/390 scrollable cursor on a three-tier environment, the client and the gateway must be running DB2 UDB Version 7.1, FixPak 3 or later. There are two application enablement interfaces that can access scrollable cursors: ODBC and JDBC. The JDBC interface can only access static scrollable cursors, while the ODBC interface can access static and keyset-driven server-side scrollable cursors. Cursor Attributes The table below lists the default attributes for OS/390 Version 7 cursors in ODBC. Tabelle 12. Default attributes for OS/390 cursors in ODBC Cursor Type Cursor Sensitivity Cursor Updatable Cursor Concurrency Cursor Scrollable forward-onlya unspecified non-updatable read-only concurrency non-scrollable static insensitive non-updatable read-only concurrency scrollable keyset-driven sensitive updatable values concurrency scrollable a Forward-only is the default behavior for a scrollable cursor without the FOR UPDATE clause. Specifying FOR UPDATE on a forward-only cursor creates an updatable, lock concurrency, non-scrollable cursor. Supported Fetch Orientations All ODBC fetch orientations are supported via the SQLFetchScroll or SQLExtendedFetch interfaces. Updating the Keyset-Driven Cursor A keyset-driven cursor is an updatable cursor. The CLI driver appends the FOR UPDATE clause to the query, except when the query is issued as a SELECT ... FOR READ ONLY query, or if the FOR UPDATE clause already exists. The keyset-driven cursor implemented in DB2 for OS/390 is a values concurrency cursor. A values concurrency cursor results in optimistic locking, where locks are not held until an update or delete is attempted. When an update or delete is attempted, the database server compares the previous values the application retrieved to the current values in the underlying table. If the values match, then the update or delete succeeds. If the values do not match, then the operation fails. If failure occurs, the application should query the values again and re-issue the update or delete if it is still applicable. An application can update a keyset-driven cursor in two ways: Issue an UPDATE WHERE CURRENT OF "" or DELETE WHERE CURRENT OF "" using SQLPrepare() with SQLExecute() or SQLExecDirect(). Use SQLSetPos() or SQLBulkOperations() to update, delete, or add a row to the result set. Anmerkung: Rows added to a result set via SQLSetPos() or SQLBulkOperations() are inserted into the table on the server, but are not added to the server's result set. Therefore, these rows are not updatable nor are they sensitive to changes made by other transactions. The inserted rows will appear, however, to be part of the result set, since they are cached on the client. Any triggers that apply to the inserted rows will appear to the application as if they have not been applied. To make the inserted rows updatable, sensitive, and to see the result of applicable triggers, the application must issue the query again to regenerate the result set. Troubleshooting for Applications Created Before Scrollable Cursor Support Since scrollable cursor support is new, some ODBC applications that were working with previous releases of UDB for OS/390 or UDB for Unix, Windows, and OS/2 may encounter behavioral or performance changes. This occurs because before scrollable cursors were supported, applications that requested a scrollable cursor would receive a forward-only cursor. To restore an application's previous behavior before scrollable cursor support, set the following configuration keywords in the db2cli.ini file: Tabelle 13. Configuration keyword values restoring application behavior before scrollable cursor support Configuration Keyword Setting Description PATCH2=6 Returns a message that scrollable cursors (both keyset-driven and static) are not supported. CLI automatically downgrades any request for a scrollable cursor to a forward-only cursor. DisableKeysetCursor=1 Disables both the server-side and client-side keyset-driven scrollable cursors. This can be used to force the CLI driver to give the application a static cursor when a keyset-driven cursor is requested. UseServerKeysetCursor=0 Disables the server-side keyset-driven cursor for applications that are using the client-side keyset-driven cursor library to simulate a keyset-driven cursor. Only use this option when problems are encountered with the server-side keyset-driven cursor, since the client-side cursor incurs a large amount of overhead and will generally have poorer performance than a server-side cursor. 41.6.5 Using Compound SQL The following note is missing from the book: Any SQL statement that can be prepared dynamically, other than a query, can be executed as a statement inside a compound statement. Note: Inside Atomic Compound SQL, savepoint, release savepoint, and rollback to savepoint SQL statements are also disallowed. Conversely, Atomic Compound SQL is disallowed in savepoint. 41.6.6 Using Stored Procedures 41.6.6.1 Privileges for building and debugging SQL and Java stored procedures The following privileges must be granted to users who want to build, debug, and run SQL stored procedures: db2 grant CONNECT on database to userid db2 grant IMPLICIT_SCHEMA on database to userid db2 grant BINDADD on database to userid db2 grant SELECT on SYSIBM.SYSDUMMY1 to userid db2 grant SELECT on SYSCAT.PROCEDURES to userid db2 grant UPDATE on DB2DBG.ROUTINE_DEBUG to userid The following privileges must be granted to users who want to build, debug, and run Java stored procedures: db2 grant CONNECT on database to userid db2 grant IMPLICIT_SCHEMA on database to userid db2 grant BINDADD on database to userid(required only if you build Java stored procedures with static SQL using SQLJ) db2 grant SELECT on SYSIBM.SYSDUMMY1 to userid db2 grant SELECT on SYSCAT.PROCEDURES to userid db2 grant UPDATE on DB2DBG.ROUTINE_DEBUG to userid To create the DB2DBG.ROUTINE_DEBUG table, issue the following command: db2 -tf sqllib/misc/db2debug.ddl For more information about debugging Java stored procedures, see the Application Development Guide. 41.6.6.2 Writing a Stored Procedure in CLI Following is an undocumented limitation on CLI stored procedures: If you are making calls to multiple CLI stored procedures, the application must close the open cursors from one stored procedure before calling the next stored procedure. More specifically, the first set of open cursors must be closed before the next stored procedure tries to open a cursor. 41.6.6.3 CLI Stored Procedures and Autobinding The following supplements information in the book: The CLI/ODBC driver will normally autobind the CLI packages the first time a CLI/ODBC application executes SQL against the database, provided the user has the appropriate privilege or authorization. Autobinding of the CLI packages cannot be performed from within a stored procedure, and therefore will not take place if the very first thing an application does is call a CLI stored procedure. Before running a CLI application that calls a CLI stored procedure against a new DB2 database, you must bind the CLI packages once with this command: UNIX db2 bind /@db2cli.lst blocking all Windows and OS/2 db2bind "%DB2PATH%\bnd\@db2cli.lst" blocking The recommended approach is to always bind these packages at the time the database is created to avoid autobind at runtime. Autobind can fail if the user does not have privilege, or if another application tries to autobind at the same time. 41.7 Chapter 4. Configuring CLI/ODBC and Running Sample Applications 41.7.1 Configuration Keywords 41.7.1.1 CURRENTFUNCTIONPATH Disregard the last paragraph in the CURRENTFUNCTIONPATH keyword. The correct information is as follows: This keyword is used as part of the process for resolving unqualified function and stored procedure references that may have been defined in a schema name other than the current user's schema. The order of the schema names determines the order in which the function and procedure names will be resolved. For more information on function and procedure resolution, refer to the SQL Reference. 41.7.1.2 SKIPTRACE The following describes this new configuration keyword: Keyword Description: Allows CLI applications to be excluded from the trace function. db2cli.ini Keyword Syntax: SKIPTRACE = 0 | 1 Default Setting: Do not skip the trace function. DB2 CLI/ODBC Settings Tab: This keyword cannot be set using the CLI/ODBC Settings notebook. The db2cli.ini file must be modified directly to make use of this keyword. Usage Notes: This keyword can improve performance by allowing the trace function to bypass CLI applications. Therefore, if the DB2 trace facility db2trc is turned on and this keyword is set to 1, the trace will not contain information from the execution of the CLI application. Turning SKIPTRACE on is recommended for production environments on the UNIX platform where trace information is not required. Test environments may benefit, however, from having trace output, so this keyword can be turned off (or left at its default setting) when detailed execution information is desired. SKIPTRACE must be set in the [COMMON] section of the db2cli.ini configuration file. 41.8 Chapter 5. DB2 CLI Functions 41.8.1 SQLBindFileToParam - Bind LOB File Reference to LOB Parameter The last parameter - IndicatorValue - in the SQLBindFileToParam() CLI function is currently documented as "output (deferred)". It should be "input (deferred)". 41.8.2 SQLColAttribute -- Return a Column Attribute The following updates are additions to the "Description" column for the SQL_DESC_AUTO_UNIQUE_VALUE and SQL_DESC_UPDATABLE arguments: SQL_DESC_AUTO_UNIQUE_VALUE SQL_FALSE is returned in NumericAttributePtr for all DB2 SQL data types. Currently DB2 CLI is not able to determine if a column is an identity column, therefore SQL_FALSE is always returned. This limitation does not fully conform to the ODBC specifications. Future versions of DB2 CLI for Unix and Windows servers will provide auto-unique support. SQL_DESC_UPDATABLE Indicates if the column data type is an updateable data type: SQL_ATTR_READWRITE_UNKNOWN is returned in NumericAttributePtr for all DB2 SQL data types. It is returned because DB2 CLI is not currently able to determine if a column is updateable. Future versions of DB2 CLI for Unix and Windows servers will be able to determine if a column is updateable. 41.8.3 SQLGetData - Get Data From a Column The following text replaces the current sentence that appears under the Explanation column for SQLSTATE 22007 of the SQLSTATEs table for SQLGetData: Conversion from a string to a datetime format was indicated, but an invalid string representation or value was specified, or the value was an invalid date. 41.8.4 SQLGetInfo - Get General Information The following corrects the information in the "Usage" section under "Information Returned by SQLGetInfo": The InfoType SQL_CURSOR_CLOSE_BEHAVIOR should be SQL_CLOSE_BEHAVIOR. The note for SQL_DATABASE_NAME (string) should be as follows: Anmerkung: This string is the same as that returned by the SELECT CURRENT SERVER statement on non-host systems. For host databases, such as DB2 for OS/390 or DB2 for OS/400, the string returned is the DCS database name that was provided when the CATALOG DCS DATABASE DIRECTORY command was issued at the DB2 Connect gateway. 41.8.5 SQLGetLength - Retrieve Length of A String Value The following corrects the footnote in "Table 113. SQLGetLength Arguments" : Note: a This is in characters for DBCLOB data. 41.8.6 SQLNextResult - Associate Next Result Set with Another Statement Handle The following text should be added to Chapter 5, "DB2 CLI Functions": 41.8.6.1 Purpose Specification: DB2 CLI 7.x 41.8.6.2 Syntax SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 SQLHSTMT StatementHandle2); 41.8.6.3 Function Arguments Tabelle 14. SQLNextResult Arguments Data Type Argument Use Description SQLHSTMT StatementHandle input Statement handle. SQLHSTMT StatementHandle input Statement handle. 41.8.6.4 Usage A stored procedure returns multiple result sets by leaving one or more cursors open after exiting. The first result set is always accessed by using the statement handle that called the stored procedure. If multiple result sets are returned, either SQLMoreResults() or SQLNextResult() can be used to describe and fetch the result set. SQLMoreResults() is used to close the cursor for the first result set and allow the next result set to be processed, whereas SQLNextResult() moves the next result set to StatementHandle2, without closing the cursor on StatementHandle1. Both functions return SQL_NO_DATA_FOUND if there are no result sets to be fetched. Using SQLNextResult() allows result sets to be processed in any order once they have been transferred to other statement handles. Mixed calls to SQLMoreResults() and SQLNextResult() are allowed until there are no more cursors (open result sets) on StatementHandle1. When SQLNextResult() returns SQL_SUCCESS, the next result set is no longer associated with StatementHandle1. Instead, the next result set is associated with StatementHandle2, as if a call to SQLExecDirect() had just successfully executed a query on StatementHandle2. The cursor, therefore, can be described using SQLNumResultSets(), SQLDescribeCol(), or SQLColAttribute(). After SQLNextResult() has been called, the result set now associated with StatementHandle2 is removed from the chain of remaining result sets and cannot be used again in either SQLNextResult() or SQLMoreResults(). This means that for 'n' result sets, SQLNextResult() can be called successfully at most 'n-1' times. If SQLFreeStmt() is called with the SQL_CLOSE option, or SQLFreeHandle() is called with HandleType set to SQL_HANDLE_STMT, all pending result sets on this statement handle are discarded. SQLNextResult() returns SQL_ERROR if StatementHandle2 has an open cursor or StatementHandle1 and StatementHandle2 are not on the same connection. If any errors or warnings are returned, SQLError() must always be called on StatementHandle1. Anmerkung: SQLMoreResults() also works with a parameterized query with an array of input parameter values specified with SQLParamOptions() and SQLBindParameter(). SQLNextResult(), however, does not support this. 41.8.6.5 Return Codes SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_STILL_EXECUTING SQL_ERROR SQL_INVALID_HANDLE SQL_NO_DATA_FOUND 41.8.6.6 Diagnostics Tabelle 15. SQLNextResult SQLSTATEs SQLSTATE Description Explanation 40003 08S01 Communication Link failure. The communication link between the application and data source failed before the function completed. 58004 Unexpected system failure. Unrecoverable system error. HY001 Memory allocation failure. DB2 CLI is unable to allocate the memory required to support execution or completion of the function. HY010 Function sequence error. The function was called while in a data-at-execute (SQLParamData(), SQLPutData()) operation. StatementHandle2 has an open cursor associated with it. The function was called while within a BEGIN COMPOUND and END COMPOUND SQL operation. HY013 Unexpected memory handling error. DB2 CLI was unable to access the memory required to support execution or completion of the function. HYT00 Time-out expired. The time-out period expired before the data source returned the result set. Time-outs are only supported on non-multitasking systems such as Windows 3.1 and Macintosh System 7. The time-out period can be set using the SQL_ATTR_QUERY_TIMEOUT attribute for SQLSetConnectAttr(). 41.8.6.7 Restrictions Only SQLMoreResults() can be used for parameterized queries. 41.8.6.8 References "SQLMoreResults - Determine If There Are More Result Sets" on page 535 "Returning Result Sets from Stored Procedures" on page 120 41.8.7 SQLSetEnvAttr - Set Environment Attribute The following is an additional environment attribute that belongs in the "Environment Attributes" section under "Usage": SQL_ATTR_KEEPCTX A 32-bit integer value that specifies whether the context should be kept when the environment handle is freed. This attribute should be set at the environment level. It can be used by mutli-threaded applications to manage contexts associated with each thread's connections, database resources, and data transmission. The possible values are: SQL_FALSE: The application will release the context when a thread's environment handle is freed. This is the default value. SQL_TRUE: The context will remain valid when a thread's environment handle is freed, making the context available for other existing threads on the same connection. Setting SQL_ATTR_KEEPCTX to SQL_TRUE may resolve some problems associated with conflicting contexts in multi-threaded applications. Anmerkung: This is an IBM extension. 41.8.8 SQLSetStmtAttr -- Set Options Related to a Statement The following replaces the existing information for the statement attribute SQL_ATTR_QUERY_TIMEOUT: SQL_ATTR_QUERY_TIMEOUT (DB2 CLI v2) A 32-bit integer value that is the number of seconds to wait for an SQL statement to execute between returning to the application. This option can be set and used to terminate long running queries. The value of 0 means there is no time out. DB2 CLI supports non-zero values for all platforms that support multithreading. 41.9 Appendix C. DB2 CLI and ODBC The following is a new section added to this appendix. 41.9.1 ODBC Unicode Applications A Unicode ODBC application sends and retrieves character data primarily in UCS-2. It does this by calling Unicode versions of the ODBC functions (those with a 'W' suffix) and by indicating Unicode data types. The application does not explicitly specify a local code page. The application can still call the ANSI functions and pass local code page strings. For example, the application may call SQLConnectW() and pass the DSN, User ID and Password as Unicode arguments. It may then call SQLExecDirectW() and pass in a Unicode SQL statement string, and then bind a combination of ANSI local code page buffers (SQL_C_CHAR) and Unicode buffers (SQL_C_WCHAR). The database data types may or may not be Unicode. If a CLI application calls SQLSetConnectAttr with SQL_ATTR_ANSI_APP set to SQL_AA_FALSE or calls SQLConnectW without setting the value of SQL_ATTR_ANSI_APP, then the application is considered a Unicode application. This means all CHAR data is sent and received from a Unicode database in UTF-8 format. The application can then fetch CHAR data into SQL_C_CHAR buffers in local code page (with possible data loss), or into SQL_C_WCHAR buffers in UCS-2 without any data loss. If the application does not do either of the two calls above, CHAR data is converted to the applications local code page at the server. This means CHAR data fetched into SQL_C_WCHAR may suffer data loss. If the DB2CODEPAGE instance variable is set (using db2set) to code page 1208 (UTF-8), the application will receive all CHAR data in UTF-8 since this is now the local code page. The application must also ensure that all CHAR input data is also in UTF-8. ODBC also assumes that all SQL_C_WCHAR data is in the native endian format. CLI will perform any required byte-reversal for SQL_C_WCHAR. 41.9.1.1 ODBC Unicode Versus Non-Unicode Applications This release of DB2 Universal Database contains the SQLConnectW() API. A Unicode driver must export SQLConnectW in order to be recognized as a Unicode driver by the driver manager. It is important to note that many ODBC applications (such as Microsoft Access and Visual Basic) call SQLConnectW(). In previous releases of DB2 Universal Database, DB2 CLI has not supported this API, and thus was not recognized as a Unicode driver by the ODBC driver manager. This caused the ODBC driver manager to convert all Unicode data to the application's local code page. With the added support of the SQLConnectW() function, these applications will now connect as Unicode applications and DB2 CLI will take care of all required data conversion. DB2 CLI now accepts Unicode APIs (with a suffix of "W") and regular ANSI APIs. ODBC defines a set of functions with a suffix of "A", but the driver manager does not pass ANSI functions with the "A" suffix to the driver. Instead, it converts these functions to ANSI function calls without the suffix, and then passes them to the driver. An ODBC application that calls the SQLConnectW() API is considered a Unicode application. Since the ODBC driver manager will always call the SQLConnectW() API regardless of what version the application called, ODBC introduced the SQL_ATTR_ANSI_APP connect attribute to notify the driver if the application should be considered an ANSI or UNICODE application. If SQL_ATTR_ANSI_APP is set to SQL_AA_TRUE, the DB2 CLI converts all Unicode data to the local code page before sending it to the server. 41.10 Appendix D. Extended Scalar Functions 41.10.1 Date and Time Functions The following functions are missing from the Date and Time Functions section of Appendix D "Extended Scalar Functions": DAYOFWEEK_ISO( date_exp ) Returns the day of the week in date_exp as an integer value in the range 1-7, where 1 represents Monday. Note the difference between this function and the DAYOFWEEK() function, where 1 represents Sunday. WEEK_ISO( date_exp ) Returns the week of the year in date_exp as an integer value in the range of 1-53. Week 1 is defined as the first week of the year to contain a Thursday. Therefore, Week1 is equivalent to the first week that contains Jan 4, since Monday is considered to be the first day of the week. Note that WEEK_ISO() differs from the current definition of WEEK(), which returns a value up to 54. For the WEEK() function, Week 1 is the week containing the first Saturday. This is equivalent to the week containing Jan. 1, even if the week contains only one day. DAYOFWEEK_ISO() and WEEK_ISO() are automatically available in a database created in Version 7. If a database was created prior to Version 7, these functions may not be available. To make DAYOFWEEK_ISO() and WEEK_ISO() functions available in such a database, use the db2updb system command. For more information about db2updb, see the "Command Reference" section in these Release Notes. 41.11 Appendix K. Using the DB2 CLI/ODBC/JDBC Trace Facility The sections within this appendix have been updated. See the "Traces" chapter in the Troubleshooting Guide for the most up-to-date information on this trace facility. Fehlernachrichten 42.1 Aktualisierung verfügbar Das Handbuch Fehlernachrichten wurde für FixPak 4 aktualisiert, und die aktuelle PDF-Version kann online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. Die gesamte aktualisierte Dokumentation ist auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. 42.2 Nachrichtenaktualisierungen Die folgende Tabelle gibt die Nachrichten an, die seit der letzten Veröffentlichung des Handbuchs "Fehlernachrichten" geändert wurden. Anweisungen zur Onlineanzeige des Nachrichtentexts finden Sie im vorliegenden Dokument. Tabelle 16. Neue und geänderte Nachrichten Nachrichtencode Art der Änderung SQL2554N Neuer Ursachencode SQL0490N Neue Nachricht SQL20214N Neue Nachricht SQL20211N Neue Nachricht Die folgende Tabelle gibt die SQLSTATE-Werte an, die seit der letzten Veröffentlichung des Handbuchs "Fehlernachrichten" geändert wurden. Anweisungen zur Onlineanzeige des Nachrichtentexts finden Sie im vorliegenden Dokument. Tabelle 17. Neue SQLSTATE-Nachrichten SQLSTATE-Wert Bedeutung 428B7 Eine in einer SQL-Anweisung angegebene Zahl liegt außerhalb des gültigen Bereichs. 428FI ORDER OF wurde angegeben, aber die Tabellenbezeichnung enthält keine Klausel ORDER BY. 428FJ ORDER BY ist nicht zulässig in der äußeren Gesamtauswahl einer Sicht oder Übersichtstabelle. 42.3 Lesen des Nachrichtentexts (online) Es wird davon ausgegangen, dass Sie mit den Funktionen des Betriebssystems vertraut sind, auf dem DB2 installiert ist. Auf folgende DB2-Nachrichten kann über die Befehlszeile des Betriebssystems zugegriffen werden: Präfix Beschreibung ASN Von DB2 Replikation generierte Nachrichten CCA Von Client-Konfiguration - Unterstützung generierte Nachrichten CLI Von Call Level Interface generierte Nachrichten DBA Von der Steuerzentrale und dem DBA-Dienstprogramm generierte Nachrichten DBI Bei der Installation und Konfiguration generierte Nachrichten DB2 Vom Befehlszeilenprozessor generierte Nachrichten DWC Von Data Warehouse-Zentrale generierte Nachrichten FLG Von Information Catalog Manager generierte Nachrichten und Ursachencodes GSE Von DB2 Spatial Extender generierte Nachrichten SAT Von DB2 Satellite generierte Nachrichten SPM Vom Synchronisationspunktmanager generierte Nachrichten SQJ Von SQLJ (Embedded SQL in Java) generierte Nachrichten SQL Vom Datenbankmanager beim Feststellen einer Warnungs- oder Fehlerbedingung generierte Nachrichten Darüber hinaus ist der den SQLSTATE-Werten zugeordnete Nachrichtentext online verfügbar. Eine Nachrichten-ID besteht aus dem Nachrichtenpräfix, das sich aus drei Zeichen (siehe Liste oben) zusammensetzt, und einer Nachrichtennummer aus vier oder fünf Ziffern. Der Buchstabe am Ende einer Nachrichten-ID, der die Wertigkeit der Fehlernachricht angibt, ist wahlfrei. Zum Zugreifen auf den Hilfetext für eine dieser Fehlernachrichten geben Sie an der Eingabeaufforderung des Betriebssystems Folgendes ein: db2 "? XXXnnnnn" Dabei ist XXX das Nachrichtenpräfix und nnnnn die Nachrichtennummer. Anmerkung: Bei der Nachrichten-ID, die als Parameter des Befehls db2 akzeptiert wird, erfolgt keine Unterscheidung zwischen Groß-/Kleinschreibung, und der abschließende Buchstabe ist nicht erforderlich. Folgende Befehle führen daher zu demselben Ergebnis: db2 "? SQL0000N" db2 "? sql0000" db2 "? SQL0000n" Wenn der Nachrichtentext zu lang für Ihre Anzeige ist, können Sie folgenden Befehl verwenden (auf UNIX-Systemen und anderen Systemen, die more unterstützen): db2 "? XXXnnnnn" | more Hilfe kann auch über den interaktiven Eingabemodus aufgerufen werden. Durch Eingabe des folgenden Befehls an der Eingabeaufforderung des Betriebssystems gelangen Sie in den interaktiven Eingabemodus: db2 Im interaktiven Eingabemodus können Sie Befehle des Befehlszeilenprozessors an folgender Eingabeaufforderung eingeben: db2 => Zum Aufrufen der Hilfe für DB2-Nachrichten in diesem Modus geben Sie an der Eingabeaufforderung Folgendes ein: ? XXXnnnnn Anmerkung: Wenn der Nachrichtentext länger als die Anzeige ist, können Benutzer mit nicht grafischen Workstations die Ausgabe über eine Pipe an das Programm more (auf UNIX-Systemen) leiten oder in eine Datei umleiten, die dann angezeigt werden kann. Der Nachrichtentext, der einem SQLSTATE-Wert zugeordnet ist, kann durch folgenden Befehl abgerufen werden: db2 "? nnnnn" oder db2 "? nn" Dabei ist nnnnn ein fünfstelliger SQLSTATE-Wert (alphanumerisch), und nn ist der zweistellige SQLSTATE-Klassencode (die ersten beiden Stellen des SQLSTATE-Werts). SQL Reference 43.1 SQL Reference - Aktualisierung verfügbar Das Handbuch SQL Reference wurde aktualisiert, und die aktuelle PDF-Version kann online über http://www.ibm.com/software/data/db2/udb/winos2unix/support heruntergeladen werden. Die vorliegenden Informationen gelten zusätzlich zum aktualisierten Handbuch. Die gesamte aktualisierte Dokumentation ist auf CD verfügbar. Diese CD kann über den DB2-Service unter Angabe der PTF-Nummer U478862 bestellt werden. Informationen zur Kontaktaufnahme mit dem DB2-Service finden Sie unter http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. 43.2 Enabling the New Functions and Procedures Version 7 FixPaks deliver new SQL built-in scalar functions. Refer to the SQL Reference updates for a description of these new functions. The new functions are not automatically enabled on each database when the database server code is upgraded to the new service level. To enable these new functions, the system administrator must issue the command db2updv7, specifying each database at the server. This command makes an entry in the database that ensures that database objects created prior to executing this command use existing function signatures that may match the new function signatures. For information on enabling the MQSeries functions (those defined in the DB2MQ schema), see MQSeries. 43.3 SET SERVER OPTION - Documentation Error The Notes section for the SET SERVER OPTION statement contains misleading information. The current note reads: SET SERVER OPTION currently only supports the password, fold_id, and fold_pw server options. This statement is not true. SET SERVER OPTION supports all server options, including server options for wrappers not provided by IBM. The note should be ignored. 43.4 Correction to CREATE TABLESPACE Container-clause, and Container-string Information Remote resources (such as LAN-redirected drives or NFS-mounted file systems) are currently supported only when using NEC iStorage S4100 and S2100, Network Appliance Filers, IBM iSCSI, or IBM Network Attached Storage. This is a correction to the current documentation, which indicates that remote resources are unsupported. 43.5 Correction to CREATE TABLESPACE EXTENTSIZE information The CREATE TABLESPACE statement cannot accept an EXTENTSIZE value specified in gigabytes. 43.6 GRANT (Table, View, or Nickname Privileges) - Documentation Error The Notes section for the GRANT (Table, View, or Nickname Privileges) statement contains a misleading bullet. The current note reads: DELETE, INSERT, SELECT and UPDATE privileges are not defined for nicknames since operations on nicknames depend on the privileges of the authorization ID used at the data source when the statement referencing the nickname is processed. This text should be ignored. As the remaining text in the section is accurate without it. 43.7 MQSeries Information 43.7.1 Scalar Functions 43.7.1.1 MQPUBLISH >>-MQPUBLISH--(-------------------------------------------------> >--+---------------------------------------------+--msg-data----> '-publisher-service--,--+-------------------+-' '-service-policy--,-' >--+---------------------------------+--)---------------------->< '-,--topic--+-------------------+-' | (1) | '-,--correl-id------' Anmerkungen: The correl-id cannot be specified unless a service and a policy are previously defined. The schema is DB2MQ. The MQPUBLISH function publishes data to MQSeries. This function requires the installation of either MQSeries Publish/Subscribe or MQSeries Integrator. Please consult www.ibm.com/software/MQSeries for further details. The MQPUBLISH function publishes the data contained in msg-data to the MQSeries publisher specified in publisher-service, and using the quality of service policy defined by service-policy. An optional topic for the message can be specified, and an optional user-defined message correlation identifier may also be specified. The function returns a value of '1' if successful or a '0' if unsuccessful. publisher-service A string containing the logical MQSeries destination where the message is to be sent. If specified, the publisher-service must refer to a publisher Service Point defined in the AMT.XML repository file. A service point is a logical end-point from which a message is sent or received. Service point definitions include the name of the MQSeries Queue Manager and Queue. See the MQSeries Application Messaging Interface for further details. If publisher-service is not specified, then the DB2.DEFAULT.PUBLISHER will be used. The maximum size of publisher-service is 48 bytes. service-policy A string containing the MQSeries AMI Service Policy to be used in handling of this message. If specified, the service-policy must refer to a Policy defined in the AMT.XML repository file. A Service Policy defines a set of quality of service options that should be applied to this messaging operation. These options include message priority and message persistence. See the MQSeries Application Messaging Interface manual for further details. If service-policy is not specified, then the default DB2.DEFAULT.POLICY will be used. The maximum size of service-policy is 48 bytes. msg-data A string expression containing the data to be sent via MQSeries. The maximum size if the string of type VARCHAR is 4000 bytes. If the string is a CLOB, it can be up to 1MB in size. topic A string expression containing the topic for the message publication. If no topic is specified, none will be associated with the message. The maximum size of topic is 40 bytes. Multiple topics can be specified in one string (up to 40 characters long). Each topic must be separated by a colon. For example, "t1:t2:the third topic" indicates that the message is associated with all three topics: t1, t2, and "the third topic". correl-id An optional string expression containing a correlation identifier to be associated with this message. The correl-id is often specified in request and reply scenarios to associate requests with replies. If not specified, no correlation id will be added to the message. The maximum size of correl-id is 24 bytes. Examples Example 1: This example publishes the string "Testing 123" to the default publisher service (DB2.DEFAULT.PUBLISHER) using the default policy (DB2.DEFAULT.POLICY). No correlation identifier or topic is specified for the message. VALUES MQPUBLISH('Testing 123') Example 2: This example publishes the string "Testing 345" to the publisher service "MYPUBLISHER" under the topic "TESTS". The default policy is used and no correlation identifier is specified. VALUES MQPUBLISH('MYPUBLISHER','Testing 345', 'TESTS') Example 3: This example publishes the string "Testing 678" to the publisher service "MYPUBLISHER" using the policy "MYPOLICY" with a correlation identifier of "TEST1". The message is published with topic "TESTS". VALUES MQPUBLISH('MYPUBLISHER','MYPOLICY','Testing 678','TESTS','TEST1') Example 4: This example publishes the string "Testing 901" to the publisher service "MYPUBLISHER" under the topic "TESTS" using the default policy (DB2.DEFAULT.POLICY) and no correlation identifier. VALUES MQPUBLISH('Testing 901','TESTS') All examples return the value '1' if successful. 43.7.1.2 MQREADCLOB >>-MQREADCLOB--(--+----------------------------------------+----> '-receive-service--+-------------------+-' '-,--service-policy-' >--)----------------------------------------------------------->< The schema is DB2MQ. The MQREADCLOB function returns a message from the MQSeries location specified by receive-service, using the quality of service policy defined in service-policy. Executing this operation does not remove the message from the queue associated with receive-service, but instead returns the message at the head of the queue. The return value is a CLOB of 1MB maximum length, containing the message. If no messages are available to be returned, a NULL is returned. receive-service A string containing the logical MQSeries destination from where the message is to be received. If specified, the receive-service must refer to a Service Point defined in the AMT.XML repository file. A service point is a logical end-point from where a message is sent or received. Service points definitions include the name of the MQSeries Queue Manager and Queue. See the MQSeries Application Messaging Interface for further details. If receive-service is not specified, then the DB2.DEFAULT.SERVICE will be used. The maximum size of receive-service is 48 bytes. service-policy A string containing the MQSeries AMI Service Policy used in handling this message. If specified, the service-policy must refer to a Policy defined in the AMT.XML repository file. A Service Policy defines a set of quality of service options that should be applied to this messaging operation. These options include message priority and message persistence. See the MQSeries Application Messaging Interface manual for further details. If service-policy is not specified, then the default DB2.DEFAULT.POLICY will be used. The maximum size of service-policy is 48 bytes. Examples: Example 1: This example reads the message at the head of the queue specified by the default service (DB2.DEFAULT.SERVICE), using the default policy (DB2.DEFAULT.POLICY). VALUES MQREADCLOB() Example 2: This example reads the message at the head of the queue specified by the service "MYSERVICE" using the default policy (DB2.DEFAULT.POLICY). VALUES MQREADCLOB('MYSERVICE') Example 3: This example reads the message at the head of the queue specified by the service "MYSERVICE", and using the policy "MYPOLICY". VALUES MQREADCLOB('MYSERVICE','MYPOLICY') All of these examples return the contents of the message as a CLOB with a maximum size of 1MB, if successful. If no messages are available, then a NULL is returned. 43.7.1.3 MQRECEIVECLOB >>-MQRECEIVECLOB------------------------------------------------> >--(--+----------------------------------------------------------+--)->< '-receive-service--+-------------------------------------+-' '-,--service-policy--+--------------+-' '-,--correl-id-' The schema is DB2MQ. The MQRECEIVECLOB function returns a message from the MQSeries location specified by receive-service, using the quality of service policy service-policy. Performing this operation removes the message from the queue associated with receive-service. If the correl-id is specified, then the first message with a matching correlation identifier will be returned. If correl-id is not specified, then the message at the head of the queue will be returned. The return value is a CLOB with a maximum length of 1MB containing the message. If no messages are available to be returned, a NULL is returned. receive-service A string containing the logical MQSeries destination from which the message is received. If specified, the receive-service must refer to a Service Point defined in the AMT.XML repository file. A service point is a logical end-point from which a message is sent or received. Service points definitions include the name of the MQSeries Queue Manager and Queue. See the MQSeries Application Messaging Interface for further details. If receive-service is not specified, then the DB2.DEFAULT.SERVICE is used. The maximum size of receive-service is 48 bytes. service-policy A string containing the MQSeries AMI Service Policy to be used in the handling of this message. If specified, the service-policy must refer to a Policy defined in the AMT.XML repository file 1 . If service-policy is not specified, then the default DB2.DEFAULT.POLICY is used. The maximum size of service-policy is 48 bytes. correl-id A string containing an optional correlation identifier to be associated with this message. The correl-id is often specified in request and reply scenarios to associate requests with replies. If not specified, no correlation id will be used. The maximum size of correl-id is 24 bytes. Examples: Example 1: This example receives the message at the head of the queue specified by the default service (DB2.DEFAULT.SERVICE), using the default policy (DB2.DEFAULT.POLICY). VALUES MQRECEIVECLOB() Example 2: This example receives the message at the head of the queue specified by the service "MYSERVICE" using the default policy (DB2.DEFAULT.POLICY). VALUES MQRECEIVECLOB('MYSERVICE') Example 3: This example receives the message at the head of the queue specified by the service "MYSERVICE" using the policy "MYPOLICY". VALUES MQRECEIVECLOB('MYSERVICE','MYPOLICY') Example 4: This example receives the first message with a correlation id that matches '1234' from the head of the queue specified by the service "MYSERVICE" using the policy "MYPOLICY". VALUES MQRECEIVECLOB('MYSERVICE',MYPOLICY','1234') All these examples return the contents of the message as a CLOB with a maximum size of 1MB, if successful. If no messages are available, a NULL will be returned. 43.7.1.4 MQSEND >>-MQSEND--(--+----------------------------------------+--------> '-send-service--,--+-------------------+-' '-service-policy--,-' >--msg-data--+-------------------+--)-------------------------->< | (1) | '-,--correl-id------' Anmerkungen: The correl-id cannot be specified unless a service and a policy are previously defined. The schema is DB2MQ. The MQSEND function sends the data contained in msg-data to the MQSeries location specified by send-service, using the quality of service policy defined by service-policy. An optional user defined message correlation identifier may be specified by correl-id. The function returns a value of '1' if successful or a '0' if unsuccessful. msg-data A string expression containing the data to be sent via MQSeries. The maximum size is 4000 bytes if the data is of type VARCHAR, and 1MB if the data is of type CLOB. send-service A string containing the logical MQSeries destination where the message is to be sent. If specified, the send-service refers to a service point defined in the AMT.XML repository file. A service point is a logical end-point from which a message may be sent or received. Service point definitions include the name of the MQSeries Queue Manager and Queue. See the MQSeries Application Messaging Interface manual for further details. If send-service is not specified, then the value of DB2.DEFAULT.SERVICE is used. The maximum size of send-service is 48 bytes. service-policy A string containing the MQSeries AMI Service Policy used in handling of this message. If specified, the service-policy must refer to a service policy defined in the AMT XML repository file. A Service Policy defines a set of quality of service options that should be applied to this messaging operation. These options include message priority and message persistence. See the MQSeries Application Messaging Interface manual for further details. If service-policy is not specified, then a default value of DB2.DEFAULT.POLICY will be used. The maximum size of service-policy is 48 bytes. correl-id An optional string containing a correlation identifier associated with this message. The correl-id is often specified in request and reply scenarios to associate requests with replies. If not specified, no correlation id will be sent. The maximum size of correl-id is 24 bytes. Examples: Example 1: This example sends the string "Testing 123" to the default service (DB2.DEFAULT.SERVICE), using the default policy (DB2.DEFAULT.POLICY), with no correlation identifier. VALUES MQSEND('Testing 123') Example 2: This example sends the string "Testing 345" to the service "MYSERVICE", using the policy "MYPOLICY", with no correlation identifier. VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 345') Example 3: This example sends the string "Testing 678" to the service "MYSERVICE", using the policy "MYPOLICY", with correlation identifier "TEST3". VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 678','TEST3') Example 4: This example sends the string "Testing 901" to the service "MYSERVICE", using the default policy (DB2.DEFAULT.POLICY), and no correlation identifier. VALUES MQSEND('MYSERVICE','Testing 901') All examples return a scalar value of '1' if successful. 43.7.2 Table Functions 43.7.2.1 MQREADALLCLOB >>-MQREADALLCLOB--(---------------------------------------------> >--+----------------------------------------+--+----------+-----> '-receive-service--+-------------------+-' '-num-rows-' '-,--service-policy-' >--)----------------------------------------------------------->< The schema is DB2MQ. The MQREADALLCLOB function returns a table containing the messages and message metadata from the MQSeries location specified by receive-service, using the quality of service policy service-policy. Performing this operation does not remove the messages from the queue associated with receive-service. If num-rows is specified, then a maximum of num-rows messages will be returned. If num-rows is not specified, then all available messages will be returned. The table returned contains the following columns: MSG - a CLOB column containing the contents of the MQSeries message. CORRELID - a VARCHAR(24) column holding a correlation ID used to relate messages. TOPIC - a VARCHAR(40) column holding the topic that the message was published with, if available. QNAME - a VARCHAR(48) column holding the queue name where the message was received. MSGID - a CHAR(24) column holding the assigned MQSeries unique identifier for this message. MSGFORMAT - a VARCHAR(8) column holding the format of the message, as defined by MQSeries. Typical strings have an MQSTR format. receive-service A string containing the logical MQSeries destination from which the message is read. If specified, the receive-service must refer to a service point defined in the AMT.XML repository file. A service point is a logical end-point from which a message is sent or received. Service point definitions include the name of the MQSeries Queue Manager and Queue. See the MQSeries Application Messaging Interface for further details. If receive-service is not specified, then the DB2.DEFAULT.SERVICE will be used. The maximum size of receive-service is 48 bytes. service-policy A string containing the MQSeries AMI Service Policy used in the handling of this message. If specified, the service-policy refers to a Policy defined in the AMT XML repository file. A service policy defines a set of quality of service options that should be applied to this messaging operation. These options include message priority and message persistence. See the MQSeries Application Messaging Interface manual for further details. If service-policy is not specified, then the default DB2.DEFAULT.POLICY will be used. The maximum size of service-policy is 48 bytes. num-rows A positive integer containing the maximum number of messages to be returned by the function. Examples: Example 1: This example receives all the messages from the queue specified by the default service (DB2.DEFAULT.SERVICE), using the default policy (DB2.DEFAULT.POLICY). The messages and all the metadata are returned as a table. SELECT * FROM table (MQREADALLCLOB()) T Example 2: This example receives all the messages from the head of the queue specified by the service MYSERVICE, using the default policy (DB2.DEFAULT.POLICY). Only the MSG and CORRELID columns are returned. SELECT T.MSG, T.CORRELID FROM table (MQREADALLCLOB('MYSERVICE')) T Example 3: This example reads the head of the queue specified by the default service (DB2.DEFAULT.SERVICE), using the default policy (DB2.DEFAULT.POLICY). Only messages with a CORRELID of '1234' are returned. All columns are returned. SELECT * FROM table (MQREADALLCLOB()) T WHERE T.CORRELID = '1234' Example 4: This example receives the first 10 messages from the head of the queue specified by the default service (DB2.DEFAULT.SERVICE), using the default policy (DB2.DEFAULT.POLICY). All columns are returned. SELECT * FROM table (MQREADALLCLOB(10)) T 43.7.2.2 MQRECEIVEALLCLOB >>-MQRECEIVEALLCLOB--(------------------------------------------> >--+----------------------------------------------------------+--> '-receive-service--+-------------------------------------+-' '-,--service-policy--+--------------+-' '-,--correl-id-' >--+-----------------+--)-------------------------------------->< '-+---+--num-rows-' '-,-' The schema is DB2MQ. The MQRECEIVEALLCLOB function returns a table containing the messages and message metadata from the MQSeries location specified by receive-service, using the quality of service policy service-policy. Performing this operation removes the messages from the queue associated with receive-service. If a correl-id is specified, then only those messages with a matching correlation identifier will be returned. If correl-id is not specified, then the message at the head of the queue will be returned. If num-rows is specified, then a maximum of num-rows messages will be returned. If num-rows is not specified, then all available messages are returned. The table returned contains the following columns: MSG - a CLOB column containing the contents of the MQSeries message. CORRELID - a VARCHAR(24) column holding a correlation ID used to relate messages. TOPIC - a VARCHAR(40) column holding the topic that the message was published with, if available. QNAME - a VARCHAR(48) column holding the queue name where the message was received. MSGID - a CHAR(24) column holding the assigned MQSeries unique identifier for this message. MSGFORMAT - a VARCHAR(8) column holding the format of the message, as defined by MQSeries. Typical strings have an MQSTR format. receive-service A string containing the logical MQSeries destination from which the message is received. If specified, the receive-service must refer to a service point defined in the AMT.XML repository file. A service point is a logical end-point from which a message is sent or received. Service point definitions include the name of the MQSeries Queue Manager and Queue. See the MQSeries Application Messaging Interface manual for further details. If receive-service is not specified, then the DB2.DEFAULT.SERVICE will be used. The maximum size of receive-service is 48 bytes. service-policy A string containing the MQSeries AMI Service Policy used in the handling of this message. If specified, the service-policy refers to a Policy defined in the AMT XML repository file. A service policy defines a set of quality of service options that should be applied to this messaging operation. These options include message priority and message persistence. See the MQSeries Application Messaging Interface manual for further details. If service-policy is not specified, then the default DB2.DEFAULT.POLICY will be used. The maximum size of service-policy is 48 bytes. correl-id An optional string containing a correlation identifier associated with this message. The correl-id is often specified in request and reply scenarios to associate requests with replies. If not specified, no correlation id is specified. The maximum size of correl-id is 24 bytes. num-rows A positive integer containing the maximum number of messages to be returned by the function. Examples: Example 1: This example receives all the messages from the queue specified by the default service (DB2.DEFAULT.SERVICE), using the default policy (DB2.DEFAULT.POLICY). The messages and all the metadata are returned as a table. SELECT * FROM table (MQRECEIVEALLCLOB()) T Example 2: This example receives all the messages from the head of the queue specified by the service MYSERVICE, using the default policy (DB2.DEFAULT.POLICY). Only the MSG and CORRELID columns are returned. SELECT T.MSG, T.CORRELID FROM table (MQRECEIVEALLCLOB('MYSERVICE')) T Example 3: This example receives all of the message from the head of the queue specified by the service "MYSERVICE", using the policy "MYPOLICY". Only messages with a CORRELID of '1234' are returned. Only the MSG and CORRELID columns are returned. SELECT T.MSG, T.CORRELID FROM table (MQRECEIVEALLCLOB('MYSERVICE','MYPOLICY','1234')) T Example 4: This example receives the first 10 messages from the head of the queue specified by the default service (DB2.DEFAULT.SERVICE), using the default policy (DB2.DEFAULT.POLICY). All columns are returned. SELECT * FROM table (MQRECEIVEALLCLOB(10)) T 43.7.3 CLOB data now supported in MQSeries functions The MQSeries functions (those defined in the DB2MQ schema) now include functionality that allow them to be used with CLOB data in addition to VARCHAR data. In some cases, a new function now exists to handle the CLOB data type, in others, the already existing function now handles both CLOB and VARCHAR data. In either case, the syntax of the CLOB function is identical to that of its VARCHAR equivalent. The functions that support the use of CLOB data, and their equivalent VARCHAR functions, are listed in the following table: Tabelle 18. MQSeries Functions that support the CLOB data type Function to use for VARCHAR data Function to use for CLOB data MQPUBLISH MQPUBLISH MQREAD MQREADCLOB MQRECEIVE MQRECEIVECLOB MQSEND MQSEND MQREADALL MQREADALLCLOB MQRECEIVEALL MQRECEIVEALLCLOB For information on enabling the MQSeries functions (those defined in the DB2MQ schema), see MQSeries. 43.8 Data Type Information 43.8.1 Promotion of Data Types In this section table 5 shows the precedence list for each data type. Please note: For a Unicode database, the following are considered to be equivalent data types: CHAR and GRAPHIC VARCHAR and VARGRAPHIC LONG VARCHAR and LONG VARGRAPHIC CLOB and DBCLOB In a Unicode database, it is possible to create functions where the only difference in the function signature is between equivalent CHAR and GRAPHIC data types, for example, foo(CHAR(8)) and foo(GRAPHIC(8)). We strongly recommend that you do not define such duplicate functions since migration to a future release will require one of them to be dropped before the migration will proceed. If such duplicate functions do exist, the choice of which one to invoke is determined by a two-pass algorithm. The first pass attempts to find a match using the same algorithm as is used for resolving functions in a non-Unicode database. If no match is found, then a second pass will be done taking into account the following promotion precedence for CHAR and GRAPHIC strings: GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR --> -->DBCLOB-->CLOB 43.8.2 Casting between Data Types The following entry has been added to the list introduced as: "The following casts involving distinct types are supported": For a Unicode database, cast from a VARCHAR or VARGRAPHIC to distinct type DT with a source data type CHAR or GRAPHIC. Table 19. Supported Casts between Built-in Data Types L O N L G O V V Target Data Type N A A -> G R R V V G G G A A R R R D R R A A A B C C C C P P P C H H H L H H H L A A A O I I I O Source Data Type V R R R B C C C B CHAR Y Y Y Y Y1 Y1 - - VARCHAR Y Y Y Y Y1 Y1 - - LONGVARCHAR Y Y Y Y - - Y1 Y1 CLOB Y Y Y Y - - - Y1 GRAPHIC Y1 Y1 - - Y Y Y Y VARGRAPHIC Y1 Y1 - - Y Y Y Y LONGVARGRAPHIC - - Y1 Y1 Y Y Y Y DBCLOB - - Y2 Y1 Y Y Y Y 1 Cast is only supported for Unicode databases. 2 Cast is only supported for Unicode databases. Only explicit casting is supported. 43.8.3 Assignments and Comparisons Assignments and comparisons involving both character and graphic data are only supported when one of the strings is a literal. For function resolution, graphic literals and character literals will both match character and graphic function parameters. The following are updates to "Table 7. Data Type Compatibility for Assignments and Comparisons". Only the affected rows of the table, and the new footnote 6, are included: Operands Binary Integer Decimal Number Floating Point Character String Graphic String DATE TIME Time- stamp Binary String UDT Character String No No No Yes Yes 6 1 1 1 No 3 2 Graphic String No No No Yes 6 Yes No No No No 2 6 Only supported for Unicode databases. 43.8.3.1 String Assignments Storage Assignment The last paragraph of this subsection is modified as follows: When a string is assigned to a fixed-length column and the length of the string is less than the length attribute of the target, the string is padded to the right with the necessary number of single-byte, double-byte, or UCS-22 blanks. The pad character is always a blank even for columns defined with the FOR BIT DATA attribute. Retrieval Assignment The third paragraph of this subsection is modified as follows: When a character string is assigned to a fixed-length variable and the length of the string is less than the length attribute of the target, the string is padded to the right with the necessary number of single-byte, double-byte, or UCS-22 blanks. The pad character is always a blank even for strings defined with the FOR BIT DATA attribute. 2 UCS-2 defines several SPACE characters with different properties. For a Unicode database, the database manager always uses the ASCII SPACE at position x'0020' as UCS-2 blank. For an EUC database, the IDEOGRAPHIC SPACE at position x'3000' is used for padding GRAPHIC strings. Conversion Rules for String Assignments The following paragraph has been added to the end of this subsection: For Unicode databases, character strings can be assigned to a graphic column, and graphic strings can be assigned to a character column. DBCS Considerations for Graphic String Assignments The first paragraph of this subsection has been modified as follows: Graphic string assignments are processed in a manner analogous to that for character strings. For non-Unicode databases, graphic string data types are compatible only with other graphic string data types, and never with numeric, character string, or datetime data types. For Unicode databases, graphic string data types are compatible with character string data types. 43.8.3.2 String Comparisons Conversion Rules for Comparison This subsection has been modified as follows: When two strings are compared, one of the strings is first converted, if necessary, to the encoding scheme and code page of the other string. For details, see the "Rules for String Conversions" section of "Chapter 3. Language Elements" in the SQL Reference. 43.8.4 Rules for Result Data Types 43.8.4.1 Character and Graphic Strings in a Unicode Database This is a new subsection inserted after the subsection "Graphic Strings". In a Unicode database, character strings and graphic strings are compatible. If one operand is... And the other operand is... The data type of the result is... GRAPHIC(x) CHAR(y) or GRAPHIC(y) GRAPHIC(z) where z = max(x,y) VARGRAPHIC(x) CHAR(y) or VARCHAR(y) VARGRAPHIC(z) where z = max(x,y) VARCHAR(x) GRAPHIC(y) or VARGRAPHIC VARGRAPHIC(z) where z = max(x,y) LONG VARGRAPHIC CHAR(y) or VARCHAR(y) or LONG VARCHAR LONG VARGRAPHIC LONG VARCHAR GRAPHIC(y) or VARGRAPHIC(y) LONG VARGRAPHIC DBCLOB(x) CHAR(y) or VARCHAR(y) or CLOB(y) DBCLOB(z) where z = max(x,y) DBCLOB(x) LONG VARCHAR DBCLOB(z) where z = max(x,16350) CLOB(x) GRAPHIC(y) or VARGRAPHIC(y) DBCLOB(z) where z = max(x,y) CLOB(x) LONG VARGRAPHIC DBCLOB(z) where z = max(x,16350) 43.8.5 Rules for String Conversions The third point has been added to the following list in this section: For each pair of code pages, the result is determined by the sequential application of the following rules: If the code pages are equal, the result is that code page. If either code page is BIT DATA (code page 0), the result code page is BIT DATA. In a Unicode database, if one code page denotes data in an encoding scheme different from the other code page, the result is UCS-2 over UTF-8 (that is, the graphic data type over the character data type).1 Otherwise, the result code page is determined by Table 8 of the "Rules for String Conversions" section of "Chapter 3. Language Elements" in the SQL Reference. An entry of "first" in the table means the code page from the first operand is selected and an entry of "second" means the code page from the second operand is selected. 1 In a non-Unicode database, conversion between different encoding schemes is not supported. 43.8.6 Expressions The following has been added: In a Unicode database, an expression that accepts a character or graphic string will accept any string types for which conversion is supported. 43.8.6.1 With the Concatenation Operator The following has been added to the end of this subsection: In a Unicode database, concatenation involving both character string operands and graphic string operands will first convert the character operands to graphic operands. Note that in a non-Unicode database, concatenation cannot involve both character and graphic operands. 43.8.7 Predicates The following entry has been added to the list introduced by the sentence: "The following rules apply to all types of predicates": In a Unicode database, all predicates that accept a character or graphic string will accept any string types for which conversion is supported. 43.9 Unicode Information 43.9.1 Scalar Functions and Unicode In a Unicode database, all scalar functions that accept a character or graphic string will accept any string types for which conversion is supported. 43.10 GRAPHIC type and DATE/TIME/TIMESTAMP compatibility In the following sections, references to datetime values having "character string" representations have been changed to "string" representations. DB2 now supports, for Unicode databases only, "graphic string" representations of datetime values. 43.10.1 String representations of datetime values Values whose data types are DATE, TIME, or TIMESTAMP are represented in an internal form that is transparent to the user. Date, time, and timestamp values can, however, also be represented by strings. This is useful because there are no constants or variables whose data types are DATE, TIME, or TIMESTAMP. Before it can be retrieved, a datetime value must be assigned to a string variable. The CHAR function or the GRAPHIC function (for Unicode databases only) can be used to change a datetime value to a string representation. The string representation is normally the default format of datetime values associated with the country/region code of the database, unless overridden by specification of the DATETIME option when the program is precompiled or bound to the database. No matter what its length, a large object string, a LONG VARCHAR value, or a LONG VARGRAPHIC value cannot be used to represent a datetime value (SQLSTATE 42884). When a valid string representation of a datetime value is used in an operation with an internal datetime value, the string representation is converted to the internal form of the date, time, or timestamp value before the operation is performed. Date, time and timestamp strings must contain only characters and digits. 43.10.1.1 Date strings, time strings, and datetime strings The definitions of these terms have been changed slightly. References to "character string" representations have been changed to "string" representations. 43.10.2 Casting between data types DATE, TIME, and TIMESTAMP can now be cast to GRAPHIC and VARGRAPHIC. GRAPHIC and VARGRAPHIC can now be cast to DATE, TIME, and TIMESTAMP. Graphic string support is only available for Unicode databases. 43.10.3 Assignments and comparisons There is now data type compatibility for assignments and comparisons between graphic strings and DATE, TIME, and TIMESTAMP values. Graphic string support is only available for Unicode databases. 43.10.4 Datetime assignments The basic rule for datetime assignments is that a DATE, TIME, or TIMESTAMP value can only be assigned to a column with a matching data type (whether DATE, TIME, or TIMESTAMP) or to a fixed- or varying-length string variable or string column. The assignment must not be to a LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB, or BLOB variable or column. When a datetime value is assigned to a string variable or string column, conversion to a string representation is automatic. Leading zeros are not omitted from any part of the date, time, or timestamp. The required length of the target will vary, depending on the format of the string representation. If the length of the target is greater than required, and the target is a fixed-length string, it is padded on the right with blanks. If the length of the target is less than required, the result depends on the type of datetime value involved, and on the type of target. When the target is a host variable, the following rules apply: DATE: If the variable length is less than 10 characters, an error occurs. TIME: If the USA format is used, the length of the variable must not be less than 8 characters; in other formats the length must not be less than 5 characters. If ISO or JIS formats are used, and if the length of the host variable is less than 8 characters, the seconds part of the time is omitted from the result and assigned to the indicator variable, if provided. The SQLWARN1 field of the SQLCA is set to indicate the omission. TIMESTAMP: If the host variable is less than 19 characters, an error occurs. If the length is less than 26 characters, but greater than or equal to 19 characters, trailing digits of the microseconds part of the value are omitted. The SQLWARN1 field of the SQLCA is set to indicate the omission. 43.10.5 DATE >>-DATE--(--expression--)-------------------------------------->< The schema is SYSIBM. The DATE function returns a date from a value. The argument must be a date, timestamp, a positive number less than or equal to 3 652 059, a valid string representation of a date or timestamp, or a string of length 7 that is not a LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB, or BLOB. Only Unicode databases support an argument that is a graphic string representation of a date or a timestamp. If the argument is a string of length 7, it must represent a valid date in the form yyyynnn, where yyyy are digits denoting a year, and nnn are digits between 001 and 366, denoting a day of that year. The result of the function is a date. If the argument can be null, the result can be null; if the argument is null, the result is the null value. The other rules depend on the data type of the argument: If the argument is a date, timestamp, or valid string representation of a date or timestamp: The result is the date part of the value. If the argument is a number: The result is the date that is n-1 days after January 1, 0001, where n is the integral part of the number. If the argument is a string with a length of 7: The result is the date represented by the string. Examples: Assume that the column RECEIVED (timestamp) has an internal value equivalent to '1988-12-25-17.12.30.000000'. This example results in an internal representation of '1988-12-25'. DATE(RECEIVED) This example results in an internal representation of '1988-12-25'. DATE('1988-12-25') This example results in an internal representation of '1988-12-25'. DATE('25.12.1988') This example results in an internal representation of '0001-02-04'. DATE(35) 43.10.6 GRAPHIC >>-GRAPHIC--(--graphic-expression--+------------+--)----------->< '-,--integer-' The schema is SYSIBM. The GRAPHIC function returns a GRAPHIC representation of a graphic string type or a GRAPHIC representation of a datetime type. graphic-expression An expression that returns a value that is a graphic string. integer An integer value specifying the length attribute of the resulting GRAPHIC data type. The value must be between 1 and 127. If integer is not specified, the length of the result is the same as the length of the first argument. The result of the function is a GRAPHIC. If the argument can be null, the result can be null; if the argument is null, the result is the null value. Datetime to Graphic: >>-GRAPHIC--(--datetime-expression--+--------------+--)-------->< '-,--+-ISO---+-' +-USA---+ +-EUR---+ +-JIS---+ '-LOCAL-' Datetime to Graphic datetime-expression An expression that is one of the following three data types date The result is the graphic string representation of the date in the format specified by the second argument. The length of the result is 10. An error occurs if the second argument is specified and is not a valid value (SQLSTATE 42703). time The result is the graphic string representation of the time in the format specified by the second argument. The length of the result is 8. An error occurs if the second argument is specified and is not a valid value (SQLSTATE 42703). timestamp The second argument is not applicable and must not be specified (SQLSTATE 42815). The result is the graphic string representation of the timestamp. The length of the result is 26. The code page of the string is the code page of the database at the application server. 43.10.7 TIME >>-TIME--(--expression--)-------------------------------------->< The schema is SYSIBM. The TIME function returns a time from a value. The argument must be a time, timestamp, or a valid string representation of a time or timestamp that is not a LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB, or BLOB. Only Unicode databases support an argument that is a graphic string representation of a time or a timestamp. The result of the function is a time. If the argument can be null, the result can be null; if the argument is null, the result is the null value. The other rules depend on the data type of the argument: If the argument is a time: The result is that time. If the argument is a timestamp: The result is the time part of the timestamp. If the argument is a string: The result is the time represented by the string. Example: Select all notes from the IN_TRAY sample table that were received at least one hour later in the day (any day) than the current time. SELECT * FROM IN_TRAY WHERE TIME(RECEIVED) >= CURRENT TIME + 1 HOUR 43.10.8 TIMESTAMP >>-TIMESTAMP--(--expression--+-------------+--)---------------->< '-,expression-' The schema is SYSIBM. The TIMESTAMP function returns a timestamp from a value or a pair of values. Only Unicode databases support an argument that is a graphic string representation of a date, a time, or a timestamp. The rules for the arguments depend on whether the second argument is specified. If only one argument is specified: It must be a timestamp, a valid string representation of a timestamp, or a string of length 14 that is not a LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB, or BLOB. A string of length 14 must be a string of digits that represents a valid date and time in the form yyyyxxddhhmmss, where yyyy is the year, xx is the month, dd is the day, hh is the hour, mm is the minute, and ss is the seconds. If both arguments are specified: The first argument must be a date or a valid string representation of a date and the second argument must be a time or a valid string representation of a time. The result of the function is a timestamp. If either argument can be null, the result can be null; if either argument is null, the result is the null value. The other rules depend on whether the second argument is specified: If both arguments are specified: The result is a timestamp with the date specified by the first argument and the time specified by the second argument. The microsecond part of the timestamp is zero. If only one argument is specified and it is a timestamp: The result is that timestamp. If only one argument is specified and it is a string: The result is the timestamp represented by that string. If the argument is a string of length 14, the timestamp has a microsecond part of zero. Example: Assume the column START_DATE (date) has a value equivalent to 1988-12-25, and the column START_TIME (time) has a value equivalent to 17.12.30. TIMESTAMP(START_DATE, START_TIME) Returns the value '1988-12-25-17.12.30.000000'. 43.10.9 VARGRAPHIC Character to Vargraphic: >>-VARGRAPHIC--(--character-string-expression--)--------------->< Datetime to Vargraphic: >>-VARGRAPHIC--(--datetime-expression--)----------------------->< Graphic to Vargraphic: >>-VARGRAPHIC--(--graphic-string-expression--+------------+-----> '-,--integer-' >--)----------------------------------------------------------->< The schema is SYSIBM. The VARGRAPHIC function returns a graphic string representation of a: character string value, converting single byte characters to double byte characters, datetime value (only supported on Unicode databases) graphic string value, if the first argument is any type of graphic string. The result of the function is a varying length graphic string (VARGRAPHIC data type). If the first argument can be null, the result can be null; if the first argument is null, the result is the null value. Character to Vargraphic character-string-expression An expression whose value must be of a character string data type other than LONG VARCHAR or CLOB, and whose maximum length must not be greater than 16 336 bytes. The length attribute of the result is equal to the length attribute of the argument. Let S denote the value of the character-string-expression. Each single-byte character in S is converted to its equivalent double-byte representation or to the double-byte substitution character in the result; each double-byte character in S is mapped 'as-is'. If the first byte of a double-byte character appears as the last byte of S, it is converted into the double-byte substitution character. The sequential order of the characters in S is preserved. The following are additional considerations for the conversion. For a Unicode database, this function converts the character string from the code page of the operand into UCS-2. Every character of the operand, including DBCS characters, is converted. If the second argument is given, it specifies the desired length (number of UCS-2 characters) of the resulting UCS-2 string. The conversion to double-byte code points by the VARGRAPHIC function is based on the code page of the operand. Double-byte characters of the operand are not converted. All other characters are converted to their corresponding double-byte depiction. If there is no corresponding double-byte depiction, the double-byte substitution character for the code page is used. No warning or error code is generated if one or more double-byte substitution characters are returned in the result. Datetime to Vargraphic datetime-expression An expression whose value must be of the DATE, TIME, or TIMESTAMP data type. Graphic to Vargraphic graphic-string-expression An expression that returns a value that is a graphic string. integer The length attribute for the resulting varying length graphic string. The value must be between 0 and 16 336. If this argument is not specified, the length of the result is the same as the length of the argument. If the length of the graphic-string-expression is greater than the length attribute of the result, truncation is performed and a warning is returned (SQLSTATE 01004), unless the truncated characters were all blanks and the graphic-string-expression was not a long string (LONG VARGRAPHIC or DBCLOB). 43.11 Larger Index Keys for Unicode Databases 43.11.1 ALTER TABLE The length of variable length columns that are part of any index, including primary and unique keys, defined when the registry variable DB2_INDEX_2BYTEVARLEN was on, can be altered to a length greater than 255 bytes. The fact that a variable length column is involved in a foreign key will no longer prevent the length of that column from being altered to larger than 255 bytes, regardless of the registry variable setting. However, data with length greater than 255 cannot be inserted into the table unless the column in the corresponding primary key has length greater than 255 bytes, which is only possible if the primary key was created with the registry variable ON. 43.11.2 CREATE INDEX Indexes can be defined on variable length columns whose length is greater than 255 bytes if the registry variable DB2_INDEX_2BYTEVARLEN is ON. 43.11.3 CREATE TABLE Primary and unique keys with variable keyparts can have a size greater than 255 if the registry variable DB2_INDEX_2BYTEVARLEN is ON. Foreign keys can be defined on variable length columns whose length is greater than 255 bytes. 43.12 ALLOCATE CURSOR Statement Notes Section Incorrect The two bulleted items in the Notes section of the ALLOCATE CURSOR Statement were printed in error. Disregard the information contained in these items. 43.13 Additional Options in the GET DIAGNOSTICS Statement GET DIAGNOSTICS Statement The GET DIAGNOSTICS statement is used to obtain information about the previously executed SQL statement. The syntax of this statement has been updated as follows. Befehlssyntax >>-GET DIAGNOSTICS----------------------------------------------> >--+-SQL-variable-name--=--+-ROW_COUNT-----+-+----------------->< | '-RETURN_STATUS-' | '-| condition-information |---------------' condition-information: |--EXCEPTION--1-------------------------------------------------> .-,------------------------------------------. V | >----SQL-variable-name--=--+-MESSAGE_TEXT-----+-+---------------| '-DB2_TOKEN_STRING-' Befehlsparameter SQL-variable-name Identifies the variable that is the assignment target. If ROW_COUNT or RETURN_STATUS is specified, the variable must be an integer variable. Otherwise, the variable must be CHAR or VARCHAR. SQL variables can be defined in a compound statement. ROW_COUNT Identifies the number of rows associated with the previous SQL statement. If the previous SQL statement is a DELETE, INSERT, or UPDATE statement, ROW_COUNT identifies the number of rows deleted, inserted, or updated by that statement, excluding rows affected by triggers or referential integrity constraints. If the previous statement is a PREPARE statement, ROW_COUNT identifies the estimated number of result rows in the prepared statement. RETURN_STATUS Identifies the status value returned from the stored procedure associated with the previously executed SQL statement, provided that the statement was a CALL statement invoking a procedure that returns a status. If the previous statement is not such a statement, then the value returned has no meaning and could be any integer. condition-information Specifies that the error or warning information for the previously executed SQL statement is to be returned. If information about an error is needed, the GET DIAGNOSTICS statement must be the first statement specified in the handler that will handle the error. If information about a warning is needed, and if the handler will get control of the warning condition, the GET DIAGNOSTICS statement must be the first statement specified in that handler. If the handler will not get control of the warning condition, the GET DIAGNOSTICS statement must be the next statement executed. MESSAGE_TEXT Identifies any error or warning message text returned from the previously executed SQL statement. The message text is returned in the language of the database server where the statement is processed. If the statement completes with an SQLCODE of zero, an empty string or blanks are returned. DB2_TOKEN_STRING Identifies any error or warning message tokens returned from the previously executed SQL statement. If the statement completes with an SQLCODE of zero, or if the SQLCODE has no tokens, then an empty string or blanks is returned. 43.14 ORDER BY in Subselects DB2 now supports ORDER BY in subselects and fullselects. 43.14.1 fullselect Following is a partial syntax diagram of the modified fullselect showing the location of the order-by-clause. >>-+-subselect---------+----------------------------------------> +-(fullselect)------+ '-| values-clause |-' .----------------------------------------------. V | >----+------------------------------------------+-+-------------> '-+-UNION---------+--+-subselect---------+-' +-UNION ALL-----+ +-(fullselect)------+ +-EXCEPT--------+ '-| values-clause |-' +-EXCEPT ALL----+ +-INTERSECT-----+ '-INTERSECT ALL-' >--+-----------------+----------------------------------------->< '-order-by-clause-' A fullselect that contains an ORDER BY clause cannot be specified in: A summary table The outermost fullselect of a view (SQLSTATE 428FJ SQLCODE -20211) An ORDER BY clause in a fullselect does not affect the order of the rows returned by a query. An ORDER BY clause only affects the order of the rows returned if it is specified in the outermost fullselect. 43.14.2 subselect Following is the complete syntax diagram of the modified subselect showing the location of the order-by-clause. >>-select-clause--from-clause--+--------------+-----------------> '-where-clause-' >--+-----------------+--+---------------+-----------------------> '-group-by-clause-' '-having-clause-' >--+-----------------+----------------------------------------->< '-order-by-clause-' The clauses of the subselect are processed in the following sequence: FROM clause WHERE clause GROUP BY clause HAVING clause SELECT clause ORDER BY clause A subselect that contains an ORDER BY cannot be specified: In the outermost fullselect of a view In a summary table Unless the subselect is enclosed in parentheses For example, the following is not valid (SQLSTATE 428FJ SQLCODE -20211): SELECT * FROM T1 ORDER BY C1 UNION SELECT * FROM T2 ORDER BY C1 The following example is valid: (SELECT * FROM T1 ORDER BY C1) UNION (SELECT * FROM T2 ORDER BY C1) An ORDER BY clause in a subselect does not affect the order of the rows returned by a query. An ORDER BY clause only affects the order of the rows returned if it is specified in the outermost fullselect. 43.14.3 order-by-clause Following is the complete syntax diagram of the modified order-by-clause. .-,------------------------------. V .-ASC--. | >>-ORDER BY----+-sort-key--+------+---------+-+---------------->< | '-DESC-' | '-ORDER OF--table-designator-' sort-key: |--+-simple-column-name--+--------------------------------------| +-simple-integer------+ '-sort-key-expression-' ORDER OF table-designator Specifies that the same ordering used in table-designator should be applied to the result table of the subselect. There must be a table reference matching table-designator in the FROM clause of the subselect that specifies this clause (SQLSTATE 42703). The subselect (or fullselect) corresponding to the specified table-designator must include an ORDER BY clause that is dependant on the data (SQLSTATE 428FI SQLCODE -20210). The ordering that is applied is the same as if the columns of the ORDER BY clause in the nested subselect (or fullselect) were included in the outer subselect (or fullselect), and these columns were specified in place of the ORDER OF clause. For more information on table designators, see "Column Name Qualifiers to Avoid Ambiguity" in the SQL Reference. Note that this form is not allowed in a fullselect (other than the degenerative form of a fullselect). For example, the following is not valid: (SELECT C1 FROM T1 ORDER BY C1) UNION SELECT C1 FROM T2 ORDER BY ORDER OF T1 The following example is valid: SELECT C1 FROM (SELECT C1 FROM T1 UNION SELECT C1 FROM T2 ORDER BY C1 ) AS UTABLE ORDER BY ORDER OF UTABLE 43.14.4 select-statement Following is the complete syntax diagram of the modified select-statement: >>-+-----------------------------------+--fullselect------------> | .-,-----------------------. | | V | | '-WITH----common-table-expression-+-' >--fetch-first-clause--*--+--------------------+----------------> +-read-only-clause---+ | (1) | '-update-clause------' >--*--+---------------------+--*--+--------------+------------->< '-optimize-for-clause-' '-WITH--+-RR-+-' +-RS-+ +-CS-+ '-UR-' Anmerkungen: The update-clause cannot be specified if the fullselect contains an order-by-clause. SELECT INTO statement Syntax .-,-------------. V | >>-select-clause--INTO----host-variable-+--from-clause----------> >--+--------------+--+-----------------+--+---------------+-----> '-where-clause-' '-group-by-clause-' '-having-clause-' >--+-----------------+--+--------------+----------------------->< '-order-by-clause-' '-WITH--+-RR-+-' +-RS-+ +-CS-+ '-UR-' 43.14.5 OLAP Functions (window-order-clause) Following is a partial syntax diagram for the OLAP functions showing the modified window-order-clause. window-order-clause: .-,--------------------------------------------. V .-| asc option |--. | |--ORDER BY----+-sort-key-expression--+-----------------+-+-+---| | '-| desc option |-' | '-ORDER OF--table-designator---------------' asc option: .-NULLS LAST--. |--ASC--+-------------+-----------------------------------------| '-NULLS FIRST-' desc option: .-NULLS FIRST-. |--DESC--+-------------+----------------------------------------| '-NULLS LAST--' ORDER BY (sort-key-expression,...) Defines the ordering of rows within a partition that determines the value of the OLAP function or the meaning of the ROW values in the window-aggregation-group-clause (it does not define the ordering of the query result set). sort-key-expression An expression used in defining the ordering of the rows within a window partition. Each column name referenced in a sort-key-expression must unambiguously reference a column of the result set of the subselect, including the OLAP function (SQLSTATE 42702 or 42703). The length of each sort-key-expression must not be more than 255 bytes (SQLSTATE 42907). A sort-key-expression cannot include a scalar fullselect (SQLSTATE 42822) or any function that is not deterministic or that has an external action (SQLSTATE 42845). This clause is required for the RANK and DENSE_RANK functions (SQLSTATE 42601). ASC Uses the values of the sort-key-expression in ascending order. DESC Uses the values of the sort-key-expression in descending order. NULLS FIRST The window ordering considers null values before all non-null values in the sort order. NULLS LAST The window ordering considers null values after all non-null values in the sort order. ORDER OF table-designator Specifies that the same ordering used in table-designator should be applied to the result table of the subselect. There must be a table reference matching table-designator in the FROM clause of the subselect that specifies this clause (SQLSTATE 42703). The subselect (or fullselect) corresponding to the specified table-designator must include an ORDER BY clause that is dependent on the data (SQLSTATE 428FI SQLCODE -20210). The ordering that is applied is the same as if the columns of the ORDER BY clause in the nested subselect (or fullselect) were included in the outer subselect (or fullselect), and these columns were specified in place of the ORDER OF clause. For more information on table designators, see "Column Name Qualifiers to Avoid Ambiguity" in the SQL Reference. New Input Argument for the GET_ROUTINE_SAR Procedure This procedure now supports hide_body_flag, an input argument of type INTEGER that specifies (using one of the following values) whether or not the routine body should be hidden when the routine text is extracted from the catalogs: 0 Leave the routine text intact. This is the default value. 1 Replace the routine body with an empty body when the routine text is extracted from the catalogs. >>-GET_ROUTINE_SAR----------------------------------------------> >--(--sarblob--,--type--,--routine_name_string--+-------------------+--)->< '-,--hide_body_flag-' Required Authorization for the SET INTEGRITY Statement When this statement is used to turn off integrity checking, the privileges of the authorization ID of the statement must include at least one of the following: CONTROL privilege on: The specified tables, and The descendent foreign key tables that will have integrity checking turned off by the statement, and The descendent immediate summary tables that will have integrity checking turned off by the statement SYSADM or DBADM authority LOAD authority Appendix N. Exception Tables In the table "Exception Table Message Column Structure", in rows 2 and 6, which describe the characters that indicate the type of the first and the next constraint violations found, respectively, there is a missing reference to: 'D' - Delete Cascade violation Unicode-Aktualisierungen 47.1 Einführung Der Unicode-Standard ist ein Universalschema für Codeumsetzung für geschriebene Zeichen und Text. Es definiert einen Zeichensatz sowie eine kleine Anzahl Codierungen für diesen Zeichensatz sehr genau. Dieser Standard definiert eine konsistente Methode für das Codieren von mehrsprachigen Texten, die den internationalen Austausch von Textdaten ermöglicht und die Grundlage für globale Software erstellt. Zwei der von Unicode bereitgestellten Schemata für Codeumsetzung sind UTF-16 und UTF-8. Das Standardschema für Codeumsetzung ist UTF-16, ein 16-Bit-Codierformat. UCS-2 ist eine Untergruppe von UTF-16 und verwendet für die Darstellung der einzelnen Zeichen jeweils 2 Byte. UCS-2 ist allgemein als Universal-Codepage anerkannt, die alle erforderlichen Zeichen aller vorhandenen SBCS- und DBCS-Codepages darstellen kann. UCS-2 ist bei IBM als Codepage 1200 registriert. Das zweite Unicode-Codierformat ist UTF-8. Dieses Format ist byteorientiert und wurde für den benutzerfreundlichen Einsatz mit vorhandenen ASCII-basierten Systemen konzipiert. UTF-8 verwendet eine unterschiedliche Anzahl Bytes (idR. 1-3, manchmal 4) zum Speichern der einzelnen Zeichen. Die unveränderlichen ASCII-Zeichen werden als einzelne Bytes gespeichert. Alle anderen Zeichen werden mit mehreren Bytes gespeichert. Im Allgemeinen können UTF-Daten von Code, der nicht für Mehrbytecodepages konzipiert wurde, wie erweiterte ASCII-Daten behandelt werden. UTF-8 ist bei IBM als Codepage 1208 registriert. Bei der Konvertierung von Daten zwischen der lokalen Codepage und den Codepages UCS-2 und UTF-8 müssen Anwendungen die Anforderungen der Daten berücksichtigen. In UCS-2 beispielsweise sind für 20 Zeichen genau 40 Bytes erforderlich und in UTF-8 abhängig von der Originalcodepage und den verwendeten Zeichen 20-60 Bytes. 47.1.1 DB2-Unicode-Datenbanken und -Anwendungen Eine Datenbank unter DB2 Universal Database für UNIX, Windows oder OS/2, die mit dem codierten Zeichensatz UTF-8 erstellt wurde, kann Daten sowohl im UCS-2-Format als auch im UTF-8-Format speichern. Eine solche Datenbank wird als Unicode-Datenbank bezeichnet. SQL-Zeichendaten werden mit UTF-8 verschlüsselt, SQL-Grafikdaten mit UCS-2. Dies bedeutet, dass MBCS-Zeichen, einschließlich Einzelbyte- und Doppelbytezeichen, in Zeichenspalten und DBCS-Zeichen in Grafikspalten gespeichert werden. Die Codepage einer Anwendung stimmt möglicherweise nicht mit der Codepage überein, in der DB2 Daten speichert. Stimmen die Codepages bei einer Nicht-Unicode-Datenbank nicht überein, konvertiert der Datenbankmanager Zeichen- und Grafikdaten (reine DBCS-Daten), die zwischen dem Client und dem Server übertragen werden. In einer Unicode-Datenbank konvertiert der Datenbankmanager die Zeichendaten automatisch zwischen der Client-Codepage und UTF-8, aber alle Grafikdaten (UCS-2) werden ohne Konvertierung zwischen dem Client und dem Server übertragen. Abbildung 1. Vom Datenbankmanager durchgeführte Codepage-Konvertierungen Anmerkungen: Gibt eine Anwendung beim Herstellen einer Verbindung zu einer Unicode-Datenbank DB2CODEPAGE=1208 an, wird als lokale Codepage UTF-8 verwendet, d. h. es ist keine Codepage-Konvertierung erforderlich. Bei Verbindungen zu einer Unicode-Datenbank können Anwendungen der Befehlszeilenschnittstelle Zeichendaten als Grafikdaten empfangen und umgekehrt. Eine Anwendung kann als Codepage UTF-8 angeben, d. h. diese Anwendung sendet und empfängt Grafikdaten im UCS-2-Format und Zeichendaten im UTF-8-Format. Diese Anwendungs-Codepage wird nur für Unicode-Datenbanken unterstützt. Außerdem müssen die folgenden Punkte bei der Verwendung von Unicode berücksichtigt werden: Die Datenbank-Codepage wird zum Zeitpunkt der Datenbankerstellung festgelegt und standardmäßig aus den Ländereinstellungen (bzw. der Codepage) des Betriebssystems abgeleitet. Die Schlüsselwörter CODESET und TERRITORY können verwendet werden, um explizit eine Unicode-DB2-Datenbank zu erstellen. Beispiel: CREATE DATABASE unidb USING CODESET UTF-8 TERRITORY US Standardmäßig wird als Anwendungs-Codepage ebenfalls die lokale Codepage verwendet; diese Einstellung kann aber mit zwei Methoden in UTF-8 geändert werden: Setzen der Anwendungs-Codepage auf UTF-8 (1208) mit dem folgenden Befehl: db2set DB2CODEPAGE=1208 Für CLI/ODBC-Anwendungen durch Aufrufen von SQLSetConnectAttr() und Angeben von SQL_AA_FALSE für SQL_ATTR_ANSI_APP. Die Standardeinstellung ist SQL_AA_TRUE. Bei Daten in GRAPHIC-Spalten wird jedes Unicode-Zeichen durch genau zwei Bytes dargestellt, während für Daten in CHAR-Spalten für jedes Unicode-Zeichen 1-3 Bytes benötigt werden. Bei SQL dürfen für GRAPHIC-Spalten idR. halb so viele Zeichen wie in CHAR-Spalten verwendet werden, aber in Bezug auf Bytes werden beide Spaltentypen gleich behandelt. Die maximale Zeichenlänge für eine CHAR-Spalte ist 254, und die maximale Länge für eine Grafikspalte ist 127. Weitere Informationen finden Sie unter MAX im Kapitel "Funktionen" des Handbuchs SQL Reference. Die Differenzierung zwischen Grafikliteralen und Zeichenliteralen erfolgt durch die Angabe des Präfix G für Grafikliterale. Beispiel: SELECT * FROM meintab WHERE meinzeich = 'utf-8-daten' AND meingraf = G'ucs-2-daten' Anmerkung: Bei Unicode-Datenbanken ist das Präfix G optional. Weitere Informationen und aktuelle Angaben zur Unterstützung finden Sie in 41.6.2.4, "Literals in Unicode Databases". Die Unterstützung von CLI/ODBC- und JDBC-Anwendungen unterscheidet sich von der Unterstützung für eingebettete Anwendungen. Informationen zur CLI/ODBC-Unterstützung finden Sie in "CLI Guide and Reference". Die Bytereihenfolge von UCS-2-Daten kann je nach Plattform unterschiedlich sein. Intern verwendet DB2 das Big-Endian-Format. 47.1.2 Aktualisierung der Dokumentation Dieses Release-Informationen enthalten Aktualisierungen der folgenden Informationen zur Verwendung von Unicode mit DB2 Version 7.1: SQL Reference: Kapitel 3, Language Elements Kapitel 4, Functions Kapitel 6, SQL Statements CLI Guide and Reference: Kapitel 3, Using Advanced Features Anhang C, DB2 CLI and ODBC Versetzen von Daten Dienstprogramme und Referenz, Anhang C, Dateiformate der Dienstprogramme EXPORT/IMPORT/LOAD Weitere Informationen zur Verwendung von Unicode mit DB2 finden Sie im entsprechenden Abschnitt des Anhangs zur Unterstützung von Landessprachen im Handbuch Systemverwaltung. Verbindung zu Host-Systemen Teilinhaltsverzeichnis DB2 Connect Benutzerhandbuch 48.1 Erhöhen der DB2 Connect-Datenübertragungsgeschwindigkeit 48.1.1 Zusätzliche Abfrageblöcke 48.1.2 RFC-1323 Fensterskalierungsfunktion 48.2 DB2 Connect-Unterstützung für lose gekoppelte Transaktionen 48.3 Kerberos-Unterstützung Konnektivität: Ergänzung 49.1 Konfigurieren des Anwendungsservers in einer VM-Umgebung 49.2 Einstellungen von PATCH1 und PATCH2 bei der CLI/ODBC/JDBC-Konfiguration DB2 Connect Benutzerhandbuch 48.1 Erhöhen der DB2 Connect-Datenübertragungsgeschwindigkeit Während die Blockung von Zeilen für eine Abfrageergebnismenge nichts Neues ist, hat DB2 for z/OS (früher "DB2 für OS/390" genannt) seit Version 6.1 die Fähigkeit, mehrere Abfrageblöcke auf eine Anforderung OPEN oder FETCH an einen fernen Client, z. :B. DB2 Connect, zurückzugeben. Statt wiederholt Anforderungen an den DB2 for z/OS-Server zu senden und jeweils einen Block Zeilendaten anzufordern, kann der Client jetzt optional anfordern, dass der Server eine weitere Anzahl Abfrageblöcke sendet. Solche weiteren Abfrageblöcke werden als zusätzliche Abfrageblöcke bezeichnet. Mit dieser neuen Funktion kann der Client die Anzahl der Umschaltungen der Netzwerkleitung verringern, was sich erheblich auf die Netzwerkleistung auswirkt. Die Verringerung der vom Client an den Server gesendeten Abfrageblockanforderungen wirkt sich als beträchtliche Leistungssteigung aus, da der Wechsel zwischen Senden und Empfangen hinsichtlich der Leistung ein aufwendiger Vorgang ist. DB2 Connect kann jetzt diese Leistungsverbesserung nutzen, indem es zusätzliche Abfrageblöcke von einem DB2 for z/OS-Server anfordert. Um die Rückgabe zusätzlicher Abfrageblöcke (die jeweils bis zu 32 KB lang sein können) für das bevorzugte Netzwerkprotokoll TCP/IP vollständig zu nutzen, werden auch Erweiterungen der Fensterskalierungsfunktion gemäß der Architektur in RFC-1323 in DB2 Connect aktiviert. Mit dieser Funktion kann TCP/IP dynamisch und effizient die Sende- und Empfangsfenstergrößen anpassen, um potenziell große Datenmengen aufzunehmen, die über die zusätzlichen Abfrageblöcke gesendet werden. 48.1.1 Zusätzliche Abfrageblöcke Die Unterstützung zusätzlicher Abfrageblöcke für DB2 for z/OS-Servern in Version 6.1 oder höher wird über den Parameter EXTRA BLOCKS SRV in der DB2-DDF-Installationsanzeige konfiguriert. Dieser Parameter steuert die maximale Anzahl zusätzlicher Abfrageblöcke, die DB2 für eine Anfrage zurück an einen Client senden kann. Er kann auf einen Wert zwischen 0 und 100 eingestellt werden. Wenn der Parameterwert auf 0 gesetzt wird, wird die Rückgabe zusätzlicher Abfrageblöcke inaktiviert. Der Standardwert 100 sollte verwendet werden, um diese Funktion optimal zu nutzen, sofern das Netzwerk nicht irgendwelche Eigenarten hat, die dazu führen könnten, dass diese Einstellung nicht optimal arbeitet. Auf der Client-Seite, auf der die Anwendung entweder direkt über eine ebenfalls dort befindliche DB2 Connect-Installation oder über eine separate DB2 Connect-Serverinstallation auf DB2 for z/OS zugreift, gibt es verschiedene Möglichkeiten zur Aktivierung der entsprechenden DB2 Connect-Unterstützung auf Cursor- oder Anweisungsebene durch die Verwendung von: Abfragezeilengruppengröße für einen Cursor Klausel 'OPTIMIZE for N ROWS' in der Anweisung SELECT für einen Cursor Klausel 'FETCH FIRST N ROWS ONLY' in der Anweisung SELECT für einen Cursor Option 1 wird in diesem Abschnitt nicht behandelt, da sie bereits als mit DB2 Connect Version 7.1 FixPak2 als Teil von DB2 for z/OS Scrollable Support implementiert wurde. Der Schwerpunkt liegt auf der Verwendung der Optionen 2 und 3 im Gegensatz zum Aktivieren der Unterstützung für zusätzliche Abfrageblöcke mit unterschiedlichen SQL-APIs: Eingebettetes SQL Rufen Sie die Unterstützung für zusätzliche Abfrageblöcke mit der Klausel 'OPTIMIZE for N ROWS' und/oder der Klausel 'FETCH FIRST N ROWS ONLY' in der Anweisung SELECT selbst auf. Mit der Klausel 'OPTIMIZE for N ROWS' versucht DB2 for z/OS, die gewünschte Anzahl Zeilen für die Rückgabe an DB2 Connect je nach Einstellung des DDF-Installationsparameters EXTRA BLOCKS SRV zu blocken. Die Anwendung kann auch mehr als N Zeilen abrufen, da DB2 for z/OS die Gesamtzeilenzahl nicht beschränkt, die letztendlich für das auf N gesetzte Abfrageergebnis zurückgegeben werden könnte. Die Klausel 'FETCH FIRST N ROWS ONLY' arbeitet ähnlich, außer dass die Abfrageergebnismenge von DB2 for z/OS auf N Zeilen begrenzt wird. Der Abruf über N Zeilen hinaus würde zu einem SQL-Code +100 (Datenende) führen. CLI/ODBC Rufen Sie die Unterstützung zusätzlicher Abfrageblöcke für eine Abfrage über das zugehörige Abfrageattribut SQL_MAX_ROWS auf. DB2 Connect fügt für einen DB2 for z/OS-Server der Version 6.x die Klausel 'OPTIMIZE for N ROWS' an. Obwohl die Anzahl Zeilen, die letztendlich für die Abfrageergebnismenge zurückgegeben werden könnten, von DB2 for z/OS nicht auf N begrenzt ist, würde CLI/ODBC SQL_NO_DATA_FOUND an die Anwendung zurückgeben, wenn versucht wird, mehr als N Zeilen abzurufen. Statt dessen wird die Klausel 'FETCH FIRST N ROWS ONLY' für einen DB2 for z/OS-Server der Version 7.1 oder höher verwendet. Ähnlich wie der Fall mit eingebettetem SQL wird die Abfrageergebnismenge von DB2 for z/OS auf N Zeilen begrenzt. Der Abruf über N Zeilen hinaus würde zu SLQ_NO_DATA_FOUND führen. JDBC Rufen Sie die Unterstützung zusätzlicher Abfrageblöcke für eine Abfrage über die Methode "setMaxRows" auf. Ähnlich wie bei der CLI/ODBC-Aktivierung fügt DB2 Connect für einen DB2 for z/OS-Server der Version 6.x die Klausel 'OPTIMIZE for N ROWS' und für einen DB2 for z/OS-Server der Version 7.1 oder höher die Klausel 'FETCH FIRST N ROWS ONLY' an. 48.1.2 RFC-1323 Fensterskalierungsfunktion Die Fensterskalierungsfunktion wird ab FixPak 4 auf allen Windows- und UNIX-Plattformen unterstützt, die die RFC-1323-Erweiterungen für TCP/IP unterstützen. Diese Funktion kann für DB2 für Windows und UNIX über die DB2-Registrierdatenbankvariable DB2SORCVBUF aktiviert werden. Setzen Sie zum Aktivieren der Fensterskalierungsfunktion die DB2-Registrierdatenbankvariable DB2SORCVBUF auf einen beliebigen Wert über 64 KB (z. B. können Sie unter DB2 für Windows oder UNIX "db2set DB2SORCVBUF =65537" absetzen). Die maximalen Sende- und Empfangspuffergrößen hängen vom jeweiligen Betriebssystem ab. Damit sichergestellt wird, dass die konfigurierten Puffergrößen akzeptiert wurden, kann der Benutzer den Konfigurationsparameter DIAGLEVEL des Datenbankmanagers auf 4 (informativ) setzen und sich die Nachrichten in der Datei db2diag.log ansehen. Damit die Fensterskalierungsfunktion wirksam wird, muss sie an beiden Enden einer Verbindung aktiviert werden. Damit z. B. die Fensterskalierungsfunktion zwischen der DB2 Connect-Workstation und dem Host aktiviert wird, muss diese Funktion auf der Workstation und auf dem Host entweder direkt über den TCP/IP-Stack des Betriebssystems oder indirekt über das DB2-Produkt aktiv sein. Für DB2 for z/OS kann die Fensterskalierungsfunktion z. B. nur über das Betriebssystem aktiviert werden, indem TCPRCVBUFRSIZE auf einen beliebigen Wert über 64 KB gesetzt wird. Wenn ein ferner DB2-Client für den Zugriff auf Host-DB2 über eine DB2 Connect-Server-Workstation verwendet wird, kann die Fensterskalierungsfunktion auch auf dem Client aktiviert werden. Aus dem gleichen Grund kann die Fensterskalierungsfunktion auch zwischen einem fernen DB2-Client und einem DB2-Workstation-Server aktiviert werden, wenn kein Host-DB2 beteiligt ist. Obwohl die Fensterskalierungsfunktion zur Verbesserung der Netzwerkleistung entwickelt wurde, ergibt sich nicht immer die erwartete Leistungssteigerung. Das Zusammenwirken verschiedener Faktoren wie der Rahmengröße für das Ethernet oder den Token-Ring-LAN-Adapter, der IP-MTU-Größe und anderen Einstellungen auf Routern in der Kommunikationsverbindung könnte sogar zu einer Leistungsverschlechterung führen, sobald die Fensterskalierungsfunktion aktiviert wurde. Standardmäßig ist die Fensterskalierungsfunktion inaktiviert und der Sende- und Empfangspuffer auf 64 KB gesetzt. Der Benutzer sollte darauf vorbereitet sein, die Auswirkung der Fensterskalierungsfunktion zu beurteilen und notwendige Anpassungen am Netzwerk vorzunehmen. Eine Einführung zur Optimierung des Netzwerks für eine verbesserte Netzwerkleistung finden Sie im White Paper unter http://www.networking.ibm.com/per/per10.html. 48.2 DB2 Connect-Unterstützung für lose gekoppelte Transaktionen Die Unterstützung in DB2 Connect für lose gekoppelte Transaktionen ist gedacht für Benutzer, die verteilte XA-Anwendungen implementieren, die auf DB2 für OS/390 Version 6 oder höher zugreifen. Diese Unterstützung erlaubt die gemeinsame Nutzung eines Sperrenbereichs unter DB2 für OS/390 durch unterschiedliche Verzweigungen derselben globalen Transaktion. Dieses Merkmal verkleinert das Fenster, in dem eine Verzweigung einer verteilten Transaktion auf eine Sperrenzeitlimitüberschreitung oder eine gegenseitige Sperre als Ergebnis einer anderen Verzweigung in derselben globalen Transaktion trifft. DB2 für OS/390 Version 6 nutzt den Sperrenbereich in dieser Situation gemeinsam, vorausgesetzt DB2 Connect sendet die XID auf jeder Verbindung für unterschiedliche Verzweigungen derselben globalen Transaktion. 48.3 Kerberos-Unterstützung DB2 Universal Database unterstützt derzeit das Kerberos-Sicherheitsprotokoll als Möglichkeit zur Authentifizierung von Benutzern in einer Nicht-DRDA-Umgebung. Da ab DB2/390 Version 7.1 die Kerberos-Sicherheit unterstützt wird, wird DB2 Connect die DRDA-Anwendungs-Requester-Funktionalität hinzugefügt, damit die Kerberos-Authentifizierung zum Herstellen von Verbindungen zu DB2/390 genutzt werden kann. Die Kerberos-Authentifizierungsschicht, die das Ticketingsystem handhabt, ist in den Active Directory-Mechanismus von Windows 2000 integriert. Die Client- und die Serverseite einer Anwendung kommunizieren jeweils mit dem Kerberos SSP-Clientmodul und -Servermodul (Security Support Provider). SPPI (Security Support Provider Interface) bietet eine Schnittstelle der höheren Ebene zu Kerberos SSP und anderen Sicherheitsprotokollen. Kommunikationsprotokollunterstützung Für SNA-Verbindungen müssen Sie beim Katalogisieren des APPC-Knotens SECURITY=NONE verwenden. Typische Konfiguration Für die Konfiguration von DB2 zur Nutzung der Kerberos-Authentifizierung ist folgende Einrichtung erforderlich: Eine Berechtigungsrichtlinie für DB2 (als Dienst) in Active Directory, die gemeinsam in einem Netzwerk verwendet wird Eine Vertrauensstellung zwischen Kerberos Key Distribution Centers (KDCs) Im einfachsten Szenario muss mindestens eine KDC-Vertrauensstellung konfiguriert werden, und zwar die zwischen dem KDC, das die Client-Workstation steuert, und dem OS/390-System. OS/390 Release 10 bietet Kerberos-Ticketverarbeitung über sein RACF-Tool, das es dem Host erlaubt, als UNIX-KDC zu fungieren. DB2 Connect stellt wie gewohnt die Routerfunktionalität in der dreischichtigen Konfiguration bereit. Wenn Kerberos-Sicherheit genutzt wird, übernimmt es keinen Aufgabenbereich bei der Authentifizierung, sondern übergibt nur das Sicherheitstoken des Clients an DB2/390. Das DB2 Connect-Gateway muss also kein Element des Clients oder des Kerberos-Realm des Hosts sein. Zur Nutzung von Kerberos muss das DB2 Connect-Gateway seine Verbindung mit dem Authentifizierungstyp KERBEROS katalogisieren. Der Client kann entweder mit einer unspezifizierten Authentifizierung (NOT_SPEC) oder mit KERBEROS katalogisiert werden. Alle anderen Kombinationen von Authentifizierungstypen auf dem Client und dem Gateway führen zum SQLCODE-Wert -1401 (Nicht übereinstimmender Authentifizierungstyp). Abwärtskompatibilität DB2-Anforderungen für Kerberos-Unterstützung: DB2 UDB Client: Version 7.1 (Betriebssystem: Windows 2000) DB2 Connect: Version 7.1 + Fix Pack 1 (Betriebssystem: beliebig) DB2/390: Version 7.1 DB2/390 muss auch eine Anforderung haben, dass es auf OS/390 Version 2 Release 10 oder höher ausgeführt wird. Es gibt weitere implizierte Anforderungen auf älteren DB2/390-Systemen, wenn eine Verbindung von DB2 Connect-Clients der Version 7.1 hergestellt wird. Obwohl diese DB2/390-Systeme Kerberos nicht unterstützen, reagieren sie nicht korrekt auf nicht unterstützte DRDA-Sicherheitsmechanismen. Wenden Sie die entsprechende Programmkorrektur an, um das Problem zu beheben: UQ41941 (für DB2/390 Version 5.1) UQ41942 (für DB2/390 Version 6.1) Konnektivität: Ergänzung 49.1 Konfigurieren des Anwendungsservers in einer VM-Umgebung Fügen Sie nach dem ersten (und einzigen) Satz im Unterabschnitt "Definieren des Anwendungsservers" des Abschnitts "Bereitstellen von Netzwerkinformationen" folgenden Satz hinzu: Der RDB_NAME-Wert wird in der Prozedur SQLSTART EXEC als Parameter DBNAME bereitgestellt. 49.2 Einstellungen von PATCH1 und PATCH2 bei der CLI/ODBC/JDBC-Konfiguration Der CLI/ODBC/JDBC-Treiber kann über "Client-Konfiguration - Unterstützung" oder über den ODBC-Treiber-Manager (wenn dieser auf dem System installiert ist) konfiguriert werden bzw. durch manuelles Editieren der Datei db2cli.ini. Weitere Informationen finden Sie in Installation und Konfiguration Ergänzung oder CLI Guide and Reference. Das Standardverhalten des DB2 CLI/ODBC-Treibers kann geändert werden, indem Sie Werte für die beiden Schlüsselwörter PATCH1 und PATCH2 angeben. Die Eingabe dieser Werte kann über die Datei db2cli.ini oder die CLI-API SQLDriverConnect() bzw. SQLBrowseConnect() erfolgen. Das Schlüsselwort PATCH1 wird angegeben, indem alle Schlüsselwerte zusammengezählt werden, die der Benutzer festlegen möchte. Wenn z. B. die Programmkorrekturen (Patches) 1, 2 und 8 angegeben würden, hätte PATCH1 den Wert 11. Nachfolgend finden Sie eine Beschreibung der einzelnen Schlüsselwortwerte und ihrer Auswirkung auf den Treiber: 1 Veranlasst den Treiber, nach "count(exp)" zu suchen und durch "count(distinct exp)" zu ersetzen. Dies ist erforderlich, weil einige Versionen von DB2 die Syntax "count(exp)" unterstützen, die auch von einigen ODBC-Anwendungen generiert wird. Erforderlich für Microsoft-Anwendungen, wenn der Server die Syntax "count(exp)" nicht unterstützt. 2 Einige ODBC-Anwendungen werden abgefangen, wenn SQL_NULL_DATA in der Funktion SQLGetTypeInfo() für die Spalte LITERAL_PREFIX oder LITERAL_SUFFIX zurückgegeben wird. Zwingt den Treiber, statt dessen eine leere Zeichenfolge zurückzugeben. Erforderlich für Impromptu 2.0. 4 Zwingt den Treiber, die Daten für die Eingabezeitmarke wie Datumsdaten zu behandeln, wenn Zeit- und Bruchkomponente der Zeitmarke den Wert Null haben. Erforderlich für Microsoft Access. 8 Zwingt den Treiber, die Daten für die Eingabezeitmarke wie Zeitdaten zu behandeln, wenn der Datumsteil der Zeitmarke 1899-12-30 lautet. Erforderlich für Microsoft Access. 16 Nicht verwendet. 32 Zwingt den Treiber, keine Informationen zu Spalten des Typs SQL_LONGVARCHAR, SQL_LONGVARBINARY und SQL_LONGVARGRAPHIC zurückzugeben. Für die Anwendung sieht es so aus, als würden Langfelder nicht unterstützt. Erforderlich für Lotus 1-2-3. 64 Zwingt den Treiber, Grafikausgabezeichenfolgen mit NULL zu beenden. Erforderlich für Microsoft Access in einer Doppelbyteumgebung. 128 Zwingt den Treiber, die Abfrage "SELECT Config, nValue FROM MSysConf" an den Server durchzulassen. Derzeit gibt der Treiber einen Fehler mit SQLSTATE-Wert S0002 (Tabelle nicht gefunden) zurück. Erforderlich, wenn der Benutzer diese Konfigurationstabelle in der Datenbank erstellt hat und die Anwendung darauf zugreifen können soll. 256 Zwingt den Treiber, die Primärschlüsselspalten als erstes beim Aufruf SQLStatistics() zurückzugeben. Derzeit gibt der Treiber die Indizes nach Indexname sortiert zurück. Dies ist das ODBC-Standardverhalten. 512 Zwingt den Treiber, bei SQLGetFunctions() für SQL_API_SQLTABLEPRIVILEGES und für SQL_API_SQLCOLUMNPRIVILEGES den Wert FALSE zurückzugeben. 1024 Zwingt den Treiber, SQL_SUCCESS anstelle von SQL_NO_DATA_FOUND in SQLExecute() oder SQLExecDirect() zurückzugeben, wenn die ausgeführte Anweisung UPDATE oder DELETE keine Zeilen betrifft. Erforderlich für Visual Basic-Anwendungen. 2048 Nicht verwendet. 4096 Zwingt den Treiber, im Modus für automatisches Festschreiben nach dem Schließen eines Cursors keine COMMIT-Anweisung abzusetzen. 8192 Zwingt den Treiber, nach dem Aufrufen einer gespeicherten Prozedur eine zusätzliche Ergebnismenge zurückzugeben. Diese besteht aus einer einzeiligen Ergebnismenge mit den Ausgabewerten der gespeicherten Prozedur. Kann von Powerbuild-Anwendungen benutzt werden. 32768 Zwingt den Treiber, die Verarbeitung von Microsoft Query-Anwendungen mit DB2 MVS-Synonymen durchzuführen. 65536 Zwingt den Treiber, manuell ein "G" vor Zeichenliterale zu setzen, die eigentlich Grafikliterale sind. Diese Programmkorrektur sollte immer beim Arbeiten in einer Doppelbyteumgebung bereitgestellt werden. 131072 Zwingt den Treiber, eine Zeitmarkenspalte als CHAR(26)-Spalte zu beschreiben, wenn diese Teil eines eindeutigen Index ist. Erforderlich für Microsoft-Anwendungen. 262144 Zwingt den Treiber, die Pseudo-Katalogtabelle db2cli.procedures anstelle der Tabellen SYSCAT.PROCEDURES und SYSCAT.PROCPARMS zu verwenden. 524288 Zwingt den Treiber, SYSTEM_TABLE_SCHEMA statt TABLE_SCHEMA bei der Bearbeitung einer Systemtabellenabfrage eines Systems mit DB2/400 Version 3.x zu verwenden. Dies führt zu einer Leistungsverbesserung. 1048576 Zwingt den Treiber, eine Zeichenfolge der Länge Null in SQLPutData() als SQL_NULL_DATA zu behandeln. Das Schlüsselwort PATCH2 unterscheidet sich von PATCH1. Bei diesem Schlüsselwort werden mehrere Programmkorrekturen (Patches) durch Kommas getrennt angegeben. Wenn z. B. die Programmkorrekturen 1, 4 und 5 angegeben wären, hätte PATCH2 den Wert "1,4,5". Nachfolgend finden Sie eine Beschreibung der einzelnen Schlüsselwortwerte und ihrer Auswirkung auf den Treiber: 1 - Zwingt den Treiber, den Namen einer gespeicherten Prozedur in einer Anweisung CALL in Großschreibung umzusetzen. 2 - Nicht verwendet. 3 - Zwingt den Treiber, alle Argumente in Schemaaufrufen in Großbuchstaben umzusetzen. 4 - Zwingt den Treiber, für Schemaaufrufe (d. h. SQLColumns(), SQLProcedureColumns() usw.), die LIKE-Ergebnismenge der Version 2.1.2 statt einer LIKE-Ergebnismenge der Version 5 zurückzugeben. 5 - Zwingt den Treiber, die Verarbeitung von VARCHAR-Eingabespalten, bei denen die Zeiger auf Daten und Länge im Speicher aufeinander folgen, nicht zu optimieren. 6 - Zwingt den Treiber, eine Nachricht zurückzugeben, dass verschiebbare Cursor nicht unterstützt werden. Erforderlich für Visual Basic-Programme, wenn der DB2-Client Version 5 und der Server DB2 UDB Version 5 ist. 7 - Zwingt den Treiber, alle GRAPHIC-Spaltendatentypen dem Spaltendatentyp CHAR zuzuordnen. Erforderlich für eine Doppelbyteumgebung. 8 - Zwingt den Treiber, Katalogsuchargumente in Schemaaufrufen zu ignorieren. 9 - Keine COMMIT-Operation bei frühzeitigem Schließen des Cursors (Early Close). 10 - Nicht verwendet. 11 - Ausgeben, dass der Katalogname unterstützt wird (gespeicherte VB-Prozeduren). 12 - Entfernt doppelte Anführungszeichen aus Argumenten eines Schemaaufrufs (Visual Interdev). 13 - Kein Anhängen von Schlüsselwörtern aus db2cli.ini an Ausgabeverbindungszeichenfolgen. 14 - Ignoriert den Schemanamen bei SQLProcedures() und SQLProcedureColumns(). 15 - Verwendet den Punkt als Dezimaltrennzeichen bei der Zeichenausgabe. 16 - Rückgabe von beschreibenden Informationen bei jedem OPEN erzwingen. 17 - Keine Rückgabe von Spaltennamen bei DESCRIBE. 18 - Versuch, Literale durch Parametermarken zu ersetzen. 19 - Derzeit unterstützt DB2 MVS Version 4.1 nicht die ODBC-Syntax, in der runde Klammern in der Klausel ON einer erweiterten Verknüpfungsklausel zulässig sind. Wenn Sie PATCH2 aktivieren, entfernt der IBM DB2 ODBC-Treiber die runde Klammer, wenn sich die erweiterte Verknüpfungsklausel in einer ODBC-Escape-Zeichenfolge befindet. PATCH2 sollte nur für DB2 MVS 4.1 verwendet werden. 20 - Derzeit unterstützt DB2 unter MVS nicht das Vergleichselement BETWEEN mit Parametermarken für beide Operanden (Ausdruck ? BETWEEN ?). Wenn Sie diese Programmkorrektur aktivieren, schreibt der IBM ODBC-Treiber das Vergleichselement um (Ausdruck >= ? und Ausdruck <= ?). 21 - Setzt alle Parameter OUTPUT für gespeicherte Prozeduren auf SQL_NULL_DATA. 22 - Veranlasst den IBM ODBC-Treiber, die äußere Verknüpfung als nicht unterstützt zu melden. Für Anwendungen, die SELECT DISTINCT spalte1 oder ORDER BY spalte1 verwenden, wenn eine erweiterte Verknüpfungsanweisung verwendet wird, wobei spalte1 länger ist als 254 Zeichen, so dass DB2 UDB einen Fehler zurückgibt (DB2 UDB unterstützt keine Spalten mit mehr als 254 Byte bei dieser Syntax). 23 - Keine Eingabeoptimierung von Parametern, die mit cbColDef=0 gebunden wurden. 24 - Problemumgehung bei Access für die Zuordnung von Zeitwerten als Zeichen. 25 - Problemumgehung bei Access für Dezimalspalten - entfernt abschließende Nullen bei der Zeichendarstellung. 26 - Keine Rückgabe des SQLCODE-Werts 464 an die Anwendung - gibt an, dass Ergebnismengen zurückgegeben werden. 27 - Zwingt SQLTables, den Wert des Schlüsselworts TABLETYPE zu verwenden, selbst wenn die Anwendung einen gültigen Wert angibt. 28 - Beschreibt reale Spalten als Doppelspalten. 29 - Problemumgehung bei ADO für Dezimalspalten - entfernt führende Nullen für x-Werte; dabei gilt: 1 > x > -1 (nur für einige MDAC-Versionen erforderlich). 30 - Inaktiviert die Cache-Optimierung der gespeicherten Prozedur. 31 - Meldet Statistikdaten für Aliasnamen bei einem Aufruf von SQLStatistics. 32 - Überschreibt die Verarbeitung für SQLCODE-Wert -727, Ursachencode 4. 33 - Gibt nach dem Konvertieren der Zeitmarke in den CHAR-Datentyp die ISO-Version zurück (nicht die ODBC-Version). 34 - Meldet CHAR FOR BIT DATA-Spalten als CHAR-Spalten. 35 - Meldet einen ungültigen Tabellennamen, wenn SQL_DESC_BASE_TABLE_NAME angefordert wird - Optimierung bei ADO für den Lesezugriff. 36 - Reserviert. 37 - Reserviert. Zusätzliche Informationen Teilinhaltsverzeichnis Zusätzliche Informationen 50.1 DB2 Everywhere jetzt DB2 Everyplace 50.2 Bessere Zugriffsmöglichkeiten von DB2 UDB Version 7 50.2.1 Tastatureingabe und Navigation 50.2.1.1 Tastatureingabe 50.2.1.2 Tastatureingabebereich 50.2.2 Bessere Zugriffsmöglichkeiten für Anzeige 50.2.2.1 Modus für starken Kontrast 50.2.2.2 Schriftarteinstellungen 50.2.2.3 Farberkennung nicht erforderlich 50.2.3 Alternative Alert-Hinweise 50.2.4 Kompatibilität mit Unterstützungstechnologien 50.2.5 Dokumentationsformate mit besseren Zugriffsmöglichkeiten 50.3 Maus erforderlich 50.4 Fehler "Bindedateien nicht gefunden" beim Versuch, von DB2 Run-Time Client aus zu binden 50.5 Discovery-Modus SEARCH 50.6 Speicherfenster für HP-UX 11 50.7 DB2 DFS Client Enabler deinstallieren 50.8 Client-Authentifizierung unter Windows NT 50.9 Einschränkungen bei Systemen zusammengeschlossener Datenbanken 50.10 Einschränkungen bei Systemen zusammengeschlossener Datenbanken mit partitionierten MPP-Tabellen 50.11 Einschränkung bei DataJoiner 50.12 Hebrew Information Catalog Manager for Windows NT 50.13 DB2 SNA SPM kann nach dem Booten von Windows nicht gestartet werden 50.14 Anforderungen an Servicebenutzereinträge für DB2 unter Windows NT und Windows 2000 50.15 Notwendigkeit zum Festschreiben aller benutzerdefinierten Programme, die in der Data Warehouse-Zentrale verwendet werden 50.16 Zwischenspeichern von Client-Daten in Windows NT 50.17 Life Sciences Data Connect 50.17.1 Neue Oberflächen 50.17.2 Anmerkungen 50.18 Verbesserung bei SQL Assist 50.19 Hilfe für Befehle zum Sichern und Wiederherstellen 50.20 "Warehouse Manager" muss "DB2 Warehouse Manager" heißen Zusätzliche Informationen 50.1 DB2 Everywhere jetzt DB2 Everyplace Der Name von DB2 Everywhere wurde in DB2 Everyplace geändert. 50.2 Bessere Zugriffsmöglichkeiten von DB2 UDB Version 7 Die DB2 UDB-Produktfamilie umfasst eine Reihe von Funktionen, durch die die Produkte für Benutzer mit Behinderungen leichter bedienbar werden. Dazu gehören die folgenden Funktionen und Merkmale: Funktionen, die die Tastatureingabe und die Navigation erleichtern Funktionen, die die Anzeigemerkmale verbessern Optionen für Warntöne und Warnanzeigen Kompatibilität mit Unterstützungstechnologien Kompatibilität mit Zugriffsmöglichkeiten des Betriebssystems Dokumentationsformate mit besseren Zugriffsmöglichkeiten 50.2.1 Tastatureingabe und Navigation 50.2.1.1 Tastatureingabe Die DB2-Steuerzentrale kann z. T. über die Tastatur bedient werden. Menüpunkte und Steuerungen bieten Zugriffstasten, mit denen Benutzer direkt über die Tastatur ein Steuerelement aktivieren oder einen Menüpunkt auswählen können. Welche Tasten Zugriffstasten sind, wird durch die Unterstreichung des entsprechenden Buchstabens in den jeweiligen Steuerelementen oder Menüs erkennbar. 50.2.1.2 Tastatureingabebereich Auf UNIX-Systemen ist der Tastatureingabebereich hervorgehoben, so dass zu sehen ist, welcher Bereich des Fensters aktiv ist und wo Tastenanschläge des Benutzers eine Auswirkung haben werden. 50.2.2 Bessere Zugriffsmöglichkeiten für Anzeige Die DB2-Steuerzentrale bietet eine Reihe von Funktionen, die die Benutzerschnittstelle erweitern und Zugriffsmöglichkeiten für sehbehinderte Benutzer verbessern. Diese Verbesserungen umfassen Unterstützung für starken Kontrast und anpassbare Schriftartmerkmale. 50.2.2.1 Modus für starken Kontrast Die Schnittstelle der Steuerzentrale unterstützt den Modus für starken Kontrast, der vom Betriebssystem zur Verfügung gestellt wird. Diese Funktion hilft Benutzern, die einen stärkeren Kontrast zwischen Vordergrund- und Hintergrundfarben benötigen. 50.2.2.2 Schriftarteinstellungen Die Schnittstelle der Steuerzentrale ermöglicht die Auswahl der Schriftfarbe, Schriftgröße und Schriftart für den Text in Menüs und Dialogfenstern. 50.2.2.3 Farberkennung nicht erforderlich Die Benutzer müssen zur Verwendung der Funktionen des Produkts die Farben nicht unterscheiden können. 50.2.3 Alternative Alert-Hinweise Der Benutzer kann auswählen, ob hörbar oder sichtbar auf Alerts hingewiesen werden soll. 50.2.4 Kompatibilität mit Unterstützungstechnologien Die Schnittstelle der DB2-Steuerzentrale ist kompatibel mit Bildschirmsprachausgabeanwendungen wie z. B. Via Voice. Im Anwendungsmodus hat die Schnittstelle der Steuerzentrale die erforderlichen Merkmale, mit denen diese Unterstützungsanwendungen blinden Benutzern die auf dem Bildschirm angezeigten Informationen verfügbar machen können. 50.2.5 Dokumentationsformate mit besseren Zugriffsmöglichkeiten Die Dokumentation für die DB2-Produktfamilie ist im HTML-Format verfügbar. Dadurch können Benutzer die Dokumentation mit den Vorgaben in ihrem Browser anzeigen. Außerdem wird dadurch die Verwendung von Bildschirmsprachausgabeprogrammen und anderen Unterstützungstechnologien möglich. 50.3 Maus erforderlich Bei allen Plattformen mit Ausnahme von Windows ist eine Maus zur Verwendung der Tools erforderlich. 50.4 Fehler "Bindedateien nicht gefunden" beim Versuch, von DB2 Run-Time Client aus zu binden Da DB2 Run-Time Client keinen vollständigen Satz von Bindedateien hat, kann das Binden von GUI-Tools nicht von DB2 Run-Time Client aus erfolgen, sondern nur von DB2 Administration Client. 50.5 Discovery-Modus SEARCH Der Discovery-Modus SEARCH wird nur für Datenträger im Broadcast-Betrieb unterstützt. Der Discovery-Modus SEARCH funktioniert z. B. nicht über einen ATM-Adapter. Diese Einschränkung wirkt sich jedoch nicht auf den Discovery-Modus KNOWN aus. 50.6 Speicherfenster für HP-UX 11 Speicherfenster sind für Benutzer konzipiert, die mit großen HP-64-Bit-Maschinen arbeiten und mehr als 1,75 GB gemeinsam benutzten Speicher für 32-Bit-Anwendungen nutzen wollen. Speicherfenster sind nicht erforderlich, wenn Sie die 64-Bit-Version von DB2 ausführen. Speicherfenster stellen einen separaten gemeinsam benutzten Speicher in der Größe von 1 GB pro Prozess oder Prozessgruppe zur Verfügung. Dadurch kann ein Exemplar seinen eigenen 1 GB großen gemeinsam benutzten Speicher plus 0,75 GB globalen gemeinsam benutzten Speicher verwenden. Wenn Benutzer dies nutzen wollen, können sie mehrere Exemplare jeweils in einem eigenen Fenster ausführen. Es gibt folgende Vorbedingungen und Voraussetzungen für die Verwendung von Speicherfenstern: DB2 EE-Umgebung Programmkorrekturen: Erweiterungssoftware 12/98 und PHKL_17795 Die Variable $DB2INSTANCE muss für das Exemplar gesetzt sein. Die Datei /etc/services.window muss für jedes DB2-Exemplar, das Sie unter Speicherfenstern ausführen wollen, einen Eintrag enthalten. Beispiel: db2instance1 50 db2instance2 60 Anmerkung: Zwischen dem Namen und der ID darf nur ein einziges Leerzeichen stehen. Alle DB2-Befehle, die Sie auf dem Server ausführen wollen und die mehrere Anweisungen benötigen, müssen mit einer TCP/IP-Schleifenmethode ausgeführt werden. Dies ist notwendig, weil die Shell beendet wird, wenn Speicherfenster die Verarbeitung der ersten Anweisung beenden. Der DB2-Service kann angeben, wie dies erreicht werden kann. Allen DB2-Befehlen, die Sie für ein Exemplar in Speicherfenstern ausführen wollen, muss "db2win" (in sqllib/bin) vorangestellt werden. Beispiel: db2win db2start db2win db2stop Alle DB2-Befehle, die außerhalb von Speicherfenstern ausgeführt werden (wenn Speicherfenster aktiv sind), sollten die Nachricht SQL1042 ausgeben. Beispiel: db2win db2start <== OK db2 connect to db <==SQL1042 db2stop <==SQL1042 db2win db2stop <== OK DB2 EEE-Umgebung Programmkorrekturen: Erweiterungssoftware 12/98 und PHKL_17795 Die Variable $DB2INSTANCE muss für das Exemplar gesetzt sein. Die Registrierungsvariable DB2_ENABLE_MEM_WINDOWS muss auf TRUE gesetzt sein. Die Datei /etc/services.window muss für jeden logischen Knoten jedes Exemplars, das Sie unter Speicherfenstern ausführen wollen, einen Eintrag enthalten. Das erste Feld jedes Eintrags sollte der mit der Anschlussnummer verknüpfte Exemplarname sein. Beispiel: === $HOME/sqllib/db2nodes.cfg für db2instance1 === 5 host1 0 7 host1 1 9 host2 0 === $HOME/sqllib/db2nodes.cfg für db2instance2 === 1 host1 0 2 host2 0 3 host2 1 === /etc/services.window auf host1 === db2instance10 50 db2instance11 55 db2instance20 60 === /etc/services.window auf host2 === db2instance10 30 db2instance20 32 db2instance21 34 Sie dürfen einem Befehl nicht "db2win" voranstellen. "db2win" darf nur in einer EE-Umgebung verwendet werden. 50.7 DB2 DFS Client Enabler deinstallieren Bevor DB2 DFS Client Enabler deinstalliert werden kann, sollte der Root-Benutzer sicherstellen, dass keine DFS-Dateien mehr in Benutzung sind und dass kein Benutzer mehr eine Shell im DFS-Dateibereich offen hat. Setzen Sie als Root-Benutzer den folgenden Befehl ab: stop.dfs dfs_cl Prüfen Sie, dass /... nicht mehr angehängt ist: mount | grep -i dfs Wenn dies nicht erfolgt ist und DB2 DFS Client Enabler deinstalliert wird, muss die Maschine erneut gestartet werden. 50.8 Client-Authentifizierung unter Windows NT Es gibt eine neue DB2-Registrierungsvariable, DB2DOMAINLIST, die den bestehenden Client-Authentifizierungsmechanismus in der Windows NT-Umgebung ergänzt. Diese Variable wird auf dem Server unter DB2 für Windows NT verwendet, um mindestens eine Windows NT-Domäne zu definieren. Nur Verbindungs- oder Anschlussanforderungen von Benutzern, die zu den in dieser Liste definierten Domänen gehören, werden akzeptiert. Diese Registrierungsvariable sollte nur in einer reinen Windows NT-Domänenumgebung mit DB2-Servern und -Clients mit Version 7 (oder höher)verwendet werden. Informationen zur Einstellung dieser Registrierungsvariablen finden Sie im Abschnitt "DB2-Registrierungsvariablen und DB2-Umgebungsvariablen" des Handbuchs Systemverwaltung: Optimierung. 50.9 Einschränkungen bei Systemen zusammengeschlossener Datenbanken Bei Systemen zusammengeschlossener Datenbanken gelten folgende Einschränkungen: Die Oracle-Datentypen NCHAR, NVARCHAR2, NCLOB und BFILE werden in Abfragen mit Kurznamen nicht unterstützt. Die Befehle CREATE SERVER OPTION, ALTER SERVER OPTION und DROP SERVER OPTION werden von der Steuerzentrale nicht unterstützt. Zur Ausgabe eines dieser Befehle müssen Sie den Befehlszeilenprozessor verwenden. Bei Abfragen mit Kurznamen hält DB2 UDB sich nicht immer an die Datenbank-Konfigurationsoption DFT_SQLMATHWARN. Stattdessen gibt DB2 UDB die arithmetischen Fehler oder Warnungen unabhängig von der Einstellung von DFT_SQLMATHWARN direkt von der fernen Datenquelle aus. Bei der Anweisung CREATE SERVER darf die Serveroption COLSEQ für Datenquellen mit einer Sortierfolge, bei der Groß-/Kleinschreibung nicht unterschieden wird, nicht auf 'I' gesetzt werden. Die Anweisung ALTER NICKNAME gibt SQL0901N zurück, wenn eine ungültige Option angegeben wird. Bei Oracle-, Microsoft SQL Server- und Sybase-Datenquellen können numerische Datentypen nicht dem DB2-Datentyp BIGINT zugeordnet werden. Standardmäßig wird der Oracle-Datentyp number(p,s) dem DB2-Datentyp DECIMAL zugeordnet. Dabei gilt: 10 <= p <= 18 und s = 0. 50.10 Einschränkungen bei Systemen zusammengeschlossener Datenbanken mit partitionierten MPP-Tabellen Wenn Sie versuchen, mit einer SQL-Anweisung Daten von einer Datenquelle auszuwählen und die Daten direkt in eine partitionierte MPP-Tabelle auf Ihrem DB2-Server mit zusammengeschlossenen Datenbanken einzufügen, zu aktualisieren oder zu löschen, erhalten Sie den Fehler SQL0901N. Die Funktionalität des Systems zusammengeschlossener Datenbanken erlaubt die Auswahl von einem Kurznamen und das Einfügen in eine partitionierte MPP-Tabelle nicht. Sobald Sie FixPak 4 (oder höher) anwenden, können Sie mit den folgenden Schritten Daten auswählen und in eine partitionierte MPP-Tabelle einfügen: Exportieren Sie in der Kundenanwendungsumgebung die Umgebungsvariable DB2NODE, um den Knoten anzugeben, zu dem die Anwendung immer eine Verbindung herstellen sollte. EXPORT DB2NODE=x Dabei ist x eine Knotennummer. Erstellen Sie eine Knotengruppe, die nur den angegebenen Knoten enthält. CREATE NODEGROUP knotengruppenname ON NODE(x) Dabei ist x die Knotennummer. Erstellen Sie einen Tabellenbereich in der Knotengruppe. CREATE TABLESPACE tabellenbereichsname IN NODEGROUP knotengruppenname Erstellen Sie eine temporäre Tabelle im Tabellenbereich. CREATE TABLE name-temp-tabelle IN tabellenbereichsname Teilen Sie die Einfügeoperation in der Anwendung in zwei Schritte auf: INSERT INTO name-temp-tabelle SELECT * FROM kurzname INSERT INTO partitionierte-MPP-tabelle SELECT * from name-temp-tabelle Die Aufteilung der Anweisung INSERT in zwei Anweisungen ändert die Semantik für die Festschreibung und die Zurücksetzung auf Anweisungsebene. Zum Beispiel müssen Sie jetzt statt einer Anweisung zwei Anweisungen rückgängig machen. Wenn Sie die Knotennummer der Umgebungsvariablen DB2NODE ändern, müssen Sie zudem das Anwendungspaket ungültig machen und erneut binden. Mit diesen Schritten können Sie Daten von Datenquellen auswählen und sie in eine partitionierte MPP-Tabelle einfügen. Sie erhalten immer noch den Fehler SQL0901N, wenn Sie versuchen, mit einer Anweisung Daten von einer Datenquelle auszuwählen und die Daten in einer partitionierten MPP-Tabelle zu aktualisieren oder zu löschen. Diese Einschränkung wird in DB2 Universal Database Version 8 behoben. 50.11 Einschränkung bei DataJoiner Verteilte Anforderungen, die in einer zusammengeschlossenen Umgebung abgesetzt werden, sind auf Nur-Lese-Operationen beschränkt. 50.12 Hebrew Information Catalog Manager for Windows NT The Information Catalog Manager component is available in Hebrew and is provided on the DB2 Warehouse Manager for Windows NT CD. The Hebrew translation is provided in a zip file called IL_ICM.ZIP and is located in the DB2\IL directory on the DB2 Warehouse Manager for Windows NT CD. To install the Hebrew translation of Information Catalog Manager, first install the English version of DB2 Warehouse Manager for Windows NT and all prerequisites on a Hebrew Enabled version of Windows NT. After DB2 Warehouse Manager for Windows NT has been installed, unzip the IL_ICM.ZIP file from the DB2\IL directory into the same directory where DB2 Warehouse Manager for Windows NT was installed. Ensure that the correct options are supplied to the unzip program to create the directory structure in the zip file. After the file has been unzipped, the global environment variable LC_ALL must be changed from En_US to Iw_IL. To change the setting: Open the Windows NT Control Panel and double click on the System icon. In the System Properties window, click on the Environment tab, then locate the variable LC_ALL in the System Variables section. Click on the variable to display the value in the Value edit box. Change the value from En_US to Iw_IL. Click on the Set button. Close the System Properties window and the Control Panel. The Hebrew version of Information Catalog Manager should now be installed. 50.13 DB2 SNA SPM kann nach dem Booten von Windows nicht gestartet werden Wenn Sie Microsoft SNA Server Version 4 SP3 oder später verwenden, stellen Sie bitte sicher, dass DB2 SNA SPM nach einem Warmstart korrekt gestartet wird. Prüfen Sie die Datei \sqllib\\db2diag.log auf Einträge ähnlich den Folgenden: 2000-04-20-13.18.19.958000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:none common_communication sqlccspmconnmgr_APPC_init Probe:19 SPM0453C Der Synchronisationspunktmanager wurde nicht gestartet, da Microsoft SNA Server nicht gestartet wurde. 2000-04-20-13.18.23.033000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:302 Appid:none common_communication sqlccsna_start_listen Probe:14 DIA3001E "SNA SPM"-Protokollunterstützung nicht erfolgreich gestartet. 2000-04-20-13.18.23.603000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:none common_communication sqlccspmconnmgr_listener Probe:6 DIA3103E Fehler in APPC-Protokollunterstützung festgestellt. APPC-Verb "APPC(DISPLAY 1 BYTE)". Primärer RC: "F004". Sekundärer RC: "00000000". Sind solche Einträge in Ihrer db2diag.log vorhanden und stimmen die Zeitmarken mit der Zeit des letzten Warmstarts überein, gehen Sie wie folgt vor: Rufen Sie db2stop auf. Starten Sie den SnaServer-Service (falls dieser noch nicht gestartet wurde). Rufen Sie db2start auf. Überprüfen Sie die Datei db2diag.log erneut, um sicherzustellen, dass die Einträge nicht mehr hinzugefügt werden. 50.14 Anforderungen an Servicebenutzereinträge für DB2 unter Windows NT und Windows 2000 Während der Installation von DB2 für Windows NT oder Windows 2000 erstellt das Installationsprogramm mehrere Windows-Services und ordnet jedem Service einen Benutzereintrag zu. Das Installationsprogramm erteilt dem Servicebenutzereintrag, der dem jeweiligen DB2-Service zugeordnet wird, die folgenden Benutzerrechte, damit DB2 ordnungsgemäß ausgeführt werden kann: Als Teil des Betriebssystems handeln Erstellen eines Tokenobjekts Anheben einer Quote Anmelden als Dienst Ersetzen eines Tokens auf Prozessebene Wenn Sie einen anderen Servicebenutzereintrag für die DB2-Services verwenden möchten, müssen Sie diesem Servicebenutzereintrag die o. g. Benutzerrechte erteilen. Außerdem muss der Servicebenutzereintrag über Schreibzugriff für das Verzeichnis verfügen, in dem das DB2-Produkt installiert ist. Der DB2-Service DB2DAS00 (Verwaltungsserver) muss außerdem über die Berechtigung zum Starten und Stoppen anderer DB2-Services verfügen (d. h. der Service muss zur Gruppe der Hauptbenutzer gehören) und die DB2-Berechtigung SYSADM für alle DB2-Exemplare besitzen, die er verwaltet. 50.15 Notwendigkeit zum Festschreiben aller benutzerdefinierten Programme, die in der Data Warehouse-Zentrale verwendet werden Wenn Sie eine gespeicherte Prozedur verwenden wollen, die von DB2 Stored Procedure Builder als benutzerdefiniertes Programm in der Data Warehouse-Zentrale erstellt wurde, müssen Sie die folgende Anweisung in die gespeicherte Prozedur vor der Anweisung con.close(); einfügen: con.commit(); Wird diese Anweisung nicht eingefügt, werden Änderungen an der gespeicherten Prozedur zurückgesetzt, sobald die gespeicherte Prozedur von der Data Warehouse-Zentrale aus ausgeführt wird. Bei allen benutzerdefinierten Programmen in der Data Warehouse-Zentrale ist es notwendig, alle enthaltenen DB2-Funktionen explizit festzuschreiben, damit die Änderungen in der Datenbank wirksam werden. Das bedeutet, Sie müssen die COMMIT-Anweisungen den benutzerdefinierten Programmen hinzufügen. 50.16 Zwischenspeichern von Client-Daten in Windows NT Versucht ein Benutzer, auf eine Datenbank-Datei zuzugreifen, für die Lesezugriff erteilt wurde und die sich auf einer Windows NT-Servermaschine befindet, auf der DB2 Datalinks installiert ist, und verwendet er ein gemeinsames Laufwerk mit einem gültigen Token, wird die Datei wie erwartet geöffnet. Danach erreichen nachfolgende Anforderungen zum Öffnen der Datei mit demselben Token jedoch nicht den Server, sondern werden vom Cache auf dem Client bedient. Auch wenn das Token verfällt, bleibt der Inhalt der Datei weiterhin für den Benutzer sichtbar, weil sich der Eintrag immer noch im Cache befindet. Dieses Problem tritt jedoch nicht auf, wenn sich die Datei auf einer Windows NT-Workstation befindet. Eine Lösung besteht darin, den Registrierungseintrag \\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\Parameters\EnableOpLocks auf dem Windows NT-Server auf Null zu setzen. Mit dieser Einstellung in der Registrierdatenbank erreicht eine Zugriffsanforderung über ein gemeinsames Laufwerk von einer Client-Workstation für eine Datei, die sich auf dem Server befindet, immer den Server und wird nicht vom Client-Cache bedient. Daher wird das Token für alle Anforderungen erneut ausgewertet. Der Nachteil dieser Lösung besteht darin, dass die Gesamtleistung für alle Dateizugriffe vom Server über gemeinsame Laufwerke beeinträchtigt wird. Erfolgt der Zugriff auf die Datei über eine Zuordnung für gemeinsame Laufwerke auf dem Server selbst und nicht von einer anderen Client-Maschine, scheint es selbst mit dieser Einstellung so, als würde die Anforderung immer noch vom Cache bedient. Daher wird der Token-Verfall nicht wirksam. Anmerkung: Erfolgt der Dateizugriff lokal und nicht über ein gemeinsames Laufwerk, treten in allen Fällen Gültigkeitsprüfung und nachfolgender Verfall des Tokens wie erwartet ein. 50.17 Life Sciences Data Connect 50.17.1 Neue Oberflächen In FixPak 4 wurden Life Sciences Data Connect zwei neue Oberflächen hinzugefügt: eine für Documentum unter AIX und eine für Excel unter Windows NT. Darüber hinaus wurde die Oberfläche für tabellenstrukturierte Dateien von AIX auf Windows NT-, Solaris-, Linux- und HP-UX-Systemen portiert. Für FixPak 5 wurde DB2 Life Sciences Data Connect die Oberfläche BLAST unter AIX hinzugefügt. Die Documentum-Oberfläche wurde von AIX auf Windows NT, Windows 2000 und die Solaris-Betriebsumgebung portiert. Für FixPak 6 wurde die BLASTOberfläche von AIX auf Windows NT, Windows 2000, HP-UX und die Solaris-Betriebsumgebung portiert. 50.17.2 Anmerkungen Life Sciences Data Connect umfasst Code von The Apache Software und ICU. Der Code wird ohne Wartung (auf "AS-IS"-Basis) UND OHNE GEWÄHRLEISTUNG (VERÖFFENTLICHT ODER STILLSCHWEIGEND), EINSCHLIESSLICH, ABER NICHT BEGRENZT AUF DIE IMPLIZIERTE GEWÄHRLEISTUNG FÜR DIE HANDELSÜBLICHKEIT UND DIE VERWENDUNGSFÄHIGKEIT FÜR EINEN BESTIMMTEN ZWECK, ZUR VERFÜGUNG GESTELLT. IBM übernimmt darüber hinaus keine weiteren Verpflichtungen. Apache-Softwarelizenz, Version 1.1 Copyright (c) 1999-2001 The Apache Software Foundation. Alle Rechte vorbehalten. ICU 1.8.1 und höher. Copyright (c) 1995-2001 International Business Machines Corporation und sonstige. Alle Rechte vorbehalten. 50.18 Verbesserung bei SQL Assist Das Tool SQL Assist ermöglicht es jetzt dem Benutzer, einen anderen Verknüpfungsoperator als "=" für Tabellenverknüpfungen anzugeben. Der Dialog Verknüpfungsart, der durch Anklicken des Knopfs Verknüpfungsart von SQL Assist geöffnet wird, wurde erweitert, so dass er jetzt eine Dropdown-Liste mit Verknüpfungsoperatoren enthält. Verfügbar sind die Operatoren "=", "<>", "<", ">", "<=" und ">=". SQL Assist ist ein Tool, das dem Benutzer bei der Erstellung einfacher SQL-Anweisungen hilft. Es ist verfügbar in der Befehlszentrale (Indexzunge Interaktiv), der Steuerzentrale (Dialog Sicht erstellen und Auslöser erstellen), dem Stored Procedure Builder (Assistent für das Einfügen von gespeicherten SQL-Prozeduren) und in der Data Warehouse-Zentrale (SQL-Verarbeitungsschritt). 50.19 Hilfe für Befehle zum Sichern und Wiederherstellen Bei Eingabe von db2 ? backup werden falsche Informationen angezeigt. Die richtige Ausgabe lautet: BACKUP DATABASE aliasname-der-datenbank [USER benutzername [USING kennwort]] [TABLESPACE (tabellenbereichsname [ {,tabellenbereichsname} ... ])] [ONLINE] [INCREMENTAL [DELTA]] [USE TSM [OPEN anzahl-der-sitzungen SESSIONS]] | TO dir/dev [ {,dir/dev} ... ] | LOAD bibliotheksname [OPEN anzahl-der-sitzungen SESSIONS]] [WITH anzahl-der-puffer BUFFERS] [BUFFER puffergröße] [PARALLELISM n] [WITHOUT PROMPTING] Bei Eingabe von db2 ? restore werden falsche Informationen angezeigt. Die richtige Ausgabe lautet: RESTORE DATABASE aliasname-der-quellendatenbank { wiederherstellungsoptionen | CONTINUE | ABORT }"; wiederherstellungsoptionen:"; [USER benutzername [USING kennwort]] [{TABLESPACE [ONLINE] |"; TABLESPACE (tabellenbereichsname [ {,tabellenbereichsname} ... ]) [ONLINE] |"; HISTORY FILE [ONLINE]}] [INCREMENTAL [ABORT]]"; [{USE TSM [OPEN anzahl-der-sitzungen SESSIONS] |"; FROM dir/dev [ {,dir/dev} ... ] | LOAD gemeinsame-bibliothek"; [OPEN anzahl-der-sitzungen SESSIONS]}] [TAKEN AT datum-uhrzeit] [TO zielverzeichnis]"; [INTO aliasname-der-zieldatenbank] [NEWLOGPATH verzeichnis]"; [WITH anzahl-der-puffer BUFFERS] [BUFFER puffergröße]"; [DLREPORT dateiname] [REPLACE EXISTING] [REDIRECT] [PARALLELISM n]"; [WITHOUT ROLLING FORWARD] [WITHOUT DATALINK] [WITHOUT PROMPTING]"; 50.20 "Warehouse Manager" muss "DB2 Warehouse Manager" heißen Alle Vorkommen des Ausdrucks "Warehouse Manager" in Produktanzeigen und in der Produktdokumentation sollten "DB2 Warehouse Manager" lauten. Anhänge und Schlußteil Anhang A. Bemerkungen Möglicherweise bietet IBM die in dieser Dokumentation beschriebenen Produkte, Services oder Funktionen in anderen Ländern nicht an. Informationen über die gegenwärtig im jeweiligen Land verfügbaren Produkte und Services sind beim IBM Ansprechpartner erhältlich. Hinweise auf IBM Lizenzprogramme oder andere IBM Produkte bedeuten nicht, dass nur Programme, Produkte oder Dienstleistungen von IBM verwendet werden können. An Stelle der IBM Produkte, Programme oder Dienstleistungen können auch andere ihnen äquivalente Produkte, Programme oder Dienstleistungen verwendet werden, solange diese keine gewerblichen oder anderen Schutzrechte der IBM verletzen. Die Verantwortung für den Betrieb der Produkte, Programme oder Dienstleistungen in Verbindung mit Fremdprodukten und Fremddienstleistungen liegt beim Kunden, soweit nicht ausdrücklich solche Verbindungen erwähnt sind. Für in diesem Handbuch beschriebene Erzeugnisse und Verfahren kann es IBM Patente oder Patentanmeldungen geben. Mit der Auslieferung dieses Handbuchs ist keine Lizenzierung dieser Patente verbunden. Lizenzanfragen sind schriftlich an IBM Europe, Director of Licensing, 92066 Paris La Defense Cedex, France, zu richten. Anfragen an obige Adresse müssen auf englisch formuliert werden. Trotz sorgfältiger Bearbeitung können technische Ungenauigkeiten oder Druckfehler in dieser Veröffentlichung nicht ausgeschlossen werden. Die Angaben in diesem Handbuch werden in regelmäßigen Zeitabständen aktualisiert. Die Änderungen werden in Überarbeitungen bekanntgegeben. IBM kann jederzeit Verbesserungen und/oder Änderungen an den in dieser Veröffentlichung beschriebenen Produkten und/oder Programmen vornehmen. Verweise in diesen Informationen auf Websites anderer Anbieter dienen lediglich als Benutzerinformationen und stellen keinerlei Billigung des Inhalts dieser Websites dar. Das über diese Websites verfügbare Material ist nicht Bestandteil des Materials für dieses IBM Produkt. Die Verwendung dieser Websites geschieht auf eigene Verantwortung. Werden an IBM Informationen eingesandt, können diese beliebig verwendet werden, ohne dass eine Verpflichtung gegenüber dem Einsender entsteht. Lizenznehmer des Programms, die Informationen zu diesem Produkt wünschen mit der Zielsetzung: (i) den Austausch von Informationen zwischen unabhängigen, erstellten Programmen und anderen Programmen (einschließlich des vorliegenden Programms) sowie (ii) die gemeinsame Nutzung der ausgetauschten Informationen zu ermöglichen, wenden sich an folgende Adresse: IBM Canada Limited Office of the Lab Director 8200 Warden Avenue Markham, Ontario L6G 1C7 CANADA Die Bereitstellung dieser Informationen kann unter Umständen von bestimmten Bedingungen - in einigen Fällen auch von der Zahlung einer Gebühr - abhängig sein. Die Lieferung des im Handbuch aufgeführten Lizenzprogramms sowie des zugehörigen Lizenzmaterials erfolgt im Rahmen der Allgemeinen Geschäftsbedingungen der IBM, der Internationalen Nutzungsbedingungen der IBM für Programmpakete oder einer äquivalenten Vereinbarung. Alle in diesem Dokument enthaltenen Leistungsdaten stammen aus einer gesteuerten Umgebung. Die Ergebnisse, die in anderen Betriebsumgebungen erzielt werden, können daher erheblich von den hier erzielten Ergebnissen abweichen. Einige Daten stammen möglicherweise von Systemen, deren Entwicklung noch nicht abgeschlossen ist. Eine Garantie, dass diese Daten auch in allgemein verfügbaren Systemen erzielt werden, kann nicht gegeben werden. Darüber hinaus wurden einige Daten unter Umständen durch Extrapolation berechnet. Die tatsächlichen Ergebnisse können abweichen. Benutzer dieses Dokuments sollten die entsprechenden Daten in ihrer spezifischen Umgebung prüfen. Informationen über Produkte anderer Hersteller als IBM wurden von den Herstellern dieser Produkte zur Verfügung gestellt, bzw. aus von ihnen veröffentlichten Ankündigungen oder anderen öffentlich zugänglichen Quellen entnommen. IBM hat diese Produkte nicht getestet und übernimmt im Hinblick auf Produkte anderer Hersteller keine Verantwortung für einwandfreie Funktion, Kompatibilität oder andere Ansprüche. Fragen zu den Leistungsmerkmalen von Produkten anderer Anbieter sind an den jeweiligen Anbieter zu richten. Aussagen über Pläne und Absichten der IBM unterliegen Änderungen oder können zurückgenommen werden und repräsentieren nur die Ziele der IBM. Diese Veröffentlichung enthält Beispiele für Daten und Berichte des alltäglichen Geschäftsablaufes. Sie sollen nur die Funktionen des Lizenzprogrammes illustrieren; sie können Namen von Personen, Firmen, Marken oder Produkten enthalten. Alle diese Namen sind frei erfunden, Ähnlichkeiten mit tatsächlichen Namen und Adressen sind rein zufällig. COPYRIGHT-LIZENZ: Diese Veröffentlichung enthält Beispielanwendungsprogramme, die in Quellensprache geschrieben sind. Sie dürfen diese Beispielprogramme kostenlos kopieren, ändern und verteilen, wenn dies zu dem Zweck geschieht, Anwendungsprogramme zu entwickeln, verwenden, vermarkten oder zu verteilen, die mit der Anwendungsprogrammierschnittstelle konform sind, für die diese Beispielprogramme geschrieben werden. Die in diesem Handbuch aufgeführten Beispiele sollen lediglich der Veranschaulichung und zu keinem anderen Zweck dienen. Diese Beispiele wurden nicht unter allen denkbaren Bedingungen getestet. Kopien oder Teile der Beispielprogramme bzw. daraus abgeleiteter Code müssen folgenden Copyrightvermerk beinhalten: (C) (Name Ihrer Firma) (Jahr). Teile des vorliegenden Codes wurden aus Beispielprogrammen der IBM Corp. abgeleitet. (C) Copyright IBM Corp. _Jahr/Jahre angeben_. Alle Rechte vorbehalten. A.1 Marken Folgende Namen sind in gewissen Ländern Marken der International Business Machines Corporation. ACF/VTAM AISPO AIX AIX/6000 AIXwindows AnyNet APPN IBM System AS/400 BookManager CICS C Set++ C/370 DATABASE 2 DataHub DataJoiner DataPropagator DataRefresher DB2 DB2 Connect DB2 ExtenderDB2 OLAP Server DB2 Universal Database Distributed Relational Database Architecture DRDA eNetwork Extended Services FFST First Failure Support Technology IBM IMS IMS/ESA LAN DistanceMVS MVS/ESA MVS/XA Net.Data OS/2 OS/390 OS/400 PowerPC QBIC QMF RACF RS/6000 IBM System /370 SP SQL/DS SQL/400 System/370 IBM System /390 SystemView VisualAge VM/ESA VSE/ESA VTAM WebExplorer WIN-OS/2 Folgende Namen sind in gewissen Ländern Marken oder eingetragene Marken anderer Unternehmen: Microsoft, Windows und Windows NT sind Marken oder eingetragene Marken von Microsoft Corporation. Java und alle auf Java basierenden Marken und Logos sowie Solaris sind in gewissen Ländern Marken von Sun Microsystems, Inc. Tivoli und NetView sind in gewissen Ländern Marken von Tivoli Systems Inc. UNIX ist eine eingetragene Marke und wird ausschließlich von der X/Open Company Limited lizenziert. Andere Namen von Unternehmen, Produkten oder Dienstleistungen können Marken anderer Unternehmen sein.