© Copyright International Business Machines Corporation 2006. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM® Corp.
There are two new types of data projects in the workbench:
- Data design projects
- Data development projects
Data design projects are used to create and store data models, for example, physical data models and logical data models. Data development projects are used to create and store data application development objects, such as stored procedures and user-defined functions (also known as routines). Routines can also be viewed from a data design project as part of a physical data model. However, development support for routines from a data design project is very limited, and there is no SQL tooling support for routines in a data design project. If you are developing routines, it is recommended that you use the designated data development project, that provides more complete support including wizards, routine editors, debugging support, and the integration of SQL tooling.
In the table data editor, if you perform an XML validation on a XML table that does not have a primary key, the XML validation will only work the first time, when you insert the XML value. In addition, an update of an existing XML column with XML validation will fail.
Workaround: Create a primary key for tables that contain XML columns.
Working with multiple root elements in this editor can lead to errors when you save the annotated XSD file.
Workaround: Create a separate set of XML Schema document files for each root element.
In order to use XML data types and work with XML schemas, you must connect to a UTF -8 database. The amount of data returned from the database for XML documents is unlimited. Depending on the amount of data that you return, performance might be affected.
- The SQL editor does not currently support host variables during the Run SQL action.
Workaround: You can run the SQL from the SQL builder, if it is a DML statement.
- In the SQL builder, the full SQL syntax is not supported. For example, User Defined Types (UDTs) and Table functions are not supported.
- User-defined types (UDTs) are not supported as parameters for routines.
- To deploy Java™ stored procedures that target DB2 Universal Database™ for iSeries® from the file system by using Ant deploy, you must ensure that you have the jt400.jar in your system classpath. If you attempt to deploy an exported stored procedure by using the instructions in DeployInstructions.txt, you might get an error message that says :
...[createsp] Could not connect to the target database.
[createsp] com.ibm.db2.jcc.DB2Driver...Workaround: this issue, ensure that db2jcc.jar and the appropriate license files are in your system classpath.
- You might see a "cannot load class" error when you deploy or run Java stored procedures. This can happen if there is a mismatch in JDK version between RAD v7 and the DB2® server, if the DB2 server is on a down-level JDK.
Workaround: You should specify the "-source 1.4" option in the Compile options field of the Deploy Routines wizard when you are deploying Java stored procedures against servers that use a JDK level of 1.4. (for example, a DB2 Universal Database for Linux®, UNIX®, and Windows® V8.2 server). In general, use the appropriate compilation option "-source JDK level " to match the JDK level on the database server.
- When you deploy a stored procedure or UDF using the Ant deployment functionality, you might see this message if you do not have the tools.jar file located in your classpath:
Unable to locate tools.jar. Expected to find it in F:\jre\1.4.2\lib\tools.jar
The tools.jar is a part of the JRE (Java Runtime Environment), not part of the Ant deploy tool.Workaround: The tools.jar is not needed to run the Ant script, and for now, you can just ignore this message.
- When you change the Java method name in the stored procedure editor, you cannot save the procedure properly by right-clicking in the editor Source page, then selecting Save.
Workaround: Save the stored procedure by clicking File->Save, pressing Ctrl+S or clicking the Save icon.
- If you drag and drop a stored procedure or UDF between unlike servers (for example, from a DB2 Universal Database for Linux, UNIX, and Windows server to a DB2 Universal Database for z/OS® server), you will see a warning during the drag and drop operation about certain incompatibilities between the two servers. If you continue with the operation and then try to open the stored procedure or UDF, you might see an error.
- Running SQL Profiling against a DB2 UDB for Linux, UNIX, and Windows V8.2 server may cause a null pointer exception if the server is missing the prerequisite stored procedure (SYSIBM.SQLCAMESSAGECCSID) that is required by the JCC driver to retrieve error message text.
Workaround: you can create a connection to the server without the retrieveMessagesFromServerOnGetMessage=true setting.
- During monitoring of the execution of SQL procedures, events are generated for DML statements such as INSERT, SELECT, DELETE, and UPDATE that are issued in the procedure. However, events are not generated in a deterministic fashion for procedural statements such as variable assignments and control structures such as WHILE or IF. Therefore, profiling information may not be generated for procedural statements.
- When you are connected to a UNIX DB2 server, timeout exceptions can occur when you are adding breakpoints or running in debug mode.
- The debugger does not run for a stored procedure whose name contains both English and Chinese characters.
- Watch expressions are only supported for dynamic Java stored procedures. They are not supported for SQL and SQLJ stored procedures.
- The debugger does not stop at a breakpoint if it is not positioned at the first token of an executable statement, such as SET. In addition, it does not stop on DECLARE CONTINUE, CLOSE CURSOR, or ROLLBACK.
- If you are debugging a Java stored procedure and you select a Terminate action, it might take several minutes for the debug session to fully terminate. New debug sessions that are started during this time may behave erratically.
- If you are debugging a Java stored procedure that calls a second Java stored procedure, you cannot debug the second stored procedure. You cannot step into the nested store procedure and any breakpoints that you set in the nested stored procedure will be ignored. This restriction is for Linux, UNIX, and Windows.
- If you get a 'Timeout occurred while waiting for packet' error while you are debugging a Java stored procedure, try increasing the Java timeout setting.
Workaround: To increase the Java timeout setting, click Window > Preferences from the workbench menu bar. Expand the Java node and click Debug. On the Debug preferences page, increase the Debugger timeout(ms) value in the Communication timeout section. It is recommended that you at least double the default value.
- When you are debugging a Java stored procedure, if you use the Change Value action to modify a variable that has an empty string value, the OK button in the edit dialog might not become enabled.
Workaround: To enable the button, select the Input an evaluation radio button, set the value to a non-empty string (for example, 'a'), and then select the Input literal text radio button. The OK button will then be available.
- If you do not see local variables when you are debugging a Java stored procedure, the stored procedure might have been deployed without the -g compiler option.
Workaround: Ensure that you specify the -g compiler option when you deploy Java stored procedures.
- If you see an 'invalid stack frame' message in the Variables view, go to the Debug view and click on the thread object above the stack frame and then click on the stack frame. This should refresh the Variables view and the error should no longer appear.
- When you are debugging an SQLJ stored procedure that is running on DB2 UDB for iSeries V5 R4, the current line that is being executed will not correspond to the indicated SQLJ source line displayed in the Debug view unless you have applied an iSeries PTF that updates the linemap to correspond to the SQLJ source instead of the Java source.
- Debugger preferences for session manager timeout (Window > Preferences then expand Run/Debug and click DB2 Stored Procedure Debugger, then modify the Session manager timeout in minutes field) are not recognized.
- The debugger cannot handle a stored procedure that has large number of variables on DB2 for Linux, UNIX, and Windows. The maximum number of variables is 200.
- Cursor movement in a debug session: In some cases, when there is more than one variable declaration in a procedure, you must click Step Into or Step Over more than once in order to move to the next line. For example, you must click twice on this line: DECLARE v_dept, v_actdept CHAR(3); and three times on this line: DECLARE v_bonus, v_deptbonus, v_newbonus DECIMAL(9,2); You must click a number of times equal to the number of variable declarations.
- If you start a debug session for a Java stored procedure and add breakpoints, then disable the breakpoints, the breakpoints are still enabled.
Workaround: When you start a new debug session, you should first remove all of the old breakpoints and then add new breakpoints.
- In some cases when you are working with multiple data development projects, you might see an error when you attempt to debug a stored procedure that says "Unable to locate stored procedure PROCNAME. Procedure may have been deleted from workspace" or "Source not found".
- After debugging a nested SQL stored procedure, sometimes the data output view may still show that the debugger is running and it may cause problems on any subsequent run or deploy of stored procedures.
Workaround: The session manager needs to be executed on the client machine that has the developer product installed. To start the session manager, run db2dbgm.bat file from the product Install bin directory.
- There is limited support for debugging stored procedures on a DB2 V8 Linux, Unix, Windows and z/OS servers. Only SQL procedures can be debugged on a DB2 V8 server that has fixpak 14 installed. For the debugger to work against a DB2 V8 server, the session manager also needs to be executed on the client machine that has the developer product installed. To start the session manager, run db2dbgm.bat file from the product Install bin directory.
- ALIAS, MQT, NICKNAME, and SYNONYM are now supported during roundtrip engineering, but are not supported in the EJB Mapping process.
- Limited support for MySQL 4.1: The following properties are not displayed correctly in the Properties view: unique index, auto increment columns, column default value for NULL and binary. In addition, C procedures and functions are not supported.
- Triggers, check constraints and views are not supported for Cloudscape® v5.1 : Cloudscape v5.1 triggers and check constraints are not displayed in the Database Explorer. Cloudscape v5.1 views are missing from the SQL body in the Properties view. You cannot generate DDL or reverse engineer Cloudscape v5.1 triggers, check constraints, or views.
- There is limited support for User-Defined structured data types in Oracle: The name of a user-defined structured data type will not be included in the table definition when generating DDL for an Oracle table.
- Refreshing a container object in the database explorer may fail and cause this exception: "cannot modify resource set without a write transaction," after closing the compare editor that was opened for comparing objects in the database explorer container. For instance, comparing a table in your physical data model with its original source may cause this exception.
Workaround: When this happens, you can select the container that contains the container object and try to refresh again. For instance, if refreshing a table fails, then try to refresh the schema that contains the table. If the retries still fail, you will have to disconnect the database and do a reconnect.
If you define a table with a single column of XML data type, or any table with non-unique rows, and then use the table editor to delete a row, all rows that match the selected row are deleted.
Workaround: Do not use the table data editor to delete a row in a table with duplicate rows.