Re: C/C++ memory files

2013-06-28 Thread Hunkeler, Peter (TLSG 4)
The application is opening a large number of input files with the C/C++
fopen convention as fopen(//DD:INPUT(member),r) .

Is this read only data? if so, would it be an option to copy the PDS members
into a TFS file system (one of your own), say after an IPL and leave them there
for your application? TFS access is memory only and should be fast.

I just think about convert the original input PDS(E)  file into a memory 
files according this syntax.

You mean naming the files //DD:INPUT(member)? The //DD: is triggering
MVS OPEN in C/C++ instead of file system open. I suspect this will not work.

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: C/C++ memory files

2013-06-28 Thread Hunkeler, Peter (TLSG 4)
If I understand the book correctly, this kind of memory file open would 
work, the memory file name is
DD:INPUT ...  in this case

Yes, without the double slash, it should work.

BTW, despite the fact that the real I/O to read may perform better when reading 
from the file system instead of from MVS data sets, your applicationobviously 
needs to ALLOCATE, OPEN, (read), CLOSE, DEALLOCATE for each member. And these 
operations are probably much more expensive than the mere reads.

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: z/OS subroutine in assembler, used in both batch CICS , making re-entrant

2013-06-27 Thread Hunkeler, Peter (TLSG 4)
OTH - if this module makes no system calls or other subroutine calls, then 
it does not need a save area of its own, so it can use the caller's 
provided area

[snip]

The question is not whether or not the code *can* use the caller's save area.
The code *shall* use the caller's save area to save the caller's register 
content.

That is one way to save the caller's registers, not the only documented 
Linkage Convention.

You're absolutely right. But I didn't mean to place the emphasis on that part. 
What I wanted 
to place the emphasis on is the fact that the statement cited above states that:

  *if* the code does not need an own new save area, because it makes no calls,
  *then* it can use the caller's save area.

... and this is false. The code shall save the caller's registers and it *can* 
use the
SA provided by the caller or some other mechanisms like BAKR. This is entirely
independent of the fact whether or not it makes calls.

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: z/OS subroutine in assembler, used in both batch CICS , making re-entrant

2013-06-26 Thread Hunkeler, Peter (TLSG 4)
OTH - if this module makes no system calls or other subroutine calls, then 
it does not need a save area of its own, so it can use the caller's 
provided area (as the protocol requires).

The question is not whether or not the code *can* use the caller's save area.
The code *shall* use the caller's save area to save the caller's register 
content.

The question is whether or not the code has to setup a new save area for
others to use. If it doesn't do any calls to external code, then no new SA
is required (nobody would use it anyway).

Document the fact in the code so that someone modifying it in the future
understands this.

I was tempted to suggest loading R13 with an address in the code where
a text would indicated the same fact. But then I realized that it is better
to load R13 with an address leading to an ABEND when using it as a base
register in a store operation. After all, labeling a module RENT doesn't 
write protect its storage per se.

--
Peter Hunkeler 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Slightly OT: How to interpret this DB2 message

2013-06-25 Thread Hunkeler, Peter (TLSG 4)
Did you check out Mike Bell's Presentation from 2008?

http://www.hlstechnologies.com/downloads/IDUGDallas.pdf

No, but I just tried. Unfortunately access to the link above is blocked by our
intelligent web page rating tool :-(
I found the PDF via Google search and am looking into it.

Or this link?  http://theamericanprogrammer.com/programming/sqlcodes.shtml

I am not sure if this applies, but what about
warning: user specified optimization hints are invalid (reason code = '').
the optimization hints are ignored

Not sure how the second link would help me? I did read the explanation of msg 
DSNX105I
as well as SQL code +395, and I understand something is wrong with the hints.

But, and this is was my question, to find out what is wrong, I need to know the 
reason code
associated with SQL code +395. However msg DSNX105I doesn't talk about a reason 
code.
The nearest thing it TOKEN= and I am wondering if this is the value I'm 
looking for?.

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Slightly OT: How to interpret this DB2 message

2013-06-25 Thread Hunkeler, Peter (TLSG 4)
http://www.hlstechnologies.com/downloads/IDUGDallas.pdf
I found the PDF via Google search and am looking into it.

This was surely of great help to me!

Let me see if I understand what my problem is: 

o The SQL in question does *not* specify correlation names
o BIND with EXPLAIN inserts rows into the PLAN_TABLE 
o Since no correlation name was used, the corresponding PLAN_TABLE
  column is NULL
o BIND with OPTHINT compares correlation name from SQL (i.e. blank) with
  content of correlation_name column (i.e. NULL) to see if the hint is for 
this program

NULL is not equal to blank, so then hint is not used.
If I change the correlation_name column in the PLAN_TABLE to blank, then
the hint would be accepted.

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Slightly OT: How to interpret this DB2 message

2013-06-25 Thread Hunkeler, Peter (TLSG 4)
You are getting there.  correlation name is never blank.  either null or
non-blank.

What lead me think I had to set it to blank is foil 48 in your IDUGDallas.pdf 
presentation.
It says there: 

   So Fix it
   UPDATE...
   SET CORRELATION_NAME = '   ' 
   ..

I didn't understand it, actually, since I thought DB2 would not set the column 
to NULL if later 
a blank was needed, but I also believed the statement show on that foil. I 
seem to have 
misunderstood. 

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Slightly OT: How to interpret this DB2 message

2013-06-24 Thread Hunkeler, Peter (TLSG 4)
I know this is not a DB2 list, but I'm hoping someone here can give me a hint.

We're trying to BIND wiht OPTHINT but DB2 refuses to use the hint with the 
following msg:

DSNX105I  -DAF2 BIND SQL WARNING
   USING S100447 AUTHORITY  
   PLAN=(NOT APPLICABLE)
   DBRM=A5PO356 
   STATEMENT=16423  
   SQLCODE=395  
   SQLSTATE=01628   
   TOKENS=32

Explanation of SQL code +395 list a number of Reason Codes, but what in the 
above message is the reason code? 
Is it TOKENS=? if so, 32 means CREATOR or TNAME is invalid. but that does 
not help me, since Owner and TNAME seem to be reasonable values.

Any issue when the SQL in the program is using a table name that actually is a 
synonym to the real table name? Which name would have to be in the PLAB_TABLE 
in this case: real table or synonym?

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Slightly OT: How to interpret this DB2 message

2013-06-24 Thread Hunkeler, Peter (TLSG 4)
which is why I always test hints with SPUFI - it will give you the reason
code.

Problem with this is I don't have authority to do the bind myself. I need to ask
our DB2 support people to perform it, but they just don't know why the hints
are being ignored and they don't seem to have interest in helping me finding out
why :-(

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Thinking about utility for REXX: stem variable to JSON encoding.

2013-06-14 Thread Hunkeler, Peter (TLSG 4)
stem. = ''

If you want to protect your code from inadvertently using undefined 
variables, i.e. variables that have not been assigned a value, you code
   SIGNAL ON NOVALUE

With the above statement, the REXX interpreter will not detect when you're 
using an undefined compound variable based on stem stem..
I don't use this default value assignment mechanism for the benefit of 
detecting invalid variable references.

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


OT: New AFP related list started at UGA.EDU

2013-06-03 Thread Hunkeler Peter (TLSG 4)
Cross-posting to IBM-MAIN, JES2-L, JES3-L

 

The new AFP-L discussion list is open for subscriptions.

 

I hope to get the experts and the users back on board to quickly
reestablish an AFP community.

(The former list at Topica seems to be dead since October 2012.)

 

Please spread the word among your colleagues involved in AFP who might
not follow this list.

 

To join the list, send an email to lists...@listserv.uga.edu with the
following single line body:

 SUBSCRIBE AFP-L firstname lastname

 

The Web interface to access the list archives and to post to the list is
at

 http://listserv.uga.edu/archives/afp-l.html

 

--

Peter Hunkeler

Owner of the AFP-L at LISTSERV.UGA.EDU 

 


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: OT: New AFP related list started at UGA.EDU

2013-06-03 Thread Hunkeler Peter (TLSG 4)
Now you can get rich from being an admin... ;-D

I was more looking for something to help me avoid a heart attack when I cannot 
determine that hidden error in an AFP datastream. A place to discuss with 
experts like here on IBM-MAIN. But then, if becoming rich is part of the list 
owner game, I won't refuse it :-)

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Unable to mount ZFS

2013-05-31 Thread Hunkeler Peter (TLSG 4)
Barbara, it took you some time to compose this reply. Bear with me, I'll
need some, too.

And be assured, I'm not taking this personal in any way. I'm more open
to z/OS UNIX than
many others and I tend to stand up for it sometimes. In parallel to
growing up with z/OS UNIX
as of 1994, I was learning much about the design UNIX operating systems.
This helps me to
understand why many things are like they are in z/OS UNIX, *but* there
still are many things
I consider quite ugly (btw, there are at least as many ugly things in
MVS).

Will respond to you statements later.

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: OT: How to open a new list at UA.EDU?

2013-05-29 Thread Hunkeler Peter (TLSG 4)
Topica never ever worked as smooth as lists like this one work. 
Roger, you are right that on can still log-in to Topica, but have you
tried to post a message? It's just being swallowed. And the list owner
doesn't respond.

I'm currently trying to find a listserver based place to host an AFP
list. Will keep this list updated, as some AFP interested people seem to
be subscribed here too (glad to see :-).

Q: Is there any reason the new list should *not* be named AFP-L? (The
one on Topica is named AFP-L but after all it is on a different server.)

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Unable to mount ZFS

2013-05-29 Thread Hunkeler Peter (TLSG 4)
 It's the zFS started task that needs TRUSTED or OPERATIONS attribute
or ALTER authority.
Thanks for that link. It clearly states that ALTER is needed for the
userid that runs ZFS (yes, OMVSUS2 is assigned to ZFS). 

It is also clearly not the whole truth. On my originating system,
OMVSUS2 can mount all ZFSs just fine, and it does NOT have ALTER access
to any of them; it doesn't even appear in the access list at all. This
system is set up the same way, and it doesn't work here.

Barbara, I know you're not z/OS UNIX's biggest fan, however, this time
the problem is related to the authorization to perform an MVS OPEN
against an MVS data set. UNIX is only inside the data set. 
RACF allows the OPEN on your originating system. I trust there must be a
difference in the setup not related to z/OS UNIX.

On your originating system (I guesss you already verified):
- Does profile MVSR.RDZ.V85.** have UACC(none) or something else?
- Is OMVSUSR2 defined TRUSTED(NO) and PRIVILEGED(NO)?
- There is no SCHEDxx entry for BPXVCLNY?
- Nothing else that would allow an MVS OPEN is defined?

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: TNLs (Was: PDS searches)

2013-05-02 Thread Hunkeler Peter (TLSG 4)
Besides what's new in manuals, ISPF HELP, SHARE presentations, etc.,  I find 
out
about new commands, features, changes by reading DOC holds when I apply 
maintenance. 

preliminary note
I've been using the SRCHFOR command for some years now. Anyway, before posting, 
I wanted to read up on the SRCHFOR command to make sure what I'm about to write 
is correct. 
/preliminary note

So I thought I should find some help on the SRCHFOR command online in ISPF's 
help panels. I didn't. I may well not have been searching at the right place.
DOC Holds and the general ISPF user? There are non-sysprogs out there using 
ISPF. How would they know about SMP/E and DOC holds?

Talking about the ISPF User's' Guide: I did indeed find the SRCHFOR command, 
but not in the section 4.1. ISPF System Commands., which lists ISPF commands. 
You find it in section 5.3. Using Member Selection Lists (but only through 
searching the whole manual, not by looking at the TOC). The command is 
described here for member lists even though it works well with data set 
lists. I couldn't find an entry describing its use on data sets lists.

More examples in need?. The ISRDDN command isn't listed in the ISPF System 
Command section but in an appendix. At least, you can stumble upon it when 
browsing the TOC. Then, how about ISRFIND? I couldn't find it, not even by 
searching the User's Guide.

This is what I meant when complaining about ISPF documentation.

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Run a REXX from JCL stream

2013-04-30 Thread Hunkeler Peter (TLSG 4)
REXX programs cannot be written inline. You must save it in a PDS. You
then
allocate that PDS to either SYSPROC or SYSEXEC.

Just in case someone ever finds this in the archive: must is a bit too
strict.

It is quite usual but not necessary to store REXX programs a members  in
a *PDS*. A REXX program can well be run from a simple sequential data
set. 
What changes is that you cannot use the % syntax to run it. %FOO
searches //SYSEXEC, then //SYSPROC for a member with that name.

To run a REXX from any sequential data set, code:
EX 'your.rexx.ps.data.set'

And to be complete, to run a REXX from any member in any PDS (not
necessarily allocated to //SYSEXEC or //SYSPROC), code:
  EX 'your.rexx.pds.data.set(member)'

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: PDS searches

2013-04-30 Thread Hunkeler Peter (TLSG 4)
Create a workplace list and use the 'sf' line command.

I didn't know about the sf line command. I'm using the SRCHFOR
*primary* command in either a 3.4 or workplace data set list, or in a
member list.
Runs through all the data sets or members, resp., in the list, finally
returning a String(s) found message on each line where the text was
found.

What is nice is that it automagically fills your search arguments into
the edit/browse find string. So after a srchfor, simply edit/browse
the data set / member and hit F5 (RFIND) to find the occurrences within.

Use srchfor without argument to see a pop (different for dsn-list and
member list). you can change some settings there and you can enter more
than one search argument.


ISPF has got so many good commands. It's a pity you don't find them
easily. You've just got to know them, or know someone who knows them :-(
--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Run a REXX from JCL stream

2013-04-30 Thread Hunkeler Peter (TLSG 4)
Well, not entirely complete. 

Which one(s) was I missing?

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 32760? (was: PARMDD?)

2013-04-09 Thread Hunkeler Peter (TLSG 4)
A completely different topic, but sequence numbers are obviously (I think. Am 
I wrong?) entirely a vestigial organ left from the days of punched cards. They 
were a lifesaver if you dropped your cards on the floor, and the compilers put 
out a warning if you loaded the cards into the reader in incorrect order. But 
do sequence numbers have a lick of value today? 

I can only second this. I've never every been using sequence number to the last 
20 years. 

I can't believe what I just read about all the mangling being done on PARMDD 
content. When I code //XYZ DD *, I expect JES to return every single byte 
exactly as entered when the program is reading the data. Now, as I understand 
it, when coding PARMDD=XYZ, the initiator will mangle that data under complex 
rules instead of just concatenating all bytes into one single var-char field, 
leaving every byte as is. Hmm...

//PRAMDD=XYZ
//*-+1+-- // 6+7+8
//XYZ DD *
SomeFirstLongParm // HereWithData=A1234567
,SomeSecondLongPa // HereWithData=01234567
,SomeThirdLongPar // HereWithData=B1234567

According to Peter's explanation, the initiator will recognize standard 
numbering on the second line and ignore those 8 characters. The program will 
get:

SomeFirstLongParm // HereWithData=A1234567,SomeSecondLongPa // 
HereWithData=,SomeThirdLongPar // HereWithData=B1234567

How quickly will one remember that strip off if punch-card-numbering found is 
in effect?

--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN