Re: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-16 Thread John Eells

Edward Jaffe wrote:
snip
However, when I experimented with this a while back, I found that it 
worked as expected only when the HLQs of the base name and alias were 
the same -- or more precisely -- expected to be in the same catalog.


I believe both the alias entry and the related object must be in the 
same catalog for data set aliasing to work.


I created a file called 'MYUID.BASE' and used SYMBOLICRELATE to create 
'SYS1.ALIAS.OF.BASE'. In my environment, data sets starting with MYUID 
are cataloged in a user catalog. Data sets starting with SYS1 are 
cataloged in the master catalog. Try as I might, I could not figure out 
how to get the system to see 'SYS1.ALIAS.OF.BASE' as an alias of 
'MYUID.BASE'. (Perhaps I overlooked something.)


I think this is because you did not place the entry for 
SYS1.ALIAS.OF.BASE in the usercat, but I don't have a system to test 
that assumption on these days.  You might try:


DEFINE -
  NONVSAM( -
NAME('MYUID.BASE') -
VOLUMES(volser) -
UNIT(3390)) -
  CATALOG('usercat.with.myuid.in.it')

DEFINE -
  ALIAS( -
NAME(SYS1.ALIAS.OF.BASE) -
RELATE(MYUID.BASE)) -
  CATALOG('usercat.with.myuid.in.it').

Omitting the CATALOG keyword will try to place the alias entry in the 
master catalog, and I think you'll see a message that says INVALID 
RELATED OBJECT.


Or...is this exactly what you tried, only to find that it didn't work?

The above restriction should not be important in most if not all system 
data set cases. Indeed, the example of SYS1.SBLSxxx vs 
SYS1.IPCS.SBLS is a classic example of where extended aliases would 
be applicable. Seems like ServerPac could distribute a procedure/program 
to create/issue the appropriate DEFINE ALIAS statements for any data 
sets whose HLQs were changed from the delivered defaults.


Extended aliases (those defined with SYMBOLICRELATE) don't work well 
(i.e., at all!) for entries in the master catalog.  Did you mean data 
set aliases?


I think you might recall the early days of the ADCD systems, for which I 
made all the data sets start with SYS1 for simplicity's sake*.  People 
complained because the data set names didn't match the books (a fair 
point!).  In the next iteration I used data set aliass.  Then, people 
complained because they thought the solution complex and because the 
allocated data set names didn't match those specified in JCL on on an 
ISPF panel (also fair, but the alternatives seemed worse).


(*This all happened before we put a stop to release-related qualifiers 
for z/OS data sets.  People stopped complaining when they found that 
migrations were dead easy from a catalog standpoint because the data set 
names didn't change.)


In other words, it certainly *sounds* like an attractive solution, but 
experience has shown me otherwise, and these days I aim for KISS-like 
solutions.


I highly recommend the use of static data set names from a catalog 
standpoint because it simplifies migration and removes opportunities for 
error.  Using the names we ship simplifies things more because one need 
not edit the PROCs, etc., we ship that name the data sets.  Of course, 
if you've been using different names for a Long Time, there can be 
significant migration effort needed to get there.  Nonetheless, it will 
probably pay you back...eventually.


--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-16 Thread Tom Marchant
On Wed, 16 Apr 2008 09:28:25 -0400, John Eells wrote:

Extended aliases (those defined with SYMBOLICRELATE) don't work well
(i.e., at all!) for entries in the master catalog.  Did you mean data
set aliases?

Really?  In what way do you mean?  I used them for an ISV product a few 
years ago and they seemed to work quite nicely.

-- 
Tom Marchant

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-16 Thread John Eells

Tom Marchant wrote:

On Wed, 16 Apr 2008 09:28:25 -0400, John Eells wrote:

Extended aliases (those defined with SYMBOLICRELATE) don't work well
(i.e., at all!) for entries in the master catalog.  Did you mean data
set aliases?


Really?  In what way do you mean?  I used them for an ISV product a few 
years ago and they seemed to work quite nicely.




I wasn't clear.  I mean that if the *entry describing the data set* is 
in the master catalog, SYMBOLICRELATE is probably not the tool you want 
to use.  ;-)


It's fine, of course, to have an *alias* defined with SYMBOLICRELATE in 
the master catalog, pointing (once the symbol has been resolved) to a 
user catalog where the *data set entry* lives.  This works well, 
particularly for product set catalogs that are used for subsystems or 
other products that aren't in the z/OS product set.


--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-16 Thread Tom Marchant
On Wed, 16 Apr 2008 10:06:04 -0400, John Eells wrote:

Tom Marchant wrote:
 On Wed, 16 Apr 2008 09:28:25 -0400, John Eells wrote:
 Extended aliases (those defined with SYMBOLICRELATE) don't work well
 (i.e., at all!) for entries in the master catalog.  Did you mean data
 set aliases?

 Really?  In what way do you mean?  I used them for an ISV product a few
 years ago and they seemed to work quite nicely.


I wasn't clear.  I mean that if the *entry describing the data set* is
in the master catalog, SYMBOLICRELATE is probably not the tool you want
to use.  ;-)

Depends on what you want to do, I suppose.  The example in DFSMS: 
Managing Catalogs is
  DEFINE ALIAS (NAME(SYS1.PRODUCT) -
SYMBOLICRELATE('SYS1.PRODVR..PRODUCT')) 


It's fine, of course, to have an *alias* defined with SYMBOLICRELATE in
the master catalog, pointing (once the symbol has been resolved) to a
user catalog where the *data set entry* lives.  This works well,
particularly for product set catalogs that are used for subsystems or
other products that aren't in the z/OS product set.

Now I'm really confused.  AFAIK, a data set alias for a non-VSAM data set, 
with or without SYMBOLICRELATE, does not point to a catalog.

-- 
Tom Marchant

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-16 Thread John Eells

Tom Marchant wrote:

On Wed, 16 Apr 2008 10:06:04 -0400, John Eells wrote:


Tom Marchant wrote:

On Wed, 16 Apr 2008 09:28:25 -0400, John Eells wrote:

Extended aliases (those defined with SYMBOLICRELATE) don't work well
(i.e., at all!) for entries in the master catalog.  Did you mean data
set aliases?

Really?  In what way do you mean?  I used them for an ISV product a few
years ago and they seemed to work quite nicely.


I wasn't clear.  I mean that if the *entry describing the data set* is
in the master catalog, SYMBOLICRELATE is probably not the tool you want
to use.  ;-)


Depends on what you want to do, I suppose.  The example in DFSMS: 
Managing Catalogs is

  DEFINE ALIAS (NAME(SYS1.PRODUCT) -
SYMBOLICRELATE('SYS1.PRODVR..PRODUCT')) 


It's fine, of course, to have an *alias* defined with SYMBOLICRELATE in
the master catalog, pointing (once the symbol has been resolved) to a
user catalog where the *data set entry* lives.  This works well,
particularly for product set catalogs that are used for subsystems or
other products that aren't in the z/OS product set.


Now I'm really confused.  AFAIK, a data set alias for a non-VSAM data set, 
with or without SYMBOLICRELATE, does not point to a catalog.




Son of a gun.  You learn something new every day.  I hadn't realized 
there was support for other than catalog-related aliases to use 
SYMBOLICRELATE, though it makes perfect sense that it's there.  (And I'm 
really surprised that it's the example used in the book, because...well, 
never mind.)


I apologize for the misinformation.

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-16 Thread Paul Gilmartin
On Wed, 16 Apr 2008 09:28:25 -0400, John Eells wrote:

Edward Jaffe wrote:

 I created a file called 'MYUID.BASE' and used SYMBOLICRELATE to create
 'SYS1.ALIAS.OF.BASE'. In my environment, data sets starting with MYUID

I have experienced that to fail (to my dismay) because there's
no symbol in the symbolic alias.

 are cataloged in a user catalog. Data sets starting with SYS1 are
 cataloged in the master catalog. Try as I might, I could not figure out
 how to get the system to see 'SYS1.ALIAS.OF.BASE' as an alias of
 'MYUID.BASE'. (Perhaps I overlooked something.)

I think this is because you did not place the entry for
SYS1.ALIAS.OF.BASE in the usercat, but I don't have a system to test
that assumption on these days.  You might try:

DEFINE -
   ALIAS( -
 NAME(SYS1.ALIAS.OF.BASE) -
 RELATE(MYUID.BASE)) -
   CATALOG('usercat.with.myuid.in.it').

Which is pretty useless because reference to SYS1.ALIAS.OF.BASE
in a DD statement or ALLOCATE will search the master catalog
and not find the alias.

An additional problem with aliases of any sort is that jobs
referencing data sets by aliases and encountering ENQ conflicts
on the RELATED name will fail with JCL errors rather than
waiting for the conflict to be resolved.

-- 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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-15 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 04/14/2008
   at 08:08 AM, Edward Jaffe [EMAIL PROTECTED] said:

Actually, JCLIN works no matter what the data set LLQ is. When you code 
JCLIN, you specify the DDDEF (or DD) names *as* LLQs. You never specify 
any *real* LLQs.

Are you a betting man? Quite frequently the JCLIN is the same JCL as you
ran in a prior job. The old stage 2 concept may be dead for the operating
system, but it is alive and well for some products, e.g., IMS.

However, when I experimented with this a while back, I found that it 
worked as expected only when the HLQs of the base name and alias were 
the same -- or more precisely -- expected to be in the same catalog.

Would you really want two release of the same product to be cataloged in
different user catalogs?

Try as I might, I could not figure out how to get the system to see 
'SYS1.ALIAS.OF.BASE' as an alias of 'MYUID.BASE'. 
(Perhaps I overlooked something.)

And I can't figure out why you wanted to ;-)

Shirley making SYS1.foo.llq an alias of SYS1.foo.foorelease..llq is good
enough for tracking releases.
 
-- 
 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 [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html



Re: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-15 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 04/14/2008
   at 08:49 AM, Mark Zelden [EMAIL PROTECTED] said:

JCLIN LLQ must equal the DDDEF name.  There is no requirement that a
DDDEF of LINKLIB point to hlq.LINKLIB.

There is when the JCLIN is a job that you must run prior to doing the
JCLIN. And, no, that didn't die when MVSCP came along.
 
-- 
 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 [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html



Re: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-14 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 04/13/2008
   at 12:00 AM, Edward Jaffe [EMAIL PROTECTED] said:

I don't see nearly as many configurations as a busy consultant like 
Mark, But, I have noticed with our customers that the LLQ of 
SMP/E-maintained, MVS classic data sets seems to always mirror the 
DDDEF name in target zone.

Otherwise JCLIN wouldn't work.

This observation led to the following idea, which I had previously 
advanced only to a select few through verbal conversation:

Are you aware of extended indirect cataloging? If not, read up on
SYMBOLICRELATE.
 
-- 
 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 [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html



Re: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-14 Thread Mark Zelden
On Sun, 13 Apr 2008 20:07:41 -0300, Shmuel Metz (Seymour J.)
[EMAIL PROTECTED] wrote:

In [EMAIL PROTECTED], on 04/13/2008
   at 12:00 AM, Edward Jaffe [EMAIL PROTECTED] said:

I don't see nearly as many configurations as a busy consultant like
Mark, But, I have noticed with our customers that the LLQ of
SMP/E-maintained, MVS classic data sets seems to always mirror the
DDDEF name in target zone.

Otherwise JCLIN wouldn't work.


JCLIN LLQ must equal the DDDEF name.  There is no requirement that a DDDEF
of LINKLIB point to hlq.LINKLIB.   It can point to SCHMUEL.METZ and SMP/E
will happily go on its way.

Mark
--
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group - ZFUS G-ITO
mailto:[EMAIL PROTECTED]
z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-14 Thread Edward Jaffe

Shmuel Metz (Seymour J.) wrote:

In [EMAIL PROTECTED], on 04/13/2008
   at 12:00 AM, Edward Jaffe [EMAIL PROTECTED] said:

  
I don't see nearly as many configurations as a busy consultant like 
Mark, But, I have noticed with our customers that the LLQ of 
SMP/E-maintained, MVS classic data sets seems to always mirror the 
DDDEF name in target zone.



Otherwise JCLIN wouldn't work.
  


Actually, JCLIN works no matter what the data set LLQ is. When you code 
JCLIN, you specify the DDDEF (or DD) names *as* LLQs. You never specify 
any *real* LLQs.


  
This observation led to the following idea, which I had previously 
advanced only to a select few through verbal conversation:



Are you aware of extended indirect cataloging? If not, read up on
SYMBOLICRELATE.
  


I'm familiar with indirect cataloging -- substituting a system symbol 
for the volume name. (We recommend this as the best way to support large 
configurations with multiple operating systems and/or product releases.)


SYMBOLICRELATE is an entirely different concept. It is called _extended 
alias_ support and allows you to refer to one data set using an 
alternate name. I agree this appears to be a good way to achieve the 
desired objective using existing operating system facilities.


However, when I experimented with this a while back, I found that it 
worked as expected only when the HLQs of the base name and alias were 
the same -- or more precisely -- expected to be in the same catalog.


I created a file called 'MYUID.BASE' and used SYMBOLICRELATE to create 
'SYS1.ALIAS.OF.BASE'. In my environment, data sets starting with MYUID 
are cataloged in a user catalog. Data sets starting with SYS1 are 
cataloged in the master catalog. Try as I might, I could not figure out 
how to get the system to see 'SYS1.ALIAS.OF.BASE' as an alias of 
'MYUID.BASE'. (Perhaps I overlooked something.)


The above restriction should not be important in most if not all system 
data set cases. Indeed, the example of SYS1.SBLSxxx vs 
SYS1.IPCS.SBLS is a classic example of where extended aliases would 
be applicable. Seems like ServerPac could distribute a procedure/program 
to create/issue the appropriate DEFINE ALIAS statements for any data 
sets whose HLQs were changed from the delivered defaults.


--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-14 Thread Mark Zelden
On Mon, 14 Apr 2008 08:08:36 -0700, Edward Jaffe
[EMAIL PROTECTED] wrote:


Actually, JCLIN works no matter what the data set LLQ is. When you code
JCLIN, you specify the DDDEF (or DD) names *as* LLQs. You never specify
any *real* LLQs.



It is the LLQ that matters in JCLIN. Consider this example:


++USERMOD(ICEEXIT)  REWORK(1996350).
++VER  (Z038) FMID (HSM1F00) .  
++JCLIN.
//ASMLINK JOB (ACCT),CLASS=M
//ASMEXEC PGM=ASMBLR
//SYSPRINT DD SYSOUT=*  
//SYSLIB   DD DSN=SYS1.MACLIB,DISP=SHR  
// DD DSN=SYS1.ICEUSER,DISP=SHR 
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,1)  
//SYSPUNCH DD DSN=amp;PUNCH(ICEIEXIT),
//SPACE=(TRK,(1,1,1),DISP=(,PASS)   
//SYSIN DD *
ICEIEXIT CSECT  
END 
/*  
//* 
//LKED   EXEC PGM=IEWL,PARM='LET,LIST,NCAL,RENT,XREF'   
//SYSPRINT DD SYSOUT=*  
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,1)  
//SYSLMOD  DD DSN=ANYTHING.FRED,DISP=SHR
//SYSPUNCH DD *.ASM.SYSPUNCH,DISP=(OLD,DELETE)  
//SYSINDD * 
  INCLUDE SYSPUNCH(ICEIEXIT)
  ENTRY ICEIEXIT
  NAME  ICEIEXIT(R) 
/*  
++SRC (ICEIEXIT) DISTLIB(AICESRCE) .
##  
//   DD DSN=TECH.USERMODS.SOURCE(ICEIEXIT),DISP=SHR   


Will SMP/E try to link to the data set pointed to by a DDDEF (or DDNAME
in JCL) of SYSLMOD, or the DSN pointed to by DDDEF or DDNAME of FRED?
(FRED)

Mark
--
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group - ZFUS G-ITO
mailto:[EMAIL PROTECTED]
z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-14 Thread Paul Gilmartin
On Mon, 14 Apr 2008 08:08:36 -0700, Edward Jaffe wrote:

Actually, JCLIN works no matter what the data set LLQ is. When you code
JCLIN, you specify the DDDEF (or DD) names *as* LLQs. You never specify
any *real* LLQs.

That seems clearer and more logical than what I thought I understood
from the SMP/E RM.  We'll see who's right.

SYMBOLICRELATE is an entirely different concept. It is called _extended
alias_ support and allows you to refer to one data set using an
alternate name. I agree this appears to be a good way to achieve the
desired objective using existing operating system facilities.

However, when I experimented with this a while back, I found that it
worked as expected only when the HLQs of the base name and alias were
the same -- or more precisely -- expected to be in the same catalog.

Me, too.

I created a file called 'MYUID.BASE' and used SYMBOLICRELATE to create
'SYS1.ALIAS.OF.BASE'. In my environment, data sets starting with MYUID
are cataloged in a user catalog. Data sets starting with SYS1 are
cataloged in the master catalog. Try as I might, I could not figure out
how to get the system to see 'SYS1.ALIAS.OF.BASE' as an alias of
'MYUID.BASE'. (Perhaps I overlooked something.)

WAD.

I ranted about this in this list a while back.  My expectations/desires
matched yours, and I asked why the catalog search was not simply
redriven from the beginning with the RELATED name so it would look
in the directory actually containing that name.  The modal reaction
from the partisans was approximately I pity the fool ...  If that
were done, catalog search might loop, or IPL might be impossible,
or it would be incompatible with existing art ...  Or the universe
might collapse into a black hole.  I was and remain unmoved by the
explanations.  Loops can be terminated with counters.  Reviews
and audits can detect, anticipate, and avoid configuration errors
that preclude IPL.  Etc.

-- 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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-14 Thread Paul Gilmartin
On Mon, 14 Apr 2008 10:29:26 -0500, Mark Zelden wrote:

On Mon, 14 Apr 2008 08:08:36 -0700, Edward Jaffe
[EMAIL PROTECTED] wrote:

Actually, JCLIN works no matter what the data set LLQ is. When you code
JCLIN, you specify the DDDEF (or DD) names *as* LLQs. You never specify
any *real* LLQs.

It is the LLQ that matters in JCLIN. Consider this example:


++USERMOD(ICEEXIT)  REWORK(1996350).
++VER  (Z038) FMID (HSM1F00) .
++JCLIN.
//ASMLINK JOB (ACCT),CLASS=M
//ASMEXEC PGM=ASMBLR
//SYSPRINT DD SYSOUT=*
//SYSLIB   DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=SYS1.ICEUSER,DISP=SHR
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,1)
//SYSPUNCH DD DSN=amp;amp;PUNCH(ICEIEXIT),
//SPACE=(TRK,(1,1,1),DISP=(,PASS)
//SYSIN DD *
ICEIEXIT CSECT
END
/*
//*
//LKED   EXEC PGM=IEWL,PARM='LET,LIST,NCAL,RENT,XREF'
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,1)
//SYSLMOD  DD DSN=ANYTHING.FRED,DISP=SHR
//SYSPUNCH DD *.ASM.SYSPUNCH,DISP=(OLD,DELETE)
//SYSINDD *
  INCLUDE SYSPUNCH(ICEIEXIT)
  ENTRY ICEIEXIT
  NAME  ICEIEXIT(R)
/*
++SRC (ICEIEXIT) DISTLIB(AICESRCE) .
##
//   DD DSN=TECH.USERMODS.SOURCE(ICEIEXIT),DISP=SHR


Will SMP/E try to link to the data set pointed to by a DDDEF (or DDNAME
in JCL) of SYSLMOD, or the DSN pointed to by DDDEF or DDNAME of FRED?
(FRED)

FRED.  I believe you and Ed are saying the same thing; I can agree with
both of you.  The more interesting question concerns the ASM STEP:
Will the assembler search for macros in the concatenation of data
sets defined by DDDEFs MACLIB and ICEUSER, or in the concatenation
defined by DDDEF SYSLIB?

-- 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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-14 Thread Mark Zelden
On Mon, 14 Apr 2008 10:47:20 -0500, Paul Gilmartin [EMAIL PROTECTED] wrote:


 The more interesting question concerns the ASM STEP:
Will the assembler search for macros in the concatenation of data
sets defined by DDDEFs MACLIB and ICEUSER, or in the concatenation
defined by DDDEF SYSLIB?


SYSLIB DDDEF.  I'm sure it is clearly documented.  :-)

Mark
--
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group - ZFUS G-ITO
mailto:[EMAIL PROTECTED]
z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-14 Thread Edward Jaffe

Mark Zelden wrote:

It is the LLQ that matters in JCLIN. Consider this example:
  


I can't tell if you're correcting me or agreeing with me and providing 
additional illustrative examples. O:-)


Just to clarify what I said/meant:

The LLQ you specify in JCLIN *is* the DDDEF name ... and *not* the LLQ 
of the data set to which the DDDEF refers. The actual LLQ of the data 
set is irrelevant!


--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-13 Thread Edward Jaffe

Shane wrote:

Forget it Ed. All I want is for vendors to package product(s) properly -
let customers manage their own environments.
  


Shane. I think you missed the point of this entirely! Packaging products 
properly is not the issue. The issue is how to give customers freedom 
to choose data set names for system libraries while -- at the same time 
-- allowing programs to find those libraries without knowing the local 
data set names.


For example, SYS1.SBLSCLI0(BLSCLIBD) contains the following statements:

| ISPEXEC LIBDEF ISPMLIB DATASET ID('SYS1.SBLSMSG0') COND
| ISPEXEC LIBDEF ISPPLIB DATASET ID('SYS1.SBLSPNL0') COND
| ISPEXEC LIBDEF ISPSLIB DATASET ID('SYS1.SBLSKEL0') COND

As Mark pointed out, if an installation changes the names of the 
SYS1.SBLS libraries to something else -- for example 
SYS1.IPCS.SBLS -- then BLSCLIBD will no longer work. Someone at the 
installation must manually change the CLIST to reflect their local data 
set name choice.


My idea is to have (among others) the following system symbols defined 
in IEASYMxx:


SBLSKEL0
SBLSMSG0
SBLSPNL0

Each symbol would contain the name of the corresponding local data set. 
Instead of hard-wired data set names, the three LIBDEF statements in 
BLSCLIBD would contain something like:


| ISPEXEC LIBDEF ISPMLIB DATASET ID('SBLSMSG0') COND
| ISPEXEC LIBDEF ISPPLIB DATASET ID('SBLSPNL0') COND
| ISPEXEC LIBDEF ISPSLIB DATASET ID('SBLSKEL0') COND

The DYNALLOC service would recognize and resolve the symbolic data set 
name references via static system symbols. (See ASASYMBP in SYS1.MACLIB,)


In this way, BLSCLIBD, and all others similar programs with hard-coded 
data set name references, could be made to work _as delivered_ without 
requiring manual customization for local data set naming conventions.


--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/

--
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: Consistent Data Set Names (Was: Workable Debuggers ...)

2008-04-13 Thread Rick Fochtman

--snip--

Agreed. Clearly, if tz/OS was being designed ab initio, a standard 
data set naming convention would probably be used. (Then again, in 
that case there might not even be data sets as we know them!)


However, after so many decades, we can't expect customers to make 
wholesale -- and costly -- busy work changes in their production 
environments just to be consistent with others running z/OS (including 
their competitors).


---unsnip
Changes by attrition might work, if you could show a tangible benefit.

-snip-

I don't see nearly as many configurations as a busy consultant like 
Mark, But, I have noticed with our customers that the LLQ of 
SMP/E-maintained, MVS classic data sets seems to always mirror the 
DDDEF name in target zone. (In fact, I have *never* seen an exception 
to this rule with data sets we deliver!) It's the HLQ(s) that seem 
to be fair game for site-specific customization.


-unsnip-
Guilty as charged. I did it for security adminstration reasons, mostly. 
And a select few used HLQ's that we already had in use for other purposes.


-snip---

This observation led to the following idea, which I had previously 
advanced only to a select few through verbal conversation:


Suppose static system symbols could be created automatically by SMP/E 
(or an add-on program using the SMP/E API) for each DDDEF in the 
target zone that references an MVS classic data set!


The first 20 symbols would be defined something like this (from my 
system):


 SYMDEF(BNJPNL1='NETV.BNJPNL1')
 SYMDEF(BNJPNL2='NETV.BNJPNL2')
 SYMDEF(BNJSRC1='NETV.BNJSRC1')
 SYMDEF(CBRDBRM='SYS1.CBRDBRM')
 SYMDEF(CIPLIB='SYS1.CIPLIB')
 SYMDEF(CMDLIB='SYS1.CMDLIB')
 SYMDEF(CNMCLST='NETV.CNMCLST')
 SYMDEF(CNMINST='NETV.CNMINST')
 SYMDEF(CNMLINK='NETV.CNMLINK')
 SYMDEF(CNMPNL1='NETV.CNMPNL1')
 SYMDEF(CNMSAMP='NETV.CNMSAMP')
 SYMDEF(COB2LIB='CALLLIBS.DUMMY')
 SYMDEF(CSSLIB='SYS1.CSSLIB')
 SYMDEF(DBBLIB='SYS1.DBBLIB')
 SYMDEF(DCFASM='SCRIPT.DCFASM')
 SYMDEF(DCFDIST='SCRIPT.DCFDIST')
 SYMDEF(DCFGML='SCRIPT.DCFGML')
 SYMDEF(DCFIMAGE='SCRIPT.DCFIMAGE')
 SYMDEF(DCFLOAD='SCRIPT.DCFLOAD')
 SYMDEF(DCFMAC='SCRIPT.DCFMAC')
 SYMDEF(DCFSAMP='SCRIPT.DCFSAMP')
 SYMDEF(DFQLLIB='SYS1.DFQLLIB')
 SYMDEF(DFQMLIB='SYS1.DFQMLIB')
 SYMDEF(DFQPLIB='SYS1.DFQPLIB')
 SYMDEF(DGTCLIB='SYS1.DFQLLIB')
 SYMDEF(DGTLLIB='SYS1.DGTLLIB')
 SYMDEF(DGTMLIB='SYS1.DGTMLIB')
 SYMDEF(DGTPLIB='SYS1.DGTPLIB')
 SYMDEF(DGTSLIB=SYS1.DGTSLIB')
.
. (there are hundreds and hundreds more))
.

The member containing these symbols could be concatenated with other, 
existing IEASYMxx members in parmlib. Like other static system 
symbols, these symbols would be created at IPL time and be available 
to all programs.


IBM- and ISV-distributed CLISTs, JCL, and other program elements that 
reference these SMP/E-maintained target libraries could then refer to 
a data set name by its symbolic name. For example, instead of 
specifying: EX 'SYS1.SBLSCLI0(BLDCDDIR)' we would write something 
like: EX 'SBLSCLI0.(BLSCDDIR)' And, backward compatibility would be 
automatically maintained for existing programs that don't expect to be 
updated in the near-term to take advantage of this new level of 
indirection.


Although static symbol substitution support is fairly pervasive in 
some obvious places within z/OS, it is still missing from some other 
equally-obvious places -- such as for the data set command operands in 
these examples. Static symbol substitution for data set names would 
need a thorough implementation for this scheme to work reliably. 
(Perhaps the call to the substitution service should be made from 
within DYNALLOC itself to minimize interface points.)


No matter the exact details of implementation, IMHO it would be time 
well spent...


unsnip
Ed, I agree with the concept. But the implementation will be 
horrendously expensive. Just providing efficient access to those symbols 
across all the environments that would need it could be a massive 
undertaking. And getting all the ISV's aboard will be nigh-unto 
impossible unless you can show them a real benefit on the balance 
sheets. THEN you've got to teach the customers how to use it to their 
best advantage.  GOOD LUCK!!!


--
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