Я звоню в программу AS400, используя код Java.Вызов успешен, когда программа проста и не пытается записать ни в одну таблицу DB2.Когда я пытаюсь вызвать другую программу, которая пытается записать в таблицу DB2, она не удалась, потому что мне нужно добавить библиотеки DB2, связанные с этой таблицей.Я должен добавить библиотеки, используя код Java.мне был приведен пример использования кода Coldfusion для добавления этих библиотек.Я хочу знать, как добавить библиотеки DB2, используя код Java.
private static final String HOST = "XXX.XXX.XXX.XXX";
private static final String UID = "XXX";
private static final String PWD = "XXX";
String fullProgramName = "/QSYS.LIB/TSTOBJ.LIB/GETAB.PGM";
String input = "12345678";
AS400 as400 = null;
byte[] inputData;
byte[] outputData;
String SCAB;
AS400Text textData;
ProgramParameter[] parmList;
ProgramCall programCall;
try {
// Create an AS400 object
as400 = new AS400(HOST, UID, PWD);
// Create a parameter list
// The list must have both input and output parameters
parmList = new ProgramParameter[2];
// Convert the Strings to IBM format
inputData = input.getBytes("IBM285");
// Create the input parameter
parmList[0] = new ProgramParameter(inputData);
// Create the output parameter
//Prarameterised Constructor is for the OUTPUT LENGTH. here it is 10
parmList[1] = new ProgramParameter(20);
/**
* Create a program object specifying the name of the program and
* the parameter list.
*/
programCall = new ProgramCall(as400);
programCall.setProgram(fullProgramName, parmList);
// Run the program.
if (!programCall.run()) {
/**
* If the AS/400 is not run then look at the message list to
* find out why it didn't run.
*/
AS400Message[] messageList = programCall.getMessageList();
for (AS400Message message : messageList) {
System.out.println(message.getID() + " - " + message.getText());
}
} else {
/**
* Else the program is successfull. Process the output, which
* contains the returned data.
*/
outputData = parmList[1].getOutputData();
SCAB = new String(outputData, "IBM285").trim();
/* System.out.println("Output is " + SCAB );*/
}
} catch (PropertyVetoException | AS400SecurityException | ErrorCompletingRequestException | IOException | InterruptedException | ObjectDoesNotExistException e) {
System.err.println(":: Exception ::" + e.toString());
} finally {
try {
// Make sure to disconnect
if (as400 != null) {
as400.disconnectAllServices();
}
} catch (Exception e) {
System.err.println(":: Exception ::" + e.toString());
}
COLDFUSION CODE ===== >>>
<CFSET MYCMD = "ADDLIBLE KINP#Application.EQ_UNIT# " >
<cfset vretval = vcommand.run("#MYCMD#") >
<CFSET MYCMD = "ADDLIBLE KFIL#Application.EQ_UNIT# " >
<cfset vretval = vcommand.run("#MYCMD#") >
<CFSET MYCMD = "ADDLIBLE KWRK#Application.EQ_UNIT# " >
<cfset vretval = vcommand.run("#MYCMD#") >
<CFSET MYCMD = "ADDLIBLE KLIB#Application.EQ_UNIT# " >
<cfset vretval = vcommand.run("#MYCMD#") >
<CFSET MYCMD = "ADDLIBLE LIBK311F " >
<cfset vretval = vcommand.run("#MYCMD#") >