View previous topic :: View next topic |
Author |
Message |
dbzTHEdinosauer Supermod
Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
|
Posted: Tue Jun 15, 2010 7:29 pm Post subject: |
|
|
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 environmentas 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 |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Wed Jun 16, 2010 8:20 am Post subject: |
|
|
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 |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Wed Jun 16, 2010 9:31 am Post subject: |
|
|
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 |
|
|
dbzTHEdinosauer Supermod
Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
|
Posted: Wed Jun 16, 2010 9:38 am Post subject: |
|
|
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 |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Wed Jun 16, 2010 11:10 am Post subject: |
|
|
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 |
|
|
dbzTHEdinosauer Supermod
Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
|
Posted: Wed Jun 16, 2010 11:55 am Post subject: |
|
|
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 |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Wed Jun 16, 2010 2:30 pm Post subject: |
|
|
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 |
|
|
dbzTHEdinosauer Supermod
Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
|
Posted: Wed Jun 16, 2010 2:33 pm Post subject: |
|
|
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 |
|
|
dbzTHEdinosauer Supermod
Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
|
Posted: Wed Jun 16, 2010 4:02 pm Post subject: |
|
|
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 |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Wed Jun 16, 2010 4:09 pm Post subject: |
|
|
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 |
|
|
warp5 Intermediate
Joined: 02 Dec 2002 Posts: 429 Topics: 18 Location: Germany
|
Posted: Thu Jun 17, 2010 3:53 am Post subject: |
|
|
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 |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Thu Jun 17, 2010 8:14 am Post subject: |
|
|
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 |
|
|
dbzTHEdinosauer Supermod
Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
|
Posted: Thu Jun 17, 2010 8:33 am Post subject: |
|
|
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 |
|
|
|
|