© 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.
Editor für Tabellendaten:
Wenn Sie eine Tabelle mit einer einzigen Spalte mit dem Datentyp 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. Um dieses Problem zu vermeiden, sollten Sie nicht den Editor für Tabellendaten zum Löschen einer Zeile in einer Tabelle mit doppelten Zeilen verwenden.
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. Danach schlägt die Aktualisierung einer vorhandenen XML-Spalte mit der XML-Prüfung fehl. Um dieses Problem zu vermeiden, erstellen Sie einen Primärschlüssel für Tabellen, die XML-Spalten enthalten.
Zuordnungseditor für XSD-Datei mit Anmerkungen:
Bei der Arbeit mit mehreren Stammelementen in diesem Editor können Fehler beim Speichern einer XSD-Datei mit Anmerkungen auftreten. Zur Vermeidung dieses Problems erstellen Sie eine separate Gruppe aus XML-Schemadokumentdateien für jedes Stammelement.XML:
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 eingeschränkt werden.
SQL-Tools:
Der SQL-Editor unterstützt derzeit nicht Hostvariablen während der Aktion SQL ausführen. Zur Umgehung dieses Problems können Sie 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.
Routinenentwicklung:
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 UDB für iSeries in dem 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, kann es vorkommen, dass folgende Fehlernachricht angezeigt wird:
...[createsp] Zur Zieldatenbank konnte keine Verbindung hergestellt werden.
[createsp] com.ibm.db2.jcc.DB2Driver...
Um dieses Problem zu umgehen, 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 die JDK-Version von RAD 7 und DB2-Server unterschiedlich ist und der DB2-Server über einen niedrigen JDK-Stand verfügt.
Um diesen Fehler zu vermeiden, geben Sie die Option "-source 1.4" im Feld Compilieroptionen des Assistenten 'Routinen implementieren' an, wenn Sie gespeicherte Java-Prozeduren auf Servern implementieren, die JDK 1.4 verwenden. (Zum Beispiel DB2 UDB für Linux, UNIX und Windows 8.2-Server). Verwenden Sie in der Regel die entsprechende Kompilierungsoption "-source JDK level", um den JDK-Stand an den Datenbankserver anzupassen.Wenn Sie eine gespeicherte Prozedur oder benutzerdefinierte Funktion (UDF) mit Hilfe einer Ant-Implementierung implementieren, kann es vorkommen, dass diese Nachricht angezeigt wird, 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 Runtime Environment (JRI) und nicht Bestandteil des Ant-Deployment-Tools.
Die Datei 'tools.jar' ist nicht zur Ausführung des Ant-Scripts erforderlich; sie können diese Nachricht zu diesem Zeitpunkt ignorieren.Wenn Sie den Java-Methodennamen in der gespeicherten Prozedur ändern, können Sie die Prozedur nicht ordnungsgemäß durch Klicken mit der rechten Maustaste und anschließendes Auswählen von Speichern auf der Quellenseite des Editors speichern. Um dieses Problem zu umgehen, speichern Sie die gespeicherte Prozedur durch Klicken auf 'Datei' -> 'Speichern', Drücken von 'Strg + S' oder durch Klicken auf das Icon Speichern.
Wenn Sie eine gespeicherte Prozedur oder UDF zwischen zwei ungleichen Servern (zum Beispiel von einem DB2 UDB für Linux, UNIX und Windows-Server zu einem DB2 UDB für z/OS-Server) 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.
Profilerstellung von SQL-Prozeduren:
Wenn Sie eine SQL-Profilerstellung für einen Server des Typs DB2 UDB für Linux, UNIX und Windows 8.2 ausführen, kann es vorkommen, dass eine Null Pointer-Ausnahme auftritt, wenn auf dem Server die vorausgesetzte gespeicherte Prozedur (SYSIBM.SQLCAMESSAGECCSID) fehlt, die vom Java Commerce Client-Treiber zum Abrufen von Fehlernachrichttexten benötigt wird. Um dieses Problem zu vermeiden, können Sie eine Verbindung zum Server ohne die Einstellung 'retrieveMessagesFromServerOnGetMessage=true' erstellen.Während 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 WHILE oder IF generiert.
Debugger für gespeicherte Prozeduren:
Wenn eine Verbindung zu einem UNIX DB2-Server besteht, können Zeitlimitausnahmebedingungen 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 er nicht an dem ersten Token einer ausführbaren Anweisung wie zum Beispiel SET positioniert wird. 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, kann es einige Minuten dauern, bis 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 wiederum eine zweite gespeicherte Java-Prozedur aufruft, können Sie kein Debug für die zweite gespeicherte Prozedur durchführen. Sie können nicht in die verschachtelte gespeicherte Prozedur wechseln, und alle Unterbrechungspunkte, die Sie in der verschachtelten gespeicherten Prozedur festlegen, werden ignoriert. Diese Einschränkung gilt für DB2 UDB 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. 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. Erhöhen Sie auf der Seite 'Einstellungen für Debug' den Wert für Debugger-Zeitlimit (msek) im Abschnitt Kommunikationszeitlimit. Es wird empfohlen, mindestens den doppelten Standardwert anzugeben.
Wenn Sie ein Debug für eine gespeicherte Java-Prozedur durchführen und dabei die Aktion Wert ändern zum Ändern einer Variablen verwenden, deren Wert eine leere Zeichenfolge ist, kann es vorkommen, dass die Schaltfläche OK im Bearbeitungsdialog nicht aktiviert wird. 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 vielleicht ohne die Compileroption '-g' implementiert. 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' und klicken 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 V5 R4 ausgeführt wird, entspricht die aktuell 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 des Debuggers für das Zeitlimit des Sitzungsmanagers werden nicht erkannt. Diese Benutzervorgaben werden folgendermaßen eingestellt: Klicken Sie auf Fenster > Benutzervorgaben, erweitern Sie den Knoten Ausführen/Debug, und klicken Sie auf Debugger für gespeicherte DB2-Prozeduren. Ändern Sie den Wert im Feld Zeitlimit des Sitzungsmanagers in Minuten.
Der Debugger kann keine gespeicherte Prozedur verarbeiten, die über viele Variablen in DB2 für Linux, UNIX oder Windows verfügt. Die maximale Anzahl an Variablen beträgt 200.
Cursorbewegung in Debugsitzung: Wenn in manchen Fällen mehrere Variablendeklarationen in einer Prozedur vorkommen, müssen Sie 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. Um dieses Problem zu umgehen, müssen Sie 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, die Fehlernachricht "Gespeicherte Prozedur PROCNAME konnte nicht lokalisiert werden. Prozedur wurde möglicherweise aus dem Arbeitsbereich gelöscht" oder "Quelle nicht gefunden" angezeigt wird.
Wenn Sie für eine gespeicherte SQL-Prozedur sofort nach dem Ende einer Debugsitzung für eine gespeicherte Java-Prozedur ein Debug durchführen, kann es vorkommen, dass im Debugger die Nachricht "Benutzerdefinierte Funktion ... wurde vom Benutzer unterbrochen." angezeigt wird. Um dieses Problem zu umgehen, versuchen Sie, für die gespeicherte SQL-Prozedur ein weiteres Mal ein Debug durchzuführen.
Datenkernfunktionalität:
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 5.1 werden im Datenbankexplorer nicht angezeigt. Die Sichten von Cloudscape 5.1 fehlen in der Sicht 'Eigenschaften' im SQL-Teil. Sie können nicht DDL generieren oder Auslöser, Prüfungen auf Integritätsbedingungen oder Sichten von Cloudscape 5.1 rückentwickeln.