Re: ISPF setup macro
On Sun, 7 Jan 2024 00:31:30 +, Seymour J Metz wrote: >ALLOC DSN(userid.USER.ISPM) INRTDNN(MYDD) SHR > >So why -24 instead of -23? > >Changing the *3rd* key to RTDDN fixed the problem. The word KEY is ambiguous and may not mean KEYWORD. Total guess but considering this syntax is not UNIX compatible, maybe their logic is: 21 ALLOC 22 DSN( 23 userid.USER.ISPM) 24 INRTDNN( 25 MYDD) 26 SHR It should be easy enough to test by changing MYDD to MYDD56789. . -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
The manual says: -21 to - Key error. See “Key errors” on page 204 for more information. and The low-order two digits are the number of the key that failed the parse, offset by 20. The first key has the value 21, resulting in a return code of -21. The parameter was ALLOC DSN(userid.USER.ISPM) INRTDDN(MYDD) SHR So why -24 instead of -23? Changing the *3rd* key to RTDDN fixed the problem. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר From: IBM Mainframe Discussion List on behalf of Jon Perryman Sent: Saturday, January 6, 2024 3:35 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF setup macro On Fri, 5 Jan 2024 17:41:45 +, Seymour J Metz wrote: >I've been using BPXWDYN for allocation and concatenation, but I had a problem >with an error code -24. UNIX standards provide error codes versus z/OS typically provide an error code and error message. There's a learning curve for diagnosing various errors. As for ISPF setup exec's, almost everyone has one that usually includes personal and group datasets. Ask for one, and I suspect someone would be willing to provide one. Don't forget to specify a BLKSIZE on the alloc. The default is the first DSN's BLKSIZE which is used for buffer size allocation which may be too small for all concatenated datasets. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
On Fri, 5 Jan 2024 17:41:45 +, Seymour J Metz wrote: >I've been using BPXWDYN for allocation and concatenation, but I had a problem >with an error code -24. UNIX standards provide error codes versus z/OS typically provide an error code and error message. There's a learning curve for diagnosing various errors. As for ISPF setup exec's, almost everyone has one that usually includes personal and group datasets. Ask for one, and I suspect someone would be willing to provide one. Don't forget to specify a BLKSIZE on the alloc. The default is the first DSN's BLKSIZE which is used for buffer size allocation which may be too small for all concatenated datasets. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
"INRTDDN, which is valid for INFO but not for ALLOC" For alloc you must use the RTDSN(varname) parameter. But a good point, it really should have been the same. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
I've been using BPXWDYN for allocation and concatenation, but I had a problem with an error code -24. The fourth keyword was SHR, which left me scratching my head. It turns out that the *3RD* key was INRTDDN, which is valid for INFO but not for ALLOC; once I corrected that, things were better. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר From: IBM Mainframe Discussion List on behalf of Jon Perryman Sent: Friday, December 29, 2023 12:21 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF setup macro On Fri, 29 Dec 2023 13:10:27 +, Seymour J Metz wrote: >I'm not trying to setuup an ISPF application environment.; I'm trying to set >up a TSO user environment. TSO user environment limits your options. LIBDEF is not suitable because it is lost or replaced at various times. ISPxUSR is not suitable because it is searched first and requires LIBDEF. >At other shops I've done it by reallocating the standard concatenations when >the user libraries existed; I want an alternative to that. I believe BPXWDYN has a CONCAT function. I believe it's a reallocation under the covers but won't swear to that. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
My assumption is that it uses the DYNALLOC concatenation facility. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר From: IBM Mainframe Discussion List on behalf of Jon Perryman Sent: Friday, December 29, 2023 12:21 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF setup macro On Fri, 29 Dec 2023 13:10:27 +, Seymour J Metz wrote: >I'm not trying to setuup an ISPF application environment.; I'm trying to set >up a TSO user environment. TSO user environment limits your options. LIBDEF is not suitable because it is lost or replaced at various times. ISPxUSR is not suitable because it is searched first and requires LIBDEF. >At other shops I've done it by reallocating the standard concatenations when >the user libraries existed; I want an alternative to that. I believe BPXWDYN has a CONCAT function. I believe it's a reallocation under the covers but won't swear to that. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
On Fri, 29 Dec 2023 13:10:27 +, Seymour J Metz wrote: >I'm not trying to setuup an ISPF application environment.; I'm trying to set >up a TSO user environment. TSO user environment limits your options. LIBDEF is not suitable because it is lost or replaced at various times. ISPxUSR is not suitable because it is searched first and requires LIBDEF. >At other shops I've done it by reallocating the standard concatenations when >the user libraries existed; I want an alternative to that. I believe BPXWDYN has a CONCAT function. I believe it's a reallocation under the covers but won't swear to that. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
> ISPF application environment. I'm not trying to set up an ISPF application environment.; I'm trying to set up a TSO user environment. I want to automatically activate user extensions to the standard conventions whenever the user has allocated libraries with appropriate names, e.g., userid,USER,EXEC, userid.USER.ISPP. At other shops I've done it by reallocating the standard concatenations when the user libraries existed; I want an alternative to that. > ISPF works as designed NOVALUE is a REXX *style* issue and has nothing to do with ISPF. > everyone must follow these rules There is no rule in REXX requiring the use of SIGNAL ON NOVALUE. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר From: IBM Mainframe Discussion List on behalf of Jon Perryman Sent: Thursday, December 28, 2023 9:55 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF setup macro On Thu, 28 Dec 2023 02:01:54 +, Seymour J Metz wrote: >I'm trying to use LIBDEF as an alternative to freeing and reallocating the >standard ISPF concatenations. LIBDEF is commonly used to eliminate the need for reallocating standard ISPF DDs. There are situations where ISPxUSR is useful but I suspect most don't use it. I'm sure CBTTAPE.ORG has multiple examples of setting up the ISPF application environment. >Yes, typo for ISPxUSR. The allocation is before starting ISPF. The >documentation shows > those ddnames as being picked up automatically only for the DATASET keyword. If you are developing an application, then I suggest avoiding ISPxUSR unless your requirements need it. Using LIBDEF for products means the datasets are freed when not in use. >I'm aware of the contingent that advocates NOVALUE, but I don't agree with >that perspective. ISPF works as designed and everyone must follow these rules or request they be changed. >To clarify, my logon panel calls userid.AD.CLIST, which does allocations, >ALTLIB and TSOLIB before calling ISPF. A requirement for products that I've worked on is that everything is contained within the REXX and nothing needs to be modified in TSO other than making the REXX available to the users who need it. > I want to add, e.g., user panels, in a form that will persist across START > (ISPSTRT). Persistence is typically achieved through REXX using the appropriate LIBDEFs. You would still need a REXX with permanent DD's because you should have a different ISPF ZAPPLID for your application. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
On Thu, 28 Dec 2023 02:01:54 +, Seymour J Metz wrote: >I'm trying to use LIBDEF as an alternative to freeing and reallocating the >standard ISPF concatenations. LIBDEF is commonly used to eliminate the need for reallocating standard ISPF DDs. There are situations where ISPxUSR is useful but I suspect most don't use it. I'm sure CBTTAPE.ORG has multiple examples of setting up the ISPF application environment. >Yes, typo for ISPxUSR. The allocation is before starting ISPF. The >documentation shows > those ddnames as being picked up automatically only for the DATASET keyword. If you are developing an application, then I suggest avoiding ISPxUSR unless your requirements need it. Using LIBDEF for products means the datasets are freed when not in use. >I'm aware of the contingent that advocates NOVALUE, but I don't agree with >that perspective. ISPF works as designed and everyone must follow these rules or request they be changed. >To clarify, my logon panel calls userid.AD.CLIST, which does allocations, >ALTLIB and TSOLIB before calling ISPF. A requirement for products that I've worked on is that everything is contained within the REXX and nothing needs to be modified in TSO other than making the REXX available to the users who need it. > I want to add, e.g., user panels, in a form that will persist across START > (ISPSTRT). Persistence is typically achieved through REXX using the appropriate LIBDEFs. You would still need a REXX with permanent DD's because you should have a different ISPF ZAPPLID for your application. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
I'm trying to use LIBDEF as an alternative to freeing and reallocating the standard ISPF concatenations. Yes, typo for ISPxUSR. The allocation is before starting ISPF. The documentation shows those ddnames as being picked up automatically only for the DATASET keyword. I'm aware of the contingent that advocates NOVALUE, but I don't agree with that perspective. To clarify, my logon panel calls userid.AD.CLIST, which does allocations, ALTLIB and TSOLIB before calling ISPF. I need to issue an identical ALTLIB from within ISPF. I want to add, e.g., user panels, in a form that will persist across START (ISPSTRT). -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר From: IBM Mainframe Discussion List on behalf of Jon Perryman Sent: Wednesday, December 27, 2023 7:02 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF setup macro On Wed, 27 Dec 2023 19:59:26 +, Seymour J Metz wrote: What you are asking does not make any sense. >Do the LIBDEFs with DATASET pick up SPPxUSR if there is no ID keyword? I assume SSPxUSR actually means ISPxUSR. I can only comment from what I've read because ISPxUSR does not solve my problems. ISPxUSR is an actual DDName that must be allocated prior to starting ISPF which makes it valid for all applications with active LIBDEF. The documentation tells you the search sequence. If I remember correctly, only specifying the library name disables the LIBDEF. A quick test of specifying DATASET without the ID will tell you it's behavior. Remember that ISPxUSR does not change during the ISPF session. Remember you must avoid LIBDEF and ISPxUSR member collisions if other applications are needed. >address TSO ALTLIB ACTIVATE 'USER(EXEC)' To avoid REXX variable substitution, you should quote the entire ALTLIB command. Some could inadvertently code altlib="badcmd" in the REXX. ALTLIB is valid with and without ISPF. Executing the command prior to starting ISPF may affect its behavior. You will need to find the method that best suits ISPxUSR behavior. >address ISPEXEC ISPSTRT 'PARM LIBDEFARM(3.4)' I don't think you mean "ISPSTRT". There is an ISPF command called "START" which starts another logical ISPF screen but I don't think that is what you are attempting. I think you actually mean the TSO command ISPSTART which I believe is an alias for ISPF and PDF commands that start ISPF. Realize that ADDRESS ISPEXEC is not available until you start ISPF. >I want to write a REXX script to initialize an ISPF session, Session and initialize are not clear. I assume "session" refers to starting ISPF instead of splitting the logical screen. You mentioned ISPxUSR so you probably only need to LIBDEF the appropriate libraries. My guess is that you want "ISPF CMD(%MYREXX)" If I remember correctly, the syntax is similar to ISPEXEC SELECT. > assuming that another script has already allocated the necessary user data > sets and issue TSOLIB. Since you mentioned ISPxUSR, maybe ISPLUSR would be more appropriate than TSOLIB. >Tentatively I assume that I need >address ISPEXEC LIBDEF ISPPLIB DATASET >address ISPEXEC ... >address ISPEXEC ISPSTRT 'PARM LIBDEFARM(3.4)' "ISPEXEC ISPSTRT" doesn't look right. I would expect some form of "ISPEXEC SELECT". -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF setup macro
On Wed, 27 Dec 2023 19:59:26 +, Seymour J Metz wrote: What you are asking does not make any sense. >Do the LIBDEFs with DATASET pick up SPPxUSR if there is no ID keyword? I assume SSPxUSR actually means ISPxUSR. I can only comment from what I've read because ISPxUSR does not solve my problems. ISPxUSR is an actual DDName that must be allocated prior to starting ISPF which makes it valid for all applications with active LIBDEF. The documentation tells you the search sequence. If I remember correctly, only specifying the library name disables the LIBDEF. A quick test of specifying DATASET without the ID will tell you it's behavior. Remember that ISPxUSR does not change during the ISPF session. Remember you must avoid LIBDEF and ISPxUSR member collisions if other applications are needed. >address TSO ALTLIB ACTIVATE 'USER(EXEC)' To avoid REXX variable substitution, you should quote the entire ALTLIB command. Some could inadvertently code altlib="badcmd" in the REXX. ALTLIB is valid with and without ISPF. Executing the command prior to starting ISPF may affect its behavior. You will need to find the method that best suits ISPxUSR behavior. >address ISPEXEC ISPSTRT 'PARM LIBDEFARM(3.4)' I don't think you mean "ISPSTRT". There is an ISPF command called "START" which starts another logical ISPF screen but I don't think that is what you are attempting. I think you actually mean the TSO command ISPSTART which I believe is an alias for ISPF and PDF commands that start ISPF. Realize that ADDRESS ISPEXEC is not available until you start ISPF. >I want to write a REXX script to initialize an ISPF session, Session and initialize are not clear. I assume "session" refers to starting ISPF instead of splitting the logical screen. You mentioned ISPxUSR so you probably only need to LIBDEF the appropriate libraries. My guess is that you want "ISPF CMD(%MYREXX)" If I remember correctly, the syntax is similar to ISPEXEC SELECT. > assuming that another script has already allocated the necessary user data > sets and issue TSOLIB. Since you mentioned ISPxUSR, maybe ISPLUSR would be more appropriate than TSOLIB. >Tentatively I assume that I need >address ISPEXEC LIBDEF ISPPLIB DATASET >address ISPEXEC ... >address ISPEXEC ISPSTRT 'PARM LIBDEFARM(3.4)' "ISPEXEC ISPSTRT" doesn't look right. I would expect some form of "ISPEXEC SELECT". -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN