java - AS/400 消息队列过滤 - JT400 (JAVA)

标签 java ibm-midrange jt400

  1. 我正在尝试获取队列消息列表。我已经使用这段代码做到了。问题是我想将其过滤为*inq。此代码检索所有消息。但我只想获取 *inq 消息。怎么办?
  2. 我使用“/qsys.lib/qsysopr.msgq”来获取QSYSOPR消息队列消息。我想获取所有消息队列的消息。那么获取所有消息队列消息的确切队列路径是什么呢?

提前致谢!

try {
    AS400 system = new AS400();
    MessageQueue queue = new MessageQueue(system, "/qsys.lib/qsysopr.msgq");
    Enumeration e = queue.getMessages();
    while (e.hasMoreElements()) {
        QueuedMessage message = (QueuedMessage) e.nextElement();
        System.out.println(message.getText());
    }
    System.out.println("End Messages!");
} catch (Exception e) {
    e.printStackTrace();
}

最佳答案

1) 过滤 *INQ 消息的一种方法是使用如下内容:

MessageQueue queue = new MessageQueue(system, "/qsys.lib/qsysopr.msgq");

// want only inquiry messages
queue.setSelectMessagesNeedReply(true);
queue.setSelectMessagesNoNeedReply(false);
queue.setSelectSendersCopyMessagesNeedReply(true);

Enumeration e = queue.getMessages();

2) 可以在系统上的任何库中创建消息队列。为了从所有消息队列中获取所有消息,您需要使用 ObjectList,如下所示:

import java.util.*;
import com.ibm.as400.access.*;

public class TestObjectList {
    public static void main(String[] args) {

try {
    AS400 system = new AS400();

    ObjectList msgqs = new ObjectList(system, ObjectList.ALL, ObjectList.ALL, "*MSGQ");

    Enumeration e = msgqs.getObjects();

    while (e.hasMoreElements()) {
        ObjectDescription msgq = (ObjectDescription) e.nextElement();
        System.out.println(msgq.getLibrary() + "/" + msgq.getName());
        }

    System.out.println("End of message queues.");

    } catch (Exception e) {
      e.printStackTrace();
    }

System.exit(0);
}

}

关于java - AS/400 消息队列过滤 - JT400 (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20078401/

相关文章:

java - 将字符串从 AS400 转换为 Java

java - 如何在Java中执行2个包含相同条件的While循环?

java - 如何从 Java Netbeans 中删除无用的库

java - 检查 JTable 是否存在,如果存在则向其中添加行

java - 如何使用 jt400 API 仅检索启用 AS400 的用户

ibm-midrange - JT400 - 回复 MSGW 作业

Java 和 MySQL - 唯一 key 不起作用?

sql - ISDATE 相当于 DB2

ibm-midrange - CALLP 也是动态调用还是可以被视为 ILE RPG 中的静态调用

sql - 我可以在 SQL 中的另一个 "With"中做一个内部 "With"吗?