IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

从另一个MPP程序调用MPP程序


IBM大型机论坛 -> IMS数据库/ DC
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年9月25日星期一9:03 pm
引用回复

一个MPP pl1程序如何调用另一个MPP pl1程序?
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月18日,星期三,下午6:27
引用回复

程序间切换。使用ALTPCB或更改SPA中的交易代码。
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月18日,星期三7:47 pm
引用回复

比特纳克写道:
程序间切换。使用ALTPCB或更改SPA中的交易代码。


使用ALTPCB时,您还进行GHNG呼叫并为被叫者插入一条消息。
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月18日,星期三7:50 pm
引用回复

变更呼叫示例:

DCL ALT_TRX CHAR(8);

ALT_TRX ='程序更改为';
PARMCT = 3;
CALL PLITDLI(PARMCT,'CHNG',PALTERN,ALT_TRX);
CALL PLITDLI(PARMCT,'ISRT',PALTERN,IOAREA);
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月24日,星期二,下午1:34
引用回复

谢谢Bitneuker。

您能解释一下吗,我是说更多的技术细节?

实际上我得到了CHNG命令将更改Alternate PCB PALTERN和事务ALT_TRX.Am对。
但是在ISRT呼叫中,我们需要放置哪个IMS消息?
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月24日,星期二,下午3:01
引用回复

你好

这是完整的一块。该消息发送到MPP-prog PBE22。 PBE22使用事务NPBE22,它是通过ALTPCB在CHNG调用中启动的。 PBE22将对消息(DATA)的内容起作用。




DCL 1 IOAREA CHAR(1924);
DCL 1 MID_E0基于UNAL(ADDR(IOAREA)),
3 LL BIN FIXED(31),
3位ZZ(16),
3 TC CHAR(09),
3 PFX CHAR(08),
3个游标字符(04),
3 PAWO CHAR(08),
3个SYSSPA,
5 SPLITKZ CHAR(1),
5个SEC CHAR(1),
5 MODUS CHAR(8),
5 PAGE#CHAR(3),
5 MASKE CHAR(5),
5 TCOK CHAR(1),
3个SPA CHAR(50),
3 FEHLER CHAR(79),
3 MASKE1 CHAR(05),
3 MASKE2 CHAR(05),
3 FMASKE CHAR(05),
3 FFUNKT CHAR(01),
3 DATA CHAR(1725);


MID_E0 ='';
DATA ='PBE22的blablabla信息';
LL = 294;
MASKE1 ='QA';
FMASKE ='PBE22';
SYSSPA.MASKE ='QA';
FFUNKT ='A';
TC ='PBE22';

DCL ALT_TRX CHAR(8);

ALT_TRX ='NPBE22';
PARMCT = 3;
CALL PLITDLI(PARMCT,'CHNG',PALTERN,ALT_TRX);
CALL PLITDLI(PARMCT,'ISRT',PALTERN,IOAREA);
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月24日,星期二,下午3:43
引用回复

很抱歉输入错误。在消息TC中用“ NPBE22”填充。不适用于“ PBE22”。因此,IMS知道该消息是针对TRX NPBE22的。
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月26日,星期四,下午2:38
引用回复

谢谢Bitneuker。

工作正常

但是我还有一个问题。

在第二个程序的第一次运行后,如何停止它。可能是什么原因?
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午2:50
引用回复

Sanjoy写道:
谢谢Bitneuker。

工作正常

但是我还有一个问题。

在第二个程序的第一次运行后,如何停止它。可能是什么原因?


我了解以下内容:

MPP-1启动,执行对MPP-2的CHNG调用并将消息发送到MPP-2。 MPP-2被调用并处理消息。到现在为止还挺好。

问题:处理完MPP-1发送的消息后,MPP-2应该做什么?
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月26日,星期四,下午3:03
引用回复

否...实际上,MPP2在第一次运行后就停止了。

在Ims地区显示

TRAN CLS ENQCT QCT LCT PLCT CP NP LP SEGSZ SEGNO PARLM RC
SN02 12 0 0 10 5 5 5 5 7 0 1000 4 0
PSBNAME:SN0200
状态:BAL(2),停止

因此,MMP1的后续事务无法调用MPP2。我的问题是为什么MPP2在第一次运行后会停止运行?
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午3:25
引用回复

这个MPP-2开始意味着PGM和TRAN启动了吗?该地区停止了吗?请随后输入以下内容进行检查:

/ DIS REGA。
MPP-2应该运行的区域是否显示?如果没有,请检查SDSF是否超出范围。如果未激活,请从SDSF提交作业。

/ DIS TRAN交易代码
确实是说已停止,然后键入/ STA TRAN事务代码

/ DIS PROG程序名称MPP-2
它说STOPPED,然后键入/ STA PROG程序名MPP-2
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月26日,星期四,下午6:27
引用回复

谢谢Bitneuker。

其实我的问题是在第一次调用MPP-2之后 停止了 不知何故。因此,MPP-1的其余调用都失败了。

现在,MPP2的内容仅是显示。

您能告诉我IMS何时停止交易吗?那我想我可以解决这个问题。
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午6:52
引用回复

我假设您使用事务代码调用了MPP-1。因此它开始运行。完成后,将启动CHNG和ISRT呼叫MPP-2。接下来发生什么。通常,MPP-2读取消息队列以检索MPP-1发送的消息。 MPP-2是否报告了QC状态码以告知没有更多消息?我不知道下一步该MPP-2应该做什么。请告诉我它是做什么的还是应该做什么?只是告诉它以某种方式停止就不会亮起。我们需要原因,因此需要更多信息。

您告诉我,它显示的是您必须通过查看显示区域作业的SDSF(A)才能找到的显示。您应该在那里找到是否停止了MPP-2以及由于什么原因而停止了该操作。

如果此类问题排查​​花费的时间太长,则最好在PM中将您的电话号码发送给您(只是这样做)。请考虑我们在格林威治时间的工作时间(现在这里的时间是15.19点)。
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午7:17
引用回复

当检测到(编程的)故障时,IMS可能会停止事务。原因显示在regionjob中,可以通过SDSF进行查看。与事务一起,程序也停止了。请参阅先前的帖子。
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月26日,星期四,下午7:20
引用回复

实际上,我的意图是MPP1应该仅调用MPP2。无需发送IMS消息。
我在第一个程序中做了什么:
MPP1:Proc($ LTM,$ PGM)选项(主要);
DCL LTM ptr;
%包含TPPCB; / * IMS I / O PCB面膜* /
Dcl WF CHAR(21000)为基础;

dcl 1 SqlCa,
%include SQLSTATE;

dcl $ PGM ptr;
dcl PGM ptr;
PGM = $ PGM;
dcl SN_TRAN char(8)init('');
DCL 1 IMS_MSG,
%INCLUDE XXXXXX ;;

SN_TRAN ='SN02';
放入跳过列表(“调用PLITDLI更改ALP”);
CALL PLITDLI(C3,'CHNG',PGM,SN_TRAN); / *更改备用PCB * /
put skip list('status code from plitdli',substr(pgm->wf,11,2));
放入跳过列表(“调用PLITDLI更改ALP”);
致电PLITDLI(C3,'ISRT',PGM,addr(Ims_msg)); / *插入消息* /
put skip list('status code from plitdli',substr(pgm->wf,11,2));


在第二编中:

MPP2:Proc($ ltm)选项(主要);

DCL LTM ptr;
%包含TPPCB; / * IMS I / O PCB面膜* /

放入跳过列表(XXXXXXXXXXXXXXXXXX);

结束mpp2;

MPP2似乎有问题。在MPP2中接收消息是否是强制性的?并且如果我不需要发送任何消息,IMS-msg的格式应该是什么?

非常感谢你的帮助。
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午7:29
引用回复

好像您在proc(xx,yy)选项main中忘记了ALTPCB。我们进行CHNG调用的程序之一:

TPQAVER:PROC(QPIOTRM,QPALTERN,Q
QPNLVERT,QPNLBUEN,Q
QPNLZBNE,QPNLHIDB,Q
QPNLVVER)
选项(主要);

在我们编码的相应PSB中,iopcb是可修改的:

PCB类型= TP,修改=是

调整并重试 icon_wink.gif
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月26日,星期四,下午7:34
引用回复

我也在工作中 只要 得到显示XXXXXXXXXXXXXXX

没有其他的
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月26日,星期四,下午7:39
引用回复

是的,这是通过ALTPCB完成的。请参见代码中的$ PGM指针。

我是否还需要在MPP2中提及它。
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午7:40
引用回复

当我查看MPP-2时,便完成了所有工作……显示并结束,就像您编写的程序一样。如果要让MPP-2再次将控制权返回给MPP-1,则应在MPP-2中执行与在MPP-1中所做的一样:CHNG对MPP-1的控制。

顺便说一句:Regulair MPP不断读取消息以进行处理并与终端进行通信。这个东西看起来像一个子例程。如果您想要概念证明,请不要看这个专家的优势。 icon_confused.gif
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午7:46
引用回复

IMS消息:

DCL 1 IOAREA CHAR(xxx);
DCL 1 MID_E0基于UNAL(ADDR(IOAREA)),
3 LL BIN FIXED(31),
3位ZZ(16),
3 TC CHAR(09),

3您的MPP2 CHAR(????)信息,


MID_E0 ='';
您的MPP2信息='PBE22的blablabla信息';
LL = ???;
TC ='交易';
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月26日,星期四,下午7:51
引用回复

实际上,我想要的所有MPP2程序都应在执行一些功能后停止,但不应停止MPP2事务,以便在MPP1需要调用它时可以使用它。
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午7:51
引用回复

Sanjoy写道:
是的,这是通过ALTPCB完成的。请参见代码中的$ PGM指针。

我是否还需要在MPP2中提及它。


没有.....

在我看来,这些东西完全可以满足您的要求:
调用MPP-1
更改MPP-2的控制
让MPP-2将数据放在显示器中,就好像它是子例程一样
MPP-2已终止。

如果要继续处理MPP-1或MPP-2,则应确保在消息队列中有针对它们的消息。只要有它们就会处理。如果没有更多消息(状态= QC),则任何MPP将停止运行,直到被消息队列上的消息(重新)调用为止。这可能是chng呼叫发送的交易代码。
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,下午7:54
引用回复

Sanjoy写道:
实际上,我想要的所有MPP2程序都应在执行一些功能后停止,但不应停止MPP2事务,以便在MPP1需要调用它时可以使用它。


交易不会像那样停止。您是否使用/ DIS TRAN mpp2-tran进行了检查?
回到顶部
查看用户资料 发送私信
比特纳克

CICS主持人


加入:2005年11月7日
帖子:1104
地点:19洞荷兰

发布发表:2006年10月26日,星期四,晚上8:05
引用回复

您是否使用SDSF(JESMSGLG)检查了该区域?
回到顶部
查看用户资料 发送私信
Sanjoy

新的用户


已加入:2005年10月19日
帖子:19

发布发表:2006年10月26日,星期四,晚上8:15
引用回复

是的,它正在显示

TRAN CLS ENQCT QCT LCT PLCT CP NP LP SEGSZ SEGNO PARLM RC
SN02 149 20 0 10 5 5 5 7 0 1000 4 0
PSBNAME:SN0200
状态:BAL(2),停止
* 2006299/164458 *
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> IMS数据库/ DC 转到页面 1, 2  下一页

 


类似主题
话题 论坛 回覆
该主题已锁定:您无法编辑帖子或回复。 将字段名称传递给COBOL程序 COBOL程式设计 10
该主题已锁定:您无法编辑帖子或回复。 示例CICS Web服务程序 CICS 1
没有新帖 从Cobol调用Rexx程序 清单和REXX 12
没有新帖 如何定义触发的交易... CICS 2
没有新帖 用rexx调用Natural程序 清单和REXX 2
搜索我们的论坛:

回到顶部