Hallo zusammen !
Ich beschäftige mich schon seit einiger Zeit mit Stored Procedure Aufrufen von Java nach RPG Service Programmmen. Leider kommt beim Java Debug immer der Fehler, dass er mein Externes Programm S_TESTDP nicht gefunden hat.

Hintergrund: Ich versuche anhand von 4 numerischen Werten einen Text zurückzubekommen:

Procedure;
getObjektBez B Export
getObjektBez PI
p#firma 2 0
p#obj 7 0
p#objA 1 0
p#objG 1 0
p#obbzg 28

Local fields

Eval k#firma = p#firma
Eval k#obj = p#obj
Eval k#objA = p#objA
Eval k#objG = p#objG

ListObstdp Chain(N) OBSTDP
If not %found(Obstdp)
eval p#obbzg = *blanks
Else
eval p#obbzg = %trim(Obbzg)
Endif
getObjektBez E

Hier die Stored Procedure , die ich erstellt habe:

CREATE PROCEDURE STAMOBJ.SP_GETOBJ (
IN FIRMA DECIMAL(2, 0) ,
IN OBJEKT DECIMAL(7, 0) ,
IN OBJEKTART DECIMAL(1, 0) ,
IN OBJEKTGESHH DECIMAL(1, 0) ,
OUT OBJEKTBEZ CHAR(28) )
LANGUAGE RPGLE
SPECIFIC STAMOBJ.SP_GETOBJ
NOT DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
EXTERNAL NAME 'STAMOBJ/S_TESTDP(getobjektbez)'
PARAMETER STYLE GENERAL ;

COMMENT ON SPECIFIC PROCEDURE STAMOBJ.SP_GETOBJ
IS 'Objektbezeichnung aus OBSTDP' ;


Java PGM Aufruf

public void sucheObjektAdresse4() throws ClassNotFoundException, SQLException {


// Connection Variables
String AS400_ADDRESS = "xxx";
String AS400_USERNAME = "xxx";
String AS400_PASSWORD = "xxx";
String AS400_LIBRARY = "STAMOBJ";


START: Connection Block
Class.forName("com.ibm.as400.access.AS400JDBCDrive r");

try {
the400 = DriverManager.getConnection("jdbc:as400://" + AS400_ADDRESS + "/" + AS400_LIBRARY, AS400_USERNAME, AS400_PASSWORD);
System.out.println("Connection successful!");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// END: Connection Block

try{

// START: Call the Stored Procedure

CallableStatement cstmt = the400.prepareCall("{CALL " + AS400_LIBRARY + ".SP_GETOBJ(?, ?, ?, ?, ?)}",
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

System.out.println(cstmt.toString());

*** Hier steht dann STMT0001, statt der Aufruf ***

// set inputs
cstmt.setDouble(1, 01); // firma
cstmt.setDouble(2, 2215); // objekt
cstmt.setDouble(3, 1); // objektArt
cstmt.setDouble(4, 1); // objektGeshh


// set outputs
cstmt.registerOutParameter(5, java.sql.Types.CHAR); // objektbezeichnung

// execute
ResultSet rs = cstmt.executeQuery();
System.out.println(rs.toString());

*** das executeQuery geht nicht auf ***


// display returned values
System.out.println("\nreturned parameters...");

System.out.println("Objektbezeichnung: " + cstmt.getString(5));

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Es kommt folgende Fehlermeldung:


[SQL0444] Externes Programm S_TESTDP in STAMOBJ nicht gefunden.

Bitte um Eure Hilfe !

Vielen Dank