IBM MAINFRAME HELP & SUPPORT FORUMS
Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
 

Writing Directly On Spool!

THIS IS AN ARCHIVE FORUM: CLICK HERE TO GO TO THE ORIGINAL TOPIC

 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> PL/I & ASSEMBLER
View previous topic :: View next topic  
Author Message
kamran



Joined: 01 May 2005
Posts: 52

Posted: Wed Nov 16, 2005 2:02 pm    Post subject: Writing Directly On Spool!  

Hi All,

I OS390 and JES2 I need to write data into the Spool such that I have had control to choose the output name dynamically under the configuration which I explain in the following:

Consider that program "B" which must be "Attached" by a long term VTAM program "A" has the duty to write some lines of data from storage into spool and each output must have reside in Spool separately with unique output name which will be chosen during the execution of program "A".

Also I would appreciate if anybody inform me whether there is any documents available for download that explains the structures of the JES2 SPOOL files.

Thanks
Kamran
Back to top  
ironmike



Joined: 07 Aug 2005
Posts: 37

Posted: Thu Nov 17, 2005 8:51 pm    Post subject:  

You need to use the Functional Subsytem Interface to process SPOOL content. You don't read and write to SPOOL directly, you ask the subsystem interface for the data. Writing to SPOOL yourself is an abominably bad idea...don't try it! You can dynamically allocate a SYSOUT data set, write to it using QSAM, then read it in later using the FSI. Chapter 27 of the Authorized Assembler Services Guide tells you how to dynamically (via SVC 99) build a SYSOUT data set name.

Here's the URL to the Asm Svcs Guide:
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2A860/CCONTENTS?DT=20050714101051&=

Here's the URL to the FSI IBM manual; read the whole book, but Chapter 9 is the chapter you're interested in.
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2E510/CCONTENTS?SHELF=EZ2ZO10F&DN=SA22-7641-01&DT=20040108171122
Back to top  
kamran



Joined: 01 May 2005
Posts: 52

Posted: Sat Nov 19, 2005 4:18 pm    Post subject:  

Thanks for your clarify response, But what cold I do for seperation of the jobnames of the OUTPUTs.I mean that the jobname of the several outputs which will be produced during the lifetime of the task must be different from each other and have meaning full names.I have found the Macro "IAZXJSAB" with function CREATE and accually I used:
" IAZXJSAB CREATE,JOBNAME=JOBNME,USERID=USER,TYPE=SUBTASK",
and consequently wrote outputs and after that I issued:
" IAZXJSAB DELETE,TYPE=SUBTASK".
Unfortunately the jobname of output remained unchanged(the same as the started job.)
I don't know whether I have made mistake or it's impossible to have outputs with different jobnames under the same address space.


ironmike wrote: You need to use the Functional Subsytem Interface to process SPOOL content. You don't read and write to SPOOL directly, you ask the subsystem interface for the data. Writing to SPOOL yourself is an abominably bad idea...don't try it! You can dynamically allocate a SYSOUT data set, write to it using QSAM, then read it in later using the FSI. Chapter 27 of the Authorized Assembler Services Guide tells you how to dynamically (via SVC 99) build a SYSOUT data set name.

Here's the URL to the Asm Svcs Guide:
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2A860/CCONTENTS?DT=20050714101051&=

Here's the URL to the FSI IBM manual; read the whole book, but Chapter 9 is the chapter you're interested in.
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2E510/CCONTENTS?SHELF=EZ2ZO10F&DN=SA22-7641-01&DT=20040108171122
Back to top  
ironmike



Joined: 07 Aug 2005
Posts: 37

Posted: Sun Nov 20, 2005 4:51 am    Post subject:  

Well, the way I read the doc on IAZXJSAB it's at the jobname (i.e., address space) level. You can't use IAZXJSAB to build output with two different job names within one address space.

Tell us more about what you are trying to do; it's probably possible, but you may have to execute some code in several address spaces to do it. :?:
Back to top  
kamran



Joined: 01 May 2005
Posts: 52

Posted: Sun Nov 20, 2005 10:24 am    Post subject:  

Hi,

Yes in Authurized assembler macro services which I have it's documented that the function code is just READ but if you read section 4.5 of "OS/390: MVS Using the Subsystem Interface" you would see this statment:

"However, the job information that prints on the header page is associated with the job that created the data set. This ordinarily identifies the job that runs your server, not the client that requested the printout. You would probably prefer that the client's identification print rather than
the server's in order to be able to tell one client's output apart from
another's."
Also in my system which is OS390 V2.7 when I search the macro source of IAZXJSAB in sys1.maclib there I found more function like UPDATE and CREATE.Anyhow I think it must work and maybe I made this mistake that I used the macro in program "A" which is Calling program "B" which produces the output.I am going to change the configuration such that both the Macro and output generator procedure be in a single CSECT.

Regards


ironmike wrote: Well, the way I read the doc on IAZXJSAB it's at the jobname (i.e., address space) level. You can't use IAZXJSAB to build output with two different job names within one address space.

Tell us more about what you are trying to do; it's probably possible, but you may have to execute some code in several address spaces to do it. :?:
Back to top  
 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> PL/I & ASSEMBLER
Page 1 of 1
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM