Q:

com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -444, SQLSTATE: 42724

I'm getting below error when calling stored procedure XXXX written in Mainframe DB2. In this stored procedure, we have 'GRAPHIC' & 'LONGGRAPHIC' parameter for which I'm passing "java.sql.CHAR" and "java.sql.VARCHAR" type parameter.
INFO: SQLErrorCodes loaded: [DB2, Derby, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
        Exception while executing Test Case
org.springframework.jdbc.BadSqlGrammarException: CallableStatementCallback; bad SQL grammar [{call SYSPROC.XXXX(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}]; nested exception is com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -444, SQLSTATE: 42724, SQLERRMC: XXXX
Caused by: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -444, SQLSTATE: 42724, SQLERRMC: XXXX
    at com.ibm.db2.jcc.c.tf.d(tf.java:1396)
    at com.ibm.db2.jcc.b.jb.l(jb.java:367)
    at com.ibm.db2.jcc.b.jb.e(jb.java:92)
    at com.ibm.db2.jcc.b.w.e(w.java:72)
    at com.ibm.db2.jcc.b.cc.h(cc.java:203)
    at com.ibm.db2.jcc.c.tf.q(tf.java:1363)
    at com.ibm.db2.jcc.c.uf.d(uf.java:2388)
    at com.ibm.db2.jcc.c.vf.Z(vf.java:159)
    at com.ibm.db2.jcc.c.vf.execute(vf.java:142)
    at org.springframework.jdbc.core.JdbcTemplate$5.doInCallableStatement(JdbcTemplate.java:906)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:872)
    at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:904)
    at org.springframework.jdbc.object.StoredProcedure.execute(StoredProcedure.java:113)
    at com.cst.test.common.SPCall.execute(SPCall.java:73)
    at com.cst.test.daoLayer.SPTest.testLogic(SPTest.java:71)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:618)
    at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
    at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Failed Test Case Count : 0

A:

SQL code -444 means that the external program called from the stored procedure is not found. Either the name is incorrect, or the program is not linked properly.
More info here: http://pic.dhe.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2z9.doc.codes/src/tpc/n444.htm

