本版版主招募中

 
标题: CICS问题请教高手……
leanron
LU新生
Rank: 1



UID 404
精华 0
积分 9
帖子 17
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-10-10
 
发表于 2004-1-3 10:58  资料  个人空间  短消息  加为好友 
环境:6000上一个程序调用另一个服务端上的PD,在6000上配有一个CD。
情况:通过cicsterm是能够连接到远端的region的,但是6000上的程序做ECI-CALL确不成功。
cics console返回:
ERZ011010I/1345 01/03/04 10:36:32 AP03 : Terminal 'WDDY' autoinstall complete for user 'CICSUSER', netname 'WDS8
5ADY', model 'cicseci'.
ERZ016050W/0234 01/03/04 10:36:32 AP03 WDDY: Logical unit of work for transaction 'APTS' has been backed out; Distri
buted Transaction Service (TRAN) reason 'ENC-tra-1025: A client (not the transaction service) aborted'
ERZ015006W/0006 01/03/04 10:36:32 AP03 WDDY: Abnormal Termination 'ASRA', Program '', Transaction 'APTS', Terminal '
WDDY'
ERZ011012I/2014 01/03/04 10:36:32 AP03 WDDY: Terminal 'WDDY' with netname 'WDS85ADY' has been uninstalled.

ECI-CALL的返回码是-3 ECI_ERR_NO_CICS。但是6000上的cics region和远端的region都是ACTIVE的……

请教……





$哩灵龙$

于禁忌处看风骨,于高寒处看春秋!

卧看满天云不动,一抹长风万里空!
顶部
瓜小南
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14


UID 128
精华 32
积分 1808
帖子 3485
活跃指数 10
LU金币 188 个
LU金条 0 个
阅读权限 200
注册 2003-9-26
 
发表于 2004-1-3 10:59  资料  个人空间  短消息  加为好友 
Program ''


你要调用的程序name呢??





我们匆匆相识 匆匆言爱 匆匆相许一生,
爱情也许并没有那么真的让我们那么失望,
失望只是由于我们自己的放弃。

午夜梦回。
略为清醒的时刻,
总是会想起她。
相信, 她也会想起我。
顶部
leanron
LU新生
Rank: 1



UID 404
精华 0
积分 9
帖子 17
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-10-10
 
发表于 2004-1-3 11:14  资料  个人空间  短消息  加为好友 
这个是我从CSMT。out里COPY出来的。

不知道PROGRAM''的引号里是不是应该有PD的name?
但是我不知道为什么没有,而且这个程序在PD里我确实定义过的。昨天早上还可以被调起来的。但是到了下午就不知道什么原因不行了。
我怀疑是不是和修改了远端系统或本地系统的环境变量有关系?





$哩灵龙$

于禁忌处看风骨,于高寒处看春秋!

卧看满天云不动,一抹长风万里空!
顶部
leanron
LU新生
Rank: 1



UID 404
精华 0
积分 9
帖子 17
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-10-10
 
发表于 2004-1-3 11:21  资料  个人空间  短消息  加为好友 
我的做法是:在6000上的一个region里定义一个PD,其中RemoteSysId、RemoteName、TransId再分别做定义,通过CD、ECI-CALL直接调用远端机器上一个region的PD。





$哩灵龙$

于禁忌处看风骨,于高寒处看春秋!

卧看满天云不动,一抹长风万里空!
顶部
瓜小南
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14


UID 128
精华 32
积分 1808
帖子 3485
活跃指数 10
LU金币 188 个
LU金条 0 个
阅读权限 200
注册 2003-9-26
 
发表于 2004-1-3 11:34  资料  个人空间  短消息  加为好友 
你的程序更本就没调用起来啊





我们匆匆相识 匆匆言爱 匆匆相许一生,
爱情也许并没有那么真的让我们那么失望,
失望只是由于我们自己的放弃。

午夜梦回。
略为清醒的时刻,
总是会想起她。
相信, 她也会想起我。
顶部
leanron
LU新生
Rank: 1



UID 404
精华 0
积分 9
帖子 17
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-10-10
 
发表于 2004-1-3 11:40  资料  个人空间  短消息  加为好友 
是啊……我就是不知道为什么没调起来?





$哩灵龙$

于禁忌处看风骨,于高寒处看春秋!

卧看满天云不动,一抹长风万里空!
顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
高级傻冒
LU幼天使
Rank: 2



UID 1293
精华 0
积分 36
帖子 72
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-31
 
发表于 2004-1-3 18:19  资料  个人空间  短消息  加为好友 
QUOTE(leanron @ 2004-01-03 11:21:59)
我的做法是:在6000上的一个region里定义一个PD,其中RemoteSysId、RemoteName、TransId再分别做定义,通过CD、ECI-CALL直接调用远端机器上一个region的PD。

试试
1. 在6000的region 里面定义一个PD(和远端机器上一个region的PD 同名), 里面指明RemoteSysId
2。TransId再分别做定义 --- 不用定义
3。修改2台机器上 region 里面事务 CPMI的属性
cicsupdate -c td -r CICS01 -P CPMI Permanent=no
cicsupdate -c td -r CICS01 -P CPMI RSLCheck=none
cicsupdate -c td -r CICS01 -P CPMI Permanent=yes

4。 通过 ECI -call 调用6000上你定义的PD。

应该不会是-3的。。

客户端出现-3时。。后台的csmt.out 里面应该是没有 信息的。
haha.gif 试试吧。。。

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
leanron
LU新生
Rank: 1



UID 404
精华 0
积分 9
帖子 17
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-10-10
 
发表于 2004-1-3 19:08  资料  个人空间  短消息  加为好友 
不好意思,看错了。不是返回…… awkard.gif
我们返回的是ECI_ERR_TRANSACTION_ABEND -7





$哩灵龙$

于禁忌处看风骨,于高寒处看春秋!

卧看满天云不动,一抹长风万里空!
顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
deepblue
LU新生
Rank: 1



UID 2881
精华 0
积分 12
帖子 23
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-11-20
 
发表于 2004-1-3 23:01  资料  个人空间  短消息  加为好友 
以下是我在chinaunix上的回复:
ASRA错误,是由于APTS交易出现了dump,可能程序由问题。
建议:
查找 /var/cics_regions/region_name/dumps/dir1目录下的ASRA的dump,用cicsdfmt进行格式化,查找一下最后执行的EXEC CICS是哪个语句,看是为什么出错。
可以先看一下tracebak文件。
另外,检查你的程序是否规范,你的各种补丁是否打全,dce/encina/cics/数据库等。
ASRA错误应该还是可以查找的。
另外,“6000上一个程序调用另一个服务端上的PD,在6000上配有一个CD。” ECI_CALL何需定义CD。

现在我明白你为什么要用CD,其实本地定义不定义PD均可,本地不定义时在调用时指明SYSID也是一样的。
你的交易肯定是不调起来了,主要是程序本身有bug,或者有软件补钉没有打,造成了程序abend。我们曾经遇到过oracle的补丁没有打造成SQL语句的地方出现dump。
查一下tracebak和dump就应该可以找到问题。另外CICS程序的规范性也是要注意的。

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
deepblue
LU新生
Rank: 1



UID 2881
精华 0
积分 12
帖子 23
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-11-20
 
发表于 2004-1-4 08:01  资料  个人空间  短消息  加为好友 
突然想起来昨天的回复不准确。你输出的错误肯定是本地region的错误信息。应该看你实际调用的region上的console文件或CSMT.out中的信息。

一般情况下,出现ENC-tra-1025错误,往往是跨系统是CD或与对方系统存在问题。
建议:
在cicsterm中执行CRTE交易,指明SYSID=CD_NAME,看是否能够登录过去,如果可以,说明CD没有问题,此时已经在对方的region上了,在执行

CECI LINK PROGRAM(对方的PD) COMMAREA(commarea区的内容) LENTGH(commarea区中的数据的长度)
如果执行成功应该就没有问题。如果有问题,是你本地定义PD和本地region的问题。
从你的情况看,由于输出信息仅仅是warning信息,因此可以初步判定是CD有关的问题,请你参照上述步骤查找。

顶部
leanron
LU新生
Rank: 1



UID 404
精华 0
积分 9
帖子 17
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-10-10
 
发表于 2004-1-5 08:48  资料  个人空间  短消息  加为好友 
问题是解决了,主要是因为我们得一笔数据在服务端dump了。但是不知道为什么在客户端居然TRANSACTION ABEND……
还有,ASRA00001.dmp哪位老大能指点一下怎么分析啊……这个文件太大了,不知道分析得时候主要抓哪些要点啊…… haha.gif haha.gif haha.gif haha.gif





$哩灵龙$

于禁忌处看风骨,于高寒处看春秋!

卧看满天云不动,一抹长风万里空!
顶部
deepblue
LU新生
Rank: 1



UID 2881
精华 0
积分 12
帖子 23
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-11-20
 
发表于 2004-1-5 09:13  资料  个人空间  短消息  加为好友 
我已经写了的。
cicsdfmt ASRA0001.dmp01
然后用vi打开,查找ProgramName和第一个EXEC CICS的位置,应该可以看出来。另外根据dump文件产生的时间,察看对应的tracebak可以简明看出来一些信息。
要求你的cicstcl在编译时增加-d -e选项。

顶部
 



当前时区 GMT+8, 现在时间是 2008-8-29 08:52
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.108721 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver