• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

紧急求救,AIX、CICS,循环LINK交易,CICS APP SERVER会异常终止

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 31次 | 进入软件测试论坛讨论

领测软件测试网
熟悉AIX、CICS的朋友请帮忙:
一个需要循环执行上千笔交易的大交易,总在第481次循环LINK交易时提示,APP SERVER异常终止,请好心的朋友帮忙!!
谢谢大家!

 neo2718 回复于:2002-06-03 19:14:26
执行LINK语句以后的RESPCODE是什么?

 zhouf 回复于:2002-06-04 11:25:47
执行LINK子交易的语句就飞了,无法到达子交易,也取不到RESPCODE
第481次执行
EXEC CICS LINK PROGRAM(TRT_DATA.trt_pgmnam) RESP(rc);
时,CICS的应用服务异常终止,由于应用服务异常终止,整个进程掉了,所以也取不到
返回码
console.000000控制台文件的提示信息为:
ERZ010089E/0367 06/01/02 12:27:04 SIBS         : Application Server 112 ended unexpectedly
ERZ007051W/1112 06/01/02 12:27:04 SIBS         : Asynchronously-started transaction 'S031' has encountered problems
ERZ007049W/1110 06/01/02 12:27:04 SIBS         : Asynchronously-started transaction 'S031' terminated abnormally. Temporary Storage
Queue 'DF!U0008' should be deleted.
ERZ014016E/0036 06/01/02 12:27:04 SIBS         : Transaction 'S031', Abend 'A147', at '????'.
ERZ010144I/0375 06/01/02 12:27:09 SIBS         : Application server 114 started
ERZ080088I/8049 06/01/02 12:27:09 SIBS         : XA OPEN submitted for Server 114 connected to 'Single Phase Informix' using XA_OPEN
 string 'sibsdb'
ERZ080006I/8048 06/01/02 12:27:10 SIBS         : XA_OPEN succeeded: Application Server 114 connected to 'Single Phase Informix' usin
g XA_OPEN string 'sibsdb'
ERZ080089I/8050 06/01/02 12:27:10 SIBS         : XA OPEN completed for Server 114 connected to 'Single Phase Informix' using XA_OPEN
 string 'sibsdb'
ERZ080090I/8051 06/01/02 12:27:10 SIBS         : XA RECOVER submitted for Server 114 connected to 'Single Phase Informix'
ERZ080091I/8052 06/01/02 12:27:10 SIBS         : XA RECOVER completed for Server 114 connected to 'Single Phase Informix'


谢谢帮忙!



 zhouf 回复于:2002-06-04 11:29:31
目前CICS的配置是按IBM M80配的,但在RS6000上运行
我曾试着运作两个空交易,发现也是在第481次附近出现相同的问题,所以我想是资源配置的问题,有哪位高手请出手相助,急啊!!!

谢谢!!

 neo2718 回复于:2002-06-04 11:34:38
LINK的程序名注意大小写

 liaoyh 回复于:2002-06-05 10:11:12
我四年以前搞过VSE下的CICS,不太清楚了。你这个问题肯定是资源问题,记得好象有个调用是叫FREEMEM 还是FREE,释放资源的,你的是不是没有释放多余的资源啊?还有,如果不行的话,用EXEC CICS START(TRANSACTION-ID)试一下,不是只有LINK一种方法的。不知道说得对不对

 离了水的蛤蟆 回复于:2002-06-05 10:46:14
我也觉得这个问题是资源问题,但是我怀疑是CICS/6000软件的问题,我以前用SX25也是,总在1995次左右出问题,后来只好定时自动断线重连.

我觉得CICS是用来做OLTP的,做这种batch的业务是否可以考虑其他方式?比如,把全部的请求数据发送过去,然后LINK让那边一次性地处理?

所以我觉得你可以这样做:
1. 定期进行完全的初始化
2. 是不是一直没有COMMIT?
3. 问IBM(800现在好像不象以前那样有问必答了,上IBM网站问一问)

 zhouf 回复于:2002-06-05 14:34:26
[quote][b]下面引用由[u]neo2718[/u]在 [i]2002/06/04 11:34am[/i] 发表的内容:[/b]
LINK的程序名注意大小写
[/quote]


这个我知道,LINK是正确的,只是和循环运行次数有关!谢谢!!!

 zhouf 回复于:2002-06-05 14:37:07
[quote][b]下面引用由[u]liaoyh[/u]在 [i]2002/06/05 10:11am[/i] 发表的内容:[/b]
我四年以前搞过VSE下的CICS,不太清楚了。你这个问题肯定是资源问题,记得好象有个调用是叫FREEMEM 还是FREE,释放资源的,你的是不是没有释放多余的资源啊?还有,如果不行的话,用EXEC CICS START(TRANSACTIO ...
[/quote]


START我用的也很多,更上一层多任务处理时,我就是用START异步处理,每个任务的多交易处理我才用到循环的LINK,我会考虑如果循环这么多的START是否有问题?至于FREEMEM,我以前没用过,我去查查!谢谢你,你的建议很好!

 zhouf 回复于:2002-06-05 14:47:14
[quote][b]下面引用由[u]离了水的蛤蟆[/u]在 [i]2002/06/05 10:46am[/i] 发表的内容:[/b]
我也觉得这个问题是资源问题,但是我怀疑是CICS/6000软件的问题,我以前用SX25也是,总在1995次左右出问题,后来只好定时自动断线重连.
我觉得CICS是用来做OLTP的,做这种batch的业务是否可以考虑其他方式?比如,把全 ...
[/quote]
每次运行到481次飞了,我可以再执行后面的,但这样毕竟还是没解决问题。循环LINK改写成一个大的LINK程序,里面循环运行交易函数,这样是可行的,但目前本系统很难按照这样做,而且工作量很多,系统的体系也很差。跟COMMIT应该无关,运作两个空交易,也是这种情况。

非常谢谢!!

 neo2718 回复于:2002-06-06 03:21:45
建议将纪录分段,将纪录起止编号作为参数传送,start  n次控制交易,在该控制交易中循环link


 zhouf 回复于:2002-06-07 13:21:04
[quote][b]下面引用由[u]neo2718[/u]在 [i]2002/06/06 03:21am[/i] 发表的内容:[/b]
建议将纪录分段,将纪录起止编号作为参数传送,start  n次控制交易,在该控制交易中循环link
[/quote]
我就是这么做的,谢谢!就是循环LINK多次,一般481次时就CORE了

 g-dc 回复于:2002-07-31 10:55:41
1、CICS在LINK时会申请有一块内存用于程序间的参数传递,如果多次LINK会占用大量的内存,由于不同的机器的资源不同,运行这类程序时的效率和结果会有差异。而且,LINK时CICS内部会在TCA(TASK CONTORL AREA)建立指针以确定程序的返回地址。所以建议不要使用这种方式。
2、GETMAIN和FREEMAIN要一一对应。否则也会造成内存紧张以至CICS无法运行。
3、建议你用TD来做。这样不太占资源,不过可能要对TD的资源做点调整。(我以前做过VSE
下的CICS,RS6000上有没有TD就不太清楚了)。

  

 yuzheng98 回复于:2002-11-01 17:04:06
哪位大侠能发给我一下cics远程调用(LINK)的代码,小弟不胜感激。
邮箱地址:yu_zheng@cvicse.com

 skinhead 回复于:2002-11-07 12:15:02
我用循环LINK发交易5000笔都不会出错
注意问题:每发一次LINK一定要做EXEC CICS SYNCPOINT;
          同时应用程序一定要注意资源释放,比如内存、文件


 zhouf 回复于:2002-06-03 15:55:00


 neo2718 回复于:2002-06-03 19:14:26
执行LINK语句以后的RESPCODE是什么?

 zhouf 回复于:2002-06-04 11:25:47
执行LINK子交易的语句就飞了,无法到达子交易,也取不到RESPCODE
第481次执行
EXEC CICS LINK PROGRAM(TRT_DATA.trt_pgmnam) RESP(rc);
时,CICS的应用服务异常终止,由于应用服务异常终止,整个进程掉了,所以也取不到
返回码
console.000000控制台文件的提示信息为:
ERZ010089E/0367 06/01/02 12:27:04 SIBS         : Application Server 112 ended unexpectedly
ERZ007051W/1112 06/01/02 12:27:04 SIBS         : Asynchronously-started transaction 'S031' has encountered problems
ERZ007049W/1110 06/01/02 12:27:04 SIBS         : Asynchronously-started transaction 'S031' terminated abnormally. Temporary Storage
Queue 'DF!U0008' should be deleted.
ERZ014016E/0036 06/01/02 12:27:04 SIBS         : Transaction 'S031', Abend 'A147', at '????'.
ERZ010144I/0375 06/01/02 12:27:09 SIBS         : Application server 114 started
ERZ080088I/8049 06/01/02 12:27:09 SIBS         : XA OPEN submitted for Server 114 connected to 'Single Phase Informix' using XA_OPEN
 string 'sibsdb'
ERZ080006I/8048 06/01/02 12:27:10 SIBS         : XA_OPEN succeeded: Application Server 114 connected to 'Single Phase Informix' usin
g XA_OPEN string 'sibsdb'
ERZ080089I/8050 06/01/02 12:27:10 SIBS         : XA OPEN completed for Server 114 connected to 'Single Phase Informix' using XA_OPEN
 string 'sibsdb'
ERZ080090I/8051 06/01/02 12:27:10 SIBS         : XA RECOVER submitted for Server 114 connected to 'Single Phase Informix'
ERZ080091I/8052 06/01/02 12:27:10 SIBS         : XA RECOVER completed for Server 114 connected to 'Single Phase Informix'


谢谢帮忙!



 zhouf 回复于:2002-06-04 11:29:31
目前CICS的配置是按IBM M80配的,但在RS6000上运行
我曾试着运作两个空交易,发现也是在第481次附近出现相同的问题,所以我想是资源配置的问题,有哪位高手请出手相助,急啊!!!

谢谢!!

 neo2718 回复于:2002-06-04 11:34:38
LINK的程序名注意大小写

 liaoyh 回复于:2002-06-05 10:11:12
我四年以前搞过VSE下的CICS,不太清楚了。你这个问题肯定是资源问题,记得好象有个调用是叫FREEMEM 还是FREE,释放资源的,你的是不是没有释放多余的资源啊?还有,如果不行的话,用EXEC CICS START(TRANSACTION-ID)试一下,不是只有LINK一种方法的。不知道说得对不对

 离了水的蛤蟆 回复于:2002-06-05 10:46:14
我也觉得这个问题是资源问题,但是我怀疑是CICS/6000软件的问题,我以前用SX25也是,总在1995次左右出问题,后来只好定时自动断线重连.

我觉得CICS是用来做OLTP的,做这种batch的业务是否可以考虑其他方式?比如,把全部的请求数据发送过去,然后LINK让那边一次性地处理?

所以我觉得你可以这样做:
1. 定期进行完全的初始化
2. 是不是一直没有COMMIT?
3. 问IBM(800现在好像不象以前那样有问必答了,上IBM网站问一问)

 zhouf 回复于:2002-06-05 14:34:26
[quote][b]下面引用由[u]neo2718[/u]在 [i]2002/06/04 11:34am[/i] 发表的内容:[/b]
LINK的程序名注意大小写
[/quote]


这个我知道,LINK是正确的,只是和循环运行次数有关!谢谢!!!

 zhouf 回复于:2002-06-05 14:37:07
[quote][b]下面引用由[u]liaoyh[/u]在 [i]2002/06/05 10:11am[/i] 发表的内容:[/b]
我四年以前搞过VSE下的CICS,不太清楚了。你这个问题肯定是资源问题,记得好象有个调用是叫FREEMEM 还是FREE,释放资源的,你的是不是没有释放多余的资源啊?还有,如果不行的话,用EXEC CICS START(TRANSACTIO ...
[/quote]


START我用的也很多,更上一层多任务处理时,我就是用START异步处理,每个任务的多交易处理我才用到循环的LINK,我会考虑如果循环这么多的START是否有问题?至于FREEMEM,我以前没用过,我去查查!谢谢你,你的建议很好!

 zhouf 回复于:2002-06-05 14:47:14
[quote][b]下面引用由[u]离了水的蛤蟆[/u]在 [i]2002/06/05 10:46am[/i] 发表的内容:[/b]
我也觉得这个问题是资源问题,但是我怀疑是CICS/6000软件的问题,我以前用SX25也是,总在1995次左右出问题,后来只好定时自动断线重连.
我觉得CICS是用来做OLTP的,做这种batch的业务是否可以考虑其他方式?比如,把全 ...
[/quote]
每次运行到481次飞了,我可以再执行后面的,但这样毕竟还是没解决问题。循环LINK改写成一个大的LINK程序,里面循环运行交易函数,这样是可行的,但目前本系统很难按照这样做,而且工作量很多,系统的体系也很差。跟COMMIT应该无关,运作两个空交易,也是这种情况。

非常谢谢!!

 neo2718 回复于:2002-06-06 03:21:45
建议将纪录分段,将纪录起止编号作为参数传送,start  n次控制交易,在该控制交易中循环link


 zhouf 回复于:2002-06-07 13:21:04
[quote][b]下面引用由[u]neo2718[/u]在 [i]2002/06/06 03:21am[/i] 发表的内容:[/b]
建议将纪录分段,将纪录起止编号作为参数传送,start  n次控制交易,在该控制交易中循环link
[/quote]
我就是这么做的,谢谢!就是循环LINK多次,一般481次时就CORE了

 g-dc 回复于:2002-07-31 10:55:41
1、CICS在LINK时会申请有一块内存用于程序间的参数传递,如果多次LINK会占用大量的内存,由于不同的机器的资源不同,运行这类程序时的效率和结果会有差异。而且,LINK时CICS内部会在TCA(TASK CONTORL AREA)建立指针以确定程序的返回地址。所以建议不要使用这种方式。
2、GETMAIN和FREEMAIN要一一对应。否则也会造成内存紧张以至CICS无法运行。
3、建议你用TD来做。这样不太占资源,不过可能要对TD的资源做点调整。(我以前做过VSE
下的CICS,RS6000上有没有TD就不太清楚了)。

  

 yuzheng98 回复于:2002-11-01 17:04:06
哪位大侠能发给我一下cics远程调用(LINK)的代码,小弟不胜感激。
邮箱地址:yu_zheng@cvicse.com

 skinhead 回复于:2002-11-07 12:15:02
我用循环LINK发交易5000笔都不会出错
注意问题:每发一次LINK一定要做EXEC CICS SYNCPOINT;
          同时应用程序一定要注意资源释放,比如内存、文件


 kangkang 回复于:2003-07-24 11:18:12
偶的6万笔也没问题啊,奇怪

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网