IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

从异常记录而不是原始记录重新启动文件


IBM大型机论坛 -> COBOL程式设计
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
图纳伊

新的用户


已加入:2009年10月23日
帖子:4
地点:海得拉巴

发布发表:2011年3月28日星期一2:59 pm
引用回复

假设我的程序之一正在读取一个包含10,000条记录的文件并写入另一个输出文件,则在处理500条记录后它会异常终止。我需要重新启动该程序,以便它将开始处理501条记录中的记录,而并非来自原始记录。因此,我在程序中的代码将是什么,以便它将处理501记录中的记录。

谢谢
普拉塔普
回到顶部
查看用户资料 发送私信
外籍人士

全球主持人


已加入:2007年3月14日
帖子:8794
地点:威尔士威尔士

发布发表:2011年3月28日星期一3:10 pm
引用回复

The 重新开始ability of any program depends entirely on what it is doing, what it has done up to and including the point of abend.

因此,如果您没有更多的细节,这个问题是不可能回答的。
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


已加入:2008年6月6日
帖子:8569
地点:美国爱荷华州迪比克

发布发表:2011年3月28日星期一3:15 pm
引用回复

除非您的程序是从头开始编写的,以处理这种类型的重新启动方案,否则您很可能现在无法这样做。该程序必须有一种方法来标识从哪个记录重新开始,读取并忽略那么多输入记录,等等。逻辑并不复杂,但是除非以这种方式编写程序,否则通常不值得花力气去返回并添加逻辑。

此外,大多数站点已经决定,重新运行整个作业的成本(尤其是对于这么小的记录数)并不能证明这些天在代码中添加重新启动逻辑是合理的。
回到顶部
查看用户资料 发送私信
图纳伊

新的用户


已加入:2009年10月23日
帖子:4
地点:海得拉巴

发布发表:2011年3月28日星期一3:43 pm
引用回复

我将如何在程序中编写逻辑(cobol中的代码),以便它读取并绕过500条记录并从501条记录开始处理。我不知道如何编写代码。如果有人会帮助我编写代码,它将很棒。
回到顶部
查看用户资料 发送私信
凯尔德

活跃用户


已加入:2009年12月15日
帖子:365
地点:丹麦

发布发表:2011年3月28日星期一3:46 pm
引用回复

You should definitely not write your own logic for rolling back changes since last commit point, and positioning into datasets at 重新开始.

如果您的站点具有IMS,则可以使用IMS检查点/重新启动来处理此问题。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2011年3月28日星期一3:52 pm
引用回复

如果你不能 由你自己 发现/想象您需要初始化一个计数器,读取一条记录,增加计数器,继续读取直到计数器等于<restart> record (*)
您在IT中没有位置!

(*)PERFORM可能是另一种方法...但是我不会说COBOLESE,所以我可能错了
回到顶部
查看用户资料 发送私信
瓦迪姆·瓦申科

新的用户


已加入:2011年3月21日
帖子:13
所在地:美国

发布发表:2011年3月28日星期一5:39 pm
引用回复

图纳伊写道:
我将如何在程序中编写逻辑(cobol中的代码),以便它读取并绕过500条记录并从501条记录开始处理。我不知道如何编写代码。如果有人会帮助我编写代码,它将很棒。


我正在变老-我无法理解您的问题。用每个已处理的记录重写“重新启动”数据集,然后从已保存的记录重新开始更新。您还可以保存计数。 “重新启动”数据集可以是任何东西:平面DB2表等等。 :)
回到顶部
查看用户资料 发送私信
凯尔德

活跃用户


已加入:2009年12月15日
帖子:365
地点:丹麦

发布发表:2011年3月28日星期一6:16 pm
引用回复

检查点/重新启动不是简单的任务。您必须控制对顺序输出文件的写入,以便在发生异常结束时能够回滚自上一个检查点以来所做的更改。同样,数据库更新应同步化,并在检查点中落实。

定位输入数据集只是这些挑战之一。通常,相对块地址(RBA)用于跟踪顺序数据集中的位置。
回到顶部
查看用户资料 发送私信
彼得·荷兰

全球主持人


已加入:2009年10月27日
帖子:2475
所在地:荷兰,阿姆斯特尔芬

发布发表:2011年3月28日星期一10:21 pm
引用回复

如果只是这样的情况:

旧主+更新=新主(以下运行中的旧主):

然后使用例如更新文件的副本跳过前500条记录进行复制,然后使用新的更新文件重新运行。

是的,这种废话在40年前就起作用了,当时没有人听说过任何总数可以检查更新过程是否有效。

与kjeld ims无关,我没有看到与ims相关的任何信息。正常的批处理更新程序的重新启动逻辑是另一回事了。
回到顶部
查看用户资料 发送私信
凯尔德

活跃用户


已加入:2009年12月15日
帖子:365
地点:丹麦

发布发表:2011年3月29日,星期二,上午4:11
引用回复

彼得·荷兰(PeterHolland)写道:
与kjeld ims无关,我没有看到与ims相关的任何信息。正常的批处理更新程序的重新启动逻辑是另一回事了。

仅出于信息方面的考虑,尽管现在TP由CICS处理,但在我的安装中,我们已经将IMS BMP和DBB用作检查点/重新启动设施已有很多年了。
回到顶部
查看用户资料 发送私信
彼得·荷兰

全球主持人


已加入:2009年10月27日
帖子:2475
所在地:荷兰,阿姆斯特尔芬

发布发表:2011年3月29日,星期二,下午1:44
引用回复

该链接可以帮助:

publib.boulder.ibm.com/infocenter/ratdevz/v7r6/index.jsp?topic=/com.ibm.ent.cbl.zos.doc/topics/PGandLR/concepts/cpchk02.htm
回到顶部
查看用户资料 发送私信
彼得·南科利斯

新的用户


已加入:2011年3月15日
帖子:47
地点:英国

发布发表:2011年3月30日星期三上午5:07
引用回复

大家问的问题是
"I need to 重新开始 the program so that it will start processing of records from 501 records not from the begening"

恩里科打了分..

甚至没有考虑产出
单词太简单了
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

发布发表:2011年3月30日星期三上午10:27
引用回复

右键单击并保存此pdf,然后阅读:
pdf with 重新开始 logic
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
该主题已锁定:您无法编辑帖子或回复。 将匹配的记录写入输出文件 DFSORT / ICETOOL 11
没有新帖 比较文件记录计数百分比... DFSORT / ICETOOL 4
没有新帖 比较两个文件以查找位置/日期... 同步排序 2
没有新帖 将文件从PD转换为显示... 同步排序 4
没有新帖 合并两个以上的记录 DFSORT / ICETOOL 15
搜索我们的论坛:


回到顶部