© Copyright International Business Machines Corporation 2006. All rights reserved.
© Copyright IBM Deutschland GmbH 2006. Alle Rechte vorbehalten.
In der Workbench gibt es zwei neue Datenprojekttypen:
- Datenentwurfsprojekte
- Datenentwicklungsprojekte
Datenentwurfsprojekte werden zum Erstellen und Speichern von Datenmodellen verwendet, zum Beispiel von physischen Datenmodellen und logischen Datenmodellen. Datenentwicklungsprojekte werden zum Erstellen und Speichern von Objekten in der Anwendungsentwicklung verwendet, zum Beispiel von gespeicherten Prozeduren und benutzerdefinierten Funktionen, die auch als Routinen bezeichnet werden. Routinen können in einem Datenentwurfsprojekt auch als Bestandteil eines physischen Datenmodells angezeigt werden. Die Entwicklungsunterstützung für Routinen in einem Datenentwurfsprojekt ist jedoch sehr begrenzt, und SQL-Tools für Routinen werden in einem Datenentwurfsprojekt nicht unterstützt. Wenn Sie Routinen entwickeln, wird empfohlen, die angegebenen Datenentwicklungsprojekte zu verwenden, die eine umfassendere Unterstützung mit Assistenten, Routineneditoren, Debuggingunterstützung und einer Integration der SQL-Tools bereitstellen.
Wenn Sie im Editor für Tabellendaten eine XML-Prüfung für eine XML-Tabelle durchführen, die nicht über einen Primärschlüssel verfügt, funktioniert die XML-Prüfung nur beim ersten Mal, wenn Sie den XML-Wert einfügen. Außerdem schlägt die Aktualisierung einer bereits vorhandenen XML-Spalte mit der XML-Prüfung fehl.
Problemumgehung: Erstellen Sie einen Primärschlüssel für Tabellen, die XML-Spalten enthalten.
Bei der Arbeit mit mehreren Stammelementen in diesem Editor können Fehler beim Speichern einer XSD-Datei mit Anmerkungen auftreten.
Problemumgehung: Erstellen Sie eine separate Gruppe aus XML-Schemadokumentdateien für jedes Stammelement.
Um XML-Datentypen verwenden und mit XML-Schemata arbeiten zu können, müssen Sie über eine Verbindung zu einer UTF-8-Datenbank verfügen. Das von der Datenbank für die XML-Dokumente zurückgegebene Datenvolumen ist nicht begrenzt. Abhängig von dem Datenvolumen, das Sie zurückgeben, kann die Leistung beeinträchtigt werden.
- Der SQL-Editor unterstützt derzeit nicht Hostvariablen während der Aktion 'SQL ausführen'.
Problemumgehung: Sie können die SQL-Anweisungen in SQL Builder ausführen, wenn es sich um DML-Anweisungen handelt.
- In SQL Builder wird die SQL-Syntax nicht vollständig unterstützt. So werden zum Beispiel benutzerdefinierte Datentypen (User Defined Types, UDTs) und Tabellenfunktionen nicht unterstützt.
- Benutzerdefinierte Datentypen (User Defined Types, UDTs) werden nicht als Parameter für Routinen unterstützt.
- Wenn Sie mit Hilfe einer Ant-Implementierung gespeicherte Java™-Prozeduren implementieren möchten, die auf DB2 Universal Database™ für iSeries® im Dateisystem abzielen, müssen Sie sicherstellen, dass sich die Datei 'jt400.jar' im Systemklassenpfad befindet. Wenn Sie versuchen, eine exportierte gespeicherte Prozedur mit Hilfe der Anweisungen in der Datei 'DeployInstructions.txt' zu implementieren, wird möglicherweise folgende Fehlernachricht angezeigt:
...[createsp] Zur Zieldatenbank konnte keine Verbindung hergestellt werden.
[createsp] com.ibm.db2.jcc.DB2Driver...Problemumgehung: Stellen Sie sicher, dass sich die Datei 'db2jcc.jar' und die entsprechenden Lizenzdateien im Systemklassenpfad befinden.
- Es kann vorkommen, dass der Fehler "Klasse kann nicht geladen werden" angezeigt wird, wenn Sie gespeicherte Java-Prozeduren implementieren oder ausführen. Dieser Fehler kann auftreten, wenn RAd Version 7 und der DB2®-Server unterschiedliche JDK-Versionen aufweisen und der DB2-Server ein niedrigere (ältere) JDK-Version hat.
Problemumgehung: Geben Sie die Option "-source 1.4" im Feld 'Compileroptionen' des Assistenten 'Routinen implementieren' an, wenn Sie gespeicherte Java-Prozeduren auf Servern implementieren, die JDK 1.4 verwenden (zum Beispiel eine DB2 Universal Database für Linux®, UNIX® und Windows® Version 8.2 Server). In der Regel sollten Sie die entsprechende Kompilierungsoption "-source JDK level" verwenden, um den JDK-Stand des Datenbankservers abzugleichen.
- Wenn Sie eine gespeicherte Prozedur oder benutzerdefinierte Funktion (UDF) mit Hilfe einer Ant-Implementierung implementieren, wird möglicherweise die folgende Nachricht angezeigt, wenn sich die Datei 'tools.jar' nicht im Klassenpfad befindet:
'tools.jar' kann nicht gefunden werden. Erwartete Position: F:\jre\1.4.2\lib\tools.jar
Die Datei 'tools.jar' ist Bestandteil der Java-Laufzeitumgebung (JRE, Java Runtime Environment) und nicht Bestandteil des Ant-Deployment-Tools.Problemumgehung: Die Datei 'tools.jar' ist nicht zur Ausführung des Ant-Scripts erforderlich. Daher können Sie diese Nachricht vorerst ignorieren.
- Wenn Sie den Java-Methodennamen in der gespeicherten Prozedur ändern, können Sie die Prozedur nicht ordnungsgemäß speichern, indem Sie in der Quellenseite des Editors auf die rechte Maustaste klicken und anschließend die 'Speichern' auswählen.
Problemumgehung: Speichern Sie die gespeicherte Prozedur durch Klicken auf 'File > Speicher', durch Drücken der Tastenkombination 'Strg + S' oder durch Klicken auf das Symbol 'Speichern'.
- Wenn Sie eine gespeicherte Prozedur oder UDF zwischen zwei ungleichen Servern (zum Beispiel von einem Server mit DB2 Universal für Linux, UNIX oder Windows zu einem Server mit DB2 Universal für z/OS®) ) ziehen und übergeben, wird während der Drag-and-Drop-Operation eine Warnung angezeigt, die auf bestimmte Inkompatibilitäten zwischen den beiden Servern hinweist. Wenn Sie die Operation fortsetzen und anschließend versuchen, die gespeicherte Prozedur bzw. UDF zu öffnen, wird unter Umständen eine Fehlernachricht angezeigt.
- Wenn Sie eine SQL-Profilerstellung für einen Server des Typs DB2 UDB für Linux, UNIX und Windows 8.2 ausführen, kann unter Umständen eine Null Pointer-Ausnahme auftreten, wenn auf dem Server die vorausgesetzte gespeicherte Prozedur (SYSIBM.SQLCAMESSAGECCSID) fehlt, die vom Java Commerce Client-Treiber zum Abrufen von Fehlernachrichttexten benötigt wird.
Problemumgehung: Sie können eine Verbindung zum Server ohne die Einstellung 'retrieveMessagesFromServerOnGetMessage=true' erstellen.
- Bei der Überwachung der Ausführung von SQL-Prozeduren werden Ereignisse für DML-Anweisungen wie INSERT, SELECT, DELETE und UPDATE generiert, die in der Prozedur aufgerufen werden. Die Ereignisse werden jedoch nicht auf eine deterministische Art für prozedurale Anweisungen wie Variablenzuordnungen oder Steuerstrukturen wie beispielsweise WHILE oder IF generiert. Daher werden möglicherweise keine Profilerstellungsinformationen für prozedurale Anweisungen generiert.
- Wenn eine Verbindung zu einem UNIX DB2-Server besteht, können Ausnahmen durch Zeitlimitüberschreitungen auftreten, wenn Sie Unterbrechungspunkte hinzufügen oder der Debugmodus ausgeführt wird.
- Der Debugger wird nicht für eine gespeicherte Prozedur ausgeführt, deren Name sowohl Englische als auch Chinesische Zeichen enthält.
- Überwachungsausdrücke werden nur für dynamische gespeicherte Java-Prozeduren unterstützt. Sie werden nicht für gespeicherte SQL-Prozeduren und gespeicherte SQLJ-Prozeduren unterstützt.
- Der Debugger stoppt nicht an einem Unterbrechungspunkt, wenn dieser nicht an dem ersten Token einer ausführbaren Anweisung wie zum Beispiel SET positioniert ist. Außerdem stoppt er nicht bei DECLARE CONTINUE, CLOSE CURSOR oder ROLLBACK.
- Wenn Sie ein Debug für eine gespeicherte Java-Prozedur durchführen und eine Aktion des Typs 'Beenden' auswählen, dauert es möglicherweise einige Minuten, bevor die Debugsitzung vollständig beendet wird. Neue Debugsitzungen, die in diesem Zeitraum gestartet werden, können ein unerwartetes Verhalten aufweisen.
- Wenn Sie ein Debug für eine gespeicherte Java-Prozedur durchführen, die ihrerseits eine zweite gespeicherte Java-Prozedur aufruft, können Sie kein Debug für diese zweite gespeicherte Prozedur durchführen. Es ist nicht möglich, in die verschachtelte gespeicherte Prozedur zu wechseln, und alle Unterbrechungspunkte, die Sie in der verschachtelten gespeicherten Prozedur festlegen, werden ignoriert. Diese Einschränkung gilt für Linux, UNIX und Windows.
- Wenn der Fehler 'Beim Warten auf das Paket wurde das Zeitlimit überschritten' auftritt, während Sie ein Debug für eine gespeicherte Java-Prozedur durchführen, versuchen Sie, die Einstellung für die Java-Zeitlimitüberschreitung zu erhöhen.
Problemumgehung: Um die Einstellung für die Zeitlimitüberschreitung in Java zu erhöhen, klicken Sie in der Workbench-Menüleiste auf 'Fenster > Benutzervorgaben'. Erweitern Sie den Knoten 'Java', und klicken Sie auf 'Debug'. Geben Sie auf der Seite 'Einstellungen für Debug' im Abschnitt 'Kommunikationszeitlimit' einen höheren den Wert für 'Debugger-Zeitlimit (msek)' an. Es wird empfohlen, den Standardwert mindestens zu verdoppeln.
- Wenn Sie ein Debug für eine gespeicherte Java-Prozedur durchführen und dabei die Aktion 'Wert ändern' zum Ändern einer Variablen verwenden, die eine leere Zeichenfolge als Wert aufweist, wird unter Umständen die Schaltfläche 'OK' im Bearbeitungsdialog nicht aktiviert.
Problemumgehung: Damit die Schaltfläche aktiviert wird, wählen Sie das Optionsfeld 'Bewertung eingeben' aus, legen als Wert keine leere Zeichenfolge fest (zum Beispiel 'a'), und wählen anschließend das Optionsfeld 'Literaltext eingeben' aus. Daraufhin wird die Schaltfläche 'OK' verfügbar.
- Falls keine lokalen Variablen angezeigt werden, wenn Sie ein Debug für eine gespeicherte Java-Prozedur durchführen, wurde die gespeicherte Prozedur eventuell ohne die Compileroption '-g' implementiert.
Problemumgehung: Stellen Sie sicher, dass Sie die Compileroption '-g' angeben, wenn Sie gespeicherte Java-Prozeduren implementieren.
- Wenn die Nachricht 'Ungültiger Stack-Frame' in der Sicht 'Variablen' angezeigt wird, wechseln Sie in die Sicht 'Debug', klicken Sie auf das Threadobjekt über dem Stack-Frame und anschließend auf den Stack-Frame. Daraufhin müsste die Sicht 'Variablen' aktualisiert werden, und der Fehler dürfte nicht mehr auftreten.
- Wenn Sie ein Debug für eine gespeicherte SQLJ-Prozedur durchführen, die auf DB2 UDB für iSeries Version 5 Release 4 ausgeführt wird, entspricht die gerade ausgeführte Zeile nicht der angegebenen SQLJ-Quellenzeile, die in der Sicht 'Debug' angezeigt wird, sofern Sie nicht eine vorläufige iSeries-Programmkorrektur angewendet haben, die die Zeilenzuordnung so aktualisiert, dass sie der SQLJ-Quelle und nicht der Java-Quelle entspricht.
- Die Benutzervorgaben für den Debugger werden nicht für Zeitlimitwerte des Sitzungsmanagers erkannt. Öffnen Sie 'Fenster > Benutzervorgaben', erweitern Sie 'Ausführen/Debug', klicken Sie auf 'Debugger für gespeicherte DB2-Prozeduren' und ändern Sie dann den Zeitlimitwert für den Sitzungsmanager im Feld 'Minuten'.
- Der Debugger kann keine gespeicherte Prozedur verarbeiten, die über eine sehr große Menge von Variablen in DB2 für Linux, UNIX oder Windows verfügt. Die maximal zulässige Anzahl an Variablen beträgt 200.
- Cursorbewegung in Debugsitzung: In manchen Fällen müssen Sie, wenn mehrere Variablendeklarationen in einer Prozedur vorkommen, mehrmals auf 'Step-Into' oder 'Step-Over' klicken, um in die nächste Zeile zu gelangen. Sie müssen zum Beispiel zwei Mal auf die Zeile 'DECLARE v_dept, v_actdept CHAR(3)' klicken und drei Mal auf die Zeile 'DECLARE v_bonus, v_deptbonus, v_newbonus DECIMAL(9,2)'. Die Anzahl der erforderlichen Klickvorgänge entspricht dabei der Anzahl der Variablendeklarationen.
- Wenn Sie eine Debugsitzung für eine gespeicherte Java-Prozedur starten und Unterbrechungspunkte hinzufügen, müssen Sie die Unterbrechungspunkte inaktivieren, da die Unterbrechungspunkte noch aktiviert sind.
Problemumgehung: Sie sollten beim Starten einer neuen Debugsitzung zuerst alle alten Unterbrechungspunkte entfernen und anschließend die neuen Unterbrechungspunkte hinzufügen.
- Wenn Sie an mehreren Datenentwicklungsprojekten arbeiten, kann es in manchen Fällen vorkommen, dass bei dem Versuch, ein Debug für eine gespeicherte Prozedur durchzuführen, folgende Fehlernachricht angezeigt wird: "Gespeicherte Prozedur PROCNAME konnte nicht lokalisiert werden. Prozedur wurde möglicherweise aus dem Arbeitsbereich gelöscht" oder "Quelle nicht gefunden".
- Nachdem Sie ein Debug für einer verschachtelte gespeicherte SQL-Prozedur ausgeführt haben, kann es in einigen Fällen vorkommen, dass in der Sicht mit der Datenausgabe noch angezeigt wird, dass der Debugger ausgeführt wird. Dies kann bei allen späteren Ausführungen oder bei der Implementierung von gespeicherten Prozeduren Probleme verursachen.
Problemumgehung: Der Sitzungsmanager muss auf dem Clientsystem ausgeführt werden, auf dem das Entwicklerprodukt installiert ist. Um den Sitzungsmanager zu starten, führen Sie die Datei 'db2dbgm.bat' aus, die sich im Installationsverzeichnis des Produkts im Unterverzeichnis 'bin' befindet.
- Es besteht nur eingeschränkte Unterstützung für das Debugging gespeicherter Prozeduren auf Servern mit DB2 Version 8 Linux, Unix, Windows und z/OS. Das Debugging ist auf SQL-Prozeduren auf einem Server mit DB2 Version 8 mit installiertem Fixpack 14 beschränkt. Damit der Debugger für einen Server mit DB2 Version 8 ausgeführt werden kann, muss der Sitzungsmanager ebenfalls auf dem Clientsystem ausgeführt werden, auf dem das Entwicklerprodukt installiert ist. Um den Sitzungsmanager zu starten, führen Sie die Datei 'db2dbgm.bat' aus, die sich im Installationsverzeichnis des Produkts im Unterverzeichnis 'bin' befindet.
- ALIAS, MQT, NICKNAME und SYNONYM werden jetzt während der Roundtrip-Entwicklung unterstützt, aber nicht während der EJB-Zuordnung.
- Eingeschränkte Unterstützung für MySQL 4.1: Die folgenden Eigenschaften werden in der Sicht 'Eigenschaften' nicht ordnungsgemäß angezeigt: Eindeutiger Index, Spalten mit automatischer Erhöhung, Spaltenstandardwert für NULL und 'Binär'. Außerdem werden C-Prozeduren und -Funktionen nicht unterstützt.
- Auslöser, Prüfungen auf Integritätsbedingungen und Sichten für Cloudscape® 5.1 werden nicht unterstützt: Die Auslöser und die Prüfungen auf Integritätsbedingungen von Cloudscape Version 5.1 werden im Datenbankexplorer nicht angezeigt. Die Sichten von Cloudscape 5.1 fehlen in der Sicht 'Eigenschaften' im SQL-Teil. Sie können DDL nicht generieren oder Auslöser, Prüfungen auf Integritätsbedingungen oder Sichten von Cloudscape 5.1 rückentwickeln.
- Es besteht nur begrenzte Unterstützung für benutzerdefinierte Strukturdatentypen in Oracle: Der Name eines benutzerdefinierten Strukturdatentyps wird bei der Generierung von DLL für eine Oracle-Tabelle nicht in die Tabellendefinition aufgenommen.
- Die Anzeigenaktualisierung eines Containerobjekts im Datenbankexplorer kann fehlschlagen und folgende Ausnahmebedingung auslösen: "Die Ressourcengruppe kann ohne Schreibtransaktion nicht geändert werden". Dies kann auftreten, nachdem Sie den Vergleichseditor geschlossen haben, der zum Vergleichen von Objekten im Datenbankexplorer-Container geöffnet wurde. Das Vergleichen einer Tabelle im physischen Datenmodell mit der Originalquelle kann beispielsweise diese Ausnahmebedingung auslösen.
Problemumgehung: Wenn diese Situation auftritt, können Sie den Container auswählen, der das Containerobjekt enthält, und versuchen, die Anzeige erneut zu aktualisieren. Wenn beispielsweise die Anzeigenaktualisierung für eine Tabelle fehlschlägt, sollten Sie versuchen, das Schema zu aktualisieren, das diese Tabelle enthält. Sollte die Anzeigenaktualisierung immer noch fehlschlagen, müssen Sie die Verbindung zur Datenbank trennen und anschließend die Verbindung neu herstellen.
Wenn Sie eine Tabelle mit einer einzigen Spalte des Datentyps XML oder eine Tabelle mit nicht eindeutigen Zeilen definieren, und anschließend im Tabelleneditor eine Zeile löschen, werden alle Zeilen gelöscht, die mit der ausgewählten Zeile identisch sind.
Problemumgehung: Verzichten Sie auf die Verwendung des Editors für Tabellendaten, um eine Zeile in einer Tabelle mit doppelt vorhandenen Zeilen zu löschen.