I am recieving an SQL4306 on a stored procedure that used to work on a database. I recently applied fixpak 11 to DB2 Workgroup version 6.1, and have since been getting the error below.
- [IBM][CLI Driver][DB2/NT] SQL4306N Java stored procedure or user-defined function "xxxx .xxx", specific name "xxxxxxxx" could not call Java method "xxx", signature "(ILjava/lang/String;Ljava/lang/String;Ljava". SQLSTATE=42724
However, I only receive this error for 1 of the stored procedures. The other 70 on that server (68 of them in the same database) work normally. Additionally, the same stored procedure works normally on two other servers with the same fixpak level.
This stored proc was built via the stored procedure buider by a third party.
dropped and recreated the stored procedure having copied it from one of the other servers. - no luck
deleted the sqlj.zip file (which contains my classes) and copied it from one of the other servers. - no luck
renamed the jar file for the stored procedure and rebuilt it - the problem continues
Confirmed that there is only one database on the server using that class name.
Confirmed that the classpath information is identical on all three servers.
Rebooted literally 2 dozen times .
Confirmed that sqllib\java\jdk\lib\classes.zip files are identical across servers
Confirmed taht sqllib\java\db2java.zip and runtime.zip files are identical on all servers
confirmed that classpath information and path information is the same on all three servers.
I have checked the IBM website as well as DBForums for potential solutions.
I saw a lot of hits although no suggestions for resolution (which means to me that the resolution was not as simple to come by as it sounds when you read it). The problem must have been a subroutine (operating via another jar file) was out of sync. After copying the entire SQLLIB\FUNCTION\schema directory to the UAT server from development (which was working - see previous posting), the stored procedures was then able to be successfully executed.
I have sinced added that directory to my list of directories to be backed-up for disaster recovery planning.