This article is based on the official Uniface 10.4 documentation from Rocket Software, and I had AI assistance in creating this comprehensive guide.
When working with Uniface and Informix databases, understanding how to properly configure your database connector options can mean the difference between a smoothly running application and hours of debugging.
What are Informix Connector Options?
Informix Connector Options are special parameters that enable or disable features in the Uniface-Informix database driver.
These options control everything from transaction isolation levels to how the connector handles character encoding and locking behavior.
The connector options are defined using the USYS$INF_PARAMS assignment setting in the [DRIVER_SETTINGS] section of your Uniface assignment file (.asn).
Basic Syntax
The basic syntax for configuring Informix connector options is:
[DRIVER_SETTINGS]
USYS$INF_PARAMS = Option1, Option2, Option3
Syntax Rules
When configuring USYS$INF_PARAMS, follow these important rules:
- The assignment must fit on one line in the assignment file.
- Each option may be specified only once.
- The order of options is not significant.
- Multiple options must be separated by commas.
- Words and numbers within each option are separated by spaces or tabs.
- Options are not case-sensitive.
Available Connector Options
Here are the most important connector options available for Informix in Uniface 10.4:
1. checking
Controls various validation and checking mechanisms during database operations.
2. connection
Manages connection-specific parameters for establishing and maintaining database connections.
3. dbms ri (Referential Integrity)
Enables or disables DBMS-level referential integrity checking.
When enabled, the database server enforces foreign key constraints.
4. delimident (Delimited Identifiers)
Allows the use of delimited identifiers in SQL statements, enabling table and column names that would otherwise be invalid.
5. Engine Type
Specifies the type of Informix database engine you are connecting to.
6. field name size
Sets the maximum allowed field name length. This is one of the newer options added in Uniface 10.4.03.
7. fixed point
Controls how fixed-point decimal numbers are handled during data exchange between Uniface and Informix.
8. hold cursors
Determines whether cursors remain open after a commit operation, which is crucial for transaction management.
9. IsolationLevel
Sets the transaction isolation level for your database connections and controls how transactions interact with each other.
10. lock
Configures the base locking behavior for database operations.
Informix requires transaction logging to be enabled for proper locking support.
11. lockmode
Specifies what happens when your application encounters locked data.
Common values include wait and not wait.
12. multi byte
Enables support for multi-byte character sets, which is essential for internationalization.
13. nls (National Language Support)
Activates National Language Support for proper handling of non-English character sets and locales.
14. procs (Stored Procedures)
Enables support for calling Informix stored procedures from Uniface.
15. read
Controls read-only access mode for connections.
16. rebuildcursor
Forces the connector to rebuild cursors under certain conditions to improve cursor stability. [web:6]
17. serial insert
Provides special handling for SERIAL columns during insert operations.
18. table name size
Sets the maximum allowed table name length and was added in Uniface 10.4.03.
19. trim
Controls automatic trimming of trailing spaces from character data.
20. wildcard literals
Determines how wildcard characters are handled in string comparisons.
Practical Configuration Example
Here is an example of configuring multiple Informix connector options:
[DRIVER_SETTINGS]
USYS$INF_PARAMS = dbms ri, nls, procs, lockmode wait
This configuration enables DBMS-level referential integrity, activates National Language Support, enables stored procedure support, and sets lock mode to wait.
Common Problems and Solutions
Problem 1: Character Encoding Issues
Symptom: International characters display incorrectly.
Solution: Add nls and multi byte options:
USYS$INF_PARAMS = nls, multi byte
Problem 2: Serial Column Update Errors
Symptom: Error message "A SERIAL column may not be updated".
Solution: Configure the serial insert option properly.
Problem 3: Long Table or Field Names
Symptom: Truncated identifiers or connection errors.
Solution: Use the table name size and field name size options:
USYS$INF_PARAMS = table name size 128, field name size 128
Problem 4: Locking Conflicts
Symptom: Frequent deadlocks or lock timeout errors. [web:26]
Solution: Ensure transaction logging is enabled on Informix and adjust lockmode.
USYS$INF_PARAMS = lockmode wait 30
Problem 5: Cursor Stability Issues
Symptom: "Cursor not found" or unexpected cursor behavior after commits.
Solution: Enable hold cursors.
USYS$INF_PARAMS = hold cursors
Best Practices
- Start with a minimal set of options and only enable what you need.
- Document your choices in the assignment file with comments.
- Test all CRUD operations, transactions, and concurrent access after changing options.
- Use different assignment files for development, testing, and production environments.
- Monitor performance after enabling options like
dbms ri.
Assignment File Integration
Here is how USYS$INF_PARAMS fits into a complete Uniface assignment file configuration.
[DRIVER_SETTINGS]
USYS$INF_PARAMS = dbms ri, nls, procs, lockmode wait
[PATHS]
$infdb = informix:informix_tcp:/usr/informix
[ENTITIES]
CUSTOMERS = $infdb
ORDERS = $infdb
Version Considerations
The Informix connector options have evolved over Uniface versions, and Uniface 10.4.03 introduced enhancements such as table name size and field name size.
Top comments (0)