COBOL II calls to OS/VS COBOL programs in batch 
Author Message
 COBOL II calls to OS/VS COBOL programs in batch

In a batch call from a COBOL II program to a OS/VS COBOL program we
are getting an S206 abend, invalid parm address.
Has anyone encountered this problem?



Sun, 25 Oct 1998 03:00:00 GMT  
 COBOL II calls to OS/VS COBOL programs in batch

There are a large number of possibilities which can cause this symptom.  A
total explanation of all of the possibilities takes several hours and
about 100 pages of notes in the "Planning COBOL Migration" course that I
wrote / teach.

Typical problems revolve around the following issues:

1.  Both the CALLer and CALLed program must use the same compiler option
that controls binding of run-time modules to compiled code.  This option
is the RES/NORES option in both the OS/VS and VS COBOL II compilers.
Recommendation - compile both programs with RES.

2.  If a static call is used between the VS COBOL II program and the OS/VS
called program, then the VS COBOL II program MUST be operating in AMODE
24, be resident in the 24 bit space, and pass any parms to the OS/VS COBOL
program in the 24 bit space.  

Recommendation - specify DATA(24) on the VS COBOL II compilation, force
AMODE(24) at linkage edit time.

3.  If a dynamic call is used between the VS COBOL II program and the
OS/VS COBOL called program, then the VS COBOL II program need only insure
that the data passed to the called program is in the 24 bit space.

Recommendation - specify DATA(24) on the VS COBOL II compilation.

Very Important.  You must insure that all run-time components (csects
which start with ILBOxxxx or IGZxxxxx) are from the VS COBOL II or LE/370
run-time libraries.  Back level ILBO modules (such as those from OS/VS
COBOL RTL) will cause all sorts of strange results.

Bottom line - this construct will work.  There are literally dozens of
permutations of RES/NORES, AMODE, connectivity (static / dynamic), RMODE,
DATA(24/31).  Only a limited number will work.  The above give some of the
most straight forward cases.  A full enumeration of all cases literally
takes hours - I would be happy to teach the course at your location if you
want the long version.

Rex Widmer
Builder of software archeology tools and other strange programs to help
survive in a legacy based world.



Sun, 25 Oct 1998 03:00:00 GMT  
 COBOL II calls to OS/VS COBOL programs in batch



Quote:
> In a batch call from a COBOL II program to a OS/VS COBOL program we
> are getting an S206 abend, invalid parm address.
> Has anyone encountered this problem?

There are many possible causes.  What is the return code in
register 15, or two hex digits appended to the abend code in the
message: S206-xx?  There may also be a CSV message that gives
more information.

Here's a guess about the likely cause, based on what you told
us.  This is apparently a dynamic call (otherwise you wouldn't
get an S206).  Is the COBOL II program compiled with the RENT
option?  If so, it is running above the 16 meg line, but OS/VS
COBOL cannot access parameters above the line.  If this is the
problem, you need to either use NORENT or use the DATA(24)
option when you compile the VS COBOL II program.  DATA(24) will
force Working Storage below the line, where OS/VS COBOL can look
at it.




Tue, 27 Oct 1998 03:00:00 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. os/vs cobol vs cobol II

2. New CICS removes Translator support for VS COBOL II (and OS/VS COBOL)

3. OS/VS COBOL to VS COBOL II

4. os/vs cobol to cobol II for mvs

5. Calling a non-COBOL program from a COBOL program on OS/390

6. VS COBOL II vs. OS/390

7. VS COBOL II vs. COBOL/370

8. wait needed for mvs cobol II batch program

9. IBM COBOL post-VS COBOL II

10. Differences between VS COBOL II and COBOL for MVS and VM

11. MicroFocus COBOL vs. Mainframe COBOL II

12. Bull Cobol vs MVS Cobol-II

 

 
Powered by phpBB® Forum Software