Re: instream data

2010-07-20 Thread Gilbert Saint-Flour
On 2010-06-24 13:59, Frank Swarbrick wrote: 

Now that we've been on z/OS for a few weeks, I feel to need to ask 
a question that has annoyed me since I started working on z/OS two years 
ago.  Instream datasets are good. Why are they not supported inside of
procs?  Is there a technical reason, or is it just because?  
We use procs for almost all of our production jobs, with many steps that
could take advantage of instream datasets if not for this restriction.  

Back in 1991, I greatly appreciated the JCL enhancements that came in MVS/ESA 
4.1 (INCLUDE, SET, proc/include nesting, etc), but I felt disappointed that 
in-line control-cards were still incompatible with PROCs - like you say.

Since the target became MVS/ESA 4.1, most of the VSE/MVS conversions I was 
involved in didn't use procedures in their MVS JCL, because most of the 
reasons procs had to be used before MVS/ESA 4.1 were gone.  Several of these 
conversion projects had a VSE scheduler that supported variables in control 
cards, and needed something equivalent in MVS.  So, in MVS, they used 
TSREPVAR, TSIDCAMS, other similar utilities, or SUBSYS=(CCSS,...
-- they're described here: http://gsf-soft.com/Products/CCSS.shtml

-- 
 Gilbert Saint-Flour
 GSF Software
 http://gsf-soft.com

PS: Sorry it took me so long to reply to this message.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-07-20 Thread Clement Clarke

Chris Mason wrote:

Frank

You'll be wanting symbol substitution in the instream data next!

That actually was I wanted to help me manage for my test/education systems
where I did a great deal of work at the (VM) console. I just wanted to be able
to set up started task procedures in order to do all sorts of operations without
having to bother to start up TSO. This often meant setting up procedures
calling utility programs which - since time immemorial - make that the mid-
'60s - have used much of the time trivial statements in a SYSIN data set.



... text deleted
You might like to look at Declaring Card Files in Jol here:
http://tinyurl.com/22jz7vj


You can also use any Symbolic Variable is a card image file - it will 
get replaced by the current value of the Symbolic.  When the program 
reads the card file at execution time, it will read the data with 
Symbolic replaced.


There are also some predefined Symbolics that you can use in Jol.  Some 
of these are:


*Jol Automatically Initialized Symbolic Variables*


Variable   Explanation

%SYSDATE   The current date in Julian format e.g. 86290

%DAY   MONDAY, TUESDAY, etc.

%MONTH JANUARY, FEBRUARY, etc.

%MONTHNO   01, 02 Through 12

%DAYNO 01 through 31

%YEAR  1987, 1988, etc.

%HOURS 0 through 23

%MINS  0 through 59

%SECS  0 through 59

%SYSUIDSystem user identification

%SYSPREF   Dataset Prefix or Current Directory

%SYSPFKProgram function key number from PANELs

%SYSTEMMVS, DOS, VM, PC, UNIX etc.

%SPOOL HASP, ASP, JES1, JES2, JES3, or Blank

%TSOCLASS Contains the SYSOUT class used by TSO to
  retrieve output from a background job


Cheers,

Clem

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-07-14 Thread clementcla...@ozemail.com.au
Hi Paul,

I'll answer next to your questions.

In addition, I'll write an FTP Macro instruction in the next few days, and show
you exactly how it works, and how symbolic parameter replacement and so on 
works.

Paul Gilmartin wrote:

 JCL has changed a lot in 40 years.  Has Jol kept pace?

I am sure that there are things missing.  For example, some things for the Unix
subsystem.

Jol has a very flexible Macro language, and new commands can be added by Users,
and shared by Users.

Also, Jol not only works on the mainframe, but there is a version that runs on
Windows, and creates either Dynamic Allocation code, or JCL that can be 
submitted
to Z/OS.

Additionally, there is a DOS/VSE version and a Linux version to be released 
shortly.

By the way, the Windows and Linux versions also run Windows programs, ans well 
as
running Mainframe programs. 

Jol has progressed a long way towards being the Universal Command Language, and
active user participation is actively encouraged.

 o Does Jol generate JCL and write it to INTRDR?  If not, how does
   it operate?


Mainframe Jol can operate in three main ways:

1. It can generate JCL to run in background.  It is written to INTRDR.

2. It can NOT create JCL (apart from some startup JCL), and use Dynamic
Allocation to run jobs.

3. It can run the created job directly under TSO using Dynamic Allocation.

 o Does Jol provide the ENQ deadlock protection provided by batch
   initiators?


Sure.  The Dynamic Allocation (non JCL) version uses similar ENQ mechanisms, or
allows SVC 99 to contral data set allocation.

Incidentally, there is an ENQ instruction in Jol that you can use to ENQ on
whichever resources you wish to.
 o Does Jol provide flow control at least comparable to JCL's
   IF...THEN...ELSE...ENDIF?


Absolutely! 

For example:

If Prog1 = 10  prog20  99  maxcc 16 then
   submit job2;

and

If %day='Monday' and %month='June' then run step20;

   
 o Does Jol support tapes with facilities such as RETAIN and VOL=REF?

It does it all automatically.  Jol looks at each job and checks to see if a data
set is passed to a subsequent step.  If so, it uses Disp=(..,PASS), and Vol
Retain, and VolRefs if necessary.  It looks up the Catalog for Old data sets (to
make sure they will be available at Run time), and uses the Volume information
for VolRef and Retain, as necessary.

 o Can Jol's card image files have non-cardlike attributes such as
   RECFM=VB,LRECL=254


Yes, although the maximum LRECL is limited to 100.  This can be increased, if
desired.

 o Does Jol allow PARM length100?


Not today.  But this can be changed easily.

How long would you like it to be?  Please don't say unlimited!

 o Does Jol support jobs with a mixture of steps running authorized
   and unauthorized programs, with the security of batch JCL?


Yes.  It uses the same mechanism as the Initiator, and therefore operates in the
same way.

 Most of these questions can be summarized as, What facilities of
 today's JCL would the programmer sacrifice to gain the benefits of
 Jol?


Hopefully, all necessary missing features can be added quickly.

We are setting a new website with more details, and it will allow user 
participation.

Meanwhile, Jol can be downloaded, and full documentation is available.

Cheers,

Clem

 -- gil
 On Mon, 12 Jul 2010 10:03:58 +1000, Clement Clarke wrote:


 For over 40 years, Jol has allowed you to do just that.

 Jol is a free format JCL replacement language, loosely based on PL/I.

 You can declare Data Sets and Programs, and use commands such as Run (a
 program) or Copy a data set and so on.

 Jol comes with the ability to declare card files in Jol Procedures or
 in Macros (which allow you to add new instructions to Jol in a high
 level language).

 Furthermore, you can replace Symbolic Parameters or Variables in card
 image files to create Utility Control Statements and so on.


 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
 Search the archives at http://bama.ua.edu/archives/ibm-main.html


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-07-11 Thread Clement Clarke

Frank Swarbrick wrote:

Now that we've been on z/OS for a few weeks I feel to need to ask a question that has 
annoyed me since I started working on z/OS two years ago.  Instream datasets are good.  
Why are they not supported inside of procs?  Is there a technical reason, or is it just 
because?  We use procs for almost all of our production jobs, with many steps 
that could take advantage of instream datasets if not for this restriction.

Thanks,
Frank



For over 40 years, Jol has allowed you to do just that.

Jol is a free format JCL replacement language, loosely based on PL/I.

You can declare Data Sets and Programs, and use commands such as Run (a 
program) or Copy a data set and so on.


Jol comes with the ability to declare card files in Jol Procedures or 
in Macros (which allow you to add new instructions to Jol in a high 
level language).


Furthermore, you can replace Symbolic Parameters or Variables in card 
image files to create Utility Control Statements and so on.


This example used predefined Symbolic Variables of %DAYNO, %MONTHO and 
%YEAR to place the current date in a control card.


  DCL CONTROL * REPLACE;
%DAYNO%MONTHNO%YEAR
EOF;

PRINT CONTROL;  /* Copy card to printer */

These statements create a Data Set Identifier (DSID) called CONTROL 
which will have:-


Columns   Data

1-2 day number, e.g. 09
3-4  month number, e.g. 07
5-8  year number, e.g. 2009

For example:

09072009

This control file can be used by a program to print headings on a report.

You can see more here:
For over 40 years, Jol has allowed you to do just that.

Jol is a free format JCL replacement language, loosely based on PL/I.

You can declare Data Sets and Programs, and use commands such as Run (a 
program) or Copy a data set and so on.


Jol comes with the ability to declare card files in Jol Procedures or 
in Macros (which allow you to add new instructions to Jol in a high 
level language).


Furthermore, you can replace Symbolic Parameters or Variables in card 
image files to create Utility Control Statements and so on.


This example used predefined Symbolic Variables of %DAYNO, %MONTHO and 
%YEAR to place the current date in a control card.


  DCL CONTROL * REPLACE;
%DAYNO%MONTHNO%YEAR
EOF;

PRINT CONTROL;  /* Copy card to printer */

These statements create a Data Set Identifier (DSID) called CONTROL 
which will have:-


Columns   Data

1-2 day number, e.g. 09
3-4  month number, e.g. 07
5-8  year number, e.g. 2009

For example:

09072009

This control file can be used by a program to print headings on a report.

You can see more here:
http://tinyurl.com/22jz7vj


Cheers,

Clem

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-07-11 Thread Paul Gilmartin
On Mon, 12 Jul 2010 10:03:58 +1000, Clement Clarke wrote:

For over 40 years, Jol has allowed you to do just that.

Jol is a free format JCL replacement language, loosely based on PL/I.

You can declare Data Sets and Programs, and use commands such as Run (a
program) or Copy a data set and so on.

Jol comes with the ability to declare card files in Jol Procedures or
in Macros (which allow you to add new instructions to Jol in a high
level language).

Furthermore, you can replace Symbolic Parameters or Variables in card
image files to create Utility Control Statements and so on.

JCL has changed a lot in 40 years.  Has Jol kept pace?

o Does Jol generate JCL and write it to INTRDR?  If not, how does
  it operate?

o Does Jol provide the ENQ deadlock protection provided by batch
  initiators?

o Does Jol provide flow control at least comparable to JCL's
  IF...THEN...ELSE...ENDIF?

o Does Jol support tapes with facilities such as RETAIN and VOL=REF?

o Can Jol's card image files have non-cardlike attributes such as
  RECFM=VB,LRECL=254

o Does Jol allow PARM length100?

o Does Jol support jobs with a mixture of steps running authorized
  and unauthorized programs, with the security of batch JCL?

Most of these questions can be summarized as, What facilities of
today's JCL would the programmer sacrifice to gain the benefits of
Jol?

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-30 Thread Shmuel Metz (Seymour J.)
In
053f2631ec9c584883847c8b4970a22807337...@josqems1.jsq.bsg.ad.adp.com,
on 06/27/2010
   at 09:53 AM, Farley, Peter x23353 peter.far...@broadridge.com
said:

Pardon my immense ignorance, but how would such an obviously useful
extension be a serious integrity breach? 

By having access to privileged functions if run in the Converter
environment, and hanging it if forked to its own process.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-28 Thread Rick Fochtman

-snip---
There was a time, not very long ago, when ad-hoc use of INTRDR was 
deprecated (controlled?) because they were a finite resource. I suspect 
one could still create pretty much havoc by OPENing INTRDRs up to a 
system limit, and feeding each the content of an SVC dump (perhaps 
throttled to a few dozen bytes/sec) and watching the SKIPPING FOR JOB 
CARD messages scroll by on the operators' console.

---unsnip-
Once upon a time I used a job called RABBIT to stress HASP and JES2. 
All it did was feed ten copies of itself through the internal reader. 
With ten copies running, it never took more that a very few minutes to 
plug up the system pretty badly.


I used it to get operators to pay attention to their jobs, instead of 
playing gin rummy. It usually took only one occurence to smarten them 
up wonderfully.


Rick

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-27 Thread Shmuel Metz (Seymour J.)
In listserv%201006262246290980.0...@bama.ua.edu, on 06/26/2010
   at 10:46 PM, Paul Gilmartin paulgboul...@aim.com said:

I do not mean to conflate converter operations with interpreter
operations. 

That doesn't change things; it would be an integrity exoposure either
way.

If the external generator were forked into a separate address space
and setuid submitter, the security exposures would be limited to DoS
via long-running or output-spewing generators.

Aside from that, Mrs. Lincoln, how was the play?

Even as they now recognize /* Rexx ...?

In principle, but it would take more code.

How does one pass a handle
of a PDS member to /bin/sh?

Extend the syntax. Use a pipe. There are ways to do it.

This instantly gets into trouble with the VTAM TSO 
half-ass^H^H^Hduplex terminal handling. 

ObMarkTwain You mean the missing functionality that's been there for
decades?

Cf. the infuriating RUNNING/INPUT toggle in 3270 OMVS.

That's the OMVS application code, not the VTIOC services. Similarly,
the behavior of ISPF is due to ISPF code, not TSO.

I vaguely recall there there is code on the CBT tape that runs full
duplex in TSO. It's not rocket science.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-27 Thread Farley, Peter x23353
 -Original Message-
 From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
 Behalf Of Shmuel Metz (Seymour J.)
 Sent: Saturday, June 26, 2010 10:50 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Re: instream data
 
 In listserv%201006252231432049.0...@bama.ua.edu, on 06/25/2010
at 10:31 PM, Paul Gilmartin paulgboul...@aim.com said:
 
 Wouldn't it be great if the C/I could run shell scripts
 (or Rexx, or Perl or ...)?
 
 No; it would be a serious integrity breach.

Pardon my immense ignorance, but how would such an obviously useful
extension be a serious integrity breach?  I just do not see the
connection.  A looping Rexx script submitting infinite new jobs would be
just as much of an annoyance as a shell or perl script doing the same
thing, but neither rises to the level of integrity breach as far as I
can see; punishable programmer stupidity, yes, but not integrity
breach.

Please explain.

Peter


This message and any attachments are intended only for the use of the addressee 
and
may contain information that is privileged and confidential. If the reader of 
the 
message is not the intended recipient or an authorized representative of the
intended recipient, you are hereby notified that any dissemination of this
communication is strictly prohibited. If you have received this communication in
error, please notify us immediately by e-mail and delete the message and any
attachments from your system.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-27 Thread John McKown
On Sun, 2010-06-27 at 09:53 -0400, Farley, Peter x23353 wrote:
  -Original Message-
  From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
  Behalf Of Shmuel Metz (Seymour J.)
  Sent: Saturday, June 26, 2010 10:50 PM
  To: IBM-MAIN@bama.ua.edu
  Subject: Re: instream data
  
  In listserv%201006252231432049.0...@bama.ua.edu, on 06/25/2010
 at 10:31 PM, Paul Gilmartin paulgboul...@aim.com said:
  
  Wouldn't it be great if the C/I could run shell scripts
  (or Rexx, or Perl or ...)?
  
  No; it would be a serious integrity breach.
 
 Pardon my immense ignorance, but how would such an obviously useful
 extension be a serious integrity breach?  I just do not see the
 connection.  A looping Rexx script submitting infinite new jobs would be
 just as much of an annoyance as a shell or perl script doing the same
 thing, but neither rises to the level of integrity breach as far as I
 can see; punishable programmer stupidity, yes, but not integrity
 breach.
 
 Please explain.
 
 Peter
 

I am also quite curious as to why/how this would be a breach of
integrity. The closest that I have come up with is if the script were
allowed to do things such as open/read/write a standard file WHILE
EXECUTING AS PART OF THE CONVERTER/INTERPRETER. That might allow
improper file access if the initiator is running RACF trusted or with a
high security ID.

So I guess that I would like the ability to run a special purpose
scripting language to enhance JCL creation. Or looping, how I would like
some looping at times!
-- 
John McKown
Maranatha! 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-27 Thread Paul Gilmartin
On Sun, 27 Jun 2010 14:10:06 EDT, Ed Finnell wrote:

In a message dated 6/27/2010 12:27:56 P.M. Central Daylight Time,
joarmc writes:

like the ability to run a special purpose
scripting language to  enhance JCL creation. Or looping, how I would like
some looping at  times!

Yeah, just get your XEDIT guy to code it  up. 6000 jobs later, the system
comes back!

There was a time, not very long ago, when ad-hoc use of INTRDR
was deprecated (controlled?) because they were a finite resource.
I suspect one could still create pretty much havoc by OPENing
INTRDRs up to a system limit, and feeding each the content of
an SVC dump (perhaps throttled to a few dozen bytes/sec) and
watching the SKIPPING FOR JOB CARD messages scroll by on the
operators' console.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-26 Thread Kirk Wolf
On Fri, Jun 25, 2010 at 10:31 PM, Paul Gilmartin paulgboul...@aim.comwrote:

 On Fri, 25 Jun 2010 16:50:23 -0500, Kirk Wolf wrote:

 snip

 
 Wouldn't it be great if the C/I could run shell scripts
 (or Rexx, or Perl or ...)?

 //NAME  SHELL,DLM=EOD
...
shell commands, executed after substituting JCL symbols,
whose stdout is fed back to the C/I input stream.
...
 EOD

 (Just seeking the least cognitive dissonance to dinos.)


Gil,

I link your idea a lot. It reminds me of how Unix executables can be any
interpreter using the #! /some/prog
The general notion that JCL could adopt shell features (while remaining
backward compatible) is very interesting.

Kirk Wolf
Dovetailed Technologies

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-26 Thread Edward Jaffe

Howard Brazee wrote:

Is that like the ZOOM or SHOWPROC commands that have come with MVS for
a decade or so?
  


They come with MVS ... aka OS/390 ... aka z/OS for how long? What are 
these commands? How do you use them?


--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
310-338-0400 x318
edja...@phoenixsoftware.com
http://www.phoenixsoftware.com/

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-26 Thread Shmuel Metz (Seymour J.)
In listserv%201006252231432049.0...@bama.ua.edu, on 06/25/2010
   at 10:31 PM, Paul Gilmartin paulgboul...@aim.com said:

Wouldn't it be great if the C/I could run shell scripts
(or Rexx, or Perl or ...)?

No; it would be a serious integrity breach.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-26 Thread Shmuel Metz (Seymour J.)
In aanlktinbyi07tylalwfnxfierj7jzlhw5-ithuwxw...@mail.gmail.com, on
06/26/2010
   at 06:26 AM, Kirk Wolf k...@dovetail.com said:

I link your idea a lot. It reminds me of how Unix executables can be
any interpreter using the #! /some/prog

The C/I is not a shell.

Now, what would be nice would be if the TSO service routines could
recognize a shebang or equivalent in SYSPROC and SYSEXEC members.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-26 Thread Paul Gilmartin
On Sat, 26 Jun 2010 22:52:34 -0400, Shmuel Metz (Seymour J.) wrote:

I link your idea a lot. It reminds me of how Unix executables can be
any interpreter using the #! /some/prog

The C/I is not a shell.

I do not mean to conflate converter operations with interpreter
operations.  I was looking for an enhancement to the lame generative
facilities (mostly now limited to PROC and SET) of the converter,
such as converter-phase conditionals and looping.  Converter, not
Interpreter.  I would expect John Gilmore's language of choice
if this were done to be HLASM with PUNCH statement output fed back
to the Converter input stream.

If the external generator were forked into a separate address space
and setuid submitter, the security exposures would be limited to
DoS via long-running or output-spewing generators.

Now, what would be nice would be if the TSO service routines could
recognize a shebang or equivalent in SYSPROC and SYSEXEC members.

Even as they now recognize /* Rexx ...?

I agree.  Do SYSCALL spawn sh   Hmmm.  How does one pass a handle
of a PDS member to /bin/sh?  Copy it to HFS and pass that?  Connect
stdin to keyboard and stdout and stderr to display?  Oops!  This
instantly gets into trouble with the VTAM TSO half-ass^H^H^Hduplex
terminal handling.  Cf. the infuriating RUNNING/INPUT toggle in 3270
OMVS.

--gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-26 Thread Edward Jaffe

Thompson, Steve wrote:

Let us not forget JES3 (ASP). Interestingly JES2 supports a larger
in-stream LRECL than JES3 does (or did, they may have fixed that in the
last few releases).
  


It was the other way around. For decades, JES3 supported instream data 
up to LRECL=32760 while JES2 supported much smaller sizes -- the 
predominant one being LRECL=80.


--
Edward E Jaffe
Chief Technology Officer
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
310-338-0400 x318
edja...@phoenixsoftware.com
http://www.phoenixsoftware.com/

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Steve Comstock

[replying to my own post...]

Steve Comstock wrote:

Frank Swarbrick wrote:

Steve,

That is, in fact, exactly what we have:
//PROC DDAR02 PARMENV=PROD.APPLIB
//SORT EXEC PGM=SORT
//DFSPARM  DD DSN=PARMENV..PARM(DDAR021),
//DISP=SHR   
I simply would prefer to see:


//PROC DDAR02
//SORT EXEC PGM=SORT
//DFSPARM  DD *
 SORT FIELDS=(1,10,PD,A, 13,4,PD,A, 
17,4,PD,A, 11,2,PD,A),EQUALS  
Someone here did write a nice PEEK command where we type PEEK on the 
command line and put our cursor on the DD statement and it will go to 
the correct library and pull up the member.  


Try this: from the screen where you do the PEEK, issue the KEYS command
and assign a key, say PF4, to :PEEK like:

F4  :PEEK___

then end (F3) to save your changes and try placing the cursor on
the DD statement and pressing F4. Might make life simpler.


The above is if your PEEK command is a line command (entered in the
sequence number field; otherwise, omit the leading colon (:).



--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Howard Brazee
On 24 Jun 2010 15:40:31 -0700, mzel...@flash.net (Mark Zelden) wrote:

Is that like the ZOOM or SHOWPROC commands that have come with MVS for
a decade or so?


Come with MVS?  Please point me to where these are distributed if you can
because I've only seen home grown utilities of this nature (including my
own).

They are REXX utilities.   I edit or view some JCL, type Zoom at the
top, and put my cursor on a dataset before hitting Enter.   When I
started this job 11 years ago, this shop didn't know about them, but
the customer coordinators were very appreciative when I showed it to
them.Showproc isn't as useful as zoom as it doesn't know about the
// JCLLIB ORDER=(my.proc.lib1,my.proc.lib2)
command.

I see the commands in 'UMS.REXX.APPL.LIB', but since our shop is UMS,
I see that this is location is shop dependent.  

My path here is from:
ALLOC F(SYSEXEC)  SHR REUSE DA('D44201.REXX.LIB' +
   'UMS.REXX.APPL.LIB' +
   'ISP.SISPEXEC')

Anybody else able to help here?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Steve Comstock

Howard Brazee wrote:

On 24 Jun 2010 15:40:31 -0700, mzel...@flash.net (Mark Zelden) wrote:


Is that like the ZOOM or SHOWPROC commands that have come with MVS for
a decade or so?


Come with MVS?  Please point me to where these are distributed if you can
because I've only seen home grown utilities of this nature (including my
own).


They are REXX utilities.   I edit or view some JCL, type Zoom at the
top, and put my cursor on a dataset before hitting Enter.   When I
started this job 11 years ago, this shop didn't know about them, but
the customer coordinators were very appreciative when I showed it to
them.Showproc isn't as useful as zoom as it doesn't know about the
// JCLLIB ORDER=(my.proc.lib1,my.proc.lib2)
command.

I see the commands in 'UMS.REXX.APPL.LIB', but since our shop is UMS,
I see that this is location is shop dependent.  


My path here is from:
ALLOC F(SYSEXEC)  SHR REUSE DA('D44201.REXX.LIB' +
   'UMS.REXX.APPL.LIB' +
   'ISP.SISPEXEC')

Anybody else able to help here?


I'm pretty sure those are not generally distributed with z/OS.


--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Tom Marchant
On Fri, 25 Jun 2010 09:51:34 -0600, Howard Brazee wrote:

They are REXX utilities.   I edit or view some JCL, type Zoom at the
top, and put my cursor on a dataset before hitting Enter

I see the commands in 'UMS.REXX.APPL.LIB', but since our shop is UMS,
I see that this is location is shop dependent.
...
Anybody else able to help here?

If you browse them, do they show any copyright information 
indicating where they came from?

IAC, I use Gilbert's FASTPATH for this and other very useful tools.

-- 
Tom Marchant

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Mark Zelden
On Fri, 25 Jun 2010 09:51:34 -0600, Howard Brazee howard.bra...@cusys.edu
wrote:

On 24 Jun 2010 15:40:31 -0700, mzel...@flash.net (Mark Zelden) wrote:

Is that like the ZOOM or SHOWPROC commands that have come with MVS for
a decade or so?


Come with MVS?  Please point me to where these are distributed if you can
because I've only seen home grown utilities of this nature (including my
own).

They are REXX utilities.   I edit or view some JCL, type Zoom at the
top, and put my cursor on a dataset before hitting Enter.   When I
started this job 11 years ago, this shop didn't know about them, but
the customer coordinators were very appreciative when I showed it to
them.Showproc isn't as useful as zoom as it doesn't know about the
// JCLLIB ORDER=(my.proc.lib1,my.proc.lib2)
command.


My PROCSHOW utility does  :-)  No, I've never added it to my CBT
file nor web site since the PROCLIBs must be manually coded.  There is
a bunch of code similar to this:

When SMFNAME = ASYS then do   
   tot = tot + 1
   proclib.tot = ASYS.PROCLIB 
   tot = tot + 1
   proclib.tot = ASYS.TECH.PROCLIB
   tot = tot + 1
   proclib.tot = SYS1.PROCLIB 
   tot = tot + 1
   proclib.tot = SYS2.PROCLIB 
   tot = tot + 1
   proclib.tot = PROD.PROCLIB 
   tot = tot + 1
   proclib.tot = TEST.PROCLIB 
End

--
Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS   
mailto:mzel...@flash.net  
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html 
Systems Programming expert at http://expertanswercenter.techtarget.com/

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Howard Brazee
On 25 Jun 2010 09:07:31 -0700, st...@trainersfriend.com (Steve
Comstock) wrote:

I'm pretty sure those are not generally distributed with z/OS.

I wonder how they got distributed to these different shops then.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Howard Brazee
On Fri, 25 Jun 2010 10:34:01 -0600, Howard Brazee
howard.bra...@cusys.edu wrote:

On 25 Jun 2010 09:07:31 -0700, st...@trainersfriend.com (Steve
Comstock) wrote:

I'm pretty sure those are not generally distributed with z/OS.

I wonder how they got distributed to these different shops then.

Looking at the code, I see that Zoom is privately created:

/*PROGRAM:   ZOOM **
**AUTHOR:JOHN BUBENHEIM - UNION BANK **
**SYNTAX:ZOOM E - EDIT MODE **
**PURPOSE:   PROVIDE CURSOR SENSITIVE DSN AND DDNAME RECOGNITION **
 ALLOWING USERS TO ZOOM INTO ANOTHER DATA SET **
 WITHOUT LEAVING THEIR CURRENT EDIT SESSION. **
**USAGE  PLACE CURSOR UNDER ANY VALID DSN OR DDNAME CHARACTER **
 AND START ZOOM FROM THE COMMAND LINE OR A PRE- **
 DEFINED PFKEY.  PFKEY USE IS RECOMMENDED TO MINIMIZE **
 CURSOR REPOSITIONING.  IF THE CURSOR IS LEFT ON THE **
 COMMAND LINE, THE FIRST DATA LINE DISPLAYED WILL BE **
 SEARCHED FOR A VALID DSN. **
**FEATURES:  DSN SYNTAX CHECKING WITH SYSDSN **
**   SYMBOLIC VARIABLE SUBSTITUTION. **
**   CONCATENATION RECOGNITION WITH MEMBER SEARCH OPTION. **
**   AUTOMATIC SWITCH TO BROWSE MODE IF EDIT FAILS. **
**   ALLOWS EDIT SESSIONS TO BE STACKED. **
**   ALLOWS MODULAR ADDITION OF NEW FUNCTION. */
 
SETUP:
/*/
/*   SET ERROR AND MESSAGE CONTROLS **
**   ESTABLISH EDIT MACRO ENVIRONMENT **
**   SET MODE */
/*/
ISPEXEC CONTROL ERRORS RETURN
X = MSG(OFF)
ISREDIT MACRO (FUNC)
IF TRANSLATE(SUBSTR(FUNC,1,1)) = E THEN FUNC = EDIT
ELSE FUNC = BROWSE
 
CHECK_CURSOR_DATA:
/*/
/* FIND AND SAVE CURRENT CURSOR LOCATION
   REPOSITION CURSOR TO DATA FIELD IF NECESSARY
   SET DATA LENGTH AND A LIST OF VALID DSN CHARACTERS
   DETERMINE IF CURSOR IS ON VALID DSN CHARACTER
   CHECK IF DSN OR DDNAME AND CALL APPROPRIATE ROUTINE */
/*/
 
ISREDIT (LIN,COL) = CURSOR
OLIN = LIN ; OCOL = COL
IF COL = 0 THEN
  DO
 ISREDIT FIND '.' .ZCSR .ZCSR
 IF RC = 4 THEN ISREDIT CURSOR = .ZCSR 1
 ISREDIT (LIN,COL) = CURSOR
  END
ISREDIT (DATA) = LINE .ZCSR
DATA = TRANSLATE(DATA)
LEN = LENGTH(DATA)
VAL = abcdefghijklmnopqrstuvw...@#$0123456789.()-+
IF VERIFY(SUBSTR(DATA,COL,1),VAL,N) \= 0 THEN
  DO
 SAY INVALID CURSOR LOCATION
 SIGNAL QUIT
  END
MEM = 
IF SUBSTR(DATA,1,2) = //  COL  POS( DD ,DATA) THEN CALL DDNAME
ELSE CALL DSNAME
 
PROCESS_STACK:
/*/
/* PULL DSN'S FROM STACK IN FIFO ORDER
   CHECK FOR SYMBOLICS AND TAKE APPROPRIATE ACTION
   PERFORM FIRST LEVEL CHECK USING SYSDSN
   PROTECT CURRENT STACK FROM RECURSIVE EDITS
   CHECK SYSDSN MSG AND DECIDE WHETHER TO PROCEED */
/*/
DO QUEUED()
PULL DSN
IF POS(,DSN) \= 0  POS(,DSN) = 0 THEN CALL SYMBOLIC
IF MEM \=  THEN DSN = DSN || ( || MEM || )
MSG = SYSDSN('DSN')
NEWSTACK
IF (MSG = INVALID DATASET NAME, 'DSN'  MEM = ) |,
   (MSG = MEMBER NOT FOUND  MEM = ) |,
   (MSG = OK) THEN INTERPRET CALL FUNC
ELSE SAY MSG - DSN
DELSTACK
END
 
QUIT:
/*/
/* RESET EXCLUDED LINES
   RETURN CURSOR TO ORIGINAL LOCATION
   EXIT FROM ZOOM */
/*/
 
ISREDIT RESET
ISREDIT CURSOR = 0LIN 0COL
EXIT
 
DDNAME:
/*/
/* THIS ROUTINE IS DESIGNED FOR JCL DDNAME PROCESSING
   SET CURRENT DDNAME
   DETERMINE TOTAL NUMBER OF LINES
   GET NEW LINE OF DATA IF NEEDED AND PARSE IT
   FIND ALL OCCURRENCES OF DSN= AND DSNAME= IN CURRENT
   DDNAME, REPOSITION CURSOR TO FIRST DSN POSITION, AND
   CALL DSNAME (DO NOT PROCESS JCL COMMENT STATEMENTS)
   IF CONCATENATION DETECTED (MORE THAN ONE DSN QUEUED)
   ASK USER IF MEMBER SEARCH IS DESIRED
   RETURN TO ORIGINAL CALLER */
/*/
 
DDN = SUBSTR(DATA,3,POS( ,DATA) - 3)
ISREDIT (LAST) = LINENUM .ZLAST
DO N = 1 TO (LAST - LIN + 1) BY 1
  IF N \= 1 THEN ISREDIT (DATA) = LINE LIN + N - 1
  PARSE VAR DATA V1 3 V2 V3 V4 V5
  IF V1 = // THEN
SELECT
  WHEN SUBSTR(DATA,3,1) = * THEN NOP
  WHEN SUBSTR(DATA,3,1) =   | N = 1 THEN
DO
  IF V2 \=   V3 = DD THEN V2 = V4
  IF V2 = DD THEN V2 = V3
  IF POS(DSNAME=,V2) \= 0 THEN
DO
  COL = POS(DSNAME=,DATA) + 7
  CALL DSNAME
END
  IF 

Re: instream data

2010-06-25 Thread Mark Zelden
On Fri, 25 Jun 2010 10:38:52 -0600, Howard Brazee howard.bra...@cusys.edu
wrote:

On Fri, 25 Jun 2010 10:34:01 -0600, Howard Brazee
howard.bra...@cusys.edu wrote:

On 25 Jun 2010 09:07:31 -0700, st...@trainersfriend.com (Steve
Comstock) wrote:

I'm pretty sure those are not generally distributed with z/OS.

I wonder how they got distributed to these different shops then.

Looking at the code, I see that Zoom is privately created:

/*PROGRAM:   ZOOM **
**AUTHOR:JOHN BUBENHEIM - UNION BANK **


snip

That program is also on CBT file 671 (http://www.cbttape.org) and indicates
it was copied from the TSO Times Fall 1994 edition, so it is not surprising it 
has made its way to more than one shop.  I looked at
http://www.tsotimes.com/archives.html and it looks like it only goes back
to 1995.

Regards,

Mark
--
Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS   
mailto:mzel...@flash.net  
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html 
Systems Programming expert at http://expertanswercenter.techtarget.com/



 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Point-and-shoot (was: instream data)

2010-06-25 Thread Dave Salt
Howard,

I think almost every mainframe shop has some form of ZOOM or PEEK or EDDSN 
(etc). These are often written by someone at the site or brought to the site by 
someone who used to work at a different site. They are almost always edit 
macros, which means you can only use them if you're editing or viewing a file. 
You cannot (for example) use them in browse or when you're on an ISPF menu or 
when you see a data set name in an ISPF message (etc).

AFAIK SimpList has the most powerful point-and-shoot utility. It can be used on 
any panel, even if the data set name isn't in the screen buffer. It can be used 
to point at data set names in messages, and members in concatenated libraries 
(such as programs called by other programs or copy books used by programs or 
PROCS called by drivers, etc).

If you click the following link and see the heading near the top called The 
most powerful point-and-shoot facility it tells you a bit more about it.

http://www.soft-center.com/SimpListFeatures.html 
 
Dave Salt

SimpList(tm) - try it; you'll get it! 

http://www.mackinney.com/products/program-development/simplist.html  






 Date: Fri, 25 Jun 2010 10:34:01 -0600
 From: howard.bra...@cusys.edu
 Subject: Re: instream data
 To: IBM-MAIN@bama.ua.edu
 
 On 25 Jun 2010 09:07:31 -0700, st...@trainersfriend.com (Steve
 Comstock) wrote:
 
 I'm pretty sure those are not generally distributed with z/OS.
 
 I wonder how they got distributed to these different shops then.
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
 Search the archives at http://bama.ua.edu/archives/ibm-main.html
  
_
Look 'em in the eye: FREE Messenger video chat
http://go.microsoft.com/?linkid=9734386
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Donald Johnson
I have a copy of a ZOOM exec, written by Doug Nadel in 1999, with updates in
2000 and 2001, using ZSCREENI and ZSCREENC. Not sure of its origin...
* Don *

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Instream Data

2010-06-25 Thread Dale Miller
If someone else has provided this information, I apologize, as I only  
get a digest-
There was, at one time, a submission on the CBT distribution, which  
provided a subsystem to accomplish just that purpose. I was able to do  
some interesting extensions to it, as well, but the politics of an  
absentee management structure led me to put myself out to pasture.  
Since I've retired, I have no access to my old stuff or an MVS system  
to dig into the CBT, so I can't refer you directly to which entry it  
is (or was).


Dale Miller

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Instream Data

2010-06-25 Thread McKown, John
http://cbttape.org/cbtdowns.htm

file #364 - Control Card Subsystem.

--
John McKown 
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

9151 Boulevard 26 * N. Richland Hills * TX 76010
(817) 255-3225 phone * (817)-961-6183 cell
john.mck...@healthmarkets.com * www.HealthMarkets.com

Confidentiality Notice: This e-mail message may contain confidential or 
proprietary information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. 
HealthMarkets(r) is the brand name for products underwritten and issued by the 
insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance 
Company(r), Mid-West National Life Insurance Company of TennesseeSM and The 
MEGA Life and Health Insurance Company.SM

 

 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:ibm-m...@bama.ua.edu] On Behalf Of Dale Miller
 Sent: Friday, June 25, 2010 1:26 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Re: Instream Data
 
 If someone else has provided this information, I apologize, 
 as I only  
 get a digest-
 There was, at one time, a submission on the CBT distribution, which  
 provided a subsystem to accomplish just that purpose. I was 
 able to do  
 some interesting extensions to it, as well, but the politics of an  
 absentee management structure led me to put myself out to pasture.  
 Since I've retired, I have no access to my old stuff or an 
 MVS system  
 to dig into the CBT, so I can't refer you directly to which entry it  
 is (or was).
 
 Dale Miller
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
 Search the archives at http://bama.ua.edu/archives/ibm-main.html
 
 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Kirk Wolf
Paul,

Since you mentioned the Unix shell vs JCL, why not use both?  Here's a
simple example of using the Unix shell with a 'here document' to do
parameter substitution for an instream dataset using JCL parameters:

// SET NEWGDG=FOO.BAR.MYGDG
// SET GDGLIM=3
//*
// EXEC PGM=COZBATCH, FREE BPXBATCH replacement
//  PARM='/NEWGDG=NEWGDG GDGLIM=GDGLIM'
//STDOUT DD DSN=TEMP,DISP=(NEW,PASS),
//  DCB=(RECFM=FB,LRECL=80),SPACE=(CYL,(1,1))
//STDIN DD *
cat EOD
 DEFINE GDG(NAME($NEWGDG) -
LIMIT($GDGLIM)-
NOEMPTY   -
SCRATCH)
EOD
//*
//DEFGDG EXEC PGM=IDCAMS
//SYSIN  DD DSN=TEMP,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=*
//

(And if you know the Unix shell, sed, awk, etc you can see how this could be
extended to do all sorts of file processing and symbol substitution in the
context of venerable JCL).

Of course, it would be much better if we could automatically import JCL
variables in the running program, and weren't limited by the pesky 100
character PARM= limit.  But we have a  workaround to the latter see
example #6 here:  http://dovetail.com/docs/cozbatch/examples.html

Regards,

Kirk Wolf
Dovetailed Technologies
http://dovetail.com

PS You going to SHARE in Boston?  We will be there on Tuesday doing  JZOS
meets Web 2.0

On Thu, Jun 24, 2010 at 8:48 PM, Paul Gilmartin paulgboul...@aim.comwrote:

 On Thu, 24 Jun 2010 13:37:50 -0500, Chris Mason wrote:
 
 You'll be wanting symbol substitution in the instream data next!
 
 Me, too!

 When I do an SMP/E zone definition (assuming I'm still
 allowed to) I'd cherish being able to define several
 symbols with JCL SET statements, they apply them in
 JCL DD statements (as I can today), and likewise in
 instream IDCAMS SYSIN and SMP/E UCLIN data sets (which
 I can not.

 The suggestion of a horde of PARMLIB members selected
 by symbol values and concatenated falls short because of
 namespace constraints.  And what happens if two symbols
 need to be substituted on the same line.  UNIX directories
 with members selected by parameters would much relieve
 those constraints, as would a multitude of PS data sets.
 But from an ISV perspective, how do the parmeter libraries
 get set up and populated?  I'd expect customers to see
 see either multiple PS data sets or multiple UNIX directories
 as unacceptable.  I'd rather supply a JCLLIB INCLUDE
 member that the customer could tailor and which would
 perform all necessary substitutions in DD and SYSIN and
 UCLIN.

 Oh! the answer to your question is that a procedure consists of job
 control
 language statements and the card images between the //x DD * and /*
 card images are not job control language statements.
 
 Which is hardly an answer at all.  On recognizing instream
 data, the reader shunts it aside to a data set and replaces
 it in the JCL with a reference to that data set.  I see no
 reason that shouldn't work as well within a PROC as in open
 code.

 Symbol substitution would greatly complicate it; it
 would require substituting symbol values at the point
 of PROC call rather than at the point of PROC definition.
 Still a worthwhile facility.  I'm accustomed to doing
 it in POSIX shell scripts; it would be equally useful
 in MVS JCL.  Implementation: UNIX sh generally copies
 instream data to a file and then passes that file to
 the command executed.  But it does the Right Thing
 (unlike JCL) and does the copy at the point of procedure
 call rather than at procedure definition, and substitutes
 symbols (optionally, of course) with their values at
 the point of call.

 -- gil

 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
 Search the archives at http://bama.ua.edu/archives/ibm-main.html


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Shmuel Metz (Seymour J.)
In 4c2348ff.6f0f.008...@efirstbank.com, on 06/24/2010
   at 11:59 AM, Frank Swarbrick frank.swarbr...@efirstbank.com said:

Now that we've been on z/OS for a few weeks I feel to need to ask a
question that has annoyed me since I started working on z/OS two
years ago.  Instream datasets are good.  Why are they not supported
inside of procs?

Because of the original implementation of the Reader/Interpreter in
OS/360.

Is there a technical reason, or is it just because?

No; there's an economic and political reason; someone would have to
formally request it and provide a compelling business case. The same
applies to an option for substituting variables in instream data
sets[1]; it won't happen unless enough customers ask for it and
provide business cases.

We use procs for almost all of our production jobs, with many steps
that could take advantage of instream datasets if not for this
restriction.

Is that sound configuration management? Are those data that you might
want to change without changing the JCL, or vice versa?

[1] Which IMHO is long overdue.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Frank Swarbrick
 On 6/25/2010 at 6:33 AM, in message
20100625225945.4c9f5f58...@smtp.patriot.net, Shmuel Metz (Seymour J.)
shmuel+ibm-m...@patriot.net wrote:
 In 4c2348ff.6f0f.008...@efirstbank.com, on 06/24/2010
at 11:59 AM, Frank Swarbrick frank.swarbr...@efirstbank.com said:
 
Now that we've been on z/OS for a few weeks I feel to need to ask a
question that has annoyed me since I started working on z/OS two
years ago.  Instream datasets are good.  Why are they not supported
inside of procs?
 
 Because of the original implementation of the Reader/Interpreter in
 OS/360.
 
Is there a technical reason, or is it just because?
 
 No; there's an economic and political reason; someone would have to
 formally request it and provide a compelling business case. The same
 applies to an option for substituting variables in instream data
 sets[1]; it won't happen unless enough customers ask for it and
 provide business cases.
 
We use procs for almost all of our production jobs, with many steps
that could take advantage of instream datasets if not for this
restriction.
 
 Is that sound configuration management? Are those data that you might
 want to change without changing the JCL, or vice versa?

I don't see there being an disadvantage to changing instream data in a JCL PDS 
member versus changing it in a parm PDS member.  Both have to go through the 
same change control to be implemented.
I see using a parm library being useful only if more than one job is sharing 
the same parm data, or for use in our operator controlled parm library (which 
is not controlled by change control).  But for most instream data, such as SORT 
control cards, it's simply a hassle.

Not sure if my business case of I just want it is a compelling business case. 
 :-)

Frank

-- 

Frank Swarbrick
Applications Architect - Mainframe Applications Development
FirstBank Data Corporation - Lakewood, CO  USA
P: 303-235-1403




The information contained in this electronic communication and any document 
attached hereto or transmitted herewith is confidential and intended for the 
exclusive use of the individual or entity named above.  If the reader of this 
message is not the intended recipient or the employee or agent responsible for 
delivering it to the intended recipient, you are hereby notified that any 
examination, use, dissemination, distribution or copying of this communication 
or any part thereof is strictly prohibited.  If you have received this 
communication in error, please immediately notify the sender by reply e-mail 
and destroy this communication.  Thank you.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-25 Thread Paul Gilmartin
On Fri, 25 Jun 2010 16:50:23 -0500, Kirk Wolf wrote:

Since you mentioned the Unix shell vs JCL, why not use both?  Here's a
simple example of using the Unix shell with a 'here document' to do
parameter substitution for an instream dataset using JCL parameters:

// SET NEWGDG=FOO.BAR.MYGDG
// SET GDGLIM=3
//*
// EXEC PGM=COZBATCH, FREE BPXBATCH replacement
//  PARM='/NEWGDG=NEWGDG GDGLIM=GDGLIM'
//STDOUT DD DSN=amp;TEMP,DISP=(NEW,PASS),
//  DCB=(RECFM=FB,LRECL=80),SPACE=(CYL,(1,1))
//STDIN DD *
cat EOD
 DEFINE GDG(NAME($NEWGDG) -
LIMIT($GDGLIM)-
NOEMPTY   -
SCRATCH)
EOD
//*
//DEFGDG EXEC PGM=IDCAMS
//SYSIN  DD DSN=amp;TEMP,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=*
//

I haven't yet ventured into the Co:Z arena, so I'd:

#! /bin/sh

# Could be arguments to script or read in from
# a library member.
#
NEWGDG=FOO.BAR.MYGDG
GDGLIM=3

submit EOD
//
//NAME  JOB  ...
//*
//DEFGDG EXEC PGM=IDCAMS
//SYSIN DD *
 DEFINE GDG(NAME($NEWGDG) -
LIMIT($GDGLIM)-
NOEMPTY   -
SCRATCH)
//SYSPRINT DD SYSOUT=*
//
EOD

Fewer steps and no 100-character PARM limit.

I do this regularly; it's my modal technique for manipulating
JCL.  Would other IBM-MAIN contributors predict the modal
reaction of customers if I inflicted this on them?  Or made
fourth-party utilities (however free if unsupported) a
prerequisite?

(And if you know the Unix shell, sed, awk, etc you can see how this could be
extended to do all sorts of file processing and symbol substitution in the
context of venerable JCL).

Some, but not so much as I rely on looping and function calls in
the shell to shift that elaboration from C/I to shell.

Wouldn't it be great if the C/I could run shell scripts
(or Rexx, or Perl or ...)?

//NAME  SHELL,DLM=EOD
...
shell commands, executed after substituting JCL symbols,
whose stdout is fed back to the C/I input stream.
...
EOD

(Just seeking the least cognitive dissonance to dinos.)
   
Of course, it would be much better if we could automatically import JCL
variables in the running program, and weren't limited by the pesky 100
character PARM= limit.  But we have a  workaround to the latter see
example #6 here:  http://dovetail.com/docs/cozbatch/examples.html

A common technique.  I suppose that in some cases it threatens
the limit of the number of job steps.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


instream data

2010-06-24 Thread Frank Swarbrick
Now that we've been on z/OS for a few weeks I feel to need to ask a question 
that has annoyed me since I started working on z/OS two years ago.  Instream 
datasets are good.  Why are they not supported inside of procs?  Is there a 
technical reason, or is it just because?  We use procs for almost all of our 
production jobs, with many steps that could take advantage of instream datasets 
if not for this restriction.

Thanks,
Frank

-- 

Frank Swarbrick
Applications Architect - Mainframe Applications Development
FirstBank Data Corporation - Lakewood, CO  USA
P: 303-235-1403


 

The information contained in this electronic communication and any document 
attached hereto or transmitted herewith is confidential and intended for the 
exclusive use of the individual or entity named above.  If the reader of this 
message is not the intended recipient or the employee or agent responsible for 
delivering it to the intended recipient, you are hereby notified that any 
examination, use, dissemination, distribution or copying of this communication 
or any part thereof is strictly prohibited.  If you have received this 
communication in error, please immediately notify the sender by reply e-mail 
and destroy this communication.  Thank you.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Mark Jacobs

On 06/24/10 13:59, Frank Swarbrick wrote:

Now that we've been on z/OS for a few weeks I feel to need to ask a question that has 
annoyed me since I started working on z/OS two years ago.  Instream datasets are good.  
Why are they not supported inside of procs?  Is there a technical reason, or is it just 
because?  We use procs for almost all of our production jobs, with many steps 
that could take advantage of instream datasets if not for this restriction.

Thanks,
Frank

   


My WAG would be a combination of the two. There might have been a good 
technical reason why not and to change the rules 40+ years after the 
fact might break working processes in unexpected ways.


--
Mark Jacobs
Time Customer Service
Tampa, FL


Serendipity is looking for a needle in a haystack
and discovering a farmer's daughter.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Howard Brazee
On 24 Jun 2010 11:09:39 -0700, mark.jac...@custserv.com (Mark Jacobs)
wrote:

On 06/24/10 13:59, Frank Swarbrick wrote:
 Now that we've been on z/OS for a few weeks I feel to need to ask a question 
 that has annoyed me since I started working on z/OS two years ago.  Instream 
 datasets are good.  Why are they not supported inside of procs?  Is there a 
 technical reason, or is it just because?  We use procs for almost all of 
 our production jobs, with many steps that could take advantage of instream 
 datasets if not for this restriction.

 Thanks,
 Frank



My WAG would be a combination of the two. There might have been a good 
technical reason why not and to change the rules 40+ years after the 
fact might break working processes in unexpected ways.

Besides anything can break if it is touched, I'm not thinking of how
his proposed change would break existing procs.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread McKown, John
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:ibm-m...@bama.ua.edu] On Behalf Of Frank Swarbrick
 Sent: Thursday, June 24, 2010 1:00 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: instream data
 
 Now that we've been on z/OS for a few weeks I feel to need to 
 ask a question that has annoyed me since I started working on 
 z/OS two years ago.  Instream datasets are good.  Why are 
 they not supported inside of procs?  Is there a technical 
 reason, or is it just because?  We use procs for almost all 
 of our production jobs, with many steps that could take 
 advantage of instream datasets if not for this restriction.
 
 Thanks,
 Frank
 
 -- 
 
 Frank Swarbrick

That has been a restriction since the dawn of OS/360. In that case, I think it 
was due to the primitive nature of the reader code. IIRC, the original reader 
code (pre HASP), read cards from the card reader. When it detected in-stream 
data, it actually created an temporary OS dataset and wrote the cards into 
that dataset. The processing of PROCs (expansion) was done in another part of 
the code, not in the actual reader. So, to have in stream data would require 
a more complicated and advanced expansion. And that was not really possible at 
the time.

To the best of my limited knowledge, JES2 still sort of works this way. JCL is 
read in and written to the job's JESJCL SPOOL dataset. Instream data causes the 
allocation of a separate SPOOL dataset, with the data being written to it. When 
th end of the instream data is detected, this sysin SPOOL dataset is close 
and JES resumes writing the JCL images to the JESJCL SPOOL dataset. Once the 
job is totally read in, JES2 invokes a z/OS supplied routine to convert the JCL 
to internal text. If instream data were allowed in a PROC, this converter would 
need to know how to process it and create/write it to the a new JES SPOOL 
dataset. Which it does not know how to do. IIRC, JES passes parameters to the 
converter so that it can read the JESJCL SPOOL dataset and write to the 
$INTTEXT SPOOL dataset. But the converter does not have an interface create and 
write to a new sysin type SPOOL dataset.

Of course, that is not really a good reason to continue to have this 
restriction, IMO.

--
John McKown 
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

9151 Boulevard 26 * N. Richland Hills * TX 76010
(817) 255-3225 phone * (817)-961-6183 cell
john.mck...@healthmarkets.com * www.HealthMarkets.com

Confidentiality Notice: This e-mail message may contain confidential or 
proprietary information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. 
HealthMarkets(r) is the brand name for products underwritten and issued by the 
insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance 
Company(r), Mid-West National Life Insurance Company of TennesseeSM and The 
MEGA Life and Health Insurance Company.SM

 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Chris Mason
Frank

You'll be wanting symbol substitution in the instream data next!

That actually was I wanted to help me manage for my test/education systems 
where I did a great deal of work at the (VM) console. I just wanted to be able 
to set up started task procedures in order to do all sorts of operations 
without 
having to bother to start up TSO. This often meant setting up procedures 
calling utility programs which - since time immemorial - make that the mid-
'60s - have used much of the time trivial statements in a SYSIN data set.

If I anticipate what I usually need I can set up a started task procedure with 
a suitable name with suitable symbol variables. I then used a little program I 
wrote - no longer available I'm afraid to say - which converted the PARM data 
into card image records. Naturally I needed a convention for special 
characters in order to cause the start of a new record and so on.

Obviously the temporary output data set from this little program is the 
typically SYSIN data set of a following utility program step. And, as you might 
guess, there is a further step which is another little program - also no longer 
available I'm afraid to say - which can take the temporary output, SYSPRINT 
often, data set from the utility and print it with WTO statements on the 
(VM) console.

Note that sometimes the function was performed with batch TSO - still 
not having to bother to start up TSO, as it were.

In this way I get both to have a procedure which benefits from sort-
of instream data *and* symbol substitution!

-

Oh! the answer to your question is that a procedure consists of job control 
language statements and the card images between the //x DD * and /* 
card images are not job control language statements.

Chris Mason

On Thu, 24 Jun 2010 11:59:59 -0600, Frank Swarbrick 
frank.swarbr...@efirstbank.com wrote:

Now that we've been on z/OS for a few weeks I feel to need to ask a 
question that has annoyed me since I started working on z/OS two years 
ago.  Instream datasets are good.  Why are they not supported inside of 
procs?  Is there a technical reason, or is it just because?  We use procs for 
almost all of our production jobs, with many steps that could take advantage 
of instream datasets if not for this restriction.

Thanks,
Frank

--

Frank Swarbrick
Applications Architect - Mainframe Applications Development
FirstBank Data Corporation - Lakewood, CO  USA
P: 303-235-1403

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Steve Comstock

Mark Jacobs wrote:

On 06/24/10 13:59, Frank Swarbrick wrote:
Now that we've been on z/OS for a few weeks I feel to need to ask a 
question that has annoyed me since I started working on z/OS two years 
ago.  Instream datasets are good.  Why are they not supported inside 
of procs?  Is there a technical reason, or is it just because?  We 
use procs for almost all of our production jobs, with many steps that 
could take advantage of instream datasets if not for this restriction.


Thanks,
Frank

   


My WAG would be a combination of the two. There might have been a good 
technical reason why not and to change the rules 40+ years after the 
fact might break working processes in unexpected ways.




'sFunny, I didn't see your original post, Frank. Are you not
posting to list directly now?

Anyway, it is what it is. But a simple xx.PARMLIB with members that
contain what you would put into instream data seems to work just fine,
right? Out of curiosity, why do you consider instream data better than
that?


--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Gibney, Dave
 -Original Message-
 From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
 Behalf Of Frank Swarbrick
 Sent: Thursday, June 24, 2010 11:00 AM
 To: IBM-MAIN@bama.ua.edu
 Subject: instream data
 
 Now that we've been on z/OS for a few weeks I feel to need to ask a
 question that has annoyed me since I started working on z/OS two years
 ago.  Instream datasets are good.  Why are they not supported inside
of
 procs?  Is there a technical reason, or is it just because?  We use
 procs for almost all of our production jobs, with many steps that
could
 take advantage of instream datasets if not for this restriction.

  Well, I might argue with the assertion Instream datasets are good as
I try to avoid them in production jobs, but that's just me. I put most
such data as members of a datalib PDS(E).
On the other hand, it is quite possible to use overrides to make
instream data available to a PROC step (it is trickier to get it into a
nested PROC)

//STEP1 EXEC MYPROC
//SYSIN DD *
Stuff

//MYPROC PROC
//MYSTEP EXEC PGM=MYPGM
//SYSIN DD etc.
// PEND


Dave Gibney
Information Technology Services
Washington State University
 
 Thanks,
 Frank
 
 --
 
 Frank Swarbrick
 Applications Architect - Mainframe Applications Development
 FirstBank Data Corporation - Lakewood, CO  USA
 P: 303-235-1403
 
 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Steve Comstock

Frank Swarbrick wrote:

Now that we've been on z/OS for a few weeks I feel to need to ask a question that has 
annoyed me since I started working on z/OS two years ago.  Instream datasets are good.  
Why are they not supported inside of procs?  Is there a technical reason, or is it just 
because?  We use procs for almost all of our production jobs, with many steps 
that could take advantage of instream datasets if not for this restriction.

Thanks,
Frank



Ah, here we are. I got the first reply before I got your
original post. That explains it. The wonders of email, eh?


--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Thompson, Steve
-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
Behalf Of McKown, John
Sent: Thursday, June 24, 2010 1:21 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: instream data

SNIPPAGE
That has been a restriction since the dawn of OS/360. In that case, I
think it was due to the primitive nature of the reader code. IIRC, the
original reader code (pre HASP), read cards from the card reader. When
it detected in-stream data, it actually created an temporary OS
dataset and wrote the cards into that dataset. The processing of PROCs
(expansion) was done in another part of the code, not in the actual
reader. So, to have in stream data would require a more complicated
and advanced expansion. And that was not really possible at the time.

SNIP JES2 specific comment

Of course, that is not really a good reason to continue to have this
restriction, IMO.
SNIPPAGE

Let us not forget JES3 (ASP). Interestingly JES2 supports a larger
in-stream LRECL than JES3 does (or did, they may have fixed that in the
last few releases).

Regards,
Steve Thompson

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Frank Swarbrick
Steve,

That is, in fact, exactly what we have:
//PROC DDAR02 PARMENV=PROD.APPLIB
//SORT EXEC PGM=SORT
//DFSPARM  DD DSN=PARMENV..PARM(DDAR021),
//DISP=SHR

I simply would prefer to see:

//PROC DDAR02
//SORT EXEC PGM=SORT
//DFSPARM  DD *
 SORT FIELDS=(1,10,PD,A,   
  13,4,PD,A,   
  17,4,PD,A,   
  11,2,PD,A),  
  EQUALS   

Someone here did write a nice PEEK command where we type PEEK on the command 
line and put our cursor on the DD statement and it will go to the correct 
library and pull up the member.  But instream still seems to me to be better.

Frank
-- 

Frank Swarbrick
Applications Architect - Mainframe Applications Development
FirstBank Data Corporation - Lakewood, CO  USA
P: 303-235-1403


On 6/24/2010 at 12:46 PM, in message 4c23a807.8060...@trainersfriend.com,
Steve Comstock st...@trainersfriend.com wrote:
 Mark Jacobs wrote:
 On 06/24/10 13:59, Frank Swarbrick wrote:
 Now that we've been on z/OS for a few weeks I feel to need to ask a 
 question that has annoyed me since I started working on z/OS two years 
 ago.  Instream datasets are good.  Why are they not supported inside 
 of procs?  Is there a technical reason, or is it just because?  We 
 use procs for almost all of our production jobs, with many steps that 
 could take advantage of instream datasets if not for this restriction.

 Thanks,
 Frank


 
 My WAG would be a combination of the two. There might have been a good 
 technical reason why not and to change the rules 40+ years after the 
 fact might break working processes in unexpected ways.
 
 
 'sFunny, I didn't see your original post, Frank. Are you not
 posting to list directly now?
 
 Anyway, it is what it is. But a simple xx.PARMLIB with members that
 contain what you would put into instream data seems to work just fine,
 right? Out of curiosity, why do you consider instream data better than
 that?
 

 

The information contained in this electronic communication and any document 
attached hereto or transmitted herewith is confidential and intended for the 
exclusive use of the individual or entity named above.  If the reader of this 
message is not the intended recipient or the employee or agent responsible for 
delivering it to the intended recipient, you are hereby notified that any 
examination, use, dissemination, distribution or copying of this communication 
or any part thereof is strictly prohibited.  If you have received this 
communication in error, please immediately notify the sender by reply e-mail 
and destroy this communication.  Thank you.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Howard Brazee
On 24 Jun 2010 13:13:25 -0700, frank.swarbr...@efirstbank.com (Frank
Swarbrick) wrote:

//PROC DDAR02
//SORT EXEC PGM=SORT
//DFSPARM  DD *
 SORT FIELDS=(1,10,PD,A,   
  13,4,PD,A,   
  17,4,PD,A,   
  11,2,PD,A),  
  EQUALS   

Someone here did write a nice PEEK command where we type PEEK on the command 
line and put our cursor on the DD statement and it will go to the correct 
library and pull up the member.  But instream still seems to me to be better.

Frank

Is that like the ZOOM or SHOWPROC commands that have come with MVS for
a decade or so?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Frank Swarbrick
No idea.
I have not been on MVS for decades.

On 6/24/2010 at 2:43 PM, in message
opg726pc9c7v80nvstalto1d1c7b3o7...@4ax.com, Howard Brazee
howard.bra...@cusys.edu wrote:
 On 24 Jun 2010 13:13:25 -0700, frank.swarbr...@efirstbank.com (Frank
 Swarbrick) wrote:
 
//PROC DDAR02
//SORT EXEC PGM=SORT
//DFSPARM  DD *
 SORT FIELDS=(1,10,PD,A,   
  13,4,PD,A,   
  17,4,PD,A,   
  11,2,PD,A),  
  EQUALS   

Someone here did write a nice PEEK command where we type PEEK on the command 
 line and put our cursor on the DD statement and it will go to the correct 
 library and pull up the member.  But instream still seems to me to be better.

Frank
 
 Is that like the ZOOM or SHOWPROC commands that have come with MVS for
 a decade or so?
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
 Search the archives at http://bama.ua.edu/archives/ibm-main.html

 

The information contained in this electronic communication and any document 
attached hereto or transmitted herewith is confidential and intended for the 
exclusive use of the individual or entity named above.  If the reader of this 
message is not the intended recipient or the employee or agent responsible for 
delivering it to the intended recipient, you are hereby notified that any 
examination, use, dissemination, distribution or copying of this communication 
or any part thereof is strictly prohibited.  If you have received this 
communication in error, please immediately notify the sender by reply e-mail 
and destroy this communication.  Thank you.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Steve Comstock

Frank Swarbrick wrote:

Steve,

That is, in fact, exactly what we have:
//PROC DDAR02 PARMENV=PROD.APPLIB
//SORT EXEC PGM=SORT
//DFSPARM  DD DSN=PARMENV..PARM(DDAR021),
//DISP=SHR


I simply would prefer to see:

//PROC DDAR02
//SORT EXEC PGM=SORT
//DFSPARM  DD *
 SORT FIELDS=(1,10,PD,A,   
  13,4,PD,A,   
  17,4,PD,A,   
  11,2,PD,A),  
  EQUALS   

Someone here did write a nice PEEK command where we type PEEK on the command 
line and put our cursor on the DD statement and it will go to the correct 
library and pull up the member.  


Try this: from the screen where you do the PEEK, issue the KEYS command
and assign a key, say PF4, to :PEEK like:

F4  :PEEK___

then end (F3) to save your changes and try placing the cursor on
the DD statement and pressing F4. Might make life simpler.



But instream still seems to me to be better.

Frank



--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Mark Zelden
On Thu, 24 Jun 2010 14:43:06 -0600, Howard Brazee howard.bra...@cusys.edu
wrote:

On 24 Jun 2010 13:13:25 -0700, frank.swarbr...@efirstbank.com (Frank
Swarbrick) wrote:

//PROC DDAR02
//SORT EXEC PGM=SORT
//DFSPARM  DD *
 SORT FIELDS=(1,10,PD,A,
  13,4,PD,A,
  17,4,PD,A,
  11,2,PD,A),
  EQUALS

Someone here did write a nice PEEK command where we type PEEK on the
command line and put our cursor on the DD statement and it will go to the
correct library and pull up the member.  But instream still seems to me to
be better.

Frank

Is that like the ZOOM or SHOWPROC commands that have come with MVS for
a decade or so?


Come with MVS?  Please point me to where these are distributed if you can
because I've only seen home grown utilities of this nature (including my
own).

Mark
--
Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS   
mailto:mzel...@flash.net  
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html 
Systems Programming expert at http://expertanswercenter.techtarget.com/

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: instream data

2010-06-24 Thread Paul Gilmartin
On Thu, 24 Jun 2010 13:37:50 -0500, Chris Mason wrote:

You'll be wanting symbol substitution in the instream data next!

Me, too!

When I do an SMP/E zone definition (assuming I'm still
allowed to) I'd cherish being able to define several
symbols with JCL SET statements, they apply them in
JCL DD statements (as I can today), and likewise in
instream IDCAMS SYSIN and SMP/E UCLIN data sets (which
I can not.

The suggestion of a horde of PARMLIB members selected
by symbol values and concatenated falls short because of
namespace constraints.  And what happens if two symbols
need to be substituted on the same line.  UNIX directories
with members selected by parameters would much relieve
those constraints, as would a multitude of PS data sets.
But from an ISV perspective, how do the parmeter libraries
get set up and populated?  I'd expect customers to see
see either multiple PS data sets or multiple UNIX directories
as unacceptable.  I'd rather supply a JCLLIB INCLUDE
member that the customer could tailor and which would
perform all necessary substitutions in DD and SYSIN and
UCLIN.

Oh! the answer to your question is that a procedure consists of job control
language statements and the card images between the //x DD * and /*
card images are not job control language statements.

Which is hardly an answer at all.  On recognizing instream
data, the reader shunts it aside to a data set and replaces
it in the JCL with a reference to that data set.  I see no
reason that shouldn't work as well within a PROC as in open
code.

Symbol substitution would greatly complicate it; it
would require substituting symbol values at the point
of PROC call rather than at the point of PROC definition.
Still a worthwhile facility.  I'm accustomed to doing
it in POSIX shell scripts; it would be equally useful
in MVS JCL.  Implementation: UNIX sh generally copies
instream data to a file and then passes that file to
the command executed.  But it does the Right Thing
(unlike JCL) and does the copy at the point of procedure
call rather than at procedure definition, and substitutes
symbols (optionally, of course) with their values at
the point of call.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: PUBLIBZ (was: TSO TRANSMIT and instream data set DLM=)

2008-02-01 Thread Walt Farrell
On Mon, 28 Jan 2008 20:22:34 -0600, Paul [EMAIL PROTECTED]
[EMAIL PROTECTED] wrote:
BTW, is there a new format of Publibz?  Suddenly, I seem to
be required to display a shelf list before I can filter for
a string in a publication title.  This could be undesirable
on a slow connection.  I'll have to see whether I get used
to it.  

IBM changed some internal tools and the templates used for developing IBM
web pages, and the library maintainer found that his automated tools for
maintaing the library pages would not work any more.  In addition, the
library has enough pages that he could not maintain them manually.  Removing
the ability to search for books by title before displaying the list allowed
continued use of the automated tools, so that's the approach he took.

He has now figured out another design for the library web pages that allowed
a reasonable way to maintain them, and still allows the title search
function to work.  The new pages are live now, and you can find them in the
same place.  They have a different format, but the function works well, in
my opinion.

For z/OS R9, see http://www-03.ibm.com/systems/z/os/zos/bkserv/v1r9books.html

-- 
  Walt Farrell, CISSP
  IBM STSM, z/OS Security Design

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: PUBLIBZ (was: TSO TRANSMIT and instream data set DLM=)

2008-02-01 Thread Paul Gilmartin
On Fri, 1 Feb 2008 12:45:09 -0600, Walt Farrell wrote:

He has now figured out another design for the library web pages that allowed
a reasonable way to maintain them, and still allows the title search
function to work.  The new pages are live now, and you can find them in the
same place.  They have a different format, but the function works well, in
my opinion.

Thanks.

Aw, shucks; I raised my hopes falsely.  I notice that once
I display a list of selected documents, I see a Search
Documents option -- I thought, just what I long wanted:
a facility to search for keywords in a subset of documents
selected by title.  Alas, it doesn't do that; it goes back
and searches the entire shelf.

The search is so fast it scarcely matters to me; I just feel
a little guilt at spending IBM's cycles.

For z/OS R9, see http://www-03.ibm.com/systems/z/os/zos/bkserv/v1r9books.html

Thanks for not putting a period after the URL.  I hate when people
do that.

Thanks,
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-30 Thread Veilleux, Jon L
Paul Gilmartin wrote:
BTW, is there a new format of Publibz?  Suddenly, I seem to be required
to display a shelf list before I can filter for a string in a
publication title.  This could be undesirable on a slow connection.
I'll have to see whether I get used to it.  (I really wish I could have
searched for TRANSMIT
in all publications whose titles contain TSO.)


I think that the new format sucks. It is harder to search for
information if you are not sure to which component it belongs. Also, I
don't remember seeing any notice that there was going to be a change.
Are these the same people who keep updating IBMLINK without telling
anyone???
Jon


Jon L. Veilleux
[EMAIL PROTECTED]
(860) 636-2683 

This e-mail may contain confidential or privileged information. If
you think you have received this e-mail in error, please advise the
sender by reply e-mail and then delete this e-mail immediately.
Thank you. Aetna   

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-30 Thread Tony Harminc
On Tue, 29 Jan 2008 19:49:03 -0600, Paul Gilmartin [EMAIL PROTECTED]
wrote:

On Tue, 29 Jan 2008 13:47:24 -0500, John Eells wrote:

See APAR OA19194, which makes AMATERSE, alias TRSMAIN, available on z/OS
R7 and up.

Hmmm.  I see DD names are now SYSUT1 and SYSUT2 instead of
INFILE and OUTFILE.  I guess Standards is Good.  Does it now
respect alternate DD name lists?

It claims to. And if you use the TRSMAIN alias, it uses the old DDNAMEs by
default. This part is quite nicely done, by the look of things.

Tony H.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-29 Thread Roy Hewitt

Paul [EMAIL PROTECTED] wrote:

One of my disappointments with TSO TRANSMIT is that I know
no safe way to imbed INMR text in an instream data set:
the format seems to allow any digraph to appear in columns
1-2.  But today, attempting to test a trial-and-error routine
to scan a TRANSMITted IEBCOPY unloaded JCL library for a
digraph not appearing in columns 1-2, I was startled to
find no '//' (but many '/*') in those columns.  I consider
this a statistical anomaly -- I found numerous '//' in 2-3
and wrapped from 80-1.  Have the authors done us a favor by
coding to avoid '//' in 1-2?  I can find no mention of this
in the documentation.  I'd be delighted to exploit the feature  
if I were confident it was supported.


BTW, is there a new format of Publibz?  Suddenly, I seem to
be required to display a shelf list before I can filter for
a string in a publication title.  This could be undesirable
on a slow connection.  I'll have to see whether I get used
to it.  (I really wish I could have searched for TRANSMIT
in all publications whose titles contain TSO.)

-- gil

Paul,

See the following as an example of how to include such data instream 
using standard IBM utilities. This example includes Terse output (but 
could easily be Transmit), that has been reformatted as 64 bytes and 
offset to pos 3.


It uses the fact that the lrecl for a dataset can be overridden so long 
as is still valid for the blocksize. So we override to 64 on the SPLIT 
step, then back to 1024 on the unterse step..(also watch the nested DLMs 
XX, YY,ZZ!!!)


I'd like to take credit for it;-).. but the IEBGENER/IEBDG steps are 
based on the method that IBM uses within z/OS HCD to transmit IODFs..I 
just adapted it to use DSS/TRSMAIN input


Cheers

roy


//jobname  JOB (0),'XMIT IODF', 

// NOTIFY=SYSUID, 


// CLASS=X,MSGCLASS=A
//* 

//*  DSS DUMP IODF TO TEMPORARY FILE 

//* 

//DSS  EXEC PGM=ADRDSSU 

//SYSPRINT  DD SYSOUT=* 

//DUMP  DD DSN=DSSIODF,DISP=(,PASS), 

// UNIT=SYSDA,SPACE=(CYL,(50,50),RLSE) 

//SYSIN DD * 

DUMP  DATASET (INCLUDE (- 

  SYSX.IODF0B.CLUSTER  - 

  ))- 

  ALLDATA(*) ALLEXCP - 

  OUTDD(DUMP) 

/* 

//* 

//*  TERSE THE DSS DUMP 

//* 

//TERSE EXEC PGM=TRSMAIN,PARM='PACK' 

//SYSPRINT  DD SYSOUT=*,DCB=(LRECL=133,BLKSIZE=12901,RECFM=FBA) 

//INFILEDD DISP=OLD,DSN=DSSIODF 

//OUTFILE   DD DISP=(,PASS),DSN=TERIODF, 

// UNIT=SYSDA,SPACE=(CYL,(50,10),RLSE) 

//* 

//*  OVERRIDE THE LRECL TO SPLIT INTO 64 BYTE CHUNKS 

//*  AND SHIFT TO COL3. THIS ALLOWS TO BE SUBMITTED 


//*  INSTREAM.
//*
//*  This Step uses the technique of overriding the lrecl
//*  of the previous terse output to 64.
//*  This works as 64 is a common factor of 1024
//*  (and thus of the blocksize)
//*  If you use this for other than terse with other lrecls
//*  ie 80, then ensure the blocksize is a multiple of 64 ie 8000 

//* 

//SPLIT EXEC PGM=IEBDG 

//SYSPRINT  DD SYSOUT=* 

//INDD DSN=TERIODF,DISP=OLD, 

//LRECL=64,RECFM=FB 

//OUT   DD DSN=SPLIT,DISP=(,PASS),SPACE=(CYL,(50,10),RLSE), 

//LRECL=80,RECFM=FB 

//SYSIN DD * 

 DSD OUTPUT=(OUT),INPUT=(IN) 

  FD NAME=FD1,LENGTH=2 

  FD NAME=FD2,LENGTH=64,STARTLOC=3,FROMLOC=1,INPUT=IN 

  CREATE NAME=(FD1,FD2),INPUT=IN 

  END 

//* 

//*  NOW SUBMIT TO REMOTE NODE 

//* 

//SUBMIT EXEC PGM=IEBGENER 

//SYSINDD DUMMY 

//SYSPRINT DD DUMMY 

//SYSUT2   DD SYSOUT=(,INTRDR) 

//SYSUT1   DD DATA,DLM=ZZ 

//jobname  JOB (0),'RESTORE IODF', 

// NOTIFY=SYSUID, 


// CLASS=X,MSGCLASS=A
/*ROUTE XEQ remote node 

//* 

//*  RE-JOIN 64 BIT CHUNKS TO CREATE THE TERSED FILE 

//* 

//JOIN EXEC PGM=IEBGENER 

//SYSPRINT DD   SYSOUT=* 

//SYSINDD   * 

   GENERATE  MAXFLDS=1 

   RECORDFIELD=(64,3) 

//SYSUT2   DD  DISP=(,PASS),DSN=JOIN, 

//UNIT=SYSDA,SPACE=(CYL,(50,10),RLSE), 

//DCB=(RECFM=FB,LRECL=64,BLKSIZE=10240) 

//SYSUT1   DD  DATA,DLM=XX 

ZZ 

//DD   DSN=SPLIT,DISP=OLD 

//DD   DATA,DLM=YY 

XX 

//* 

//*  UN- TERSE FILE. 

//*  OVERRIDE LRECL TO 1024 

//* 

//UNTERSE   EXEC PGM=TRSMAIN,PARM='UNPACK' 

//SYSPRINT  DD SYSOUT=*,DCB=(LRECL=133,BLKSIZE=12901,RECFM=FBA) 

//INFILEDD DISP=OLD,DSN=JOIN,LRECL=1024 

//OUTFILE   DD DISP=(,PASS),DSN=DSSIODF, 

//  UNIT=SYSDA,SPACE=(CYL,(50,50),RLSE) 

//* 

//*  RESTORE DSSDUMP 

//* 

//DSSREST  EXEC PGM=ADRDSSU 

//SYSPRINT  DD SYSOUT=* 

//DUMP  DD DSN=DSSIODF,DISP=OLD 

//IODF  DD UNIT=3390,VOL=SER=IODF00,DISP=SHR 

//SYSIN DD * 

RESTORE  DATASET (INCLUDE (- 

  SYSY.IODF00.CLUSTER - 

  ))- 

  INDD(DUMP) OUTDD(IODF) 

/* 


YY

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives

Re: TSO TRANSMIT and instream data set DLM=

2008-01-29 Thread Walt Farrell
On Mon, 28 Jan 2008 20:22:34 -0600, Paul [EMAIL PROTECTED]
[EMAIL PROTECTED] wrote:
BTW, is there a new format of Publibz?  Suddenly, I seem to
be required to display a shelf list before I can filter for
a string in a publication title.  This could be undesirable
on a slow connection. 

Yes, they do seem to have implemented a new format.  So far, I think I like
the old method better, but we'll see.   On a slow connection, perhaps you
could let the list start loading then click the stop button in your
browser, then do the filtering.

 I'll have to see whether I get used
to it.  (I really wish I could have searched for TRANSMIT
in all publications whose titles contain TSO.)

TSO/E has its own bookshelf, so if you start by listing the shelves, you can
then locate an open the TSO/E shelf, and then search for TRANSMIT.

-- 
  Walt

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-29 Thread Paul Gilmartin
On Tue, 29 Jan 2008 09:33:23 +, Roy Hewitt wrote:

See the following as an example of how to include such data instream
using standard IBM utilities. This example includes Terse output (but
could easily be Transmit), that has been reformatted as 64 bytes and
offset to pos 3.

Thanks for suggesting the utilities.

Hmmm.  The largest divisor of 80 I could use is 40.  This cuts the
efficency to 50% from your 80% with TERSE.  That's still acceptable,
and I don't need TERSE which is not yet a standard IBM utility at
all supported releases.

I've done similar with uuencode as a test.

All things considered, I'd prefer not to frighten the customer with
complexity; I'll continue my trial-and-error search for a delimiter.
If I use only alphabetics and numerics, there are 3844 candidate
digraphs, which exceeds the number of records in my current TRANSMIT
archive, so I'm guaranteed a success; and even with a larger archive
the chance of failure is negligible.  In fact, it has always succeeded
for my data on the first trial.

I tried the experiment of putting a few records of all slashes in
my source PDS.  I did get '//' in 1-2, so my hopeful conjecture is
refuted.

Thanks again,
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-29 Thread Roy Hewitt

Paul Gilmartin wrote:

On Tue, 29 Jan 2008 09:33:23 +, Roy Hewitt wrote:

See the following as an example of how to include such data instream
using standard IBM utilities. This example includes Terse output (but
could easily be Transmit), that has been reformatted as 64 bytes and
offset to pos 3.


Thanks for suggesting the utilities.

Hmmm.  The largest divisor of 80 I could use is 40.  This cuts the
efficency to 50% from your 80% with TERSE.  That's still acceptable,
and I don't need TERSE which is not yet a standard IBM utility at
all supported releases.


Just to clarify, 64 has to be a factor of the blocksize, not the record 
length, so with FB 80, blksize=8000, you could still split up to 64 byte 
chunks


I've done similar with uuencode as a test.

All things considered, I'd prefer not to frighten the customer with
complexity; 


I can understand that

Roy

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-29 Thread John Eells

Paul Gilmartin wrote:
snip

Hmmm.  The largest divisor of 80 I could use is 40.  This cuts the
efficency to 50% from your 80% with TERSE.  That's still acceptable,
and I don't need TERSE which is not yet a standard IBM utility at
all supported releases.

snip

See APAR OA19194, which makes AMATERSE, alias TRSMAIN, available on z/OS 
R7 and up.  That's all supported releases since R6 is out of service and 
AMATERSE is included in z/OS R9.  The PTFs closed 4 November 2007.  They 
are:


UA36927 - z/OS R7
UA36928 - z/OS R8

--
John Eells
z/OS Technical Marketing
IBM Poughkeepsie
[EMAIL PROTECTED]

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-29 Thread Paul Gilmartin
On Tue, 29 Jan 2008 19:29:47 +, Roy Hewitt wrote:

 Hmmm.  The largest divisor of 80 I could use is 40.  This cuts the
 efficency to 50% from your 80% with TERSE.  That's still acceptable,
 and I don't need TERSE which is not yet a standard IBM utility at
 all supported releases.

Just to clarify, 64 has to be a factor of the blocksize, not the record
length, so with FB 80, blksize=8000, you could still split up to 64 byte
chunks

What happens if the last block contains 7920 characters, which is
not a multiple of 64?

If the dangling partial record were not a problem, one could use
BLKSIZE=6320 (i.e. 79*80), indent only one column, and use 79
characters per line.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-29 Thread Paul Gilmartin
On Tue, 29 Jan 2008 13:47:24 -0500, John Eells wrote:

See APAR OA19194, which makes AMATERSE, alias TRSMAIN, available on z/OS
R7 and up.  That's all supported releases since R6 is out of service and
AMATERSE is included in z/OS R9.  The PTFs closed 4 November 2007.  They
are:

UA36927 - z/OS R7
UA36928 - z/OS R8

Thanks.  Experimenting on R9.

Hmmm.  I see DD names are now SYSUT1 and SYSUT2 instead of
INFILE and OUTFILE.  I guess Standards is Good.  Does it now
respect alternate DD name lists?

But, YA case of anti-Unix-System-Services bigotry:

If I code:

//* =
//TESTCEXEC  PGM=AMATERSE,PARM=UNPACK
//* STEPLIB   DD DISP=SHR,DSN=STEPLIB
//SYSPRINT  DD SYSOUT=(,)
//SYSUT1DD   UNIT=SYSALLDA,SPACE=(CYL,0),
//  RECFM=FB,LRECL=1024,BLKSIZE=20480
//  DD PATHOPTS=ORDONLY,FILEDATA=BINARY,
//  RECFM=FB,LRECL=1024,BLKSIZE=20480,
//  PATH='/u/user/pmr70484.tersed'
//SYSUT2DD DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(10,10,DIR))
//*
//* =

... it runs fine with:

* TOP OF DATA **
** AMA572I STARTING TERSE DECODE   UNPACK   18:16:21  01/29/2008 
** AMA527I  INPUT  - DDNAME : SYSUT1   DSNAME: 
SYS08029.T181620.RA000.TERSEHFS.R
** AMA528I  OUTPUT - DDNAME : SYSUT2   DSNAME: 
SYS08029.T181620.RA000.TERSEHFS.R
** AMA555I  THE VALUES ARE:  BLKSIZE= 4160LRECL=4160PACKTYPE=SPACK  
 REC
** AMA573I TERSE COMPLETE DECODE   UNPACK   18:16:38  01/29/2008 
** AMA504I  RETURN CODE: 0
 BOTTOM OF DATA 

... but if I omit the empty CKD data set:

//* =
//TESTDEXEC  PGM=AMATERSE,PARM=UNPACK
//* STEPLIB   DD DISP=SHR,DSN=STEPLIB
//SYSPRINT  DD SYSOUT=(,)
//SYSUT1DD PATHOPTS=ORDONLY,FILEDATA=BINARY,
//  RECFM=FB,LRECL=1024,BLKSIZE=20480,
//  PATH='/u/user/pmr70484.tersed'
//SYSUT2DD DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(10,10,DIR))
//*
//* =

... it fails dreadfully with:

* TOP OF DATA **
** AMA572I STARTING TERSE DECODE   UNPACK   18:16:38  01/29/2008 
** AMA527I  INPUT  - DDNAME : SYSUT1   DSNAME: ...PATH=.SPECIFIED...
** AMA557E  FOR INPUT - ONLY SEQUENTIAL DATA SETS ARE SUPPORTED AT THIS TIME
** AMA564E  THIS IS NOT A RECOGNIZABLE TERSED DATA SET
** AMA573I TERSE COMPLETE DECODE   UNPACK   18:16:38  01/29/2008 
** AMA504I  RETURN CODE: 12
 BOTTOM OF DATA 

... Hmmm.  AT THIS TIME.  Does this mean there's hope for the
near future?  Why do they do this?  Are they insufficiently
motivated to test with all device types, and too ethical to
deny supporting something they haven't tested?  (People speak
of a time when TRSMAIN (not AMATERSE) was documented as not
supporting tape data sets, although the same people found it
appeared to work.)  In any case, uniform behavior over the
range of device types ought to be the responsibility of the
access method, not of the utility employing it.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TSO TRANSMIT and instream data set DLM=

2008-01-29 Thread Roy Hewitt

Paul Gilmartin wrote:

On Tue, 29 Jan 2008 19:29:47 +, Roy Hewitt wrote:

Hmmm.  The largest divisor of 80 I could use is 40.  This cuts the
efficency to 50% from your 80% with TERSE.  That's still acceptable,
and I don't need TERSE which is not yet a standard IBM utility at
all supported releases.

Just to clarify, 64 has to be a factor of the blocksize, not the record
length, so with FB 80, blksize=8000, you could still split up to 64 byte
chunks

What happens if the last block contains 7920 characters, which is
not a multiple of 64?


True..I hadn't really thought it through for FB 80. My usage has always 
been with lrecl(mod64)


Cheers

Roy

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


TSO TRANSMIT and instream data set DLM=

2008-01-28 Thread Paul [EMAIL PROTECTED]
One of my disappointments with TSO TRANSMIT is that I know
no safe way to imbed INMR text in an instream data set:
the format seems to allow any digraph to appear in columns
1-2.  But today, attempting to test a trial-and-error routine
to scan a TRANSMITted IEBCOPY unloaded JCL library for a
digraph not appearing in columns 1-2, I was startled to
find no '//' (but many '/*') in those columns.  I consider
this a statistical anomaly -- I found numerous '//' in 2-3
and wrapped from 80-1.  Have the authors done us a favor by
coding to avoid '//' in 1-2?  I can find no mention of this
in the documentation.  I'd be delighted to exploit the feature
if I were confident it was supported.

BTW, is there a new format of Publibz?  Suddenly, I seem to
be required to display a shelf list before I can filter for
a string in a publication title.  This could be undesirable
on a slow connection.  I'll have to see whether I get used
to it.  (I really wish I could have searched for TRANSMIT
in all publications whose titles contain TSO.)

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html