Known Restrictions and Limitations
This section describes the known restrictions and limitations for IDF in DB2.
IDF for DB2 mainframe applications supports SELECT (including SELECT INTO), INSERT, UPDATE, and DELETE access to data sources using either bound-statements or dynamic SQL.
Stored procedures and DB2 application programs may execute statements bound into a package or SQL statements can be prepared dynamically. DB2 applications can use the DCLGEN utility to extract meta-data information from the Data Virtualization Manager server. DB2 Bind is used to propagate packages and SQL statements to target Data Virtualization Manager servers. The facility does not yet support scrollable cursors, cursor-positioned updates, nor two-phase commit.
Following are the known restrictions and limitations of IDF:
- Restrictions:
- IDF supports INSERT, DELETE, UPDATE, SELECT, and SELECT INTO statements. For pathways using a bound package, the facility supports the use of DECLARE CURSOR FOR SELECT statements, along with OPEN, FETCH, and CLOSE for the cursor.
- The operations allowed may differ for each data source. For example, Data Virtualization Manager server virtual tables backed by logstreams cannot be updated.
- COMMIT and ROLLBACK operations may not work as expected due to the limitations of the back-end virtual table data source. For example, ROLLBACK may not work as expected when using VSAM datasets unless the RLS recovery attributes of the dataset meet the requirements needed for backout processing.
- Ensure that the IDF SQL statements conform to ANSI-92 standards. That is, you should specify SQL92 for language level in the DB2 preprocessor. The SQL engine only supports apostrophes and period. You may achieve this by using the pre-compiler parm SQLFLAG(SQL92E).
- Limitations:
- SQLCODE and SQLSTATE values returned by execution of SQL statements over IDF may differ from codes returned by DB2. In many cases, the facility will return the non-specific SQLCODE -1 with more specific error text returned in the SQLERRMC fields.
- When DB2 applications run, and if DB2 requests IDF not to update any resources, IDF deliberately ignores the do-not-update request and instead allows the updates to occur and engages auto-commit processing after each operation.
- Versioning for DB2 stored procedures and for DB2 RESTful service definitions is not supported.
- Cursor positioned UPDATE and DELETE, that is “WHERE CURRENT OF CURSOR” form, are not supported.
- Multi-row INSERT, that is "FOR value ROWS" clause, is not supported.
- Two-phase commit is not supported.
- IDF for DB2 Applications currently does not support LOB columns.
- IDF for DB2 Applications currently does not support stored procedure CALL.
- JDBC addBatch requests are not supported for requests originating in a JCC client.