MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

SOC4 - protection exception in CICS
Goto page Previous  1, 2
 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming
View previous topic :: View next topic  
Author Message
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Tue Jun 15, 2010 7:29 pm    Post subject: Reply with quote

well, I posted somethng earlier and then deleted it, because I had analyzed your problem differently.

well,
you insist on sticking this EXCI module in the midst of everything.

OK, you are going to have to have your EXCI module determine the environment
  • Batch
  • CICS
as it executes.
you are going to have to run the batch version thru the cics-pre-compiler,
because you are going to add some code.
This code will be an IF statement:
Code:

IF BATCH-ENVIRONMENT TRUE
THEN
  EXCI LINK
ELSE
  EXEC CICS LINK
END-IF

IF BATCH-ENVIRONMENT TRUE
THEN
  GOBACK
ELSE
  EXEC CICS RETURN
END-IF


that means you have to have a modification to your compile job jcl for your EXCI module:
replace the batch version by the CICS loadib version.

actually, don't tell them, just STEPLIB the batch JOB to the CICS LOADLIB.

How's that for driving around?

oh, have to go back to cics callers of this EXCI module an return to the EXEC CICS LINK
_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Wed Jun 16, 2010 8:20 am    Post subject: Reply with quote

Another question..

Can a module be EXCI and also CICS precompiled ? It looks like our changeman does not have a procedure for that as yet and I have to request for it if this can be done ?
Back to top
View user's profile Send private message
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Wed Jun 16, 2010 9:31 am    Post subject: Reply with quote

Dick..One way I am trying to explore is remove EXCI compile for this dual module and make it CICS module

The I hav to check connections
1) CICS module (LINKs) -> CICS dual module (LINKs) -> CICS module
2) Batch (EXCI LINKs)-> CICS dual module (LINKs) -> CICS module and
3) Stored procedure (EXCI LINKs)-> CICS dual module (LINKs) -> CICS module

Can you please advise if you see any issues in this ?
Back to top
View user's profile Send private message
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Wed Jun 16, 2010 9:38 am    Post subject: Reply with quote

1. why do you think that you can not have a module run thru different pre-compilers?.

2. as far as I am concerned:
designing the sub-system to have a module that invokes Batch only API's and trying to use it in a CICS environment is asking for trouble.

I will repeat:

the module needs to know in which environment it is currently executing,
based upon that, the statements to be executed will either be CICS or EXCI API's.


if it is in batch, the CICS instructions will not be executed
if in cics, the EXCI instructions will not be executed.

These include LINKS and program exit.

by putting the module both in batch and cics, and knowing that the batch invokation will eventually invoke the cics vsn is a roundabout way of recursion, which in IBM requires a multithread task - which you don't have.
_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Wed Jun 16, 2010 11:10 am    Post subject: Reply with quote

Dick..

Lets say we have like

IF BATCH
EXCI LINK
ELSE
EXEC CICS LINK

The problem is when I compile with EXCI=Y the compiler treats all LINK statements as EXCI calls. How will the compiler differentiate between the EXCI LINK and CICS LINK ?
Back to top
View user's profile Send private message
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Wed Jun 16, 2010 11:55 am    Post subject: Reply with quote

different pre-compilers:
db2 looks for EXEC SQL
cics looks for EXEC CICS
exci looks for EXCI
mqs looks for ---
_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Wed Jun 16, 2010 2:30 pm    Post subject: Reply with quote

EXEC CICS LINK
.
.
END-EXEC

The above statement is coded in both CICS precompiled and EXCI precompiled programs. Depending on the pre-compilation type it gets interpreted. I am not sure if this is different elsewhere..
Back to top
View user's profile Send private message
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Wed Jun 16, 2010 2:33 pm    Post subject: Reply with quote

well then,
you are right and I am wrong;
nothing I have suggested can help you.
_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Wed Jun 16, 2010 4:02 pm    Post subject: Reply with quote

If I was responsible for this I would try one more thing:

make the CICS LINK and CICS RETURN part of the IF statements into a copybook.
I would then send the copybook thru the CICS pre-compiler/translator
making a second copybook which I would use in a copy statement in the module.

would not send the module thru cics pre-compiler.

have to insure that the eib and dfh areas are properly set up in linkage.
would take some work to insure that everything jives,
but that is my only suggestion,

short of redesign.

one thing I don't understand is when the module is 'CALLED' in CICS,
what does your procedure division using statement look like?
_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Wed Jun 16, 2010 4:09 pm    Post subject: Reply with quote

When its called, I passed the DFHEIBLK (apart from the variables required by the dual module) from the calling program to the dual module.

The dual module was coded to have USING WS-DFHEIBLK and variables that it needs.
Back to top
View user's profile Send private message
warp5
Intermediate


Joined: 02 Dec 2002
Posts: 429
Topics: 18
Location: Germany

PostPosted: Thu Jun 17, 2010 3:53 am    Post subject: Reply with quote

You have not really answered the question if you are linking differently for batch and online? Modules that are used in batch and online are compiled and then linked for batch, then linked for CICS. This seems to me to be your real problem. We are just beating around the bush until you post your real JCL and perhaps your program.
Back to top
View user's profile Send private message Visit poster's website
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Thu Jun 17, 2010 8:14 am    Post subject: Reply with quote

the compilation/link happens through changeman..

I doubt if there is anything wrong with that procedure..bcoz i have another dual module program (which does not call any CICS module) and i am able to call it through batch/SP and CICS.

But when I have a dual program that calls a CICS program, I get this issue that too only when called from CICS..
Back to top
View user's profile Send private message
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Thu Jun 17, 2010 8:33 am    Post subject: Reply with quote

normally, 'dual programs' have batch code and cics code, that is controlled thru use of Batch and Online copybooks. So the batch version of the module is compiled for use in batch and the CICS version of the same module issues CICS API CALLs.

what you have is a module that can be COBOL CALLed, and you are calling that dual.

therein, said the Bard, 'lies the rub!'.
_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming All times are GMT - 5 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group