You use the Microsoft BizTalk Adapter for DB2 to call an IBM DB2 stored procedure. When the name of the stored procedure has a number as its second character (for example, E1SPNAME), you receive following error message:
SQLSTATE: 42884 SQLCODE: -440 The SQLSTATE value indicates that no routine was found with the specified name and compatible arguments.
Note This problem can also occur when you use any of the DB2 providers that are included with Microsoft Host Integration Server 2009.
The hotfix that resolves this issue is included in Cumulative Update 1 for Host Integration Server 2009.
For more information about how to obtain the cumulative update package, click the following article number to view the article in the Microsoft Knowledge Base:
2587090 Cumulative update package 1 for Host Integration Server 2009
To work around this problem, can change name of the DB2 stored procedure so that its second character contains an alphabetical character instead of a number.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
This problem occurs only when one of the Microsoft DB2 providers or the BizTalk Adapter for DB2 sends a two-part name to IBM DB2. For example, the error occurs if the following format is sent to IBM DB2 as the procedure name in the Execute SQL statement (EXCSQLSTT) command:
Note In this format, the placeholder SCHEMA_NAME represents the schema name that you configured in the connection string, and the placeholder SP_NAME represents the name of the DB2 stored procedure.
When only the name of the DB2 stored procedure (that is, a one-part name) is sent to IBM DB2 as the procedure name in the Execute SQL statement (EXCSQLSTT) command, the error does not occur because the correct stored procedure name is sent. For example, the error does not occur when you use a SQL Server linked server to call a DB2 stored procedure by using the Microsoft OLE DB Provider for DB2.