View previous topic :: View next topic
|
Author |
Message |
hamsalakshmij
New User
Joined: 23 Sep 2008 Posts: 5 Location: chennai
|
|
|
|
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 |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
|
|
|
|
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 |
|
|
hamsalakshmij
New User
Joined: 23 Sep 2008 Posts: 5 Location: chennai
|
|
|
|
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 |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
|
|
|
|
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 |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
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 |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
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 |
|
|
hamsalakshmij
New User
Joined: 23 Sep 2008 Posts: 5 Location: chennai
|
|
|
|
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 |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
Your last post is still all caps
I will delete Your other topic |
|
Back to top |
|
|
hamsalakshmij
New User
Joined: 23 Sep 2008 Posts: 5 Location: chennai
|
|
|
|
I am sorry.
can u tell me the solution to my problem. |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
|
|
|
|
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 |
|
|
Srihari Gonugunta
Active User
Joined: 14 Sep 2007 Posts: 295 Location: Singapore
|
|
|
|
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 |
|
|
hamsalakshmij
New User
Joined: 23 Sep 2008 Posts: 5 Location: chennai
|
|
|
|
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 |
|
|
|