Troubleshooting: "Stored procedure does not exist" error (WebSphere 6.0 with SQL Server)
Symptom
When a Process Commander site is running either version 6.0.0 or 6.0.2 of WebSphere with a Microsoft SQL Server database, the V4.2 system pulse does not run.
Update: This issue is resolved in V4.2SP2 and later releases.
Explanation
Microsoft SQL Server and Sybase database software allow distinct stored procedures to be named with the same name. These databases automatically add a number to the end of the stored procedure name. For example:
sppr_storedprocname;1
sppr_storedprocname;2
Most drivers for these databases are written to strip off the trailing semicolon and version number. However, the WebSphere driver (from DataDirect) does not do this. This causes the stored procedure names not to match:
As a result, Process Commander attempts to execute the procedure sppr_sys_statusnodes_set (which runs the system pulse), and the system can only find sppr_sys_statusnodes_set;1. When the system can’t match the procedure name, it believes that the procedure is undefined, reports an error, and disables the system pulse.
An error appears in the logfile:
[9/20/05 9:18:39:421 EDT] 00000032 SystemOut O 51454 [WGENTJXP]
WARN com.pega.pegarules.engine.context.PRNodeImpl - The initial system state cannot be set as the required stored procedure does not exist
[9/20/05 9:18:39:421 EDT] 00000032 SystemOut O 51454 [WGENTJXP] WARN com.pega.pegarules.engine.context.PRNodeImpl - Disabling the system pulse
Solution
Resolution
Do not use WebSphere's SQL Server driver unless you upgrade to Version 4.2 SP6.
In Version 4.2 SP6, the application has been enhanced to strip the semicolon and the version number added by Microsoft.