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

not able to switch between programs in MPP


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

New User


Joined: 31 Jan 2007
Posts: 56
Location: banglore

PostPosted: Fri Feb 16, 2007 12:37 pm
Reply with quote

hi ,
i want to send message and invoke sn0400 form sn0400.
when i am running sn020 i am succesfully able to make chng and isrt call
but it is not invoking the Sn0400
can any one help me

Code:
SN0200: PROC($LTM,$PCB1) OPTIONS (MAIN NOEXECOPS);
     DCL PLITDLI ENTRY;
     DCL  $PCB1                  PTR;
     DCL  $LTM                  PTR;
         DCL 1 PCBTERM1 BASED($PCB1),
           2  QLTNAM1 CHAR(8),
           2  QLTRES1 CHAR(2),
           2  QLTSTC1 CHAR(2),
           2  QLTDAT1,
            3 QLTJDT1 FIXED DEC (7),
            3 QLTTIM1 FIXED DEC (7),
            3 QLTSEQ1 FIXED BIN (31),
            3 QLTFMT1 CHAR (8);

             DCL 1 IMS_MSG,
              2 LL_B    BIN FIXED(31),
              2 Z1_B    BIT(08),
              2 Z2_B    BIT(08),
              2 TRCODE  CHAR(10) INIT(''),
              2 DAY_END CHAR(15)  INIT('KRIS');
         LL_B    = CSTG(IMS_MSG) -2;
          Z1_B    = '00000000'B;
          Z2_B    = '00000000'B;
          TRCODE  = 'SN040';

      DCL  GUC         CHAR(02) ;
      DCL  ISRTC       CHAR(04) ;
      DCL  CHNGC      CHAR(04) ;
      DCL  PURGC      CHAR(04) ;
      DCL  TRAN      CHAR(08) ;
      DCL  IOAREA    CHAR(15) ;
      DCL  N3   BIN FIXED(31);
      DCL  N4   BIN FIXED(31);
      N3=3;
      N4=4;
      GUC='GU';
      ISRTC='ISRT';
      PURGC='PURG';
      CHNGC='CHNG';
      TRAN     = 'SN040';
     CALL PLITDLI(N3,CHNGC,$PCB1,TRAN);
     PUT SKIP LIST('STATUS CODE FOR CH',$PCB1->QLTSTC1);
     PUT SKIP LIST('PCB1 LTNAME', $PCB1->QLTNAM1);
     CALL PLITDLI (N3,ISRTC,$PCB1,ADDR(IMS_MSG));
     PUT SKIP LIST('STATUS CODE FOR PCB ISRT',$PCB1->QLTSTC1);
      END SN0200;



SN0400: PROC($LTM,$PCB1) OPTIONS (MAIN NOEXECOPS);
PUT SKIP LIST('ENTER SN0400');
DCL ADDR BUILTIN;
DCL PLITDLI ENTRY;
DCL $PCB1 PTR;
DCL $LTM PTR;
PUT SKIP LIST('BEFORE CCCCC');
DCL 1 PCBTERM BASED($LTM),
2 QLTNAM CHAR(8),
2 QLTRES CHAR(2),
2 QLTSTC CHAR(2),
2 QLTDAT,
3 QLTJDT FIXED DEC (7),
3 QLTTIM FIXED DEC (7),
3 QLTSEQ FIXED BIN (31),
3 QLTFMT CHAR (8);

DCL 1 IOAREA,
3 LL BIN FIXED(31),
3 ZZ CHAR(2) ,
3 TC CHAR(09) ;
DCL GUC CHAR(02) ;
DCL ISRTC CHAR(04) ;
DCL CHNGC CHAR(04) ;
DCL PURGC CHAR(04) ;
DCL TRAN CHAR(05) ;
DCL N3 BIN FIXED(31);
DCL N4 BIN FIXED(31);
N3=3;
N4=4;
GUC='GU';
ISRTC='ISRT';
PURGC='PURG';
CHNGC='CHNG';
LL = 120;
TC = 'SN020';
TRAN = 'SN040';
DCL SIOAREA CHAR(15) INIT('');
DCL SSA CHAR(15) INIT('');
CALL PLITDLI(N3,GUC,$LTM,SIOAREA);
PUT SKIP LIST('STATUS CODE FOR GU',$LTM->QLTSTC);
PUT SKIP LIST('SIOAREA',SIOAREA);
END SN0400;

i am using the following psb's

PCB TYPE=TP,MODIFY=YES
PSBGEN LANG=PLI,PSBNAME=SN0200,CMPAT=YES
END

PCB TYPE=TP,MODIFY=YES
PSBGEN LANG=PLI,PSBNAME=SN0400,CMPAT=YES
END

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: Fri Feb 16, 2007 4:48 pm
Reply with quote

What do the put skips in sn020 say? Any reaction from the system like an abend or status-code (you'll have to declare and base the iopcb-structure over the $LTM pointer in sn0400 to find out)? Message class for sn040 defined in any region? Does the sn040 exist (did you try /DIS TRAN SN040 & /DIS PROG SN0400)?
Back to top
View user's profile Send private message
krishna_mf

New User


Joined: 31 Jan 2007
Posts: 56
Location: banglore

PostPosted: Fri Feb 16, 2007 5:18 pm
Reply with quote

hi
i am getting status code as blank for chng and isrt calls(they are succesful).
After insert call sn0200 is abending with USER COMPLETION CODE=0462
The transaction sn040 is defined .
i did /distran sn040 and alos /dis prog sn0400 they are defined.
i specified express=yes in PCB and tried then also i am getting the same result.
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: Fri Feb 16, 2007 7:44 pm
Reply with quote

0462, like I posted before, is because in an MPP there are successfull DLI-calls but these call have not been preceeded by a GU on the message queue. First in sn0200 call:

Code:

CALL PLITDLI (N3, 'GU', IOPCB, IOAREA);
Back to top
View user's profile Send private message
krishna_mf

New User


Joined: 31 Jan 2007
Posts: 56
Location: banglore

PostPosted: Wed Feb 21, 2007 11:01 am
Reply with quote

hi
i added a call
CALL PLITDLI(N3,GUC,$LTM,PIOAREA);
at the begining of sn0200 and also i got return code blank.
but still i am getting same USER COMPLETION CODE=0462
for sn0200
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 Feb 21, 2007 5:58 pm
Reply with quote

From the documentation it definitely states:
Quote:
Code 0462

0462
Explanation:
An application program was scheduled in a message region and terminated without successfully issuing a GET UNIQUE for an input message. The application program did successfully process at least one other call.

System action:
The application program is abnormally terminated, and the PSB and the SMB are stopped.

Programmer response:
Determine the problem in the user message processing program, correct it, and resubmit the job.


Related topics:
IMS User Abend Codes 0002 - 2991


You may try to code a second call following the GU for the first message; this would be a GN at the IO-PCB; when status-code = 'QC' all messages for your SN0200 have been read. Also your SN0400 has to start the first DLI-call with a GU of the message SN0200 has send.
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

 


Similar Topics
Topic Forum Replies
No new posts Fetch data from programs execute (dat... DB2 3
No new posts Passing Parameters to Programs Invoke... PL/I & Assembler 5
No new posts Db2 SQL - how to switch among differe... DB2 18
No new posts Finding Assembler programs PL/I & Assembler 5
No new posts Recompiling programs after a copybook... COBOL Programming 1
Search our Forums:

Back to Top