DB2 Limits

DB2 has a large number of maximum values defined. Refer to your DB2 documentation for a complete list.


There is an allowable maximum of 128 open cursors in DB2/Workstation. This can result in loss of performance if there are too many tables open at any one time. The loss of performance occurs if the connector is forced to release SQL statements and corresponding cursors to be able to continue. This does not cause a loss of any data, just of performance. Bear this in mind when designing applications. You should also ensure that adequate settings are provided in the DB2 database manager configuration.

Existing Tables

The connector cannot access existing tables that contain more than one Long Varchar field because Uniface works with a limit of one physical, variable-length field per table.

Using variable-length techniques makes it possible to have more than one globally defined, variable-length field per entity. Variable-length fields must be the last fields assigned to the entity (at the end of the record).

Existing Referential Integrity Constraints

DB2 allows referential integrity constraints to be defined only on the primary key of a ‘parent’ table (the ‘one’ entity). Uniface allows relationships to be defined on both primary and candidate keys. Since DB2 does not support referential integrity on candidate keys, Uniface must maintain the constraints if your application has any relationships defined on candidate keys.

If referential integrity constraints are enabled in DB2, an INSERT or UPDATE operation is allowed only if a non-NULL foreign key value is present in the parent table. This may cause conflicts during Uniface write transactions if, for example, users are allowed to insert new records in the parent table via a form where the parent table is painted as a foreign entity.

If an existing database has declarative referential integrity, the connector can instruct Uniface not to provide referential integrity. This will allow Uniface to operate on the database while the database maintains its own referential integrity.

You can switch referential integrity control to DB2 by using the ri:dbms connector option.