ABEND SB37 and ABEND S04E and ABEND S106

下午同事提了两个LOAD的job,一个报SB37,另一个报S04E。先看一下官方解释和错误信息吧

ABEND SB37

官方解释:Out of space abend occurred during the end of volume processing. More space was required, but the volume's VTOC is full

JOB的错误信息: DSNUGBAC - UTILITY BATCH MEMORY EXECUTION ABENDED, REASON=X'0B37'

ABEND S04E
官方解释(不具体没用):When the system detects an error in internal IBM DATABASE 2 (DB2) processing, it will abnormally end a connected user task (TCB) or one of its own internal tasks.For information about the reason codes associated with this abend code, see DB2 Messages and Codes.

DSNUGBAC - UTILITY BATCH MEMORY EXECUTION ABENDED, REASON=X'00E40310'

虽然两个诊断信息都是说MEMORY不够(这里的Memory 我觉得应该是指disk,而不是memory),但还是有所区别,如果是你分配的空间太小不够用那么就会报SB37,如果你分配的空间太大,磁盘卷上没有那么多空间,那么会报S04E。


PS:SE04还有其他的错误原因,根据后面的REASON码判断。上面的结论,仅限诊断信息都是 UTILITY BATCH MEMORY EXECUTION ABENDED的情况下得出的。

 

ABEND S106

JOB的错误信息: LNKLST- FAILED BECAUSE INSUFFICIENT STORAGE WAS AVAILABLE.

可能是Job运行时占用的内存超过了默认值,在JOBCARD中指定REGION=0M(不限制内存大小),一般可以解决


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cobol程序在执行时,如果出现了非法操作或者使用了无效的存储区域,就会导致程序终止并返回一个异常码,其中最常见的异常码之一就是S0C4。 S0C4异常码表示了程序执行过程中的存储保护异常。这通常是由于程序在访问某个存储区域时出现了错误,可能是由于以下几种情况导致的: 1. 空指针引用:程序试图使用一个未初始化的指针或者指向空地址的指针。这通常是由于程序员未正确初始化指针或者未对指针进行空指针检查而导致的。 2. 数组越界访问:程序试图访问一个数组中超出有效索引范围的元素。这通常是由于程序员在使用数组时未正确控制循环变量从而导致的。 3. 未初始化的变量:程序试图使用一个未初始化的变量。这通常是由于程序员未正确初始化变量而导致的。 当出现S0C4异常时,系统会在程序终止前生成一个错误报告,其中包含了导致异常的语句和相关的存储区域信息。程序员可以通过查看错误报告来定位和修复异常引发的原因。 为了避免S0C4异常的发生,程序员在编写Cobol程序时应该注意以下几点: 1. 初始化指针和变量:使用指针和变量之前应该先进行初始化操作,确保指针不为空指针,变量有有效的初值。 2. 数组访问的范围:在使用数组时,应该确保循环变量的范围在有效的索引范围内,避免越界访问。 3. 错误处理机制:合理使用条件语句和错误处理机制,在可能出现异常的地方进行错误检查和处理,避免异常情况的发生。 总之,通过合理的程序设计和良好的编码习惯,可以减少Cobol程序出现S0C4异常的概率,提高程序的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值