- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章CICS队列设施--CICS 技术文档08
CICS 技术文档
第八章 CICS队列设施
在前面第5章我们已经讨论了CICS对VSAM文件和数据库这样一些外部数据进行访问的方法。接下来我们将在本章讨论CICS中另外一种外部数据的内容,即两种CICS队列设施的支持。队列是为保存一些短期数据的需要而设计的。例如如我们可能需要临时存储打印记录、工作数据或屏幕映像页面,有时候CICS应用的程序间可能需要传递超过32K的数据,此时COMMAREA就无法完成,通常我们用队列来过渡进行程序间大量数据的传递。
CICS提供为外部数据提供的两种队列设施:瞬时数据队列和临时存储队列。
8.1 CICS队列设施简介
CICS提供一种工具来存储那些实际上当作瞬时或临时的数据、这些数据由一个或多个在线事务创建或收集,随后被同一个事务或另一个事务使用或传送到一个批处理程序中而被使用。这些数据以一个队列元素的形式存储。
CICS中有两类队列:瞬时数据队列(TDQ)和临时存储队列(TSQ)。
瞬时数据队列TDQ允许写到队列中的数据被另外一个事务程序使用或脱机处理,它必须预先定义在DCT(Destination Control Table)中。
瞬时数据队列又分为两种:瞬时数据队列和外部瞬时数据队列。内部TDQ的所有队列的元素(数据项)存储在一个特定的VSAM数据集中,这个数据集由CICS进行管理,它只能被CICS访问,它在CICS启动的JCL或PROC中用DD语句指定,一旦CICS启动后它就被CICS独占,其化批处理程序是不能直接访问的;而外部TDQ的每一个队列是一个单独的顺序数据集,由用户或管理员用CICS的资源定义工具,如CEDA,定义到CSD文件中去。它允许在不出现冲突的情况下同时被CICS程序和批程序读取。
临时存储队列TSQ不需要预先定义,队列中的记录可被顺序或直接读写,它分为主存TSQ和辅存TSQ。主存TSQ的元素保存在CICS内存中,CICS重启后这些数据一般不保存,辅存TSQ的元素保存在外部存储区中,即文件中,CICS重启后这些数据一般予以保留。
8.2 瞬时数据队列
CICS的瞬时数据队列提供了一种应用广泛的临时存储服务。为了后续的内部或外部的处理,数据可以被临时存储在瞬时数据队列中。用户在应用程序中指定的数据,可以被发送到预先定义好的内部(Intrapartition)瞬时数据队列或外部(Extrapartion)瞬时数据队列,反之亦然。队列在CICS中又称为目的地(Destination)。
目的地如果与分配给CICS区域的设施关联,就是内部(IntraPartition)瞬时数据队列;如果数据是要导出到CICS区域外的目的地的,则是外部的(ExtraPartition)瞬时数据队列。这些目的地必须在CICS运行时由系统程序员将其作为资源定义在目的地控制表(DCT)中。
CICS对瞬时数据队列提供了3个应用编程接口:
(1)写数据到一个瞬时数据队列(WRITEQ TD命令);
(2)从一个瞬时数据队列读数据(READQ TD命令);
(3)删除一个内部瞬时数据队列(DELETEQ TD命令)。
如果TD这个关键字被省略的话,这几个命令默认是对临时储存数据队列进行操作。
瞬时数据队列像事务一样由一个被称为Destination ID的四个字符 ID来标识。Destination ID和其化的瞬时数据队列的特性由系统程序员在目的地控制表(DCT)中定义。其队列项的长度可变。
我们可以用图8.1来表示瞬时数据总体情况。
图8.1 内部瞬时数据队列
8.2.1 内部瞬时数据队列
内部(Intrapartition)瞬时数据是指为作为独立任务运行的一个或多个程序所用的在直接访问的存储设备(DASD)上的数据、被导入/导出内部的存储地点的数据被称为内部瞬时数据,它必须由可变长的记录组成。内部瞬时数据队列的目的地可以与一个终端或一个输出数据集相连,内部瞬时数据队列可能最终被传送到发送请求的终端或从输出数据集检索获得。
内部瞬时数据的特性:
(1)所有的队列使用同一个VSAM(ESDS)数据集,也就是说某个CICS区域使用一个ESDS格式的VSAM文件来存储该区域里的所有的内部瞬时数据队列的元素。
(2)记录是可变长度格式。
(3)每个队列的记录必须按照一个接一个地顺序写人。
(4)每个队列的记录被顺序检索。一旦一个记录被读出,它就不能再被任何任务所访问,也就是说对内部瞬时数据队列的读是破坏性读取。
(5)可用内部瞬时数据队列进行自动进行任务初始化(Auto Task Initiate,ATI)。
(6)不可修改记录。
需要注意的是,虽然多个CICS任务可同时向同一个瞬时数据队列写数据,但同一时刻只允许一个任务从该瞬时数据队列读数据。
对瞬时数据队列的读写过程如图8.2所示。
图8.
原创力文档


文档评论(0)