JT400에서 AS400의 MSGW 작업에 회신 할 수 있습니까?
나는 작업 요소를 가지고하고JT400 - MSGW 작업에 회신
예를 Job.MESSAGE_REPLY_WAITING에 의해 MSGW 상태에 있는지 알 수 있습니다 : 일반적으로 내가 실제로 시도하지 않은
JT400에서 AS400의 MSGW 작업에 회신 할 수 있습니까?
나는 작업 요소를 가지고하고JT400 - MSGW 작업에 회신
예를 Job.MESSAGE_REPLY_WAITING에 의해 MSGW 상태에 있는지 알 수 있습니다 : 일반적으로 내가 실제로 시도하지 않은
이것은 작동하는 코드입니다. 나는 그것이 단축되고 최적화 될 수 있다고 생각한다.
더 좋은 방법이 있어야합니다!
public boolean answer(String answer) throws MyOperationException {
if (answer == null || answer.length() > 1) {
throw new MyOperationException();
}
MessageQueue msgq = new MessageQueue(as.getAS400(), QSYSObjectPathName.toPath(MyAS400.LIBRARY_LIST, "QSYSOPR", "MSGQ"));
msgq.setSelectMessagesNeedReply(true);
msgq.setListDirection(false);
try {
Enumeration m = msgq.getMessages();
while (m.hasMoreElements()) {
QueuedMessage msg = (QueuedMessage) m.nextElement();
if (msg.getFromJobNumber().trim().equals(getNumber())) {
msgq.reply(msg.getKey(), answer);
return true;
}
}
} catch (AS400SecurityException | ErrorCompletingRequestException | InterruptedException | IOException | ObjectDoesNotExistException ex) {
ex.printStackTrace();
}
return false;
}
메시지 대기열을 모르는 경우 ObjectList를 사용할 수 있습니다.
WRKACTJOB를 통해 "C"를 사용하지만, 받아 reply
의 기능은 MessageQueue (JTOpen)입니다.
다윗의 올바른 ...하지만 실종 몇 단계 나는이 시도하지 않은 한 메모를 think..and 중 ..
은 작업 로그 가져 오기 :
Job.getJobLog()
가 대기중인 메시지를 받기를
JobLog.getMessages
메시지 큐
QueuedMessage.getQueue()
다음 답장
MessageQueue.reply()
알려 드리겠습니다. – LppEdd
모든 MessageQueue에서 null을 반환합니다. – LppEdd
null을 반환 한 항목은 무엇입니까? 어쩌면 몇 가지 코드를 게시해야합니다. –