DB2 10: CLI0102E FOR .NET APPLICATIONS THAT CALL A DB2 Z/OS STORED PROCEDURE
GZJ 1100006WMT Visits (3004)
Migrating to DB2 10? Running .NET applications that call stored procedures? If so, then this item should be of interest to you.
Full information is available in APAR PM54662, but the following (edited) extract indicates a release incompatibility:
"DB2 10 for z/OS implemented enhancements to the way in which stored procedure parameters are returned to the calling application at the remote requester.
- Before Version 10, DB2 returned stored procedure parameters according to the type of the corresponding arguments in the stored procedure CALL.
- Beginning in Version 10, DB2 returns stored procedure parameters according to the SQL type of the parameter as defined in the stored procedure declaration. This change improves performance for the call by eliminating server conversions of the parameter data; implements the same behavior as used by DB2 for returning other outputs, such as
cursor or singleton select data; and is the same behavior as is implemented on other servers in the DB2 Family.
However, .NET has strong-typing semantics and this change in DB2 server behavior may cause some .NET applications to fail with the CLI error message CLI0102E, if they do not specify argument types that are compatible with the declared type of the corresponding parameter in the stored procedure. The required corrective action is to change the .NET application so that it satisfies .NET semantics for strong-typing and, thus, conforms to good .NET programming practices."
The solution? Convince your .NET application developers that they need to change their application programs, as DB2 10 closes a loop-hole that previously allowed bad .NET programming practices and the specification of incompatible data types. Good luck ...