查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
迪帕克
新的用户
已加入:2013年10月11日 职位:37 地点:印度
|
|
|
|
众所周知,我们无法随机读取ps文件。我有一个类似的情况
我搜索了论坛但没有得到答案....有人建议使用一个计数器并将其保存在另一个文件中,但是如果使用计数器读取我们的文件又会读取所有记录然后转到最后一个记录....我们正在阅读所有以前的记录的解决方案.....
就像有人说的....您可以使用
执行计数时间。
请提出建议。
迪帕克·库玛(Deepak kumar) |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
为什么要这样做? |
|
回到顶部 |
|
 |
迪帕克
新的用户
已加入:2013年10月11日 职位:37 地点:印度
|
|
|
|
@比尔·伍德格...只是一个问题.....
迪帕克·库马尔[/ quote] |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
为了执行您想要的操作,您必须将最后读取的记录存储在文件中的某个位置,因为否则您将无法在异常结束后知道要读取多少记录并跳过处理。这样做的最简单方法是定义VSAM KSDS,以保存每次从顺序文件中读取记录时读取和更新(读取/重写)KSDS记录的最后一条记录。这意味着您的程序将运行更长的时间,并且现在取决于对VSAM文件的访问,因此逻辑变得更加复杂。
在大多数情况下,只需将系统设计为允许重新启动(通过允许文件在程序开始运行之前恢复到其状态,或者通过确保可以多次应用更新(以防需要重新运行))。将是更好的解决方案 |
|
回到顶部 |
|
 |
trushant.w
新的用户
.jpg)
已加入:2013年9月22日 帖子:81 地点:印度浦那
|
|
|
|
你好罗伯特
我只需要进一步澄清您使用VSAM KSDS文件的解决方案。以下是我的查询
1.程序如何知道在重新启动作业时需要检查ksds的最后记录。
2.由于我们使用ps平面文件作为输入,即使在读取了ksds的最后一个记录之后,当作业重新启动时,如何跳转到ps文件中的垂直记录。 |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
1.您将必须以某种方式(例如JCL PARM值或KSDS中的特定值)向程序指示该程序应该执行正常执行还是重新运行。
2.您不会“跳转”-您从顺序文件中读取每条记录,直到到达最后处理的记录。顺序文件意味着顺序-例如,一次没有跳过记录,也没有在文件中跳转,一次从第一条记录读取到最后一条记录。因此,如果您的程序在处理了顺序文件的前400条记录后获得了ABEND,则您的程序在重新运行时仍必须读取前400条记录(即使它对那些记录中的数据不执行任何操作)。 |
|
回到顶部 |
|
 |
trushant.w
新的用户
.jpg)
已加入:2013年9月22日 帖子:81 地点:印度浦那
|
|
|
|
感谢您的解释罗伯特。
我有检查点的高级想法。
如果可能,请分享一些示例。 |
|
回到顶部 |
|
 |
迪帕克
新的用户
已加入:2013年10月11日 职位:37 地点:印度
|
|
|
|
引用: |
因此,如果您的程序在处理了顺序文件的前400条记录后获得了ABEND,则您的程序在重新运行时仍必须读取前400条记录(即使它对那些记录中的数据不执行任何操作)。
|
@Robert sample ....有什么不同,我们正在阅读400条记录,正在跳过,我们只阅读了所有记录.....我已经知道此解决方案以及执行解决方案...
迪帕克·库玛(Deepak kumar) |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
您好,
您可能还需要“同步”在问题执行过程中部分创建的所有其他输出。考虑一下仅部分完成的输出文件。考虑不完整的总数。等等。
在中间重新定义要比在输入中的正确位置开始重得多。 。 。
在大多数情况下,最好将输入数据恢复到运行之前的位置,修复引起问题的原因,然后从头开始重新运行。 |
|
回到顶部 |
|
 |
迪帕克
新的用户
已加入:2013年10月11日 职位:37 地点:印度
|
|
|
|
好的家伙...。我会尝试您的建议...
迪帕克·库玛(Deepak kumar) |
|
回到顶部 |
|
 |
苏拉杰
新的用户
.jpg)
已加入:2009年4月16日 帖子:69 地点:加拿大
|
|
|
|
另一种解决方案是将日期字段添加到文件(如果可能)。用作业运行的日期更新所有记录。这样,您将知道何时重新运行记录是否更新。在日期字段中检查当前日期将告诉您是否需要再次处理记录。
问候苏拉伊 |
|
回到顶部 |
|
 |
dbzTHEdinosauer
全球主持人

已加入:2006年10月20日 帖子:6967 位置:瓷宝座
|
|
|
|
添加字段以提供 日期字段
特别是对于PS文件来说,是很多工作和过度使用的工具。
随着计算机变得越来越快,
正如迪克·谢勒(Dick Scherrer)经常说的那样,
批处理
不参与DB2更新
应该配置为可重启
通过在过程开始之前将所有文件恢复到它们的状态。
DB2 10自动提供了一个 最近更新时间 柱
然后应在该列周围配置重启。
曾在IT行业工作过(此董事会中的许多人都有)
几十年(从60年代开始)
我已经看到重启过程不断发展,
就像其他所有流程都在发展一样
从 石轮和刀
相当简单的过程。 |
|
回到顶部 |
|
 |
唐·雷西
活跃的成员
已加入:2010年7月6日 帖子:696 地点:加拿大安大略省惠特比
|
|
|
|
如果您的程序要用于生产,则最好确保得到操作团队的祝福。他们不想面对您的工作可能特有的特殊重启程序;他们想要所有工作都遵循的标准程序。 |
|
回到顶部 |
|
 |
trushant.w
新的用户
.jpg)
已加入:2013年9月22日 帖子:81 地点:印度浦那
|
|
|
|
dbzTHEdinosauer您好
如果您分享一些有关重新启动逻辑的示例,那将是一个很大的帮助。 |
|
回到顶部 |
|
 |
阿努·达万(Anuj Dhawan)
高级会员

已加入:2006年4月22日 帖子:6250 地点:印度孟买
|
|
|
|
迪帕克写道: |
我正在读取1000条记录的PS文件。在400条记录中,我有一个异常终止。那么我想在读取的最后一条记录为400时重新开始读取此文件。 |
这就是为什么存在检查点重新启动逻辑的原因。如果这不是一个问题,并且您计划实现这种事情,建议您应该了解商店中使用的检查点逻辑,而不要自己部署。
太太,如果我猜的很好,那么我想问的第一件事是-为什么问这个? AFAIK,所有非大型机语言也不提供 这样的设施 ;说(这个问题听起来是否来自PC世界)-您的问题的依据是什么? |
|
回到顶部 |
|
 |
迪帕克
新的用户
已加入:2013年10月11日 职位:37 地点:印度
|
|
|
|
@anuj
感谢您的回复
阿奴
我会尝试您的检查站建议.....
迪帕克 |
|
回到顶部 |
|
 |
|