我有一个想法,我不知道它是否可以在Cobol中做,我想在在线程序中使用在线VSAM文件,所以我的在线VSAM文件有多个记录,我想如果有新的记录添加到文件中,我的在线程序检测到并做一些处理,它是可行的,请给我一些提示
发布于 2018-09-10 02:01:20
你所描述的基本上是一个基于事件的触发器。您将COBOL描述为一种语言,但是为了实现您想要的,您还需要选择一个运行时环境。例如CICS、IMS、WebSphere ( Db2 )、MQ等。
VSAM本身不提供触发机制。开始实现您想要的目标的一种方法是创建一个MQ队列,该队列处理要写入的记录,它们可以写入记录并采取其他操作。MQ跨越了上面列出的所有运行时,可能是最可靠的。
另一种选择是考虑使用Db2,您可以在其中创建触发器或用户定义的函数,这些函数可能会实现您想要的结果。这是一个reference article that describes many methods。
以下是上面提到的链接中的一些文章的列表:
阿列克谢·舍普琴科的
Utilizing Triggers within DB2
Using Stored Procedures as Communication Mechanism to a Mainframe作者: Robert Catterall
Workload Manager Implementation and Exploitation
Stored Procedures, UDFs and Triggers-Common Logic or Common Problem?
如果您希望处理简单地从任何源写入VSAM的记录,那么在定义VSAM数据集的Access Method Services中实际上没有实现这一点的固有功能。
在继续设计时,您需要考虑您的运行时环境、功能和目标。
发布于 2018-09-11 00:05:22
如果这是一个大容量应用程序,您可以考虑使用IBM的“变更数据捕获”产品。每次更新选定的VSAM文件时,它都会将记录的前后图像转储到消息队列中。然后可以由您选择的语言和平台进行处理。
同样值得考虑的是,如果您所说的“在线”是指CICS应用程序,那么VSAM文件将由单个CICS区域独占,并且所有更新都将由该区域中运行的程序处理。您可以调整应用程序以启动一些后期处理(就像添加"EXEC CICS START yourtransacion ...“一样简单。添加到现有程序。
发布于 2018-10-04 15:58:32
查看CICS Events。您可以设置VSAM文件写入时间的事件,并使用COBOL程序对其执行操作。有几个事件适配器,您可能会对写入TS队列的事件适配器感兴趣。
https://stackoverflow.com/questions/52245101
复制相似问题