Re: C/C++ memory files
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
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
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
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
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
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
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
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
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.
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
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
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
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?
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
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)
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
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
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
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?)
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