IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Can sending 5 MB data between cobol programs cause issue


IBM Mainframe Forums -> CICS
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Kevin Vaz

New User


Joined: 18 Oct 2016
Posts: 11
Location: India

PostPosted: Tue Oct 18, 2016 4:50 pm
Reply with quote

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
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Tue Oct 18, 2016 5:41 pm
Reply with quote

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
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 917
Location: The Universe

PostPosted: Tue Oct 18, 2016 6:02 pm
Reply with quote

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
View user's profile Send private message
Kevin Vaz

New User


Joined: 18 Oct 2016
Posts: 11
Location: India

PostPosted: Tue Oct 18, 2016 6:06 pm
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Oct 18, 2016 6:59 pm
Reply with quote

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
View user's profile Send private message
Kevin Vaz

New User


Joined: 18 Oct 2016
Posts: 11
Location: India

PostPosted: Tue Oct 18, 2016 7:04 pm
Reply with quote

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
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Tue Oct 18, 2016 7:22 pm
Reply with quote

The 4.6 MB is irrelevant -- the only data being passed is an address. ABENDs should clean up the storage.
Back to top
View user's profile Send private message
Rohit Umarjikar

Global Moderator


Joined: 21 Sep 2010
Posts: 3048
Location: NYC,USA

PostPosted: Wed Oct 19, 2016 3:22 am
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Oct 19, 2016 3:31 am
Reply with quote

Where does "out-record" get its storage from? The fact that there happens to be a copybook is entirely irrelevant.
Back to top
View user's profile Send private message
Kevin Vaz

New User


Joined: 18 Oct 2016
Posts: 11
Location: India

PostPosted: Wed Oct 19, 2016 11:39 am
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Oct 19, 2016 12:46 pm
Reply with quote

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
View user's profile Send private message
Kevin Vaz

New User


Joined: 18 Oct 2016
Posts: 11
Location: India

PostPosted: Wed Oct 19, 2016 1:45 pm
Reply with quote

ok Bill thanks.. Will check and get back if I get something in abend aid.
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Sat Oct 29, 2016 7:19 pm
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CICS

 


Similar Topics
Topic Forum Replies
No new posts COBOL -Linkage Section-Case Sensitive COBOL Programming 1
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts COBOL ZOS Web Enablement Toolkit HTTP... COBOL Programming 0
No new posts Data set Rec-Cnt and Byte-Cnt Testing & Performance 2
No new posts Calling DFSORT from Cobol, using OUTF... DFSORT/ICETOOL 5
Search our Forums:

Back to Top