E-IB:认购合同阻塞工作状态
适用于:
PeopleSoft Enterprise PT PeopleTools - Version: 8.4 and later [Release: 8.4 and later ]
PeopleSoft Enterprise PT PeopleTools - Version: 8.4 and later [Release: 8.4 and later]
信息在这个文件适用于其他平台。
这份文件是为客户解决以前发表的有关200767293
症状
请见下文。
引起
不适用
解决方案
解决身份证200767293:E-IB:认购合同阻塞工作状态
SOLUTION ID 200767293 : E-IB: Subscription Contract stuck in Working status
具体到:PeopleTools版本8. xx,仁科申请版本8.x,任何平台。
问题:
ISSUE:
消息出现在从一个3rd聚会。做一个平面文件转换,并且已经工作了大约一年。PS FDM在工具以8.16。 他们跑purgeall,重启appserver,发表消息了,但是第一个总是卡住从事各承包。
问题:
消息出现在从一个3rd聚会。做一个平面文件转换,并且已经工作了大约一年。PS FDM在工具以8.16。 他们跑purgeall,重启appserver,发表消息了,但是第一个总是卡住从事各承包。
黑体They只使用2的讯息。每一个习惯,每一个使用它自己的交付渠道。1是使用供应商信息渠道,另一个是使用凭证信息渠道。他们两个都得到处理程序,通过经纪人抓住一个平面文件,创建一个消息,等等…和供应商信息的艺术品,但此券是一个卡在工作。
—他们还没有任何相关的维护应用补丁,包,或更改。
—他们还没有修改任何认购PeopleCode。
——他们一直在尝试不同的信息,它还没有完全相同的信息,我们一直在尝试。
——这相同的信息工作在另一个环境。
-开发工作。他们使用了开发应用服务器这促进分贝,但同样的问题
appsrv的。 原木LogFence = 5表明,从不让PSSUBDSP致电PSSUBHND,手从似乎不会发生
解决方案:
我们使用桁架的Unix程序盒子,在PSSUBHND(只要输入命令提示符桁架在你,看你是否有程序),这表明PSSUBHND被困在一个循环。这是阅读和编写一些代码不停。
我们做了一个PeopleCode痕迹,和他们的订阅PeopleCode是在一个死循环中。下面的一段PeopleCode将无限期重复,因为它看起来象第二部分或声明评估其他东西总是比假(似乎没有其他出口的环)
PSSUBHND_dflt.27798 1-762 15.02.17 0.000 14: While &first_pass = ""Y"" Or
PSSUBHND_dflt.27798 1-763 15.02.17 0.000 Temp=#55 Value=1627277443769646000000001
PSSUBHND_dflt.27798 1-764 15.02.17 0.000 1: Function ctl_id_found(&EIP_CTL_ID)
Returns字符串;
PSSUBHND_dflt.27798 1-765 15.02.17 0.000 2: &found = ""N"";
PSSUBHND_dflt.27798 1-766 15.02.17 0.000 3: SQLExec(""select 'Y' from ps_eo_eip_ctl where eip_ctl_id = :1"", &EIP_CTL_ID, &found);
PSSUBHND_dflt.27798 1-767 15.02.17 0.002 4: Return &found;
PSSUBHND_dflt.27798 1-768 15.02.17 0.000 return stack:
PSSUBHND_dflt.27798 1-769 15.02.17 0.000 Temp=#55 Value=1627277443769646000000001
PSSUBHND_dflt.27798 1-770 15.02.17 0.000 return value:
PSSUBHND_dflt.27798 1-771 15.02.17 0.000 Str=Y
PSSUBHND_dflt.27798 1-772 15.02.17 0.000 14: While &first_pass = ""Y"" Or
PSSUBHND_dflt.27798 1-773 15.02.17 0.000 15: &VALUE = Truncate((Rand() * 10**15), 0);
PSSUBHND_dflt.27798 1-774 15.02.17 0.000 16: &EIP_CTL_ID = Build_EIP_CTL_ID(&METHOD, &VALUE);
PSSUBHND_dflt.27798 1-775 15.02.17 0.000 Temp=#57 Value=1
PSSUBHND_dflt.27798 1-776 15.02.17 0.000 Temp=#58 Value=326700643940549
PSSUBHND_dflt.27798 1-777 15.02.17 0.000 6: Function Build_EIP_CTL_ID(&METHOD, &PARM) Returns string ;
PSSUBHND_dflt.27798 1-778 15.02.17 0.001 7: &EIP_CTL_ID = Right(String(&METHOD), 1) | Right(""000000000000000"" | String(&PARM), 15) | ""000000001"";
PSSUBHND_dflt.27798 1-779 15.02.17 0.000 8: Return &EIP_CTL_ID;
PSSUBHND_dflt.27798 1-780 15.02.17 0.000 return stack:
PSSUBHND_dflt.27798 1-781 15.02.17 0.000 Temp=#57 Value=1
PSSUBHND_dflt.27798 1-782 15.02.17 0.000 Temp=#58 Value=326700643940549
PSSUBHND_dflt.27798 1-783 15.02.17 0.000 return value:
PSSUBHND_dflt.27798 1-784 15.02.17 0.000 Str=1326700643940549000000001
PSSUBHND_dflt.27798 1-785 15.02.17 0.000 16: &EIP_CTL_ID = Build_EIP_CTL_ID(&METHOD, &VALUE);
PSSUBHND_dflt.27798 1-786 15.02.17 0.000 17: &first_pass = ""N"";
PSSUBHND_dflt.27798 1-787 15.02.17 0.000 18: End-While;
The program was looping because it was trying to find the point at which it failed in the PS_EO_EIP_CTL table. We purged that table and it fixed the problem"
NOTE: EO_EIP_CTL (PS_EO_EIP_CTL) table is a staging table used primarily in error handling, so it should be safe to purge it.
注:表EO_EIP_CTL(PS_EO_EIP_CTL)分级表主要用于错误处理的,所以应该是安全的清除它。