可以在给定程序中混合使用这两种方法。但是,在大多数情况下,只需单独使用其中一种方法。
不论采用哪种方法,您都可以通过定制选项记录来控制各种运行时条件,这些记录是 EGL 运行时服务在调用时传递给 MQSeries 的全局基本记录。当您声明选项记录作为程序变量时,可以将 EGL 安装的选项记录部件用作 typedef;也可以将已安装的部件复制到您自己的 EGL 文件中,定制该部件,并将定制的部件用作 typedef。
每次只能访问一个连接队列管理器;但是,可以访问多个受连接队列管理器控制的队列。如果要直接连接至除当前连接队列管理器之外的队列管理器,则必须通过调用 MQDISC 来断开与第一个队列管理器的连接,然后通过调用 add、get next、MQCONN 或 MQCONNX 来连接至第二个队列管理器。
也可以访问远程队列管理器(连接队列管理器可与之进行交互的队列管理器)控制之下的队列。仅当将 MQSeries 本身配置为允许两个队列管理器之间的访问时,才有可能进行该访问。
当调用 MQDISC 时或当代码结束时,对连接队列管理器的访问就会终止。
当队列访问语句不在工作单元中时,将立即落实对消息队列所作的每项更改。
当代码结束工作单元时,EGL 将落实或回滚您的程序正在访问的所有可恢复的资源,包括数据库、消息队列和可恢复的文件。不管您是使用系统函数(sysLib.commit 和 sysLib.rollback)还是使用对 MQSeries 的 EGL 调用(MQCMIT 和 MQBACK),都会产生这种结果;在任一种情况下都会调用适当的 EGL 系统函数。
如果 EGL 程序由于 EGL 运行时服务检测到的错误而过早终止,则会进行回滚。
如果要定制与 MQSeries 之间进行的交互而不是依赖 add 和 get next 语句的缺省处理,则您需要查看本节中的信息。
提供了一组 EGL dataTable 部件来帮助您与 MQSeries 进行交互。每个部件都允许 EGL 提供的函数在运行时从基于内存的列表中检索值。下一节讨论有关如何部署数据表的详细信息。
您的任务如下所示:
installationDir\egl\eclipse\plugins\ com.ibm.etools.egl.generators_version\MqReusableParts
有关详细信息,请参阅导入。
MQGMO.GETOPTIONS = MQGMO_LOCK + MQGMO_ACCEPT_TRUNCATED_MSG + MQGMO_BROWSE_FIRST