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

can we write records to internal reader with lrecl > 80


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
rkprasanth_m

New User


Joined: 22 Jun 2006
Posts: 44

PostPosted: Mon Oct 30, 2006 2:43 pm
Reply with quote

Hi,

I have a requirement to send data records which have record length 133 to internal reader. Can we do like that?

Someone please clarify
Back to top
View user's profile Send private message
UmeySan

Active Member


Joined: 22 Aug 2006
Posts: 771
Location: Germany

PostPosted: Mon Oct 30, 2006 2:57 pm
Reply with quote

Hi

JobControlCards allways have a fixed length of 80 Bytes.

Regards, UmeySan
Back to top
View user's profile Send private message
kamran

New User


Joined: 01 May 2005
Posts: 55

PostPosted: Mon Oct 30, 2006 3:18 pm
Reply with quote

Hi,
Internal Reader is used just for submitting jobs and the contents of the records should be the jcl cards so the requirements for submitting jobs would govern your output records.
Anyhow if you are trying to submit a job through internal reader why you have used records with lrecl 133?
it is not clear for me why you are trying to reach to offer appropriate solution.


rkprasanth_m wrote:
Hi,

I have a requirement to send data records which have record length 133 to internal reader. Can we do like that?

Someone please clarify
Back to top
View user's profile Send private message
rkprasanth_m

New User


Joined: 22 Jun 2006
Posts: 44

PostPosted: Mon Oct 30, 2006 3:28 pm
Reply with quote

Well, Thanks for your replays.

Actually, I need to send in-stream data with lrecl 133.

Here is my complete requirement.

My program submits a job from COBOL which inturns calls a procedure. That procedure has a dataset which we need to create dynamically. In attempt to do this I need to send instream data (lrecl 133).

This program sends automatic mails with attachments (which i need to create dynamically).
Back to top
View user's profile Send private message
annujp

New User


Joined: 31 Aug 2005
Posts: 39
Location: St Paul,MN

PostPosted: Mon Oct 30, 2006 3:38 pm
Reply with quote

Correct me if i am wrong, if the JCL which you are submitting from a COBOL program is calling a PROC, the PROC will be residing in a JOBLIB. In that case, how can you create the dataset dynamically?
Could you explain the requirement more clearly?
Back to top
View user's profile Send private message
rkprasanth_m

New User


Joined: 22 Jun 2006
Posts: 44

PostPosted: Mon Oct 30, 2006 3:58 pm
Reply with quote

That's I am tring to do. I am not sure, can't we write records to internal reader which over writes dd name in proc.
Back to top
View user's profile Send private message
UmeySan

Active Member


Joined: 22 Aug 2006
Posts: 771
Location: Germany

PostPosted: Mon Oct 30, 2006 4:02 pm
Reply with quote

Hi !

Anyway, JobControlCards allways have a fixed length of 80 Bytes.
And that is what JES2 is handling and accepting.

So if i understood correctly, you create data dynamically for mail dispatching. So i think, only the text for the mails has to be 133 bytes.

Therfore, why don't create the text in a separate file. The procedure you told us, has to exist in Proclib/Joblib. Then you could transfer the JCL to internal reader. This little JCL will only activating the proc which is using the data-file from the cobol-programm.

Regards, UmeySan
Back to top
View user's profile Send private message
annujp

New User


Joined: 31 Aug 2005
Posts: 39
Location: St Paul,MN

PostPosted: Mon Oct 30, 2006 4:33 pm
Reply with quote

Correct me if i am wrong...

Create a file in the Program dynamically that has LRECL 133. Submit a job in this Program that calls the proc. The proc will use this dataset that the program created.
That is. the Datset name of the dynamically created dataset with LRECL 133, will appear as DISP=(New,Catlg,Delete) in the run JCL of the Program and the Program will submit the job which calls the Proc. In the proc, the disp of the dataset will be SHR.

Did i confuse u?
Back to top
View user's profile Send private message
rkprasanth_m

New User


Joined: 22 Jun 2006
Posts: 44

PostPosted: Mon Oct 30, 2006 4:51 pm
Reply with quote

ok, But this program generates emails with attachments. So I have to create a file for every email. all things dynamically.
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Mon Oct 30, 2006 5:18 pm
Reply with quote

rkprasanth_m wrote:
I have a requirement to send data records which have record length 133 to internal reader. Can we do like that?

Yes. Your JCL records can be up to 254-bytes.
Back to top
View user's profile Send private message
kamran

New User


Joined: 01 May 2005
Posts: 55

PostPosted: Mon Oct 30, 2006 5:38 pm
Reply with quote

Hi,
I think just in stream data can be 254-bytes and if the jcl cards continued beyond 71 byte it will get error during execution!

superk wrote:
rkprasanth_m wrote:
I have a requirement to send data records which have record length 133 to internal reader. Can we do like that?

Yes. Your JCL records can be up to 254-bytes.
Back to top
View user's profile Send private message
UmeySan

Active Member


Joined: 22 Aug 2006
Posts: 771
Location: Germany

PostPosted: Mon Oct 30, 2006 7:19 pm
Reply with quote

Hi superk !

The genesis of the JobControlStatements now a days are the very old
puched cardes with a length of 80.

A JCL command beginns with // and ends in position 71.

Responsible for the batch processing in OS/390 is JES. JobEntrySystem.
JES is descended from HASP ( Houston Automatic Spool Program ). By the way, this was develloped in the 60 from IBM for the NASA.

JES2, also JES3, is handling JCL-Cards with a fixed length of 80 Bytes.
In an IBM environment you will allways see the SYS1.PROCLIB defined as fixed block with 80 bytes length.

JES handels JCL in 3 main Steps.
First is Preprocessing, like checking syntax and do allocations.
Second is processing, so like run/execute the programms.
Third is Postprocessing, something like a clean-up phase.

So in detail, what does JES do ?

z/OS has two versions of job entry systems: JES2 and JES3. Of these, JES2 is the most common by far and is the JES used in examples in this text. JES2 and JES3 have many functions and features, but their most basic functions are as follows:

Accept jobs submitted in various ways:
From ISPF through the SUBMIT command
Over a network
From a running program, which can submit other jobs through the JES internal reader
From a card reader (very rare!) Here you are. Again 80 Bytes.
Queue jobs waiting to be executed. Multiple queues can be defined for various purposes.
Queue jobs for an initiator , which is a system program that requests the next job in the appropriate queue.
Accept printed output from a job while it is running and queue the output.
Optionally, send output to a printer, or save it on spool for PSF, InfoPrint, or another output manager to retrieve.

As a consequence of the limitations of the number of characters that could be contained in single 80-column punched cards used in earlier systems, z/OS introduced the concepts of continuation and concatenation. Therefore, z/OS retained these conventions in order to minimize the impact on previous applications and operations.

Continuation of JCL syntax involves a comma at the end of the last complete parameter. The next JCL line would include // followed by at least one space, then the additional parameters. JCL parameter syntax on a continuation line must begin on or before column sixteen and should not extend beyond column 72.

So please correct me if i'm wrong.

Regards, UmeySan
Back to top
View user's profile Send private message
rkprasanth_m

New User


Joined: 22 Jun 2006
Posts: 44

PostPosted: Mon Oct 30, 2006 8:15 pm
Reply with quote

umeysen,
we can send upto 254 bytes through internal reader, I think
Back to top
View user's profile Send private message
UmeySan

Active Member


Joined: 22 Aug 2006
Posts: 771
Location: Germany

PostPosted: Mon Oct 30, 2006 8:37 pm
Reply with quote

Hi !

Do you mean a 254 byte stream, which includes 80byte jcl cards or what ?
I guess the question was, if one could send a jcl-card with a length of 133
to internal reader. So that means to me, that perhaps i could code a jcl-statement in position 82 up to 133.

Regards, UmeySan (with "a" in San please)
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 -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Write line by line from two files DFSORT/ICETOOL 7
No new posts Compare only first records of the fil... SYNCSORT 7
No new posts Pulling a fixed number of records fro... DB2 2
No new posts VB to FB - Finding LRECL SYNCSORT 4
No new posts Join multiple records using splice DFSORT/ICETOOL 5
Search our Forums:

Back to Top