IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Invoking MPP program from another MPP program


IBM Mainframe Forums -> IMS DB/DC
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Sanjoy

New User


Joined: 19 Oct 2005
Posts: 19

PostPosted: Thu Oct 26, 2006 7:51 pm
Reply with quote

Actually All I want MPP2 program should stop after doing some funtion but MPP2 transaction should not be stopped so that it will be available when MPP1 requires to invoke it.
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Oct 26, 2006 7:51 pm
Reply with quote

Sanjoy wrote:
Yes it is done with ALTPCB. See $PGM pointer in the code.

DO i need to mention it in MPP2 as well.


No.....

Looks to me the stuff is doing exactly what you wanted:
invoke MPP-1
chng control to MPP-2
have MPP-2 put data in a display as if it were a subroutine
have MPP-2 terminated.

If you want to proceed processing of MPP-1 or MPP-2 you should make sure there are messages for them on the messagequeue. As long as there are they will process. If no more messages (status = QC) any MPP will stop running until they are (re)invoked by a message on the messagequeue; and this may be the transactioncode sent by the chng-call.
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Oct 26, 2006 7:54 pm
Reply with quote

Sanjoy wrote:
Actually All I want MPP2 program should stop after doing some funtion but MPP2 transaction should not be stopped so that it will be available when MPP1 requires to invoke it.


Transactions do not stop just like that. Did you check with /DIS TRAN mpp2-tran?
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Oct 26, 2006 8:05 pm
Reply with quote

And did you check the region with SDSF (JESMSGLG)?
Back to top
View user's profile Send private message
Sanjoy

New User


Joined: 19 Oct 2005
Posts: 19

PostPosted: Thu Oct 26, 2006 8:15 pm
Reply with quote

Yes and it is showing

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
STATUS: BAL( 2),STOP
*2006299/164458*
Back to top
View user's profile Send private message
Sanjoy

New User


Joined: 19 Oct 2005
Posts: 19

PostPosted: Thu Oct 26, 2006 8:18 pm
Reply with quote

Yes in SDSF it is only the display .. Nothing else
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Oct 26, 2006 8:23 pm
Reply with quote

You should find something like this:

Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF OUTPUT DISPLAY NTMSG02 JOB11151 DSID 2 LINE 0 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
********************************* TOP OF DATA **********************************
J E S 2 J O B L O G -- S Y S T E M S Y P 1 -- N O

07.00.16 JOB11151 ---- MONDAY, 23 OCT 2006 ----
07.00.16 JOB11151 ICH70001I AEADV61 LAST ACCESS AT 07:00:14 ON MONDAY, OCTOBER
07.00.16 JOB11151 $HASP373 NTMSG02 STARTED - INIT 30T - CLASS 3 - SYS SYE1
07.00.16 JOB11151 IEF403I NTMSG02 - STARTED - TIME=07.00.16
07.00.16 JOB11151 +DFS0578I - READ SUCCESSFUL FOR DDNAME PROCLIB MEMBER = DFSM
07.00.17 JOB11151 +DFS0579W - FIND FAILED FOR DDNAME PROCLIB MEMBER = IMNTNIX
07.00.17 JOB11151 DFS3600I UNABLE TO INITIALIZE EXTERNAL SUBSYSTEM(S) - IMNTNIX
07.00.17 JOB11151 +DFS667I . NON-REENTRENT MODULES HAVE BEEN PRELOADED IMNT
23.59.06 JOB11151 IGD104I $$ALL12.Q.NODBRC RETAINED
23.59.06 JOB11151 IGD104I NTSYS.IMSVS.LOADLIB RETAINED
23.59.06 JOB11151 IGD104I NASYS.IMSVS.LOADLIB RETAINED
23.59.06 JOB11151 IGD104I NPSYS.IMSVS.LOADLIB RETAINED
23.59.06 JOB11151 IGD104I SYST.FSN.V320.FSH.SFSNLOAD RETAINED
23.59.06 JOB11151 IGD104I SYSP.ASF.V320.SFSNLOAD RETAINED
23.59.06 JOB11151 IGD104I DXB.IPDT.DXBLOAD RETAINED
23.59.06 JOB11151 IGD104I NTSYS.CICS.SDFHAUTH RETAINED
23.59.06 JOB11151 IGD104I AYSYS.PROD.INIMS RETAINED
23.59.06 JOB11151 IGD104I DXB.IPDT.PLAUS RETAINED
23.59.06 JOB11151 - --TIMINGS (MINS.)--
23.59.06 JOB11151 -JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK
23.59.06 JOB11151 -NTMSG02 REGION 00 3703 .00 .00 1018.8
23.59.06 JOB11151 IEF404I NTMSG02 - ENDED - TIME=23.59.06
23.59.06 JOB11151 -NTMSG02 ENDED. NAME- TOTAL CPU TIME=
23.59.06 JOB11151 $HASP395 NTMSG02 ENDED
------ JES2 JOB STATISTICS ------

If something made the transaction to be stopped it should me visable here.
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Oct 26, 2006 8:31 pm
Reply with quote

Sanjoy wrote:
How one MPP pl1 program can invoke another MPP pl1 program?


But inspite of this long troubleshooting:

your original question is answered correctly icon_biggrin.gif icon_wink.gif icon_biggrin.gif
Back to top
View user's profile Send private message
Sanjoy

New User


Joined: 19 Oct 2005
Posts: 19

PostPosted: Thu Oct 26, 2006 8:40 pm
Reply with quote

No I am not able to see anyythink like this

But everytime I am stopping the transaction it is again going stopped status.
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Oct 26, 2006 8:48 pm
Reply with quote

What happens when you invoke MPP-2 directly by entering the transactioncode?
Back to top
View user's profile Send private message
Sanjoy

New User


Joined: 19 Oct 2005
Posts: 19

PostPosted: Thu Oct 26, 2006 8:59 pm
Reply with quote

Mpp2 can not invoked manually.It's giving error

DFS064 17:28:19 DESTINATION CAN NOT BE FOUND OR CREATED
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Oct 26, 2006 9:14 pm
Reply with quote

Is it defined as a conversational transaction? When I enter a non-existing transaction code like notthere I'll get the same. You're supposed to enter the transactioncode; mind that trx, prog and psb may have different names!

DFS064 17:41:47 DESTINATION CAN NOT BE FOUND OR CREATED

is the result after entering notthere

*Got to leave you alone till tomorrow; good luck with your quest*
Back to top
View user's profile Send private message
Sanjoy

New User


Joined: 19 Oct 2005
Posts: 19

PostPosted: Tue Oct 31, 2006 10:46 pm
Reply with quote

I got the solution of this..

Actually if we send any message to another Mpp we need to have one Gu call in the 2nd MPP.
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Wed Nov 01, 2006 1:21 am
Reply with quote

Sanjoy wrote:
I got the solution of this..

Actually if we send any message to another Mpp we need to have one Gu call in the 2nd MPP.


I'm afraid it's not quite the solution. The second MPP isn't supposed to do any message handling; this was definitely stated by TS (Topic Starter). I've got a feeling, looking at the case, this thing is not supposed to be operational. What MPP2 is doing is nothing else but a display; any statement in MPP1 could do that. May be TS was looking for a message driven program. No idea, it remains unclear so until clear info is supplied I leave this topic alone icon_lol.gif
Back to top
View user's profile Send private message
priyesh.agrawal

Senior Member


Joined: 28 Mar 2005
Posts: 1448
Location: Chicago, IL

PostPosted: Wed Nov 01, 2006 9:37 am
Reply with quote

If I m not going wrong, this is the first topic in IMS DB/DC section to cross over one page of discussion.

Hats off George.

Regards,
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Wed Nov 01, 2006 3:30 pm
Reply with quote

@Sanjoy: TS stated the transaction was stopped but never showed the reason why. Never did such a 'useless' thing like this myself (invoking a MPP without having the thing read any message) but why was the transaction itself stopped icon_rolleyes.gif

Anyway: the original question was how to invoke a MPP from another MPP and that question was answered right away (CHNG-call + message) icon_idea.gif
Back to top
View user's profile Send private message
George22

New User


Joined: 04 Nov 2006
Posts: 2

PostPosted: Sat Nov 04, 2006 3:02 am
Reply with quote

Hi there - I found this MPP calling MPP post on a search as I am trying to do the same thing. I understand your instructions on starting the second MPP. However - I want to capture the output of the second MPP and interrogat it within the first MPP program. The output of my second MPP is an MFS screen which usually gets displayed on the terminal. Because I am calling the second MPP from within a first MPP - will the MFS be returned to the first MPP IO buffer - where I can read it ? or does the first MPP get abandoned and the screen of the second MPP get displayed on the terminal ?
Or is there another way to do this.
To spell it out in detail
MPP1 - call MPP2 with Key ABC
MPP2 screen output of data matching key ABC is returned to the calling buffer in MPP1
MPP1 reads the data.
MPP2 is an existing legacy IMS transaction
my code is in PL/1 - running on IMS V9.
thanks
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Tue Nov 07, 2006 4:22 pm
Reply with quote

If I get this right you want MPP1 to pass control to an existing MPP2 which retrieves data from a database. The information gathered by MPP2 should not be sent to a terminal but returned to MPP1.

So, when you made the chng-call MPP1 to pass control to MPP2 MPP1 disappeard from sight and MPP2 has taken over. In order to return control to MPP1 perform the chng-call and send the message to MPP1 or store the data in the spa which will be read by MPP1 and let MPP1 decide what to do with the data. The chng-call from MPP2 will force IMS to start MPP1. So MPP2 doesn't send the message to a terminal using I/O-PCB but send it to MPP1 using the ALT-PCB.

Hope this will help.
Back to top
View user's profile Send private message
George22

New User


Joined: 04 Nov 2006
Posts: 2

PostPosted: Thu Nov 09, 2006 10:58 pm
Reply with quote

Hi Bitneuker, thanks but not quite what I want. The MPP2 is an old legacy program that I do not want to touch( it belongs to another department and I don't want to go throught the politics of getting it changed). I just want to invoke MPP2 from MPP1 and have the output captured by MPP1. Elsewhere in the system there is a webservice that is able to start MPP2 an capture the screen output in a buffer, so how can I get MPP1 to do the same.
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Mon Nov 13, 2006 8:11 pm
Reply with quote

Sorry, webservices are too modern for me icon_wink.gif Can't help you here. Anyone giving it a try icon_lol.gif
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> IMS DB/DC Goto page 1, 2  Next

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts DB2 Event passed to the Application P... DB2 1
No new posts How to pass the PARM value to my targ... COBOL Programming 8
No new posts REXX code to expand copybook in a cob... CLIST & REXX 2
No new posts EZT program to build a flat file with... All Other Mainframe Topics 9
Search our Forums:

Back to Top