View previous topic :: View next topic
|
Author |
Message |
Kevin Vaz
New User
Joined: 18 Oct 2016 Posts: 11 Location: India
|
|
|
|
Hi,
We are having a web service in which we are sharing 4.6 MB of data between two programs we make use of Pointers in cobol to use the addresses of the variables to use between the called and calling program. Since the amount of data being shared is 4.6 MB and the call to this service is made every minute or so, can this cause the corruption of other modules or any S0C1 or protection exceptions?
Thanks,
Kev |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
if the sizes/lengths of the objects respects the COBOL rules
and if the program is properly written
I do not see any reason for storage corruption or abends
anyway I would define once a minute a very low frequency |
|
Back to top |
|
|
steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
Since this is CICS I have to wonder if this is a transfer in storage between 2 cooperating programs in a single CICS instance?
If the two programs are properly written I don't see an issue. But why "move" any data? Program A leaves a pointer for program B to use. |
|
Back to top |
|
|
Kevin Vaz
New User
Joined: 18 Oct 2016 Posts: 11 Location: India
|
|
|
|
We are using the same pointers for the same copybooks in both the calling and called program. So that the called program can use the variables from calling program and vice versa using the address location. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
The pointer will be eight bytes in length. As you "pass" it around, its address (also eight bytes) is the only thing which would actually be involved in any data movement. |
|
Back to top |
|
|
Kevin Vaz
New User
Joined: 18 Oct 2016 Posts: 11 Location: India
|
|
|
|
in calling program we
set pointer-1 to address of out-record
out-record is a variable under which we have copy copybook
then we are using cics link program(called-program) commarea(pointer-1)
In called program we
set address of out-record to pointer-1 |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
The 4.6 MB is irrelevant -- the only data being passed is an address. ABENDs should clean up the storage. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
If you are not confident implementing it then there are better other options to share data between the programs which you can think of. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Where does "out-record" get its storage from? The fact that there happens to be a copybook is entirely irrelevant. |
|
Back to top |
|
|
Kevin Vaz
New User
Joined: 18 Oct 2016 Posts: 11 Location: India
|
|
|
|
Hi Thanks all for your replies.
Our web service that we have developed is working perfectly fine. The only issue is that we have stated getting many S0C1 issues recently in the past 3-4 months so we are trying to understand if this module or some other module is causing the issue. And we have to reload certain load modules for them to work after the S0C1 occurs. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
You asked a general question previously, and now you are saying specifically that it causes S0C1s?
if you are getting S0C1s in application programs, someting is overwriting code to make bad instructions (assuming you check your linkedit/binder output). |
|
Back to top |
|
|
Kevin Vaz
New User
Joined: 18 Oct 2016 Posts: 11 Location: India
|
|
|
|
ok Bill thanks.. Will check and get back if I get something in abend aid. |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
I'd take a look at Channels/Containers, which can easily handle 5MB of data. Although you can pass a pointer-address, IBM does not advocate this method. |
|
Back to top |
|
|
|