消息类

IBM® Toolbox for Java™ AS400Message 类及其关联类表示从服务器返回的消息。

AS400Message

AS400Message 对象允许 Java 程序检索从先前操作 (例如,从命令调用) 生成的 IBM i 消息。 从消息对象中, Java 程序可以检索以下内容:

  • 包含消息的 IBM i 库和消息文件
  • 消息标识
  • 消息类型
  • 消息严重性
  • 消息文本
  • 消息帮助文本
以下示例显示如何使用 AS400Message 对象:
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
     // Create a command call object.
     CommandCall cmd = new CommandCall(sys, "myCommand");

     // Run the command
     cmd.run();

     // Get the list of messages that are
     // the result of the command that I just ran
     AS400Message[] messageList = cmd.getMessageList();

     // Iterate through the list displaying the messages
     for (int i = 0; i < messageList.length; i++)
     {
        System.out.println(messageList[i].getText());
     }

示例: 使用消息列表

以下示例显示如何将消息列表与 CommandCall 和 ProgramCall配合使用。

QueuedMessage

QueuedMessage 类扩展了 AS400Message 类。

QueuedMessage 类访问有关 IBM i 消息队列上消息的信息。 通过此类, Java 程序可以检索:

  • 有关消息来源的信息,例如程序,作业号和用户。
  • 消息队列
  • 消息密钥
  • 消息应答状态
以下示例打印当前 (signed-on) 用户的消息队列中的所有消息:
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
      // The message queue is on this system.
      AS400 sys = new AS400(mySystem.myCompany.com);

      // Create the message queue object.
      // This object will represent the
      // queue for the current user.
      MessageQueue queue = new MessageQueue(sys, MessageQueue.CURRENT);

      // Get the list of messages currently in this user's queue.
      Enumeration e = queue.getMessages();

      // Print each message in the queue.
      while (e.hasMoreElements())
      {
         QueuedMessage msg = e.getNextElement();
         System.out.println(msg.getText());
      }

MessageFile

MessageFile 类允许您从 IBM i 消息文件接收消息。 MessageFile 类返回包含消息的 AS400Message 对象。 通过使用 MessageFile 类,您可以执行以下操作:

  • 返回包含消息的消息对象
  • 返回在消息中包含替换文本的消息对象
以下示例显示如何检索和打印消息:
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
     AS400 system = new AS400("mysystem.mycompany.com");
     MessageFile messageFile = new MessageFile(system);
     messageFile.setPath("/QSYS.LIB/QCPFMSG.MSGF");
     AS400Message message = messageFile.getMessage("CPD0170");
     System.out.println(message.getText());

MessageQueue

MessageQueue 类允许 Java 程序与 IBM i 消息队列进行交互。

MessageQueue 类充当 QueuedMessage 类的容器。 getMessages() 方法尤其会返回 QueuedMessage 对象的列表。 MessageQueue 类可以执行以下操作:

  • 设置消息队列属性
  • 获取有关消息队列的信息
  • 从消息队列接收消息
  • 将消息发送到消息队列
  • 应答消息
以下示例列出了当前用户的消息队列中的消息:
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
      // The message queue is on this system.
      AS400 sys = new AS400(mySystem.myCompany.com);

      // Create the message queue object.
      // This object will represent the
      // queue for the current user.
      MessageQueue queue = new MessageQueue(sys, MessageQueue.CURRENT);

      // Get the list of messages currently in this user's queue.
      Enumeration e = queue.getMessages();

      // Print each message in the queue.
      while (e.hasMoreElements())
      {
         QueuedMessage msg = e.getNextElement();
         System.out.println(msg.getText());
      }