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

implememt EIBCALEN in PLI with CICS


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
hamsalakshmij

New User


Joined: 23 Sep 2008
Posts: 5
Location: chennai

PostPosted: Thu Nov 20, 2008 1:06 pm
Reply with quote

Hi!

I COULDNT CHECK THE STATUS OF EIBCALEN IN PLI PROGRAM. IN CICS REGION MY PROGRAM HAS BEEN TERMINATED WHEN I CHECK THE EIBCALEN STATUS. CAN U ANYONE TELL ME THE REASON.
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1193
Location: Dublin, Ireland

PostPosted: Thu Nov 20, 2008 2:52 pm
Reply with quote

You need to give more information, like maybe the code. You don't say how your program is terminating - is it abending when you try to check EIBCALEN ?

Garry.
Back to top
View user's profile Send private message
hamsalakshmij

New User


Joined: 23 Sep 2008
Posts: 5
Location: chennai

PostPosted: Thu Nov 20, 2008 3:08 pm
Reply with quote

This is my SOURCE program

Code:
PLIATM:PROC OPTIONS(MAIN);                       
%INCLUDE DFHAID;                                 
%INCLUDE DFHEIBLK;                               
%INCLUDE DFHBMSCA;                               
DCL OPTNP PIC '9';                               
DCL MSG2P CHAR(25) INIT('0');                   
                                                 
DCL HIGH        BUILTIN;                         
DCL LOW         BUILTIN;                         
DCL 01 COMMAREA,                                 
    02 VAR1 CHAR(4);                             
DCL 01 DFHCOMMAREA,                             
    02 VAR2 CHAR(4);   
                         
    CALL MAP1;     
                             
MAP1:PROC;                                       
IF EIBCALEN = 0 THEN DO;                         
           CALL SNDMAP0;                         
           END;                                 
END MAP1;                                       
                                                 
SNDMAP0:PROC;                                   
   EXEC CICS                                     
   SEND MAPSET('M188063') MAP('HEAD0') ERASE;   
   CALL RECMAP0;                                 
END SNDMAP0;                                     
                                                 
RECMAP0:PROC;                                   
   EXEC CICS                                     
   RECEIVE MAPSET('M188063') MAP('HEAD0');       
   CALL SNDMAP1;                                 
END RECMAP0;                                                                   
                                                 
SNDMAP1:PROC;                                   
   EXEC CICS                                     
   SEND MAPSET('M188063') MAP('HEAD1') ERASE;   
 CALL RECMAP1;                                   
END SNDMAP1;                                     
                                                 
RECMAP1:PROC;                                   
   EXEC CICS                                     
   RECEIVE MAPSET('M188063') MAP('HEAD1');       
   CALL SNDMAP2;                                 
END RECMAP1;                                     
                                                 
SNDMAP2:PROC;                                   
   EXEC CICS                                     
   SEND MAPSET('M188063') MAP('HEAD2') ERASE;   
 CALL RECMAP2;                                   
END SNDMAP2;                                     
                                                 
RECMAP2:PROC;                                   
   EXEC CICS                                     
   RECEIVE MAPSET('M188063') MAP('HEAD2');       
   OPTNP=OPTNI;                             
   SELECT (OPTNP);                               
     WHEN (1) CALL SNDMAP3;                     
     WHEN (2) CALL SNDMAP3;                     
     WHEN (3) CALL SNDMAP3;                     
     WHEN (4) CALL SNDMAP3;                     
     OTHERWISE CALL MS2PARA;                     
   END;                                         
END RECMAP2;                                     
                                                 
END PLIATM;     

THIS IS MY COMPILE JCL.

Code:
//D188063J JOB (AGL-AGL-D188063-XXX-999),CLASS=C, 
//    MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=D188063     
// JCLLIB ORDER=SYS1T.USER.PROCLIB                 
//DOIT   EXEC CICTSPLI,                           
//       SOURCE=D188063.PLICICS.PDS(PGMATM)   
//LKED.SYSIN DD *                                 
    NAME P1188063(R)                               
/*   


I THINK I HAVE A PROBLEM IN JCL.

Source program and JCL "Code"ed
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1193
Location: Dublin, Ireland

PostPosted: Thu Nov 20, 2008 3:42 pm
Reply with quote

First, please use the 'code' tags when entering code or screen data - it generally makes for easier reading.

Quote:
I THINK I HAVE A PROBLEM IN JCL.

Why do you think this? If you have, we can't see what it is as you haven't given us any job output or indication of cond codes.

You don't have any EXEC CICS RETURN statement. You must return control to CICS in this fashion.

Code:
RECMAP2:PROC;
EXEC CICS
RECEIVE MAPSET('M188063') MAP('HEAD2');
OPTNP=OPTNI;
SELECT (OPTNP);
WHEN (1) CALL SNDMAP3;
WHEN (2) CALL SNDMAP3;
WHEN (3) CALL SNDMAP3;
WHEN (4) CALL SNDMAP3;
OTHERWISE CALL MS2PARA;
END;
END RECMAP2; 

There are no procedures to match the calls in this code.

Have you tried stepping through the program in EDF? As coded, if the EIBCALEN is not zero you will just fall through.

The code is using procedures unnecessarily.

Garry.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Thu Nov 20, 2008 3:45 pm
Reply with quote

Quote:
THINK I HAVE A PROBLEM IN JCL.


if without accessing the eibcalen the program works
then it is not a jcl issue

and do not double post on the same issue
please tell where You want to continue the discussion
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Thu Nov 20, 2008 3:56 pm
Reply with quote

please fix Your keyboard, the caps key is stuck

and reading an all caps message is a pain
apart that all caps means shouting ( with no need in Your case )
Back to top
View user's profile Send private message
hamsalakshmij

New User


Joined: 23 Sep 2008
Posts: 5
Location: chennai

PostPosted: Thu Nov 20, 2008 4:02 pm
Reply with quote

SORRY. I CUT THE HALF OF THE PROGRAM AND POSTED. IF I DO NOT CHECK THE EIBCALEN, IN CICS REGION I COULD GET THE PROCESS. IF I STARTED THE PROCESS WITH CHECKING THE EIBCALEN STATUS, IN CICS REGION I AM GETTING THE MSG THAT PROGRAM TERMINATION.

WHEN I CHEK WITH CEDF MODE, AFTER GAVE THE TRANSACTION ID I GOT THE FOLLOWING STATUS.

STATUS: PROGRAM TERMINATION
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Thu Nov 20, 2008 4:03 pm
Reply with quote

Your last post is still all caps
I will delete Your other topic
Back to top
View user's profile Send private message
hamsalakshmij

New User


Joined: 23 Sep 2008
Posts: 5
Location: chennai

PostPosted: Thu Nov 20, 2008 4:21 pm
Reply with quote

I am sorry.
can u tell me the solution to my problem.
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1193
Location: Dublin, Ireland

PostPosted: Thu Nov 20, 2008 5:17 pm
Reply with quote

You do not have a pointer to your commarea in your PROC statement. I'd say that without the pointer, CICS isn't expecting a COMMAREA, so EIBCALEN value is unpredictable.

Try coding
Code:
PLIATM:PROC (COMM_PTR) OPTIONS(MAIN REENTRANT);

and define COMMAREA based on COMM_PTR. THe Translator probably insertes the REENTRANT anyway, but it's good practice to code it.

Garry.
Back to top
View user's profile Send private message
Srihari Gonugunta

Active User


Joined: 14 Sep 2007
Posts: 295
Location: Singapore

PostPosted: Thu Nov 20, 2008 5:26 pm
Reply with quote

Hi Hamsa,
Please try the following changes.

Code:
PLIATM:PROC(COMPTR) OPTIONS(MAIN);


Code:
DCL COMPTR PTR;
DCL 01 DFHCOMMAREA BASED(COMPTR),
02 VAR2 CHAR(4);
Back to top
View user's profile Send private message
hamsalakshmij

New User


Joined: 23 Sep 2008
Posts: 5
Location: chennai

PostPosted: Thu Nov 20, 2008 5:34 pm
Reply with quote

Thanks for your information. i will try this. but we need to consider the COMMAREA when we use the PSEUDO_CONVERSATION in the program. in my program just i declared but i didnt use.
my problem is that the program process starts with EIBCALEN. i am checking that if the EIBCALEN value is 0, then i have to get first map.

but i didnt get my first map. But in CEDF MODE i note that initially EIBCALEN=0.
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 -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts Calling an Open C library function in... CICS 1
No new posts How to 'Ping' a CICS region in JCL CICS 2
No new posts Parallelization in CICS to reduce res... CICS 4
No new posts How to avoid duplicating a CICS Web S... CICS 0
Search our Forums:

Back to Top