Bekannte Probleme und Fehlerumgehungen

| | |

Export in eine IXF-Datei mit Indizes in Spalten, die die Zeichen - |und + enthalten

|

Wenn der Befehl export mit einem IXF-Dateiformat und der |Klausel SELECT * abgesetzt wird, werden ggf. Indexierungsinformationen erfasst.

|
|Fehler |

Wenn die im Index angegebenen Spaltennamen die Zeichen - oder + enthalten, werden die Indexierungsinformationen nicht erfasst, und Sie erhalten den SQL-Code SQL27984W. Der Export wird beendet, ohne dass sich dies auf die exportierten Daten auswirkt. |Die Indexierungsinformationen werden jedoch nicht in der IXF-Datei gespeichert.

|
|Fehlerumgehung |

Wenn Sie die Tabelle mit dem Befehl import und dem Parameter CREATE erneut erstellen, werden die Indizes nicht erneut erstellt. |Die Indizes können Sie mit dem Dienstprogramm db2look separat erstellen.

| | |

Fehler CLI0116E oder SQL0428N beim Aufruf der API db2ReadLog

|
|Fehler |

Wenn Sie die API db2ReadLog über eine Anwendung aufrufen, kann dies beim Trennen der Anwendung von der Datenbank einen Fehler verursachen, falls zuvor keine COMMIT- oder ROLLBACK-Operation ausgeführt wird:

|
|
|Fehlerumgehung 1 |

Schalten Sie für nicht eingebettete SQL-Anwendungen den Modus für automatisches Festschreiben ein, bevor Sie die API db2ReadLog aufrufen.

|
|Fehlerumgehung 2 |

Setzen Sie nach dem Aufruf der API db2ReadLog eine COMMIT- oder ROLLBACK-Anweisung ab, bevor Sie die Verbindung zur Datenbank trennen.

Der Befehl "db2gcf -k" schlägt in DB2 UDB Workgroup Server Edition fehl

Fehler

Der Befehl 'db2gcf' startet, stoppt oder überwacht ein DB2 Universal Database-Exemplar in der Regel in einer automatisierten Prozedur, wie z. B. in einem Cluster mit hoher Verfügbarkeit.

Die Verwendung des Systembefehls 'db2gcf' mit dem Parameter -k unter DB2 UDB Workgroup Server schlägt fehl.

Fehlerumgehung

Der Befehl "db2gcf -k" kann nur unter DB2 UDB Enterprise Server Edition, nicht jedoch unter DB2 UDB Workgroup Server Edition eingesetzt werden.

Fehler SQL1224 vom DRDA-Wrapper (AIX)

Wenn ein 32-Bit-DB2 Universal Database-Server auf einem AIX-System ausgeführt wird und eine Anwendung, die auf demselben System aktiv ist, mehrere Daten- bankverbindungen über den DRDA-Wrapper aufweist, empfängt die Anwendung möglicherweise den folgenden Fehler:

SQL1822N  Es wurde ein unerwarteter Fehlercode "-1224"
von der Datenquelle "W3_SERVER2" empfangen. 
Zugeordneter Text und Token sind 
  func="DriverConnect" 
  msg="SQL1224N  Ein Datenbankagent konnte nicht für die Anforderung
                 gestartet werden, oder er wurde auf Grund eines
                 Systemabschlusses der Datenbank bzw. durch den Befehl
                 FORCE beendet."
SQLSTATE=560BD

Sie vermeiden diesen Fehler, indem Sie in die Konfigurationsdatei für zusammengeschlossene Datenbanken (exemplarverzeichnis/cfg/db2dj.ini) den folgenden Eintrag einfügen:

EXTSHM=ON
Anmerkung:
Wenn Sie der Konfigurationsdatei für zusammengeschlossene Datenbanken Einträge hinzufügen, müssen Sie DB2 UDB stoppen und erneut starten, damit die Änderungen wirksam werden.

Sie können jedoch auch die lokale DB2 UDB-Datenbank so katalogisieren, dass sie sich auf einem TCP/IP-Knoten befindet. Beispiel:

CATALOG TCPIP NODE mein_knoten REMOTE mein_host SERVER 123;
CATALOG DB meinedb AT NODE mein_knoten;
CREATE WRAPPER drda;
CREATE SERVER mein_server TYPE DB2/UDB VERSION 8 WRAPPER drda
   AUTHORIZATION "meine_id" PASSWORD "mein_kennwort"
   OPTIONS(ADD DBNAME 'MEINEDB');

Direktaufrufe in Microsoft Visual Studio .NET Framework 1.1 funktionieren nicht

Wenn Ihre Direktaufrufe in Microsoft Visual Studio .NET Framework 1.1 nicht funktionieren, können Sie von der Website von Microsoft ein Hotfix herunterladen. Sie finden das Hotfix in der Microsoft Knowledge Base unter Artikel Q836745.

Ländereinstellung für vereinfachtes Chinesisch (AIX)

Unter AIX wurde der codierte Zeichensatz für die Ländereinstellung für vereinfachtes Chinesisch Zh_CN für folgende Versionen geändert:

Der Zeichensatz wurde von GBK (Codepage 1386) in GB18030 (Codepage 5488 oder 1392) geändert. Da DB2 Universal Database (UDB) für AIX den Zeichensatz GBK nativ und den Zeichensatz GB18030 über Unicode unterstützt, legt DB2 UDB den codierten Zeichensatz der Ländereinstellung Zh_CN standardmäßig auf ISO 8859-1 (Codepage 819) fest. Darüber hinaus wird bei einigen Operationen als Gebiet der Ländereinstellung die USA (US) festgelegt.

Es gibt zwei Möglichkeiten, um diese Einschränkung zu umgehen:

Wenn Sie sich für die erste Möglichkeit entscheiden, setzen Sie die folgenden Befehle ab:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
db2stop
db2start 

Wenn Sie sich für die zweite Möglichkeit entscheiden, ändern Sie die Ländereinstellung von Zh_CN in ZH_CN oder zh_CN. Der codierte Zeichensatz der Ländereinstellung ZH_CN ist Unicode (UTF-8), der codierte Zeichensatz der Ländereinstellung zh_CN ist eucCN (Codepage 1383).

Ländereinstellung für vereinfachtes Chinesisch (Red Hat Linux)

In Red Hat Version 8 oder höher (einschließlich Red Hat Enterprise Linux [RHEL] Version 2.1 und Version 3) wurde der Standardwert für den codierten Zeichensatz für vereinfachtes Chinesisch von GBK (Codepage 1386) in GB18030 (Codepage 5488 oder 1392) geändert.

Da DB2 Universal Database (UDB) für Linux den Zeichensatz GBK nativ und den Zeichensatz GB18030 über Unicode unterstützt, legt DB2 UDB seinen codierten Zeichensatz standardmäßig auf ISO 8859-1 (Codepage 819) fest. Darüber hinaus wird bei einigen Operationen als Gebiet die USA (US) festgelegt.

Es gibt zwei Möglichkeiten, um diese Einschränkung zu umgehen:

Wenn Sie sich für die erste Möglichkeit entscheiden, setzen Sie die folgenden Befehle ab:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
db2stop
db2start 

Wenn Sie sich für die zweite Möglichkeit entscheiden, setzen Sie einen der folgenden Befehle ab:

export LANG=zh_CN.gbk
export LANG=zh_CN
export LANG=zh_CN.utf8

Dabei ist der codierte Zeichensatz, der zh_CN zugeordnet ist, eucCN oder Codepage 138, und der codierte Zeichensatz, der zh_CN.utf8 zugeordnet ist, Codepage 1208.

Inkompatibilität bei Merant Driver Manager (UNIX)

Bei der Unicode-Unterstützung sind Inkompatibilitäten vorhanden, wenn Merant Driver Manager unter UNIX auf den ODBC-Treiber von DB2 zugreift. Auf Grund dieser Inkompatibilitäten wird Merant Driver Manager zur Verwendung von Unicode veranlasst, selbst wenn die Anwendung die Unicode-Verwendung nicht angefordert hat. Dies kann zu Problemen mit Komponenten wie der Data Warehouse-Zentrale, Information Catalog Manager und MQSI führen, die Merant Driver Manager zur Unterstützung von Nicht-IBM Datenquellen benötigen. Sie können eine alternative DB2-ODBC-Treiberbibliothek ohne aktivierte Unicode-Unterstützung verwenden, bis eine dauerhafte Lösung zur Verfügung steht.

Eine alternative DB2-ODBC-Treiberbibliothek ohne aktivierte Unicode-Unterstützung ist in DB2 Universal Database (UDB) Version 8.1 für AIX, HP-UX und die Solaris-Betriebsumgebung enthalten. Zur Verwendung der alternativen Bibliothek müssen Sie eine Kopie von dieser erstellen und die Kopie mit dem Originalnamen der DB2-ODBC-Treiberbibliothek benennen.

Anmerkung:
Die alternative Bibliothek (_36) enthält die Unicode-Funktionen, die für den DB2-JDBC-Treiber erforderlich sind. Bei Verwendung dieser Bibliothek können JDBC-Anwendungen einschließlich WebSphere Application Server erfolgreich mit DB2 UDB arbeiten.

Beachten Sie folgende Hinweise, um zur Nicht-Unicode-ODBC-Bibliothek unter AIX, HP-UX oder der Solaris-Betriebsumgebung umschalten zu können: Da es sich dabei um einen manuellen Prozess handelt, müssen Sie diesen bei jeder Aktualisierung Ihres Produkts ausführen, ebenso nach Anwendung nachfolgender FixPaks oder Modifikationsstufen.

Vorgehensweise

AIX

Gehen Sie wie folgt vor, um die alternative Bibliothek unter AIX zu erstellen:

  1. Beenden Sie als Exemplareigner alle Datenbankexemplare mit dem Befehl db2stop force.
  2. Beenden Sie unter Verwendung der Exemplar-ID des DB2-Verwaltungsservers (DVS) das DVS-Exemplar mit dem Befehl db2admin stop force.
  3. Sichern Sie die Originaldatei db2.o im Verzeichnis /usr/lpp/db2_81/lib.
  4. Setzen Sie mit der Rootberechtigung den Befehl slibclean ab.
  5. Kopieren Sie die Datei db2_36.o in die Sicherungsdatei db2.o, und stellen Sie dabei sicher, dass Eigentumsrecht und Berechtigungen konsistent bleiben. Verwenden Sie die folgenden Befehle:
    cp db2_36.o db2.o
    -r--r--r-- bin:bin for db2.o

Um wieder zum Originalobjekt zu wechseln, führen Sie dieselbe Prozedur aus. Verwenden Sie dabei die Sicherungsdatei an Stelle der Datei db2_36.o.

Solaris-Betriebsumgebung

Gehen Sie wie folgt vor, um die alternative Bibliothek in einer Solaris-Betriebsumgebung zu erstellen:

  1. Beenden Sie als Exemplareigner alle Datenbankexemplare mit dem Befehl db2stop force.
  2. Beenden Sie unter Verwendung der Exemplar-ID des DB2-Verwaltungsservers (DVS) das DVS-Exemplar mit dem Befehl db2admin stop force.
  3. Sichern Sie die Originaldatei libdb2.so.1 im Verzeichnis /opt/IBMdb2/V8.1/lib.
  4. Kopieren Sie die Datei libdb2_36.so.1 in die Sicherungsdatei libdb2.so.1, und stellen Sie dabei sicher, dass Eigentumsrecht und 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
  5. Setzen Sie den Befehl db2iupdt <exemplar> für jedes Datenbankexemplar und den Befehl dasupdt <dvs-exemplar für das DVS-Exemplar ab.

Um wieder zum Originalobjekt zu wechseln, führen Sie dieselbe Prozedur aus. Verwenden Sie dabei die Sicherungsdatei an Stelle der Datei libdb2_36.so.1.

HP-UX PA-RISC

Gehen Sie wie folgt vor, um die alternative Bibliothek unter HP-UX PA-RISC zu erstellen:

  1. Beenden Sie alle Datenbankexemplare mit dem Befehl db2stop force.
  2. Beenden Sie das Exemplar des DB2-Verwaltungsservers (DVS) mit dem Befehl db2admin stop force.
  3. Sichern Sie die Originaldatei libdb2.sl im Verzeichnis /opt/IBMdb2/V8.1/lib.
  4. Kopieren Sie die Datei libdb2_36.sl in die Sicherungsdatei libdb2.sl, und stellen Sie dabei sicher, dass Eigentumsrecht und Berechtigungen konsistent bleiben. Verwenden Sie den folgenden Befehl, um die Konsistenz sicherzustellen:
    cp libdb2_36.sl libdb2.sl
    -r-xr-xr-x bin:bin for libdb2.sl
  5. Setzen Sie den Befehl db2iupdt <exemplar> für jedes Datenbankexemplar und den Befehl dasupdt <dvs-exemplar für das DVS-Exemplar ab.

Um wieder zum Originalobjekt zu wechseln, führen Sie dieselbe Prozedur aus. Verwenden Sie dabei die Sicherungsdatei an Stelle der Datei libdb2_36.sl.

HP-UX auf IA64-Plattformen

Gehen Sie wie folgt vor, um die alternative Bibliothek unter HP-UX auf IA64-Plattformen zu erstellen:

  1. Beenden Sie alle Datenbankexemplare mit dem Befehl db2stop force.
  2. Beenden Sie das Exemplar des DB2-Verwaltungsservers (DVS) mit dem Befehl db2admin stop force.
  3. Sichern Sie die Originaldatei libdb2.so im Verzeichnis /opt/IBMdb2/V8.1/lib.
  4. Kopieren Sie die Datei libdb2_36.so in die Sicherungsdatei libdb2.so, und stellen Sie dabei sicher, dass Eigentumsrecht und Berechtigungen konsistent bleiben. Verwenden Sie den folgenden Befehl, um die Konsistenz sicherzustellen:
    cp libdb2_36.so libdb2.so
    -r-xr-xr-x bin:bin for libdb2.so
  5. Setzen Sie den Befehl db2iupdt <exemplar> für jedes Datenbankexemplar und den Befehl dasupdt <dvs-exemplar für das DVS-Exemplar ab.

Um wieder zum Originalobjekt zu wechseln, führen Sie dieselbe Prozedur aus. Verwenden Sie dabei die Sicherungsdatei an Stelle der Datei libdb2_36.so.

Andere UNIX-Betriebssysteme

Wenn Sie Unterstützung für DB2 UDB und Merant Driver Manager auf anderen UNIX-Betriebssystemen benötigen, wenden Sie sich bitte an die IBM Unterstützungsfunktion.

NFS-APAR IY32512 - Nicht verfügbare Threads (AIX)

NFS-APAR IY32512 für AIX 5 kann bewirken, dass der Befehl db2stop auf Systemen mit einer großen Partitionsanzahl fehlschlägt.

Auf einem Server, der viele Anforderungen für Blocksperren für Dateien empfängt, die bereits gesperrt sind, antwortet der Sperrdämon möglicherweise nicht mehr. Dies tritt auf, wenn alle verfügbaren gesperrten Threads den Threads zugeordnet werden, die darauf warten, dass Sperren verfügbar werden, so dass kein Thread verfügbar ist, um die Arbeit wiederaufzunehmen, wenn die Entsperranforderung erfolgt.

In dieser Situation müssen die gestoppten Knoten erneut gestartet werden. Es gibt in dieser Situation eine Fehlerumgehung für DB2 Universal Database: Sie stoppen die Knoten jeweils einzeln, indem Sie die Option NODENUM des Befehls db2stop verwenden.

Fehler in der Precompileroption SQLFLAG(STD)

Wenn die Precompileroption SQLFLAG(STD) aktiviert ist, wird ein Fehler angezeigt, dass es bei der Ausführung des Precompilerprogramms DSNHPC zu einer abnormalen Beendigung C6 kam.

Entfernen Sie die Precompileroption SQLFLAG(STD), wenn Sie die Entwicklungszentrale zum Erstellen gespeicherter SQL-Prozeduren verwenden, die unter DB2 Universal Database für z/OS Version 8 ausgeführt werden.

| | |

Das Verbindungspooling muss bei Einsatz von Sysplex in DB2 Connect aktiviert sein

|
|Fehler |

DB2 Connect(TM) leitet Verbindungen zu anderen Elementen einer Distributed |Data Facility (DDF) nicht weiter, wenn das die Verbindung herstellende Element der DDF in einer Gruppe mit gemeinsamer Datennutzung für OS390 beendet wurde. Wenn Sysplex aktiviert ist, leitet DB2 Connect Verbindungen zu einem anderen Element in der DDF gemäß der Serverliste weiter.

|

Sysplex für DB2 Connect Version 8 wurde unter Berücksichtigung der Verwendung von Agentenpools entworfen. |Die Sysplex-Serverliste wird freigegeben, falls für eine Datenbank keine Agenten und keine Verbindungen vorhanden sind. Daher muss mindestens ein Agent beibehalten werden, wenn die Sysplex-Serverliste beibehalten werden soll.

|
|Fehlerumgehung |

Aktivieren Sie das Verbindungspooling mit den folgenden Befehlen:

|
db2 update dbm cfg using num_poolagents anzahl
|db2stop
|db2start

Dabei steht anzahl für die maximale Anzahl Agenten, die für Pools des DB2-Exemplars zugelassen sind. Das Verbindungspooling ist aktiviert, wenn anzahl größer als null ist.

|
|Empfehlung |

Setzen Sie num_poolagents auf -1, was der Hälfte des Werts entspricht, auf den der Konfigurationsparameter maxagents gesetzt ist.

DB2 Connect Custom Advisor

Obwohl DB2 Connect Custom Advisor im DB2 Connect Benutzerhandbuch dokumentiert ist, wird er in Version 8.2 nicht mehr unterstützt.

Erstellung der Toolskatalogdatenbank schlägt fehl (HP-UX)

Fehler
Wenn Sie DB2 Universal Database (UDB) Version 8.2 unter HP-UX installieren, schlägt der Befehl CREATE TOOLS CATALOG mit dem SQLCODE-Wert -22209 fehl, wenn er unter einem 32-Bit-Exemplar ausgeführt wird und der Konfigurationsparameter jdk_path des DB2-Verwaltungsservers auf HP-UX SDK 1.4 zeigt. Der Fehler tritt auf, da DB2 UDB Version 8.2 HP-UX SDK 1.4 standardmäßig installiert, aber das 32-Bit-Exemplar der Version 8.2 HP-UX SDK 1.3 erfordert, um den Befehl CREATE TOOLS CATALOG erfolgreich auszuführen.

Dieser Fehler kann auch auftreten, wenn Sie DB2 UDB Version 8.1 FixPak 7 installieren, falls Sie den Konfigurationsparameter jdk_path des DB2-Verwaltungsservers manuell so aktualisiert haben, dass er auf HP-UX SDK 1.4 zeigt, oder falls Sie den DB2-Verwaltungsserver (DVS) gelöscht und erneut erstellt haben. Der Fehler tritt auf, da Sie in beiden Fällen den Konfigurationsparameter jdk_path so geändert haben, dass er auf HP-UX SDK 1.4 zeigt.

Ein 32-Bit-Exemplar von DB2 UDB Version 8.2 erfordert HP-UX SDK 1.3, um erfolgreich ausgeführt zu werden.

Fehlerumgehung 1
Erstellen Sie den Toolskatalog unter einem 64-Bit-Exemplar.
Fehlerumgehung 2
Erstellen Sie den Toolskatalog unter einem 32-Bit-Exemplar, indem Sie die folgenden Schritte ausführen:
  1. Laden Sie HP-UX SDK 1.3 von der folgenden HP-UX-Website herunter: http://www.hp.com/products1/unix/java/
  2. Installieren Sie HP-UX SDK 1.3.
  3. Aktualisieren Sie den Konfigurationsparameter jdk_path des DB2-Verwaltungsservers so, dass er auf HP-UX SDK 1.3 zeigt. Beispiel:
    db2 update admin config using JDK_PATH /opt/java1.3
  4. Starten Sie den DB2-Verwaltungsserver erneut.
    db2admin stop
    db2admin start
  5. Führen Sie den Befehl CREATE TOOLS CATALOG unter dem 32-Bit-Exemplar erneut aus.

Anzeigen von indischen Schriftzeichen in den GUI-Tools von DB2

Wenn Sie bei der Verwendung der GUI-Tools von DB2 Probleme mit der Anzeige von indischen Schriftzeichen haben, haben Sie die erforderlichen Schriftarten möglicherweise nicht auf Ihrem System installiert.

DB2 Universal Database (UDB) wird mit den folgenden proportionalen IBM TrueType- und OpenType-Schriftarten für indische Sprachen geliefert. Sie können diese Schriftarten im Verzeichnis font auf einer der folgenden CDs finden:

Diese Schriftarten sind nur für die Verwendung mit DB2 UDB bestimmt. Diese Schriftarten dürfen weder im allgemeinen noch im uneingeschränkten Verkauf noch zur Verteilung angeboten werden:

Tabelle 9. Mit DB2 UDB gelieferte indische Schriftarten
Schriftbild Schriftstärke Name der Schriftartdatei
Devanagari MT für IBM Mittel devamt.ttf
Devanagari MT für IBM Fett devamtb.ttf
Tamil Mittel TamilMT.ttf
Tamil Fett TamilMTB.ttf
Telugu Mittel TeluguMT.ttf
Telugu Fett TeleguMTB.ttf

Genaue Anweisungen zur Installation der Schriftarten und zur Modifizierung der Datei font.properties finden Sie im Abschnitt zur Internationalisierung in der Dokumentation zu IBM Development Kit für Java.

Darüber hinaus werden die folgenden Produkte von Microsoft mit Schriftarten für indische Sprachen geliefert. Sie können ebenfalls mit den GUI-Tools von DB2 verwendet werden:

GUI-Tools werden für zSeries-Server nicht unterstützt (Linux)

Mit Ausnahme des DB2-Installationsassistenten funktionieren die GUI-Tools auf zSeries-Servern mit Linux-Betriebssystem nicht. Diese Einschränkung umfasst alle Elemente, die normalerweise über die Klickstartleiste für die Installation gestartet werden, wie beispielsweise der Kurzüberblick.

Wenn Sie die GUI-Tools mit einem dieser Systeme verwenden möchten, instal- lieren Sie die Verwaltungstools auf einem Clientsystem mit einer anderen Systemkonfiguration, und verwenden Sie diesen Client, um eine Verbindung zu Ihrem zSeries-Server herzustellen.

Einschließen von Suchbegriffen für 'DB2 Information - Unterstützung' in Anführungszeichen, sofern die Suchbegriffe Ziffern enthalten

Wenn Sie in 'DB2 Information - Unterstützung' genaue Suchergebnisse erhalten möchten, müssen Sie Suchbegriffe, die Ziffern enthalten, in Anführungszeichen einschließen.

Wenn Sie z. B. nach dem folgenden Begriff suchen, erhalten Sie keine Ergebnisse:

  1.4.1

Wenn Sie jedoch diesen Suchbegriff in Anführungszeichen einschließen, erhalten Sie die entsprechenden Ergebnisse:

  "1.4.1"

Eine Suche nach dem folgenden Suchbegriff gibt mehr Themen als erwartet zurück:

  DB20000I

Eine Suche nach dem folgenden Begriff funktioniert jedoch wie erwartet:

  "DB20000I"

Protokolldatei der Informationskatalogzentrale beim Importieren von Befehlssprachendateien nicht generiert

Wenn die Protokolldatei der Informationskatalogzentrale beim Importieren von Befehlssprachendateien in die Informationskatalogzentrale nicht generiert wird, führen Sie folgende Schritte zur Fehlerbehebung durch:

Bei Ausführung von 'db2icmimport' über die Befehlszeile
Beim Importieren von Befehlssprachendateien unter Verwendung der GUI der Informationskatalogzentrale

Binden von Query Patroller-Paketen

Wenn die Query Patroller-Pakete nach Anwendung eines FixPaks nicht gebunden werden, besteht die Möglichkeit, dass ein Benutzer ohne Datenbankadministratorberechtigung oder entsprechende Query Patroller-Zugriffsrechte bei Verwendung der Query Patroller-Zentrale oder der Query Patroller-Befehlszeile den folgenden Fehler empfängt:

SQL0001N - Binden oder Vorkompilieren nicht erfolgreich abgeschlossen.

Wenn Sie mit der Query Patroller-Zentrale arbeiten, wird der Fehler SQL0001N in der Datei qpdiag.log protokolliert. Wenn Sie mit der Query Patroller-Befehlszeile arbeiten, wird SQL0001N an die Konsole zurückgegeben.

Zum Einleiten einer automatischen Bindung steht ein entsprechender Code zur Verfügung. Die automatische Bindung schlägt jedoch fehl, wenn der Benutzer, der die Verbindung herstellt, nicht über die erforderlichen Zugriffsrechte zur Ausführung aller Anweisungen in den Query Patroller-Paketen verfügt. Eine Folge dieses Fehlers ist, dass in der Query Patroller-Zentrale Ordner fehlen.

Zur Vermeidung dieses Fehlers sollten die qpserver.lst-Pakete nach Anwendung eines FixPaks von einem Benutzer mit DBADM-Berechtigung oder entsprechenden Zugriffsrechten manuell gebunden werden.

Nichtverfügbarkeit von Ports bei Query Patroller (Windows)

Fehler

Übergebene Abfragen in Query Patroller empfangen möglicherweise den SQL-Code -29007, wenn unter Windows XP oder Windows 2003 keine Ports mehr verfügbar sind. Die Wahrscheinlichkeit dieses Fehlers nimmt zu, wenn die Anzahl der Clients zunimmt, die auf Query Patroller zugreifen.

Fehlerumgehung

Setzen Sie die folgenden Windows-Registrierdatenbankvariablen:

      MaxUserPort=65534
   TcpTimedWaitDelay=30 

Starten Sie anschließend das System erneut, damit die Änderungen wirksam werden.

Details zum Setzen von Windows-Registrierdatenbankvariablen finden Sie unter der URL-Adresse http://support.microsoft.com/ auf der Microsoft(R)-Website für Hilfe und Unterstützung.

Sichere Umgebungen (Windows)

Wenn Sie DB2 Universal Database (UDB) unter Windows verwenden und für das Windows-System keine Administratorrechte haben, können Dateiberechtigungsprobleme auftreten. Wenn Sie die Fehlernachricht SQL1035N, SQL1652N oder SQL5005C empfangen, sind folgende Ursachen und Fehlerumgehungen möglich:

Benutzer ohne ausreichende Berechtigung für des Verzeichnis sqllib

Fehler
Beim Versuch, einen DB2-Befehlszeilenprozessor oder ein DB2-Befehlsfenster zu öffnen, empfängt der Benutzer den Fehler SQL1035N oder SQL1652N. Der DB2 UDB-Code (Kerndateien) ist in einer Verzeichnisstruktur mit eingeschränkten Schreibzugriffsrechten installiert, einige DB2 UDB-Tools müssen jedoch in das Verzeichnis DB2INSTPROF schreiben und dort Dateien erstellen können.
Fehlerumgehung
Erstellen Sie ein neues Verzeichnis, für das Sie Benutzern mindestens die Berechtigung zum Modifizieren (MODIFY) erteilen können, und zeigen Sie mit dem Befehl db2set -g db2tempdir auf das neue Verzeichnis, oder setzen Sie die Variable db2tempdir in der Windows-Systemumgebung.
Benutzer ohne ausreichende Berechtigung zum Schreiben in das Verzeichnis sqllib\<exemplarverzeichnis>, obwohl er zu SYSADM_GROUP gehört

Fehler
Beim Versuch, die Konfigurationsdatei des Datenbankmanagers zu aktua- lisieren (update dbm cfg), empfängt der Benutzer den Systemfehler SQL5005C. Der Benutzer verfügt nicht über die erforderlichen NTFS-Berechtigungen, um in das Verzeichnis sqllib\exemplarverzeichnis zu schreiben, obwohl Sie diesen Benutzer der Gruppe SYSADM_GROUP hinzugefügt haben.
Erste Fehlerumgehung

Erteilen Sie den Benutzern mindestens die Berechtigung zum Modifizieren (MODIFY) für das Verzeichnis exemplarverzeichnis auf Dateisystemebene.

Zweite Fehlerumgehung
Erstellen Sie ein neues Verzeichnis, für das Sie dem Benutzer mindestens die Berechtigung zum Modifizieren (MODIFY) erteilen. Verwenden Sie den Befehl db2set db2instprof, um auf das neue Verzeichnis zu zeigen. Sie müssen entweder das Exemplar erneut erstellen, damit die Informationen unter dem neuen Exemplarverzeichnis gespeichert werden, das durch db2instprof angegeben wird, oder Sie müssen das alte Exemplarverzeichnis in das neue Verzeichnis versetzen.

Beispielprogramme für XML Extender umbenannt

Die Namen einiger XML Extender-Beispielprogramme sind möglicherweise mit den Namen anderer installierter Programme identisch. Wenn versehentlich ein anderes Programm mit demselben Namen wie das XML Extender-Beispielprogramm aufgerufen wird, können Ihre XML-Dateien beschädigt werden. In der folgenden Liste sind die alten Namen der XML Extender-Beispielprogramme sowie neue Pro- grammnamen aufgeführt, die seltener Konflikte verursachen. Verwenden Sie an Stelle der alten Namen unbedingt die neuen Namen für die Beispielprogramme, damit keine XML-Dateien beschädigt werden.

Tabelle 10. Neue Beispielprogramme für XML Extender (Windows)
Altes Programm (Nicht mehr verwenden) Neues Programm (Verwenden)
insertx.exe dxxisrt.exe
retrieve.exe dxxretr.exe
retrieve2.exe dxxretr2.exe
retrievec.exe dxxretrc.exe
shred.exe dxxshrd.exe
tests2x.exe dxxgenx.exe
tests2xb.exe dxxgenxb.exe
tests2xc.exe dxxgenxc.exe
Tabelle 11. Neue Beispielprogramme für XML Extender (Linux und UNIX)
Altes Programm (Nicht mehr verwenden) Neues Programm (Verwenden)
insertx dxxisrt
retrieve dxxretr
retrieve2 dxxretr2
retrievec dxxretrc
shred dxxshrd
tests2x dxxgenx
tests2xb dxxgenxb
tests2xc dxxgenxc

Verwenden der neuen Beispielprogramme mit sqx-Beispieldateien

Der Quellcode (sqx-Dateien) für die oben aufgeführten ausführbaren Dateien befindet sich im Verzeichnis samples\db2xml\c Ihrer Installation. Die Quellendateien werden immer noch mit ihren alten Namen bezeichnet. Wenn Sie Änderungen am Quellcode vornehmen, kopieren Sie Ihre neu kompilierten ausführbaren Dateien (mit den alten Namen) in das Verzeichnis sqllib\bin.

Auf Windows-Plattformen müssen Sie eine zusätzliche Kopie erstellen, diese mit ihrem oben aufgeführten, neuen Namen benennen und in das Verzeichnis bin kopieren. Beide Kopien ersetzen die im bin-Verzeichnis vorhandenen Dateien. Nach dem Kompilieren Ihrer neuen Version von shred.exe müssen Sie zum Beispiel zwei Kopien machen und die Dateien im bin-Verzeichnis ersetzen: eine Datei shred.exe und die andere umbenannte Datei dxxshrd.exe.

Auf Linux- und UNIX-Plattformen müssen Sie nur die Datei mit dem alten Namen durch Ihre neu kompilierte Version ersetzen. Wenn Sie anhand dieser Programme neue ausführbare Dateien erstellen, müssen Sie die neuen Dateien aus dem Verzeichnis \SQLLIB\samples\db2xml\c\ in das Verzeichnis \SQLLIB\bin\ kopieren. Erstellen Sie dann eine zusätzliche Kopie, indem Sie die Dateien gemäß der obigen Tabelle umbenennen.

Zerlegen von Dokumenten in XML Extender, die nicht eindeutige Attribute und Elementnamen enthalten

Sie können jetzt Dokumente zerlegen, die nicht eindeutige Attribute oder Elementnamen enthalten, die verschiedenen Spalten (der gleichen oder verschiedener Tabellen) zugeordnet sind, ohne die Fehlermeldung DXXQ045E zu erhalten. Es folgt ein ein Beispiel eines XML-Dokuments mit nicht eindeutigen Attributen und nicht eindeutigen Elementnamen:

<Order ID="0001-6789">
       <!-- Anmerkung: Die Attributnamen-ID ist nicht eindeutig -->
       <Customer ID = "1111">
                    <Name>John Smith</Name>
       </Customer>
       <!-- Anmerkung: Der Elementname 'Name' ist nicht eindeutig -->
       <Salesperson ID = "1234"> 
              <Name>Jane Doe</Name>
       </Salesperson>
       <OrderDetail>
              <ItemNo>xxxx-xxxx</ItemNo>
              <Quantity>2</Quantity>
              <UnitPrice>12.50</UnitPrice>
       </OrderDetail>
       <OrderDetail>
              <ItemNo>yyyy-yyyy</ItemNo>
              <Quantity>4</Quantity>
              <UnitPrice>24.99</UnitPrice>
       </OrderDetail>       
</Order>

Die zugehörige DAD, welche die kopierten Elemente und Attribute anderen Spalten zuordnet, sieht wie folgt aus:

<element_node name="Order">
        <RDB_node>
    <table name="order_tab" key="order_id"/>
    <table name="detail_tab"/>
    <condition>
      order_tab.order_id=detail_tab.order_id
    </condition>
        </RDB_node>

  <!-- Attribut-ID unten kopiert, aber einer anderen Spalte zugeordnet -->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
      <column name="order_id" type="char(9)"/>
        </RDB_node>
    </attribute_node>
  
  <element_node name="Customer">
    <!-- Attribut-ID oben kopiert, aber einer anderen Spalte zugeordnet -->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
        <column name="cust_id" type="integer"/>
        </RDB_node>
    </attribute_node>

    <!-- Elementname unten kopiert, aber einer anderen Spalte zugeordnet -->
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="cust_name" type="char(20)" />
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
    
  <element_node name="Salesperson">
    <!-- Attribut-ID oben kopiert, aber einer anderen Spalte zugeordnet -->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
        <column name="salesp_id" type="integer"/>
        </RDB_node>
    </attribute_node>
          
    <!-- Elementname oben kopiert, aber einer anderen Spalte zugeordnet --> 
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="salesp_name" type="char(20)" />
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
    
  <element_node name="OrderDetail" multi_occurrence="YES">
    <element_node name="ItemNo">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />
          <column name="itemno" type="char(9)"/>
        </RDB_node>
      </text_node>
  </element_node>
    <element_node name="Quantity">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />
          <column name="quantity" type="integer"/>
        </RDB_node>
      </text_node>
  </element_node>
    <element_node name="UnitPrice">
      <text_node>
        <RDB_node>detail_tab" />
          <table name="detail_tab" />        
          <column name="unit_price" type="decimal(7,2)"/>
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
</element_node>

Der Inhalt der Tabellen würde nach dem Zerlegen des vorangegangenen Dokuments wie folgt aussehen:

ORDER _TAB:

ORDER_ID       CUST_ID       CUST_NAME       SALESP_ID       SALESP_NAME
0001-6789      1111          John Smith      1234            Jane Doe

DETAIL_TAB:

ORDER_ID          ITEMNO         QUANTITY          UNIT_PRICE
0001-6789         xxxx-xxxx      2                 12.50
0001-6789         yyyy-yyyy      4                 24.99
Anmerkung:
Definieren Sie einen Aliasnamen für die Tabelle, und verwenden Sie den Aliasnamen im DAD-Element <table> von einer der Zuordnungen, um mehrere Elemente und Attribute derselben Spalte in derselben Tabelle zuzuordnen.

Unterschiede zwischen SNA und TCP/IP bei Verwendung von DB2 Connect

Bei der Herstellung einer Verbindung zu einem OS/390-System über SNA führt die VTAM-Schicht bei einer neuen Verbindung automatisch eine COMMIT-Operation aus. Die automatische COMMIT-Operation lässt zu, dass der Threadstatus des Hosts inaktiv ist. Deshalb wird der Thread sofort inaktiviert.

Bei der Herstellung einer Verbindung zu einem OS/390-System über TCP/IP gibt es jedoch keine automatische COMMIT-Operation. Die Anwendung selbst muss nach Herstellung der Verbindung eine explizite COMMIT-Operation ausführen, damit der Thread auf dem Host inaktiviert werden kann. Ohne die explizite COMMIT-Operation unterliegt der Thread einem Zeitlimit für ruhende Threads.

Zur Umgehung dieses Problems wird empfohlen, die Anwendung so umzuschreiben, dass eine explizite COMMIT-Operation ausgeführt wird, wenn die Verbindung nach deren Herstellung inaktiviert wird.

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