数据队列
DataQueue 类允许 Java™ 程序与服务器数据队列进行交互。
IBM i 数据队列具有以下特点:
- 数据队列允许在作业之间进行快速通信。 因此,这是在作业之间同步和传递数据的绝佳方法。
- 许多作业可以同时访问数据队列。
- 数据队列上的消息是可用格式。 字段不是必需的,因为它们在数据库文件中。
- 数据队列可用于同步或异步处理。
- 可以通过下列其中一种方式对数据队列上的消息进行排序:
- 最后一个先进先出 (LIFO)。 放置在数据队列上的最后一条 (最新) 消息是从队列中取出的第一条消息。
- 先进先出 (FIFO)。 放置在数据队列上的第一条 (最早的) 消息是从队列中取出的第一条消息。
- 基德 数据队列上的每条消息都有一个与其关联的密钥。 只能通过指定与其关联的密钥将消息从队列中取出。
数据队列类提供了一组完整的接口,用于从 Java 程序访问服务器数据队列。 这是在以任何编程语言编写的服务器上的 Java 程序和程序之间进行通信的绝佳方法。
每个数据队列对象的必需参数是表示具有数据队列的服务器或要创建数据队列的位置的 AS400 对象。
使用数据队列类会导致 AS400 对象连接到服务器。 有关管理连接的信息,请参阅 管理连接 。
每个数据队列对象都需要数据队列的集成文件系统路径名。 数据队列的类型为 DTAQ。 有关更多信息,请参阅 集成文件系统路径名 。
顺序和键控数据队列
数据队列类支持顺序和键控数据 queues.:
BaseDataQueue 类中的方法与这两种队列类型相同。 DataQueue 类扩展了 BaseDataQueue 类,以完成顺序数据队列的实现。 BaseDataQueue 类由 KeyedDataQueue 类扩展,以完成键控数据队列的实现。
从数据队列读取数据时,数据会被放入 DataQueueEntry 对象中。 此对象保存键控数据队列和顺序数据队列的数据。 从键控数据队列读取数据时可用的其他数据放在 KeyedDataQueueEntry 对象中,该对象扩展了 DataQueueEntry 类。
数据队列类不会改变写入服务器数据队列或从服务器数据队列读取的数据。 Java 程序必须正确格式化数据。 数据转换类 提供用于转换数据的方法。
示例:使用 DataQueue 和 DataQueueEntry
下面的示例创建了一个 DataQueue 对象,从 DataQueueEntry 对象读取数据,然后断开与系统的连接。
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
// Create an AS400 object
AS400 sys = new AS400("mySystem.myCompany.com");
// Create the DataQueue object
DataQueue dq = new DataQueue(sys, "/QSYS.LIB/MYLIB.LIB/MYQUEUE.DTAQ");
// read data from the queue
DataQueueEntry dqData = dq.read();
// get the data out of the DataQueueEntry object.
byte[] data = dqData.getData();
// ... process the data
// Disconnect since I am done using data queues
sys.disconnectService(AS400.DATAQUEUE);