使用IBM Java Toolbox for i访问IBM i数据队列

进程通信是操作系统内核中非常重要的部分。对于IBM i而言,数据队列是一种非常重要的进程通信方式。 一方面,数据队列功能强大,不受编程语言的限制,并能同时支持进程的同步通信与异步通信;另一方面,数 据队列使用灵活,其数据消息不受任何格式束缚,换句话说,用户可以根据业务需求自定义数据格式。作为 IBM i的Java 应用程序编程接口,IBM Java Toolbox for i支持IBM i数据队列的相关操作,这样,Java应用 程序与其它IBM i程序(诸如C,RPG,COBOL程序)之间的通信就变得简单、容易。本文的目标是:从面向程序 设计的角度,指导读者如何使用IBM Java Toolbox for i,实现基于IBM i数据队列的进程通信。有关IBM Java Toolbox for i的基础知识,请参见另一篇技术文档“Toolbox for Java 和 JTOpen”。

从结构上,本文主要分为3部分。第1部分简要介绍数据队列的基础知识,包括数据队列的基本概念,工作 方式,使用场景,以及与其它通信方式的区别。第2部分则集中介绍IBM Java Toolbox for i针对数据队列的 编程支持。在这一部分中,我们将结合生产者与消费者问题相关的样例,指导读者如何使用IBM Java Toolbox for i完成进程间的通信。最后一部分是总结。

本文的样例主要包含两部分。第1部分是IBM i数据队列的相关基础操作,包括队列创建,入队,出队,清 空队列,队列删除共计5种。第2部分是进阶篇,实现的是生产者与消费者的原型。其中,生产者进程的任务是 向产品队列中不断添加产品,而消费者一直处于监听状态,只要发现队列不为空,则从队列中取走产品。

IBM i数据队列的工作原理

与Unix,Window不同,IBM i是一种面向对象的操作系统。从这个角度而 言,数据队列是一种系统对象,对应的类型为*DTAQ。IBM i数据队列的设计目标是提供一种高效的进程通信方 式。

狭义上讲,队列是一种先进先出(或FIFO)的数据结构,如图1。它只允许在对头进行删除操作(称为出队 ),而在队尾进行插入操作(入队)。

图 1. 队列的工作方式

列则是一种广义上的队列,或者说它是队列以及队列的变种。按数据队列的出队策略划分,IBM i支持3种类型的数据队列:

先进先出(或FIFO)—— 第一条(最旧)队列消息,位于队头最先出队。这与狭义的FIFO队列等价。

先进后出(或LIFO)—— 最后一条(最新)队列消息,位于队头最先出队。它实际上是一种栈结构。

按索引出队 —— 每条队列消息对应一个索引。与索引规则匹配的队列消息出队。其中,按索引检索的规 则包括操作符 =,>,>=,<,<= 等。

除数据队列之外,IBM i还支持其它各种数据存储对象,包括数据库文件,消息队列,数据区(Data Area ),用户空间(User Space)等等。但是他们的使用方式与应用场景不同。数据队列的主要目标是进程通信, 队列消息的格式不受限制,用户可根据业务需求自由定义;数据库文件的服务对象是数据库相关的增删改查等 操作,数据记录有严格的数据格式;消息队列存储的对象是IBM i消息,消息队列本身并不具备队列的数据结 构;数据区对象的存储空间有限,通常用于存放IBM i作业之间的共享数据;用户空间对象通常用来存储用户 的自定义信息,方便在进程间共享数据。

时间: 2024-12-28 05:09:52

使用IBM Java Toolbox for i访问IBM i数据队列的相关文章

IBM i教程:使用IBM Java Toolbox for i管理IBM i权限

从安全性的角度,IBM i提供了三个级别的安全保护机制,分别为:物理安全性.登录安全性.以及资源安 全性.物理安全性是从硬件的角度,主要涉及的是IBM i数据存储介质的保护:登录安全性则以用户为中心, 限制哪些用户访问IBM i以及登录后可执行哪些操作:资源安全性是围绕IBM i对象与文件等资源,保护文件. 对象以及对象中数据避免非法访问.另一方面,作为一组Java应用程序编程接口,IBM Java Toolbox for i主 要用于访问IBM i的数据与资源.有关IBM Java Toolb

使用IBM Java Toolbox for i 实现IBM i的作业管理(下)

IBM Java Toolbox for i对IBM i子系统的编程支持 除队列之外,子系统也是IBM i的一大特色.为满足用户的各种需求,IBM i 支持多种类型的作业.不同种类的作业对系统资源的要求不同,比如,交互式作业要求较快的响应时间,批处理作业可能要求较多的CPU时间等.为了更加合理.有效地使用系统资源,系统(System)被划分成若干个子系统(Subsystem),所有的作业在子系统的监控下运行.因此,可以认为子系统是专门为了运行某一类作业而配置的环境. 从面向对象的编程模型角度,I

使用IBM Java Toolbox for i 实现IBM i的作业管理(上)

通俗地讲,IBM i 作业管理的内容是负责处理用户或程序提交的系统请求,它是IBM i平台的基本功能之一 .不同于Windows与Unix,围绕IBM i作业管理的概念较多,如作业,作业描述符,作业队列,子系统,子系统 描述符,内存池,输出队列等.而本文的目标是:围绕IBM i作业管理的相关概念,指导读者如何使用IBM Java Toolbox for i实现对IBM i作业管理的编程支持.有关IBM Java Toolbox for i的基础知识,请参见另 一篇技术文档"Toolbox for

IBM Java Toolbox for i实现安全访问IBM i

作为一组面向IBM i平台的Java应用程序编程接口,IBM Java Toolbox for i主要用于访问IBM i的数据与 资源.而数据与应用的安全性是从事IBM i应用开发者需要考虑的重要因素之一.通过依赖IBM Java Toolbox for i与IBM i之间的SSL通信,上层客户端应用程序可有效解决与IBM i服务器交互过程中的出现数据安全问题 .本文的目标是结合SSL加密技术,IBM i相关的SSL证书管理组件--IBM i 数字证书管理器(或DCM),指导 读者如何利用IBM

利用IBM Java Toolbox for i实现针对数据库文件的记录级访问

对于从事 IBM i 平台的数据库应用开发而言,如何使用 IBM Java Toolbox for i http://www.aliyun.com/zixun/aggregation/11872.html">访问数据库文件是非常重要的技能.本文的目标是系统性介绍如何利用 IBM Java Toolbox for i 实现针对数据库文件的记录级访问(RLA 或 Record Level Access),并指出 JDBC 与 RLA 两种技术的区别. 从文件系统的角度,IBM i 提供了对 P

IBM Java Toolbox for i实现三种基于IBM i的身份验证策略

对于从事IBM i平台的应用开发者而言,用户身份验证是保证程序安全性的最基本功能之一.作为访问与操 纵IBM i平台上数据与资源的Java API,IBM Java Toolbox for i从编程的角度,实现了各种用户身份验证策 略,可简单.高效地解决程序的安全性问题.本文将从Web应用的角度,结合具体样例,指导IBM i Web应用程 序开发者如何使用IBM Java Toolbox for i实现不同的身份验证策略.有关IBM Java Toolbox for i的基础知 识,请参见另一篇

IBM Java Toolbox for i 实现 Web 与智能移动设备调用 RPG

IBM Java Toolbox for i 实现 Web 与智能移动设备调用 RPG IBM i 平台的主流语言为 RPG,其运行效率很高.而 Java 作为当今主流的编程语言,应用在全球 30 亿设备.如何在不改变业务逻辑,不重新编译的前提下,继续复用已有 IBM i 平台的 RPG 应用,是 Java 应用程序开发所需关注的一个重点.从跨语言的角度来看,Web Service 无疑是一种可行的通用实现方案.但是对于熟悉 Java 编程语言的开发人员而言,借助 IBM Java Toolbo

IBM Java Toolbox for i数据转换类

从面向对象的角度,IBM Java Toolbox for i提供了一个AS400DataType接口,用于描述IBM i数据类型与 Java数据类型之间的具体转换逻辑与规则.从AS400DataType接口对应的实现类,可大致可分为: 数值 文本 日期 复合类型(数字与文本) 表1对应的是与数字相关的AS400DataType实现类. 表 1.  AS400DataType相关的实现类 对于IBM i的RPG程序而言,PACKED DECIMAL与ZONED DECIMAL是两种常见的数值类型

IBM i教程:IBM Java Toolbox for i使用PCML远程调用RPG

相对与传统的绿屏IBM i应用,现代的很多IBM i应用都基于Web技术,即前端采用基于Web的图形用户界面 ,后端重用传统的RPG与COBOL业务程序.如何实现软件复用,是IBM i应用现代化的一个重要目标.一方面, 基于Web Service技术的IBM Integrated Web Services for i服务器可将传统RPG与COBOL应用发布成Web Service,实现软件重用:另一方面,作为基于IBM i的Java应用程序编程接口,IBM Java Toolbox for i可