Datentools - Release-Informationen

(C) Copyright International Business Machines Corporation 2000, 2006. All rights reserved.
(C) Copyright IBM Deutschland GmbH 2000, 2006. Alle Rechte vorbehalten.

Inhalt

1.0 Einschränkungen
   1.1 SQL-Tools stehen nicht für Routinen in Datenentwurfsprojekt zur Verfügung
2.0 Bekannte Probleme und Problemlösungen
   3.1 Bekannte Probleme und Problemlösungen für Komponenten von Datentools

1.0 Einschränkungen

1.1 SQL-Tools stehen nicht für Routinen in Datenentwurfsprojekt zur Verfügung

In der Workbench gibt es zwei neue Datenprojekttypen:

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.

2.0 Bekannte Probleme und Problemlösungen

2.1 Bekannte Probleme und Problemlösungen für Komponenten von Datentools

2.1 Bekannte Probleme und Problemlösungen für Komponenten von Datentools

Editor für Tabellendaten:
. 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. Um dieses Problem zu vermeiden, sollten Sie nicht den Editor für Tabellendaten zum Löschen einer Zeile in einer Tabelle mit doppelt vorhandenen 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. Außerdem schlägt die Aktualisierung einer bereits 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.


XSD-Zuordnungseditor 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 für jedes Stammelement eine separate Gruppe aus XML-Schemadokumentdateien.


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 beeinträchtigt werden.

 


SQL-Tools:
. Der SQL-Editor unterstützt gegenwärtig keine Hostvariablen während der Aktion SQL ausführen. Zur Umgehung dieses Problems können Sie SQL-Anweisungen im SQL Builder ausführen, wenn es sich um DML-Anweisungen handelt.  

 . Im 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(TM)-Prozeduren implementieren möchten, die auf eine DB2(R) UDB for iSeries(TM) 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, wird möglicherweise folgende Fehlernachricht angezeigt:
...[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.

 Möglicherweise wird der Fehler "Klasse kann nicht geladen werden" angezeigt, wenn Sie gespeicherte Java-Prozeduren implementieren oder ausführen. Dieser Fehler kann auftreten, wenn RAD v7 und DB2-Server unterschiedliche JDK-Versionen aufweisen und der DB2-Server eine niedrigere (ältere) JDK-Version hat.
Um diesen Fehler zu vermeiden, 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(TM) für Linux(R), UNIX(R) und Windows(R) V8.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.
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äß 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', 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 UDB für Linux, für UNIX oder Windows Server zu einem Server mit DB2 UDB für z/OS(R)) 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 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. Um dieses Problem zu vermeiden, können Sie 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.


Debugger für gespeicherte Prozeduren:
. 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 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 Menüleiste der Workbench 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. Damit die Schaltfläche aktiviert wird, wählen Sie das Optionsfeld Bewertung eingeben aus, setzen 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. 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 V5 R4 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 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 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: Manchmal, das heißt, wenn 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, folgende Fehlernachricht angezeigt wird: "Gespeicherte Prozedur PROCNAME konnte nicht lokalisiert werden. Prozedur wurde möglicherweise aus dem Arbeitsbereich gelöscht" oder "Quelle nicht gefunden".

. Wenn Sie unmittelbar nach dem Ende einer Debugsitzung für eine gespeicherte Java-Prozedur ein Debug für eine gespeicherte SQL-Prozedur durchführen, wird möglicherweise im Debugger folgende Nachricht angezeigt: "Benutzerdefinierte Funktion ... wurde vom Benutzer unterbrochen." . 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, jedoch 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(TM) 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 DDL nicht generieren oder Auslöser, Prüfungen auf Integritätsbedingungen oder Sichten von Cloudscape 5.1 rückentwickeln.