Using SignatureChecker Before you run the SignatureChecker tool, make sure that your classpath contains the jar files, including derbytools.jar. SignatureCheckerusing

On a Java SE platform, run the SignatureChecker tool as follows, where connection-url-to-database is the connection URL you would use in order to obtain a connection by calling DriverManager.getConnection():

java org.apache.derby.tools.SignatureChecker connection-url-to-database

Alternatively, you can invoke the tool using derbyrun.jar. For example:

java -jar derbyrun.jar SignatureChecker "jdbc:derby:myDB"

The tool examines every routine registered in the database and displays results like the following:

Found a matching method for: "APP"."DOINSERT"( ) Found a matching method for: "APP"."DOINSERTANDCOMMIT"( ) Found a matching method for: "APP"."APPENDFOOANDBAR"( VARCHAR ) Unresolvable routine: "APP"."IDONTEXIST"( VARCHAR , INTEGER ). Detailed reason: No method was found that matched the method call z.iDontExist(java.lang.String, int), tried all combinations of object and primitive types and any possible type conversion for any parameters the method call may have. The method might exist but it is not public and/or static, or the parameter types are not method invocation convertible. Found a matching method for: "APP"."RUNDDL"( VARCHAR ) Unresolvable routine: "APP"."TABFUNCDOESNTEXIST"( VARCHAR , BIGINT ). Detailed reason: No method was found that matched the method call org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest. appendFooAndBar(java.lang.String, long), tried all combinations of object and primitive types and any possible type conversion for any parameters the method call may have. The method might exist but it is not public and/or static, or the parameter types are not method invocation convertible.

In the example above, the SignatureChecker tool found matches for all routines except for the functions app.iDontExist and app.tabFuncDoesntExist. If the tool cannot find a match for one of your functions or procedures, it tells you what signature it expected to find. You need to adjust your application in one of the following ways: