Re: GTTERM assistance (really 3270 VTAM application?)

2022-11-21 Thread Brian Chapman
Michael.

Originally, I started on this project to build a PC service provider
address space. The address space acquired several 64-bit areas with the
IARV64 GETSHARED service, and the service provider would allow problem
state address spaces to acquire interest into these 64-bit areas. The
64-bit areas were buffers for monitoring data. I also wanted a 3270
interface for administrative management of the configurations and the
monitoring data. Now, this project has morphed into something different.

For the register equates, I only use the equates when the equate is related
to an active USING statement. With registers 0,1,12 (if not
baseless),13,14,and 15 unavailable, it really limits the number of
registers for addressing control blocks. I find the register equate
methodology very useful and descriptive when managing many DSECTs.

I found the solution to my bind problem. All of the examples and most of
the manuals referenced the alternate area for bind information. I found one
manual that referenced 'Record area' and 'RECLEN'. I change the VTAM
INQUIRE macro from AAREA and AAREALN to AREA and AREALEN, and the INQUIRE
and OPNDST worked successfully with the bind information returned.

Here is the updated source:
**-**
** PROGRAM : PORTDSPI  **
** AUTHOR  : BRIAN CHAPMAN **
** WRITTEN ON  : 23 AUGUST 2017**
** MODIFIED ON :   **
** ASM OPTIONS : RENT,REUS AMODE=31 RMODE=31 AC=0  **
** DESCRIPTION : TASK INITIALIZATION ROUTINE   **
** : THIS PROGRAM BUILDS THE INITIAL TASK RELATED  **
** : CONTROL BLOCKS FOR A NEW TASK TO BE DISPATCHED.   **
**-**
** *
* REGEQU   *
** *
* COPY  PORTKERN   *
* COPY  PORTDMH*
* COPY  TASKANCH   *
* COPY  SESSVTAM   *
* COPY  SESSSOKT   *
** *
* EJECT*
* IFGRPL AM=VTAM*
* EJECT*
* ISTUSFBC   *
* EJECT  *
* IFGACB AM=VTAM *
* EJECT  *
* IFGEXLST AM=VTAM*
* EJECT  *
* ISTDNIB *
* ISTDBIND   *
**   *
*WORKAREA DSECT  *
*WORKNAME DSCL8  *
*SAVEAREA DS18F  *
*SAVERC   DSF*
*SAVEANCH DSF*
**   *
*VTAMRETC DSF*
*VTAMFDB2 DSF*
**   *
*CALLPLST DS0F   *
*CALLPRM1 DSF*
*CALLPRM2 DSF*
*CALLPRM3 DSF*
*CALLPRM4 DSF*
*CALLPRM5 DSF *
**   *
*WORKLEN  EQU   *-WORKAREA   *
**   *
*WORKREG  EQU   R3   *
*KERNREG  EQU   R4   *
*ANCHREG  EQU   R5   *
*DMHREG   EQU   R6   *
*VTAMREG  EQU   R6   *
*RPLREG   EQU   R7*
*NIBREG   EQU   R8   *
*ACBREG   EQU   R9   *
*BINDREG  EQU   R10  *
**   *
*PORTDSPI CSECT  *
*PORTDSPI AMODE 31   *
*PORTDSPI RMODE ANY  *
* STM   R14,R12,12(R13) SAVE REGISTERS   *
* LRR12,R15 ESTABLISH BASE   *
* USING PORTDSPI,R12SET ADDRESSIBILITY*
* B START*
**   *
* DCCL9'PORTDSPI' *
* DCCL9'' *
* DCCL5'' *
***
*STARTDS0H

Re: GTTERM assistance

2022-11-10 Thread Brian Chapman
Normal processing is for the user to enter a logon string and for
Unformatted System Services (or the TN3270 equivalent to USS) to convert it
to SNA.

Shmuel,

It should be this scenario. The address space issues the SETLOGON macro
with the LOGON parameter which addresses a logon exit routine. I then issue
'LOGON APPLID=A70PORTC' in my emulator, the logon exit routine is invoked,
posts the dispatcher ECB, and eventually the PORTDSPI program is invoked to
establish the session.

I issued a D NET,ID= command to inquire about the status of the opened ACB.
Here is the output.

*06.53.32 SYSC NET   IST097I DISPLAY
ACCEPTED*

*06.53.32 SYSC NET   IST075I NAME = SCA.A70PORTC, TYPE = DYNAMIC
APPL*

*IST486I STATUS= ACTIV, DESIRED STATE=
ACTIV *

*IST1447I REGISTRATION TYPE =
NETSRVR*

*IST1629I MODSRCH =
NEVER*

*IST977I MDLTAB=***NA***
ASLTAB=***NA*** *

*IST861I MODETAB=SCAMODE USSTAB=***NA***
LOGTAB=***NA*** *

*IST934I DLOGMOD=***NA*** USS
LANGTAB=***NA***   *

*IST1632I VPACING =  7
 *

*IST1938I APPC =
NO  *

*IST597I CAPABILITY-PLU ENABLED  ,SLU ENABLED  ,SESSION LIMIT
NONE   *

*IST231I APPL MAJOR NODE = MODLCICS
   *

*IST1425I DEFINED USING MODEL
A70?*  *

*IST654I I/O TRACE = OFF, BUFFER TRACE =
OFF *

*IST1500I STATE TRACE =
OFF  *

*IST271I JOBNAME = TS00JY3N, STEPNAME = ***NA***, DSPNAME =
ISTD98B2 *

*IST1050I MAXIMUM COMPRESSION LEVEL - INPUT = 0, OUTPUT =
0  *

*IST1633I ASRCVLM =
100  *

*IST1634I DATA SPACE USAGE: CURRENT = 0 MAXIMUM =
0  *

*IST2436I DSMONITR =
NO  *

*IST171I ACTIVE SESSIONS = 00, SESSION REQUESTS =
00 *

*IST314I END
   *


Thank you,

Brian Chapman


On Thu, Nov 10, 2022 at 7:34 AM Seymour J Metz  wrote:

> Normal processing is for the user to enter a logon string and for
> Unformatted System Services (or the TN3270 equivalent to USS) to convert it
> to SNA. That process determines a BIND image. If, instead, your application
> initiates the session then your application is responsible for providing
> the BIND image.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf
> of Brian Chapman [bchapma...@gmail.com]
> Sent: Wednesday, November 9, 2022 2:59 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: GTTERM assistance
>
> Thanks everyone. I went back to my session initialization process and
> reviewed my logic for the OPNDST macro. Originally, I did not use the AAREA
> or AAREALN parameters on this macro. I added these parameters and set the
> NIBNDAR accordingly, but now I'm getting a 084E sense code.
>
> *09.04.47 JOB21339  +PRT103E VTAM OPNDST request failed for netname
> SACTV017. Return = 0004 Sense = 084E.*
>
> I reviewed the documentation for this sense code. It seems that VTAM is
> expecting certain bind fields to be populated, but I'm not sure which
> fields.
>
> Sense code 084E
>
> Session parameters not valid—PRI: A positive response to an activation
> request (for example, BIND) was received and was changed to a negative
> response because session parameters that were not valid were carried in the
> response. The services manager receiving the response sends a deactivation
> request for the corresponding session. This error can occur if NETIDs are
> coded incorrectly on any NETWORK statements in CDRM definitions. See z/OS
> Communications Server: SNA Resource Definition Reference
> <
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ibm.com%2Fdocs%2Fen%2FSSLTBW_2.1.0%2Fcom.ibm.zos.v2r1.istrdr0%2Ftoc.htmdata=05%7C01%7Csmetz3%40gmu.edu%7C799f7d19d4604778f6fd08dac28d008e%7C9e857255df574c47a0c00546460380cb%7C0%7C0%7C638036208101949747%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7Csdata=pPIC%2B4ngPB8PQcj%2FelTSyfKCH3KdwJXAStf%2FHw988Bo%3Dreserved=0>
> for
> more information.
> Sense code 084E - IBM Documentation
> <
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ibm.com%2Fdocs%2Fen%2Fzos%2F2.1.0%3Ftopic%3Dreject-sense-code-084edata=05%7C01%7Csmetz3%40gmu.edu%7C799f7d19d4604778f6fd08dac28d008e%7C9e857255df574c47a0c0054646

Re: GTTERM assistance (really 3270 VTAM application?)

2022-11-10 Thread Brian Chapman
Michael,

Are you saying that sense code 084E is only applicable for LU6.2? I receive
the same sense code on my emulator when I attempt a logon to the opened ACB.

You have 3 R6's?:

DMHREG   EQU   R6
VTAMREG  EQU   R6
 LRR6,R1   LOAD DYNAMIC SESSION
 LAR8,INITVTAM LOAD INIT MODEL
 LHI   R9,INITVTAL LOAD INIT MODEL LENGTH
 MVCL  R6,R8   COPY INIT MODEL SESSION

I'm totally lost on your register usage and which using's are in effect.

DMHREG is only in effect for the small section of code before the DROP
instruction. I could have used the VTAMREG equate in the MVCL section, but
I wanted to be sure that it utilized an even-odd pair. In this case it
would have, but I like the flexibility of changing my equate assignments if
necessary.



Thank you,

Brian Chapman


On Thu, Nov 10, 2022 at 3:03 AM Michael Stein  wrote:

> > Sense code 084E - IBM Documentation
> > <https://www.ibm.com/docs/en/zos/2.1.0?topic=reject-sense-code-084e>
>
> That's for LU6.2.  What are your terminals, I thought they were 3270s?
>
> https://www.ibm.com/docs/en/search/3270?scope=SSLTBW_2.4.0=istprg0
>
> https://www.ibm.com/docs/en/zos/2.4.0?topic=system-types-3270-terminals
>
> Types of 3270 terminals
>
> The following types of 3270 terminals are directly supported by VTAM®
> in its domain:
>
> SNA 3270 terminals:
>
> Local (PU type 2)
>
> 3270 terminal attaches to a PU type 2 cluster controller, which
> in turn attaches to the VTAM host processor by a System/370
> channel. Example: 3278 Display Station on 3274-1A Control Unit.
>
> Remote SDLC (PU type 2)
>
> 3270 terminal attaches to a PU type 2 cluster controller, which
> in turn attaches by an SDLC link to a communication controller
> containing an NCP, or directly to a processor through a communication
> adapter. Example: 3278 Display Station on 3276 Control Unit.
>
> Remote SDLC (PU type 1)
>
> 3270 terminal attaches to a PU type 1 cluster controller, which
> in turn attaches by an SDLC link to a communication controller
> containing NCP, or directly to a processor through a communication
> adapter. Examples: 3288 Line Printer on 3271-12 Control Unit or a
> 3767 terminal.
>
> Non-SNA 3270 terminals:
>
> Local
>
> 3270 terminal attaches to a non-SNA cluster controller, which in turn
> attaches to the VTAM host processor by a System/370 channel. Example:
> 3277 Display Station on 3272 Control Unit. A 3270 terminal attached
> to a 4331 Display/Printer adapter also presents this appearance.
>
> Remote BSC
>
> 3270 terminal attaches to a non-SNA cluster controller, which in turn
> attaches by a BSC link to a communication controller containing NCP,
> or directly to a processor through a communication adapter. Example:
> 3286 Printer on 3271-2 Control Unit.
>
> In addition, VTAM supports sessions between application programs in the
> VTAM host processor and 3270 terminals in another domain in which each
> cross-domain terminal provides the appearance of one of the types of
> 3270s listed in the preceding discussion.
>
> You have 3 R6's?:
>
> DMHREG   EQU   R6
> VTAMREG  EQU   R6
>  LRR6,R1   LOAD DYNAMIC SESSION
>  LAR8,INITVTAM LOAD INIT MODEL
>  LHI   R9,INITVTAL LOAD INIT MODEL LENGTH
>  MVCL  R6,R8   COPY INIT MODEL SESSION
>
> I'm totally lost on your register usage and which using's are in effect.
>
> --
> 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: GTTERM assistance

2022-11-09 Thread Brian Chapman
I should also add another comment.

I was hoping I could just leave the bind area empty and let the SLU (the
user's emulator is the SLU in this scenario, right?) populate the bind
image with whatever it sends.



Thank you,

Brian Chapman


On Wed, Nov 9, 2022 at 2:59 PM Brian Chapman  wrote:

>
> Thanks everyone. I went back to my session initialization process and
> reviewed my logic for the OPNDST macro. Originally, I did not use the AAREA
> or AAREALN parameters on this macro. I added these parameters and set the
> NIBNDAR accordingly, but now I'm getting a 084E sense code.
>
> *09.04.47 JOB21339  +PRT103E VTAM OPNDST request failed for netname
> SACTV017. Return = 0004 Sense = 084E.*
>
> I reviewed the documentation for this sense code. It seems that VTAM is
> expecting certain bind fields to be populated, but I'm not sure which
> fields.
>
> Sense code 084E
>
> Session parameters not valid—PRI: A positive response to an activation
> request (for example, BIND) was received and was changed to a negative
> response because session parameters that were not valid were carried in the
> response. The services manager receiving the response sends a deactivation
> request for the corresponding session. This error can occur if NETIDs are
> coded incorrectly on any NETWORK statements in CDRM definitions. See z/OS
> Communications Server: SNA Resource Definition Reference
> <https://www.ibm.com/docs/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.istrdr0/toc.htm> 
> for
> more information.
> Sense code 084E - IBM Documentation
> <https://www.ibm.com/docs/en/zos/2.1.0?topic=reject-sense-code-084e>
>
> I also reviewed Table 2 on this page, BIND image and response - IBM
> Documentation
> <https://www.ibm.com/docs/en/zos/2.4.0?topic=sessions-bind-image-response>,
> and most of the fields that I thought to update are listed as 'VTAM
> ignores or overrides application program's setting.'
>
> Here is the program that's establishing the session. It acquires the user
> control blocks necessary for terminal based tasks, and then executes the
> OPNDST macro. Again, any assistance would be greatly appreciated.
>
> **-----**
> ** PROGRAM : PORTDSPI  **
> ** AUTHOR  : BRIAN CHAPMAN **
> ** WRITTEN ON  : 23 AUGUST 2017**
> ** MODIFIED ON :   **
> ** ASM OPTIONS : RENT,REUS AMODE=31 RMODE=31 AC=0  **
> ** DESCRIPTION : TASK INITIALIZATION ROUTINE   **
> ** : THIS PROGRAM BUILDS THE INITIAL TASK RELATED  **
> ** : CONTROL BLOCKS FOR A NEW TASK TO BE DISPATCHED.   **
> **-**
> ** *
> * REGEQU   *
> **  *
> * COPY  PORTKERN   *
> * COPY  PORTDMH*
> * COPY  TASKANCH   *
> * COPY  SESSVTAM   *
> * COPY  SESSSOKT   *
> ** *
> * EJECT *
> * IFGRPL AM=VTAM  *
> * EJECT*
> * ISTUSFBC   *
> * EJECT  *
> * IFGACB AM=VTAM *
> * EJECT  *
> * IFGEXLST AM=VTAM*
> * EJECT  *
> * ISTDNIB*
> * ISTDBIND   *
> **   *
> *WORKAREA DSECT  *
> *WORKNAME DSCL8  *
> *SAVEAREA DS18F  *
> *SAVERC   DSF *
> *SAVEANCH DSF*
> **   *
> *VTAMRETC DSF *
> ***
> *CALLPLST DS0F*
> *CALLPRM1 DSF *
> *CALLPRM2 DSF *
> *CALLPRM3 DSF *
> *CALLPRM4 DSF *
> *CALLPRM5 DSF *
> **   *
> *WORKLEN  EQU   *-WORKAREA*
> **   *
> *WORKREG  EQU   R3   *
> *KERNREG  EQU   R4   *
> *ANCHREG  EQU   R5*
> *DMHREG   EQU   R6  *
> *VTAMREG  EQU   R6  

Re: GTTERM assistance

2022-11-09 Thread Brian Chapman
Thanks everyone. I went back to my session initialization process and
reviewed my logic for the OPNDST macro. Originally, I did not use the AAREA
or AAREALN parameters on this macro. I added these parameters and set the
NIBNDAR accordingly, but now I'm getting a 084E sense code.

*09.04.47 JOB21339  +PRT103E VTAM OPNDST request failed for netname
SACTV017. Return = 0004 Sense = 084E.*

I reviewed the documentation for this sense code. It seems that VTAM is
expecting certain bind fields to be populated, but I'm not sure which
fields.

Sense code 084E

Session parameters not valid—PRI: A positive response to an activation
request (for example, BIND) was received and was changed to a negative
response because session parameters that were not valid were carried in the
response. The services manager receiving the response sends a deactivation
request for the corresponding session. This error can occur if NETIDs are
coded incorrectly on any NETWORK statements in CDRM definitions. See z/OS
Communications Server: SNA Resource Definition Reference
<https://www.ibm.com/docs/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.istrdr0/toc.htm> for
more information.
Sense code 084E - IBM Documentation
<https://www.ibm.com/docs/en/zos/2.1.0?topic=reject-sense-code-084e>

I also reviewed Table 2 on this page, BIND image and response - IBM
Documentation
<https://www.ibm.com/docs/en/zos/2.4.0?topic=sessions-bind-image-response>,
and most of the fields that I thought to update are listed as 'VTAM ignores
or overrides application program's setting.'

Here is the program that's establishing the session. It acquires the user
control blocks necessary for terminal based tasks, and then executes the
OPNDST macro. Again, any assistance would be greatly appreciated.

**-**
** PROGRAM : PORTDSPI  **
** AUTHOR      : BRIAN CHAPMAN **
** WRITTEN ON  : 23 AUGUST 2017**
** MODIFIED ON :   **
** ASM OPTIONS : RENT,REUS AMODE=31 RMODE=31 AC=0  **
** DESCRIPTION : TASK INITIALIZATION ROUTINE   **
** : THIS PROGRAM BUILDS THE INITIAL TASK RELATED  **
** : CONTROL BLOCKS FOR A NEW TASK TO BE DISPATCHED.   **
**-**
** *
* REGEQU   *
**  *
* COPY  PORTKERN   *
* COPY  PORTDMH*
* COPY  TASKANCH   *
* COPY  SESSVTAM   *
* COPY  SESSSOKT   *
** *
* EJECT *
* IFGRPL AM=VTAM  *
* EJECT*
* ISTUSFBC   *
* EJECT  *
* IFGACB AM=VTAM *
* EJECT  *
* IFGEXLST AM=VTAM*
* EJECT  *
* ISTDNIB*
* ISTDBIND   *
**   *
*WORKAREA DSECT  *
*WORKNAME DSCL8  *
*SAVEAREA DS18F  *
*SAVERC   DSF *
*SAVEANCH DSF*
**   *
*VTAMRETC DSF *
***
*CALLPLST DS0F*
*CALLPRM1 DSF *
*CALLPRM2 DSF *
*CALLPRM3 DSF *
*CALLPRM4 DSF *
*CALLPRM5 DSF *
**   *
*WORKLEN  EQU   *-WORKAREA*
**   *
*WORKREG  EQU   R3   *
*KERNREG  EQU   R4   *
*ANCHREG  EQU   R5*
*DMHREG   EQU   R6  *
*VTAMREG  EQU   R6  *
*RPLREG   EQU   R7  *
*NIBREG   EQU   R8  *
*ACBREG   EQU   R9  *
**  *
*PORTDSPI CSECT *
*PORTDSPI AMODE 31  *
*PORTDSPI RMODE ANY *
* STM   R14,R12,12(R13) SAVE REGISTERS  *
* LRR12,R15 ESTABLISH BASE  *
* USING PORTDSPI,R12SET ADDRESSIBILITY  *
* B START   *
**  *
* 

Re: GTTERM assistance

2022-11-02 Thread Brian Chapman
Michael,

I really appreciate the critiques. I agree that some of my comments are
misleading and need to be updated. I like the suggestion for MVCL.

I was not aware of the potential hazards with register 2. Using register 2
as a save register when acquiring a DSA is very common in all of my code.
I'll be more judicious with my usage of this register.

For the register equates, I've found myself reassigning register usages
often and having equates like "SESSREG  EQU   R5" have made that really
easy in the past. If I find that register 6 aligns more easily with a
particular instruction (MVCL for example), then updating the equate for
SESSREG is much easier than performing CHANGE ALL commands and
inadvertently changing a field name, literal, or some other string.



Thank you,

Brian Chapman


On Tue, Nov 1, 2022 at 7:28 PM Michael Stein  wrote:

> > Any assistance would be greatly appreciated.
> >
> > I am working on a SNA interface for a batch framework. This is mostly
> just
> > a massive learning exercise that will likely never be utilized, but I
> have
> > learned SO much while working on this project (currently 6 years in the
> > making).
>
> I'm confused about what this is part of.  Is this a TSO program
> or something else (saying SNA? VTAM APPL?).
>
> I ask that because as far as I know GTTERM is TSO only.  But
> you got return code 0 so perhaps the GTTERM is being issued
> from TSO.
>
> > The address space accepts terminals with MOD2 terminals and everything
>
> "Terminals" plural.  A TSO session with more than one?
>
> > I check register 15 after the SVC, and it is zero. But the SVC parameter
> > values are still zero.
>
> When using MF=L and MF=E macro forms, usually it's necessary to copy
> an MF=L list into the DSECT area before using the MF=E form...
>
> This is not true for all macros, but perhaps for GTTERM.
>
> So somewhere in the source should be a GTTERM MF=L and then it should
> be copied (MVC) into GTTLIST in the DSECT before issuing the GTTERM
> MF=(E,GTTLIST).  I'd suggest looking at the full expansion of the GTTERM
> (both MF=L and MF=E) to see if this is needed.
>
> Other points:
>
> > WORKREG  EQU   R3
> > SESSREG  EQU   R5
>
> I've only used 16 registers R0->R15.  You can do what you want but I'd
> be very careful that additional register equates didn't result in some
> duplicate register usage.  I saw some IBM source which had:
>
>   R15   EQU  R9
>
> I'd prefer better comments, or when trivial, no comment.   As an
> example:
>
> >  LRR2,R1   SAVE REGISTER 2
>
> This appears backwards, saving R1 in R2.   Also R2 is a problematic
> register as some hardware instructions alter it without it being specified
> (TRT translate and test at least).  I'd be careful when I used it and
> treat it as a bit less temporary than R0, R1, R14, R15.
>
> More comments on comments (& register usage):
>
> >  LRR6,WORKREG  LOAD REGISTER
> >  LAR8,0SET DUMMY FROM ADDRESS
> >  XRR9,R9   SET PADDING TO LOW VALUES
> >  MVCL  R6,R8   INITIALIZE AREA
>
> I'd suggest something like:
>
>LRR6,WORKREG  @ workarea to clear, len in R7
>SRR15,R15
>MVCL  R6,R14
>
> The contents of R14 don't matter for the MVCL as the length in R15 is zero.
>
> --
> 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: GTTERM assistance

2022-11-02 Thread Brian Chapman
All,

Thank you for the feedback.

I've been following the excellent write up by Greg Price (3270 Extended
Data Stream (prycroft6.com.au)
<https://www.prycroft6.com.au/misc/3270eds.html>) for understanding 3270
datasteams. This write up and Tommy Sprinkle's (3270 Data Stream
Programming (tommysprinkle.com)
<http://www.tommysprinkle.com/mvs/P3270/start.htm>) are a gold mine.

I was following his coding example for checking if the terminal accepts a
Query, but I mistakenly overlooked the fact that this is only for TSO. I
planned to add the GTTERM early in the process of establishing the VTAM
terminal to determine if Read Partition - Query is acceptable. For a VTAM
application, is it safe to assume that all connecting terminals accept Read
Partition - Query?

1. Check for a 3270 terminal:
 GTSIZE   Determine terminal screen dimensions
 LTR   R0,R0  3270 screen?
 BZLINEMODE   No, cannot do full screen 3270 I/O

2. Check if Read Partition (Query) is allowed:
 GTTERM PRMSZE=PRIMSIZE,ALTSZE=ALTSIZE,ATTRIB=TERMATTR
 LTR   R15,R15Did GTTERM work?
 BZNOQUERYNo, VTAM must be pre-ACF/VTAM
 TMTERMATTR+3,X'01'   Query allowed?
 BNO   NOQUERYNo
   ...
   ...
PRIMSIZE DCAL1(0,0)   Primary screen size
ALTSIZE  DCAL1(0,0)   Alternate screen size
TERMATTR DCF'0'   Terminal attributes

3. Activate VTAM full screen mode without input data stream editing:
 STFSMODE ON,NOEDIT=YES

4. Issue Read Partition (Query):
 LAR1,RESETAID
 LAR0,L'RESETAID
 ICM   R1,8,=X'0B'Load TPUT FULLSCR,WAIT,HOLD flags
 TPUT  (1),(0),R  Reset the Attention IDentifier
 TPG   QUERY,L'QUERY,NOEDIT,WAIT   Issue Query
   ...
   ...
RESETAID DCX'27F5C3'  Escape, Erase/Write, WCC for resetting AID and
MDTs
QUERYDCX'F3000501FF02'Read Partition structured field



Thank you,

Brian Chapman


On Wed, Nov 2, 2022 at 4:36 AM Seymour J Metz  wrote:

> Yes, GTTERM is TSO only. For a direct VTAM application, you need to send a
> Read Partition - Query and parse the query reply.
>
> AFAIK, GTTERM is one of the macros where you don't need to initialize the
> parameter list.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf
> of Michael Stein [m...@zlvfc.com]
> Sent: Tuesday, November 1, 2022 7:27 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: GTTERM assistance
>
> > Any assistance would be greatly appreciated.
> >
> > I am working on a SNA interface for a batch framework. This is mostly
> just
> > a massive learning exercise that will likely never be utilized, but I
> have
> > learned SO much while working on this project (currently 6 years in the
> > making).
>
> I'm confused about what this is part of.  Is this a TSO program
> or something else (saying SNA? VTAM APPL?).
>
> I ask that because as far as I know GTTERM is TSO only.  But
> you got return code 0 so perhaps the GTTERM is being issued
> from TSO.
>
> > The address space accepts terminals with MOD2 terminals and everything
>
> "Terminals" plural.  A TSO session with more than one?
>
> > I check register 15 after the SVC, and it is zero. But the SVC parameter
> > values are still zero.
>
> When using MF=L and MF=E macro forms, usually it's necessary to copy
> an MF=L list into the DSECT area before using the MF=E form...
>
> This is not true for all macros, but perhaps for GTTERM.
>
> So somewhere in the source should be a GTTERM MF=L and then it should
> be copied (MVC) into GTTLIST in the DSECT before issuing the GTTERM
> MF=(E,GTTLIST).  I'd suggest looking at the full expansion of the GTTERM
> (both MF=L and MF=E) to see if this is needed.
>
> Other points:
>
> > WORKREG  EQU   R3
> > SESSREG  EQU   R5
>
> I've only used 16 registers R0->R15.  You can do what you want but I'd
> be very careful that additional register equates didn't result in some
> duplicate register usage.  I saw some IBM source which had:
>
>   R15   EQU  R9
>
> I'd prefer better comments, or when trivial, no comment.   As an
> example:
>
> >  LRR2,R1   SAVE REGISTER 2
>
> This appears backwards, saving R1 in R2.   Also R2 is a problematic
> register as some hardware instructions alter it without it being specified
> (TRT translate and test at least).  I'd be careful when I used it and
> treat it as a bit less temporary than R0, R1, R14, R15.
>
> More comments on comments 

Re: GTTERM assistance

2022-11-01 Thread Brian Chapman
Shmuel,

All I see is that your save area code is bad

Thanks. I'm not sure how that 64 bit save area code got stuck in there.

What's in SESSBLK?

SESSBLK is just a user control block with the 'session' variables. The
values for SESSPRI and SESSALT and SESSATTR are still zero after the SVC
call.

I would probably have written something like

GTTLIST  GTTERM PRMSZE=SESSPRI,ALTSZE=SESSALT,ATTRIB=SESSATTR, *
   MF=(E,GTTLIST)

for documentation, but AFAIK that wouldn't affect the length.

I'm not sure I understand. I get an assembly error with "Previously defined
symbol' when I re-use the GTTLIST label.


Thank you,

Brian Chapman


On Tue, Nov 1, 2022 at 3:42 PM Seymour J Metz  wrote:

> All I see is that your save area code is bad, but that shouldn't affect
> the returned values from GTTERM. What's in SESSBLK?
>
> I would probably have written something like
>
> GTTLIST  GTTERM PRMSZE=SESSPRI,ALTSZE=SESSALT,ATTRIB=SESSATTR, *
>MF=(E,GTTLIST)
>
> for documentation, but AFAIK that wouldn't affect the length.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf
> of Brian Chapman [bchapma...@gmail.com]
> Sent: Tuesday, November 1, 2022 2:45 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: GTTERM assistance
>
> Hello all,
>
> Any assistance would be greatly appreciated.
>
> I am working on a SNA interface for a batch framework. This is mostly just
> a massive learning exercise that will likely never be utilized, but I have
> learned SO much while working on this project (currently 6 years in the
> making).
>
> The address space accepts terminals with MOD2 terminals and everything
> displays great. However, I would like to support larger terminal sizes. My
> first hurdle is GTTERM. I understand that my program should be in  RMODE24
> and AMODE24. The program is assembled with AMODE 31, but performs a SAM24
> and SAM31 before and after the SVC call. The dynamic storage area for the
> program is also acquired below the line.
>
> I check register 15 after the SVC, and it is zero. But the SVC parameter
> values are still zero.
>
> Here is my source:
>
>  REGEQU
>  COPY  SESSBLK
> *
> WORKAREA DSECT
> WORKNAME DSCL8
> SAVEAREA DS18F
> SAVERC   DSF
> SAVEPARM DSF
> *
> GTTLIST  GTTERM MF=L
> *
> WORKLEN  EQU   *-WORKAREA
> *
> WORKREG  EQU   R3
> SESSREG  EQU   R5
> *
> PORTTC04 CSECT
> PORTTC04 AMODE 31
> PORTTC04 RMODE 24
>  STM   R14,R12,12(R13) SAVE REGISTERS
>  LRR12,R15 ESTABLISH BASE
>  USING PORTTC04,R12*
>  B START
> *
>  DCCL9'PORTTC04'
>  DCCL9''
>  DCCL5''
> *
> STARTDS0H
>  LRR2,R1   SAVE REGISTER 2
>  LHI   R7,WORKLEN  LOAD WORK AREA LENGTH
>  GETMAIN RU,LV=(R7),LOC=BELOW
>  LRWORKREG,R1  *
>  USING WORKAREA,WORKREGSET ADDRESSIBILITY
> *
>  LRR6,WORKREG  LOAD REGISTER
>  LAR8,0SET DUMMY FROM ADDRESS
>  XRR9,R9   SET PADDING TO LOW VALUES
>  MVCL  R6,R8   INITIALIZE AREA
> *
>  STR13,SAVEAREA+4  CHAIN CALLER'S SAVEAREA ADDRESS
>  LAR13,SAVEAREA
>  STR13,SAVEAREA+8  SAVE CURRENT SAVEAREA ADDRESS
>  MVC   SAVEAREA(4),=CL4'F4SA'
>  MVC   WORKNAME(8),=CL8'PORTTC04'
> *
> GETLINK  DS0H
>  LRR1,R2   RESTORE REGISTER 2
>  STR1,SAVEPARM
>  LTSESSREG,4(R1)   GET ADDRESS OF SESSBLK
>  BZBADLINK NO LINKAGE PASSED
>  USING SESSBLK,SESSREG SET ADDRESSIBILITY
> *
> GETTERM  DS0H
>  SAM24
> *
>  GTTERM PRMSZE=SESSPRI,ALTSZE=SESSALT,ATTRIB=SESSATTR, *
>MF=(E,GTTLIST)
> *
>  ABEND 91,DUMP
>  SAM31
> *
>  LTR   R15,R15
>  BNZ   BADRC
> *
>  STR15,SESSATTR+4
> *
>  B RETURN
> *
> BADRCDS0H
>  WTO   'PORTTC04 BAD GTTERM RC'
>  MVHI  SAVERC,16   SET BAD RETURN CODE
>  ABEND 98,DUMP
> *
> BADLINK  DS0H
>  WTO   'PORTTC04 INVALID LINKAGE PARAMETERS'
>  MVHI  SAVERC,16   SET BAD RETURN CODE
>  ABEND 99,DUMP
> *
> RETURN   DS0H
>  L R13,SAVEAREA+4   

GTTERM assistance

2022-11-01 Thread Brian Chapman
  *.. &*
0002CF68 000F68     **
0002CF78 000F78     **
0002CF88 000F88     **
0002CF98 000F98  000943C8   *.. H*
0002CFA8 000FA8   0002CBFC 0002CBFE *..  ..  *
0002CFB8 000FB8 8002CC00    * .ö.*
0002CFC8 000FC8     **
0002CFD8 000FD8     **
0002CFE8 000FE8     **

Address  Offset from _0002C000Origin STORAGE 0001
0002CBFC 000BFC     **

Address  Offset from _0002C000Origin STORAGE 0001
0002CBFE 000BFE     **

Address  Offset from _0002C000Origin STORAGE 0001
0002CC00 000C00     **


Thank you,

Brian Chapman

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


Re: Unix System Services migration

2022-09-29 Thread Brian Chapman
Carmen/ Shmuel,

Thank you. I will review these reference manuals.



Thank you,

Brian Chapman


On Thu, Sep 29, 2022 at 9:19 AM Carmen Vitullo  wrote:

> that's a better reference - I have a PDF saved on my work PC somewhere,
> but this looks about the same
>
> Carmen
>
> On 9/29/2022 8:05 AM, Seymour J Metz wrote:
> > See "Chapter 7. Sharing file systems in a sysplex" in z/OS 2.5 UNIX
> System Services Planning, GA32-0884-50.
> >
> >
> > --
> > Shmuel (Seymour J.) Metz
> > http://mason.gmu.edu/~smetz3
> >
> > 
> > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
> behalf of Brian Chapman [bchapma...@gmail.com]
> > Sent: Thursday, September 29, 2022 8:54 AM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Unix System Services migration
> >
> > How are most shops handling USS management and migration?
> >
> > For many years, there has been a strong sentiment in my shop against
> > utilizing USS (security and scalability were always cited as the primary
> > reasons) and we were only allowed to utilize USS with IBM and ISV
> software
> > installs. Things are changing and now there is a strong push to change
> our
> > culture around USS. However, we are greatly behind with the times and
> > inexperienced with best management practices regarding USS migrations.
> >
> > I'm sure our shop isn't the only site with a similar configuration, but
> we
> > have multiple systems for development lifecycles (alpha testing on SYSA
> and
> > SYSB, beta testing on SYSC and SYSD, etc). Since USS requires separate
> > dataset mounts for each system, this makes sharing common resources
> across
> > the same lifecycle environment impossible; unless it is read-only (but
> how
> > do you update the file system without an outage?). Is there some sort of
> > management practice that we're missing to achieve the ability to leverage
> > common resources in USS?
> >
> > Also, how do you handle migration? Our shop uses CA Endevor. Do you
> employ
> > your change management software with USS migrations? If so, how do you
> copy
> > directories/folders without outages? For directories/files that can
> easily
> > be built with jobs, do you re-run these jobs on each system, or copy
> these
> > elements?
> >
> >
> >
> >
> > Thank you,
> >
> > Brian Chapman
> >
> > --
> > 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
>
> --
> 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


Unix System Services migration

2022-09-29 Thread Brian Chapman
How are most shops handling USS management and migration?

For many years, there has been a strong sentiment in my shop against
utilizing USS (security and scalability were always cited as the primary
reasons) and we were only allowed to utilize USS with IBM and ISV software
installs. Things are changing and now there is a strong push to change our
culture around USS. However, we are greatly behind with the times and
inexperienced with best management practices regarding USS migrations.

I'm sure our shop isn't the only site with a similar configuration, but we
have multiple systems for development lifecycles (alpha testing on SYSA and
SYSB, beta testing on SYSC and SYSD, etc). Since USS requires separate
dataset mounts for each system, this makes sharing common resources across
the same lifecycle environment impossible; unless it is read-only (but how
do you update the file system without an outage?). Is there some sort of
management practice that we're missing to achieve the ability to leverage
common resources in USS?

Also, how do you handle migration? Our shop uses CA Endevor. Do you employ
your change management software with USS migrations? If so, how do you copy
directories/folders without outages? For directories/files that can easily
be built with jobs, do you re-run these jobs on each system, or copy these
elements?




Thank you,

Brian Chapman

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


Re: REXX - Interpret or Value - Which is better?

2021-09-17 Thread Brian Chapman
Years ago I used INTERPRET often, and I too switched to VALUE. There's
still one use case that I still use INTERPRET, and that's for 'passing'
many variables (most of which are stem) between programs.

This program reads an input dataset that contains all of the variable names
that should be passed. It then uses INTERPRET to append the variable names
and values to the PARMS variable. It then performs the CALL. The calling
subprogram performs an INTERPRET on ARG(1). Once the subprogram returns, it
uses INTERPRET to receive the returned variables and values.

*CALL DRAW_PARMS*

*PARMS = PARMS"OBJPOS='"OBJPOS"';OBJLEN='"OBJLEN"';OBJINTS='"OBJINTS"';",*

* "OBJHILT='"OBJHILT"';OBJCOLR='"OBJCOLR"';OBJVAL='"OBJVAL"'"*



*CALL SCRNTXAT PARMS*



*IF RESULT = 'RESULT' THEN  *

*  NOP  *

*ELSE   *

*  CALL PARSE_PARMS RESULT  *







*DRAW_PARMS:   *

*  PARMS = ''  *



*  ADDRESS TSO *

*  "ALLOC DATASET('"SYSPROC"("SCRNGLBL")') FILE(PARM) SHR" *

*  'EXECIO * DISKR PARM (FINIS STEM PARMS.'*

*  'FREE FILE(PARM)'*



*  DO I = 1 TO PARMS.0 *

*PARM = SPACE(SUBSTR(PARMS.I,1,12))*



*IF PARM > '' THEN DO  *

*  IF POS('.',PARM) = LENGTH(PARM) THEN DO *

*INTERPRET "STEM_MAX = "PARM'0'*



*DO J = 0 TO STEM_MAX  *

*  INTERPRET "PARMS = PARMS||PARM||J'='''"PARM||J"''';'"*

*END   *

*  END *

*  ELSE*

*INTERPRET "PARMS = PARMS||PARM'='''"PARM"''';'"   *

*END   *

*  END*



*  DO I = 1 TO OBJ_CNT *

*PARSE VAR OBJ_NDX.I DRAW_ROW_NUM '.' DRAW_FLD_CNT *



*INTERPRET "PARMS = PARMS||"OBJ_NDX"'.'I'='||'''"OBJ_NDX.I"'''||';'"*



*DO J = 1 TO ATTR_CNT  *

*  PARM_VAL = OBJ.DRAW_ROW_NUM.DRAW_FLD_CNT.J  *



*  IF POS("'",PARM_VAL) > 0 THEN DO *

*CALL CHANGE_STR PARM_VAL,"'","''" *

*PARM_VAL = STRING *

*  END *



*  INTERPRET "PARMS = PARMS||"OBJ.DRAW_ROW_NUM.DRAW_FLD_CNT||, *

*"'.'J'='''PARM_VAL''';'"  *

*END*

*  END     *

*RETURN*



*PARSE_PARMS:*

*  PARMS = ARG(1)*



*  INTERPRET PARMS*

*RETURN  *




Thank you,

Brian Chapman


On Mon, Sep 13, 2021 at 10:19 AM Bob Bridges  wrote:

> I use INTERPRET here and there, but pretty rarely.  About the only program
> with it that I use all the time is something I call "EV" (for "evaluate),
> that acts as a sort of ad-hoc calculator:
>
>   parse arg v1
>   interpret 'v2='v1
>   say v1'='v2
>
> Thus I can say on any ISPF command line "tso ev 228/15" and learn how many
> cylinders that dataset is.  Or "tso ev mvsvar('SYSNAME')" to look at the
> local node name.  Or "tso ev xxx(45)" to test a new external REXX function.
>
> But I keep thinking about the possibilities for malice in any tool I write
> for public use, and worry about it.  I can't think of any examples, because
> as Itschak points out below, it's always going to run under the
> perpetrator's own ID, so INTERPRET isn't giving him any capabilities he
> doesn't already have.  Can anyone point me to an example of how this would
> become a Bad Thing?  I'm really curious.
>
> ---
> Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313
>

Re: Can I use a REXX PLIST when calling a COBOL program?

2021-03-22 Thread Brian Chapman
Cameron,

If you add the data areas to the PROCEDURE DIVISION USING statement, then
COBOL will set the linkage accordingly.



Thank you,

Brian Chapman


On Mon, Mar 22, 2021 at 9:13 AM Cameron Conacher  wrote:

> Hello everyone,
> I have been busy playing with an old support pac from IBM that enables REXX
> to call an Assembler routine that in turn invokes EXCI.
> Not terribly important, but I thought the PLIST interface between REXX and
> Assembler was pretty slick. I had not seen it before. (and the support pac
> was from 1996!)
>
> It got me to wondering if I could do something similar with REXX calling a
> COBOL routine.
> Can I pass a PLIST from REXX to a COBOL program?
>
> If I can pass the PLIST, do I need to parse the pointer list myself, or can
> I just list out the linkage section items in the order I expect them.
>
> Thanks for any thoughts,
>
> ...Cameron
>
> --
> 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: This Call-Assembler-inside-COBOL technique works, but is it risky to use?

2021-03-17 Thread Brian Chapman
Frank,

Do you have a source?

https://www.ibm.com/support/knowledgecenter/SS6SG3_6.1.0/pg/tasks/tpbeg04d.html

A constant is a data item that has only one value. COBOL does not define a
construct for constants. However, you can define a data item with an
initial value by coding a VALUE clause in the data description (instead of
coding an INITIALIZE statement).

On Wed, Mar 17, 2021, 5:48 PM Frank Swarbrick 
wrote:

> The current COBOL standard supports constants.  Not a CONSTANTS-SECTION
> but something like:
> 01  my-constant IS CONSTANT VALUE "This is a constant string".
>
> I may have the syntax not quite correct, but don't feel like looking it up.
>
> IBM has not yet implemented this support in Enterprise COBOL.
>
> 
> From: IBM Mainframe Discussion List  on behalf
> of Farley, Peter x23353 <031df298a9da-dmarc-requ...@listserv.ua.edu>
> Sent: Wednesday, March 17, 2021 2:47 PM
> To: IBM-MAIN@LISTSERV.UA.EDU 
> Subject: Re: This Call-Assembler-inside-COBOL technique works, but is it
> risky to use?
>
> Yeah, I've seen that one too, but that could also happen to any
> dynamically called subroutine loaded in non-store-protected memory if the
> table index overrun is big enough (BTDTGTTS and the scars).
>
> I wouldn't contemplate embedding such "clever" code in a "normal"
> application program for the very reason you state, but instead I would put
> it in its own separately compiled subroutine intended to be dynamically
> called.  Then if they overrun a table limit by a REALLY big amount they
> will have overwritten far more than just my "clever" routine.
>
> Having a CONSTANTS SECTION in addition to WORKING-STORAGE and
> LOCAL-STORAGE sections would be very nice indeed, and better still if the
> CONSANTS section used a store-protected storage pool, but we don’t have
> that, as you say.
>
> Of course, just writing the actual assembler code and making that source
> program yet another separately compiled subroutine is always an option
> too.  It just feels like overkill for a four-instruction subroutine (not
> counting CSECT, END, AMODE, and RMODE).
>
> Replacing "clever" with a "builtin function" like XLC has would be my
> preferred solution, but we don’t have that to hand yet either.
>
> Peter
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Brian Chapman
> Sent: Wednesday, March 17, 2021 3:54 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: This Call-Assembler-inside-COBOL technique works, but is it
> risky to use?
>
> It would be nice if COBOL had constant constructs. Knowing my shop's COBOL
> developers, I could easily see one of them placing a table above this,
> programmatically ignoring the COBOL OCCURS statement, and overrunning the
> table and into your VALUE statements.
>
> Thank you,
>
> Brian Chapman
>
>
> On Wed, Mar 17, 2021 at 2:12 PM Gibney, Dave  wrote:
>
> > The code looks fine, even if invoked in 64 bit mode. I'd worry a bit
> > more about the cache hit, the STCK is likely storing into the same cache
> line.
> >
> > > -Original Message-
> > > From: IBM Mainframe Discussion List  On
> > > Behalf Of Farley, Peter x23353
> > > Sent: Wednesday, March 17, 2021 11:06 AM
> > > To: IBM-MAIN@LISTSERV.UA.EDU
> > > Subject: Re: This Call-Assembler-inside-COBOL technique works, but
> > > is it
> > risky
> > > to use?
> > >
> > > Yes, making it a simple callable assembler routine is the safest
> > > option,
> > but
> > > introduces yet another assembler routine into the production source
> > > pool when there are fewer and fewer assembler-knowledgeable
> > > programmers left.
> > >
> > > If COBOL supported the "hardware builtin" functions provided with
> > > XLC it would be totally safe.
> > >
> > > As I said in a prior reply, I worry  most about the structure of the
> > > PROCEDURE-POINTER possibly changing for 64-bit mode, which an
> > > assembler subroutine certainly avoids.
> > >
> > > Peter
> > >
> > > -Original Message-
> > > From: IBM Mainframe Discussion List  On
> > > Behalf Of Matt Hogstrom
> > > Sent: Wednesday, March 17, 2021 1:29 PM
> > > To: IBM-MAIN@LISTSERV.UA.EDU
> > > Subject: Re: This Call-Assembler-inside-COBOL technique works, but
> > > is it
> > risky
> > > to use?
> > >
> > > I recall doing something like this about 30 years ago which I know
> > > would break one day.  I wanted to pr

Re: HLASM question about SQLITE3

2021-03-17 Thread Brian Chapman
** ASMA224E No control section defined, external reference with GOFF option
ignored - ###0021

Does the error say 021 or 0022? If it's 0022 then it looks like
you're missing a CSECT.



Thank you,

Brian Chapman


On Wed, Mar 17, 2021 at 3:49 PM Dave Jones  wrote:

> Hi, all.
> I am now working with John McKown's port of SQLITE3 to z/OS Unix Systems
> services. However when I attempt to compile the SQLITE3A member with HLASM
> 1.6, I get errors that state:
>  581 **OLDMKFUNC
> sqlite3_backup_
>  582  MKFUNC
> sqlite3_backup_
> 010C 583+ DS 0F
>
> 010C 0134584+ DC
>  A(__$0022)
> 0110 0018585+ DC A(24)
>
> 0114 586+ DC
>  V(###0022)
> ** ASMA224E No control section defined, external reference with GOFF
> option ignored - ###0021
>
> Does anyone know how to correct this error?
> Many thanks.
> DJ
>
> --
> 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: This Call-Assembler-inside-COBOL technique works, but is it risky to use?

2021-03-17 Thread Brian Chapman
It would be nice if COBOL had constant constructs. Knowing my shop's COBOL
developers, I could easily see one of them placing a table above this,
programmatically ignoring the COBOL OCCURS statement, and overrunning the
table and into your VALUE statements.



Thank you,

Brian Chapman


On Wed, Mar 17, 2021 at 2:12 PM Gibney, Dave  wrote:

> The code looks fine, even if invoked in 64 bit mode. I'd worry a bit more
> about the cache hit, the STCK is likely storing into the same cache line.
>
> > -Original Message-
> > From: IBM Mainframe Discussion List  On
> > Behalf Of Farley, Peter x23353
> > Sent: Wednesday, March 17, 2021 11:06 AM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: This Call-Assembler-inside-COBOL technique works, but is it
> risky
> > to use?
> >
> > Yes, making it a simple callable assembler routine is the safest option,
> but
> > introduces yet another assembler routine into the production source pool
> > when there are fewer and fewer assembler-knowledgeable programmers
> > left.
> >
> > If COBOL supported the "hardware builtin" functions provided with XLC it
> > would be totally safe.
> >
> > As I said in a prior reply, I worry  most about the structure of the
> > PROCEDURE-POINTER possibly changing for 64-bit mode, which an assembler
> > subroutine certainly avoids.
> >
> > Peter
> >
> > -Original Message-
> > From: IBM Mainframe Discussion List  On
> > Behalf Of Matt Hogstrom
> > Sent: Wednesday, March 17, 2021 1:29 PM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: This Call-Assembler-inside-COBOL technique works, but is it
> risky
> > to use?
> >
> > I recall doing something like this about 30 years ago which I know would
> > break one day.  I wanted to process VB ISAM but that wasn’t supported so
> I
> > figured out a way to search backwards from WS with negative indexes
> until I
> > found the DCB for the file and “moved a byte” with the right bit on for
> V.
> >
> > I would expect your hack to work for many years, although, the next guy
> to
> > try and maintain the code might not understand it.  I’d make it callable
> > module.  I mean, who doesn’t need a good STCK once in a while?
> >
> > Nice.
> >
> > Matt Hogstrom
> > m...@hogstrom.org
> > PGP Key: 0x90ECB270
> >
> > > On Mar 17, 2021, at 11:50 AM, Farley, Peter x23353 <031df298a9da-
> > dmarc-requ...@listserv.ua.edu> wrote:
> > >
> > > I discovered that one can code and call extremely simple assembler code
> > from completely within a COBOL source program, but it is a two-step
> process
> > which I will describe below.
> > >
> > > My question is whether using a technique like this is "risky" in the
> sense
> > that it may someday, under a future incarnation of the compiler, stop
> > working?
> > >
> > > The technique:
> > >
> > > Code a simple assembler program like the following and browse the
> > resulting listing that shows the generated object code:
> > >
> > > COBSTCKE CSECT ,
> > > L 15,0(,1)  GET ARGUMENT ADDRESS
> > > STCKE 0(15) STCKE INTO ARGUMENT AREA
> > > XR15,15 SET RETURN CODE = 0
> > > BR14RETURN TO CALLER
> > >
> > > Then copy the generated object code into a COBOL source program as
> > follows:
> > >
> > >   ID DIVISION.
> > >   PROGRAM-ID. COBSTCKE.
> > >   ENVIRONMENT DIVISION.
> > >   DATA DIVISION.
> > >   WORKING-STORAGE SECTION.
> > >   01  WS-TOD-VALUE  PIC  X(16).
> > >
> > >   01  WS-GETTOD-PROGRAM.
> > >  * GET ARGUMENT ADDRESS L  15,0(,1)
> > >   05  FILLER   PIC  X(04) VALUE X'58F01000'.
> > >  * STCKE INTO ARGUMENT AREA STCKE 0(15)
> > >   05  FILLER   PIC  X(04) VALUE X'B278F000'.
> > >  * SET RETURN-CODE = 0  XR 15,15
> > >   05  FILLER   PIC  X(02) VALUE X'17FF'.
> > >  * RETURN TO CALLER BR 14
> > >   05  FILLER   PIC  X(02) VALUE X'07FE'.
> > >
> > >   01  WS-GETTOD-PTR.
> > >   05  GETTOD-ADDRPROCEDURE-POINTER VALUE NULL.
> > >   05  FILLER REDEFINES GETTOD-ADDR.
> > >   10  GETTOD-ADDR1   POINTER.
> > >   10

Re: Contents of TOD Programmable Field under z/OS?

2021-03-17 Thread Brian Chapman
I may need wrong, but I seem to remember reading that the 12 bit lower
order value had some relation to the processor ID. This ensured the STCK
value would be unique across the sysplex.

On Wed, Mar 17, 2021, 1:55 PM Farley, Peter x23353 <
031df298a9da-dmarc-requ...@listserv.ua.edu> wrote:

> But is it documented anywhere?  PoOP is silent on the value of the field.
>
> Peter
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Salva Carrasco
> Sent: Wednesday, March 17, 2021 12:59 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Contents of TOD Programmable Field under z/OS?
>
> Afaik unique to the LPAR & Sysplex.
>
> --
>
> 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...@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: This Call-Assembler-inside-COBOL technique works, but is it risky to use?

2021-03-17 Thread Brian Chapman
Peter,

This is interesting, but how is this better than just link-editing the
assembler program into the COBOL program?



Thank you,

Brian Chapman


On Wed, Mar 17, 2021 at 11:50 AM Farley, Peter x23353 <
031df298a9da-dmarc-requ...@listserv.ua.edu> wrote:

> I discovered that one can code and call extremely simple assembler code
> from completely within a COBOL source program, but it is a two-step process
> which I will describe below.
>
> My question is whether using a technique like this is "risky" in the sense
> that it may someday, under a future incarnation of the compiler, stop
> working?
>
> The technique:
>
> Code a simple assembler program like the following and browse the
> resulting listing that shows the generated object code:
>
> COBSTCKE CSECT ,
>  L 15,0(,1)  GET ARGUMENT ADDRESS
>  STCKE 0(15) STCKE INTO ARGUMENT AREA
>  XR15,15 SET RETURN CODE = 0
>  BR14RETURN TO CALLER
>
> Then copy the generated object code into a COBOL source program as follows:
>
>ID DIVISION.
>PROGRAM-ID. COBSTCKE.
>ENVIRONMENT DIVISION.
>DATA DIVISION.
>WORKING-STORAGE SECTION.
>01  WS-TOD-VALUE  PIC  X(16).
>
>01  WS-GETTOD-PROGRAM.
>   * GET ARGUMENT ADDRESS L  15,0(,1)
>05  FILLER   PIC  X(04) VALUE X'58F01000'.
>   * STCKE INTO ARGUMENT AREA STCKE 0(15)
>05  FILLER   PIC  X(04) VALUE X'B278F000'.
>   * SET RETURN-CODE = 0  XR 15,15
>05  FILLER   PIC  X(02) VALUE X'17FF'.
>   * RETURN TO CALLER BR 14
>05  FILLER   PIC  X(02) VALUE X'07FE'.
>
>01  WS-GETTOD-PTR.
>05  GETTOD-ADDRPROCEDURE-POINTER VALUE NULL.
>05  FILLER REDEFINES GETTOD-ADDR.
>10  GETTOD-ADDR1   POINTER.
>10  GETTOD-ADDR2   POINTER.
>
>PROCEDURE DIVISION.
>
>SET GETTOD-ADDR1 TO ADDRESS OF WS-GETTOD-PROGRAM.
>CALL GETTOD-ADDR USING WS-TOD-VALUE.
>DISPLAY FUNCTION HEX-OF (WS-TOD-VALUE).
>GOBACK.
>
> 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...@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: Any z/OS sandbox available for a university student I know?

2021-03-16 Thread Brian Chapman
Bill,

It's so much more than just colleges. Anybody can download python to their
PC and begin writing python in just a few minutes. The same is true for
just about every distributed platform operating system and language. When I
was 13, I was learning HTML, CGI, Perl, and javascript. In high school, I
learned Pascal and QBasic. Neither Pascal or QBasic are flashy or exciting,
but I developed a huge passion for programming very early. I would have
learned COBOL if I had the capability.

Look at cryptocurrencies. There's nothing really flashy or captivating
(other than the monetary aspect) like web or video game development with
stunning visuals. The majority of the development and interactions are
handled as backend transactions, but young kids are clambering to work on
it. It's all about culture and perspective.



Thank you,

Brian Chapman


On Tue, Mar 16, 2021 at 3:58 PM Bill Johnson <
0047540adefe-dmarc-requ...@listserv.ua.edu> wrote:

> There are quite a few colleges that offer mainframe classes & lots of
> young people working on it. Too many have bought the mainframe is dead
> idiocy. For decades. The mainframe still processes the vast majority of
> important work and will for decades to come, long after most of us here are
> gone.
> Yes, plenty of kids are doing more “fun” work. It reminds me of 25 years
> ago when Microsoft certification was the hot tech. I’ve seen dozens of fads
> come and go that didn’t have the staying power of the good old IBM
> mainframe. Visual Basic anyone! Oracle was going to replace DB2 said
> numerous “experts”.
> IBM fanboy
>
>
> Sent from Yahoo Mail for iPhone
>
>
> On Tuesday, March 16, 2021, 3:45 PM, Brian Chapman 
> wrote:
>
> In my opinion, it's a shame that it is this difficult to find a free
> academic platform for individuals like the one you described. Master the
> Mainframe is a great place to start, but it does not go deep enough.
> There's a reason why preteens are writing python, javascript, ruby, etc.
> IBM needs to change their perspective and culture to encourage
> young individuals to the mainframe.
>
>
>
> Thank you,
>
> Brian Chapman
>
>
> On Tue, Mar 16, 2021 at 12:55 PM Support, DUNNIT SYSTEMS LTD. <
> supp...@dunnitsys.com> wrote:
>
> > Hi all,
> >
> > I was approached by a university student who wants self study z/OS
> > architecture and Assembler - including 64 bit programming - as an
> > extra-ciricular activity. The guy is on a shoestring budget. Is there
> > anything out there for such an aspiring mainframer? Thanks.
> >
> > --
> > 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
>
>
>
>
> --
> 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: Any z/OS sandbox available for a university student I know?

2021-03-16 Thread Brian Chapman
In my opinion, it's a shame that it is this difficult to find a free
academic platform for individuals like the one you described. Master the
Mainframe is a great place to start, but it does not go deep enough.
There's a reason why preteens are writing python, javascript, ruby, etc.
IBM needs to change their perspective and culture to encourage
young individuals to the mainframe.



Thank you,

Brian Chapman


On Tue, Mar 16, 2021 at 12:55 PM Support, DUNNIT SYSTEMS LTD. <
supp...@dunnitsys.com> wrote:

> Hi all,
>
> I was approached by a university student who wants self study z/OS
> architecture and Assembler - including 64 bit programming - as an
> extra-ciricular activity. The guy is on a shoestring budget. Is there
> anything out there for such an aspiring mainframer? Thanks.
>
> --
> 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: z/OS Website Template

2021-03-15 Thread Brian Chapman
Jasi,

Do you run CICS? If so, have you explored CICS web support using URIMAP and
DOCTEMPLATE?

https://www.ibm.com/support/knowledgecenter/SSGMCP_5.5.0/applications/designing/dfhp3_doc_template.html



Thank you,

Brian Chapman


On Wed, Mar 10, 2021 at 10:21 AM Jasi Grewal  wrote:

> Hi, I am looking for z/OS Website Template which could operate using USS
> environment and I am looking for a Template with options to provide some
> configuration information to the viewers.
> I would be grateful if you could share a template and would save me alot
> of time in re-designing the initial setup.
>
> Thank You in advance,
> Regards,
> Jasi G.
>
> --
> 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


Querying WLM address space CPU delays

2021-03-15 Thread Brian Chapman
We have an in-house tool that monitors CPU consumption and other
performance metrics for address spaces and CICS transactions. This data is
summarized every 5 minutes to allow easy querying and comparisons. All of
this data is stored in DB2 and we have created some impressive SQL queries
to quickly and efficiently display anomalies and critical issues. Our
management runs our mainframe near full capacity to achieve "full value"
for their processors. Needless to say, we don't always have enough
tolerance to allow CPU consumer "outliers".

With this tool, researching high CPU consumers that are out of their
average have become easy, but we cannot easily determine the
perceived impact. Just because an address space is consuming more CPU and
the system is at 100% doesn't necessarily mean our customers are perceiving
any negative impact. The system could be over its CPU share for the sysplex
and another system may have spare CPU to 'steal'. Having the ability to see
any delays in our lower service class address spaces would be a great
addition.

I've been working on a major enhancement to collect CPU delays (I really
don't care about other types of delays at the moment) for each address
space, but I'm not getting the desired results. I read that IWMRQRY and
IWMCOLL appear to be the best services for this solution. However, I found
that neither of these services return an ASID or any identifier of an
address space. IWMRQRY has an input parameter for ASID, but running this
service for every active ASID on the system (roughly 150 on our sandbox
system) every quarter second (our WLM interval) is not cheap.

Is there a better solution for collecting this data or am I missing
something about these WLM services?



Thank you,

Brian Chapman

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


Re: Acquire Storage

2021-03-03 Thread Brian Chapman
As a CICS SysProg, this makes me cringe. I would highly recommend rewriting
your program to conform to CICS standards, and use CICS to acquire the
storage for you. Take a look at the CICS prolog and epilog macros with the
DFHEISTG macro. These macros make this super simple and I would wager that
it wouldn't require much effort to rewrite your program with these macros.

Most importantly (like others have said), don't issue MVS SVC's while
running on the CICS QR TCB. You still cause the TCB to be delayed and
possibly cause the region to be inoperable.

On Wed, Mar 3, 2021, 6:40 PM Farley, Peter x23353 <
031df298a9da-dmarc-requ...@listserv.ua.edu> wrote:

> +1 to Binyamin's answer.  I have several assembler called subroutines that
> run in either CICS or batch but they are all LE enabled (CEEENTRY / CEETERM
> macros et. al.).
>
> LE is your friend here.  CICS automatically accommodates LE storage
> requests from CICS user storage so operation of the subroutines in CICS or
> batch is transparent to the subroutine.
>
> If they are really small assembler routines that can use the caller's RSA
> to save a few regs and use the rest for dynamic storage then you need no
> getmain or freemain at all.  If the subroutines are more complex and need
> full register save and restore then please seriously consider using LE
> services.
>
> If your callers are all COBOL (or other HLL) then you can (usually) safely
> assume you are already in an initialized LE environment.
>
> Performing OS getmain and freemain when you are running under CICS is
> fraught with danger and complexity, as Esme points out in her reply.  Don't
> do it unless you really, really, really need to, and if you still have to
> do it then you had better follow all the CICS rules extremely carefully.
>
> Peter
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Binyamin Dissen
> Sent: Wednesday, March 3, 2021 5:09 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Acquire Storage
>
> I would recommend going to LE and let it take care of things.
>
> You must consider whether you are using storage protection in which case
> you are running in key9.
>
> On Wed, 3 Mar 2021 21:30:04 + "Savor, Thomas"
> <0330b7631be3-dmarc-requ...@listserv.ua.edu> wrote:
>
> :>Ok, got a question for you CICS Assembler folks.
> :>
> :>I have a CICS Assembler program that works fineits Re-Entrant of
> course.
> :>Now I also have some Assembler Sub-programs that can run in Batch.
> :>And I want to add them to my Online Program.
> :>But...in order to be able to execute in Online it needs to also be
> re-entrantwhich is fine for Batch, but Online not so much
> :>Now in the sub-program, im executing a STORAGE OBTAIN for the Register
> SAVEAREA.
> :>But as soon as I try and store the first Register in this acquired
> storage area, Protection Exception - Abend  (I think it was a S0C4)
> :>Anyway, Is there a sub pool to properly acquire storage that makes Batch
> and Online Happy or is GETMAIN better or what is the proper way to acquire
> storage in both Worlds ??
>
> --
>
> 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...@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: Learning the basics of SMP/E

2021-02-02 Thread Brian Chapman
Sam,

Thanks. Like you, I had to bumble my way through learning SMP/e. I had a
few fellow sys progs to lean on, but most of my knowledge was self taught
with lots of trial and error. I will definitely give this a read.

Something that I have not seen documented is how to create my own SMP/e
install for my own software. Is that only provided to ISV's?

On Tue, Jan 26, 2021, 1:11 PM Sam Golob  wrote:

> Dear Folks,
>
>  I was just reviewing an article I wrote in 1988 (a long time ago)
> that encapsulates and summarizes my original efforts to learn SMP/E.
>
>  Many of us systems programmers don't have a chance to do system
> maintenance, leaving it to "the designated person (or people)". And
> also, when breaking in a new person, that person is often given the job
> of doing the SMP/E system maintenance.  In my experience, the first
> exposure to SMP/E is a daunting task.  And it is even somewhat
> forbidding (to learn SMP/E) for very experienced systems programmers
> also, who (somehow) never ever got exposed to it, in their own LONG
> experience.
>
>  My personal feeling (in 1988, after five years as a sysprog) was
> that, with the PROPER TEACHING, I could have learned, in 3 weeks, what
> took me 4 years to learn.
>
>  I didn't want that to happen to anybody else.
>
>  So I wrote an article.  Very carefully.
>
>  I just read it over, today.  That's why I'm writing this piece.
>
>  IF ANYBODY FEELS THE NEED TO LEARN SMP/E, PLEASE GO TO FILE 014 OF
> THE CBT TAPE (www.cbttape.org), and READ THE MEMBER, SMPARTCL.
>
>  Part of the problem in learning SMP/E, is that IBM does not tell
> you about its history, and where it came from.  In order to really
> understand SMP/E, you first must have a grasp of doing a SYSGEN, to
> create a new MVS system.  We don't do SYSGENs anymore, so this makes it
> hard to understand the foundation and structure and purpose and method
> of operation, of SMP/E.
>
>  Nevertheless, in that article, I tried to recreate the history, the
> best I could.
>
>  BOTTOM LINE.  If you want to train someone, or yourself, to do
> SMP/E, please first read this article - CBT File 014 - member SMPARTCL.
> It is almost guaranteed to make the process simpler.
>
>  Hope this helps.
>
>  All the best of everything to all of you.
>
> Sincerely, Sam
>
>
>
> --
> 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: SDSF NO DATA IN DATA SETS while on the same system

2020-11-03 Thread Brian Chapman
. *

*13.00.49 JOB39680  +PRT417I Dispatch manager detaching task number: 4
program: PORTSOKC*

* BOTTOM OF DATA




Thank you,

Brian Chapman


On Tue, Nov 3, 2020 at 1:05 PM Paul Gilmartin <
000433f07816-dmarc-requ...@listserv.ua.edu> wrote:

> On Tue, 3 Nov 2020 17:54:22 +, Seymour J Metz wrote:
>
> >SDSF used to behave differently depending on what command you used to get
> to the dataset.
> >
> Ah, yes.  I once noticed a disagreement between "DA" and "?".  Went to SR;
> was
> told, "Of course."  One is based on JQE; the other on JQE (IIRC).  I
> assessed that
> as WAD and gave up.
>
> >
> >From:  Paul Gilmartin
> >Sent: Tuesday, November 3, 2020 11:29 AM
> >>
> >It has been my experience that instream ("SYSIN"; input) data sets
> >appear empty in SDSF until a job step actually opens or reads them.
> >
> >I don't know whether this is WAD.
>
> -- gil
>
> --
> 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: SDSF NO DATA IN DATA SETS while on the same system

2020-11-03 Thread Brian Chapman
Carmen,

There's definitely data on the DD, but for some reason I just can't see it
when on the same system. The data will be old (sometimes more than a day)



Thank you,

Brian Chapman


On Tue, Nov 3, 2020 at 10:23 AM Carmen Vitullo  wrote:

> On Tue, 3 Nov 2020 08:56:24 -0500, Brian Chapman 
> wrote:
>
> >I have experienced this issue for years at my site, and I've had no luck
> >finding the solution.
> >
> >If I view a DD of an address space that is running on the same system that
> >I am logged into, then I will occasionally receive the 'NO DATA in DATA
> >SETS' message in SDSF when I select the output (it can be different DD's).
> >I also have similar behaviour when viewing WTO messages in the JESMSGLG.
> >I'm unable to see the most recent WTO's, but I can see older ones. If I
> log
> >onto a different system within the same Sysplex, then I can view all of
> the
> >output without issue.
> >
> >I assume this has something to do with viewing the SDSF buffers and some
> >setting that is ignoring the most recent buffer. Any help would be greatly
> >appreciated.
> >
> >
> >
> >Thank you,
> >
> >Brian Chapman
> >
> >--
> >For IBM-MAIN subscribe / signoff / archive access instructions,
> >send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
> Brian I see that a lot with address spaces that have not written any data
> to a DD, for example, my TCPIP address space lists 8 DD's
> ALGPRINT DD for example - other DD's show zero for the record count but
> there's data to view.
> are you expecting data to be written? has it maybe been spun?
> Carmen
>
> --
> 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


SDSF NO DATA IN DATA SETS while on the same system

2020-11-03 Thread Brian Chapman
I have experienced this issue for years at my site, and I've had no luck
finding the solution.

If I view a DD of an address space that is running on the same system that
I am logged into, then I will occasionally receive the 'NO DATA in DATA
SETS' message in SDSF when I select the output (it can be different DD's).
I also have similar behaviour when viewing WTO messages in the JESMSGLG.
I'm unable to see the most recent WTO's, but I can see older ones. If I log
onto a different system within the same Sysplex, then I can view all of the
output without issue.

I assume this has something to do with viewing the SDSF buffers and some
setting that is ignoring the most recent buffer. Any help would be greatly
appreciated.



Thank you,

Brian Chapman

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


Re: Determining program name/number of paramaters from called COBOL program

2020-09-22 Thread Brian Chapman
Correction:  you can chain through the resister save area and use the *caller's
entry point* (not CEECAA)to chain to the caller's PPA and retrieve the
program name.



Thank you,

Brian Chapman


On Tue, Sep 22, 2020 at 7:39 PM Brian Chapman  wrote:

> If the called program is assembler and the caller is COBOL (linked with
> LE), then you can chain through the resister save area and use the CEECAA
> to chain to the caller's PPA and retrieve the program name. This method
> really only works for called assembler programs; don't bother with COBOL.
>
> The number of passed parameters is the easy part. Just use the register
> save area to read the addresses in register 1 looking for the high order
> bit.
>
> On Tue, Sep 22, 2020, 6:50 PM Joe Monk  wrote:
>
>> Well, here is the answer to at least part of the puzzle, if not all...
>>
>> "You can find the name of the calling programs from a COBOL V5 or V6
>> program
>> at run time by using the LE service CEETBCK. For more information, see
>> the z/OS®
>> Language Environment® Vendor Interfaces."
>>
>>
>> https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R3SA380688/$file/ceev100_v2r3.pdf
>>
>> Joe
>>
>>
>> On Tue, Sep 22, 2020 at 5:42 PM Paul Gilmartin <
>> 000433f07816-dmarc-requ...@listserv.ua.edu> wrote:
>>
>> > On Tue, 22 Sep 2020 21:51:34 +, Farley, Peter x23353 wrote:
>> >
>> > >Current Enterprise COBOL compilers (and back as far as I know, even
>> COBOL
>> > F-level from MVT) always mark the last parameter address in the address
>> > list with the bit 0 turned on, though I have not researched what current
>> > ones do if the last parameter is "BY VALUE".
>> > >
>> > >Again for current Enterprise COBOL versions, the LE Vendor Interfaces
>> > manual available in KC has the PPA1 format and in general how to locate
>> it.
>> > >
>> > The answer depends on agreement between the designers of the calling
>> > and called programs.  Lacking such agreement there's no general
>> > solution.
>> >
>> > C programs called by a POSIX shell can rely on argc, but only because
>> > that's
>> > specified in the Standard.
>> >
>> > -- gil
>> >
>> > --
>> > 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
>>
>

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


Re: Determining program name/number of paramaters from called COBOL program

2020-09-22 Thread Brian Chapman
If the called program is assembler and the caller is COBOL (linked with
LE), then you can chain through the resister save area and use the CEECAA
to chain to the caller's PPA and retrieve the program name. This method
really only works for called assembler programs; don't bother with COBOL.

The number of passed parameters is the easy part. Just use the register
save area to read the addresses in register 1 looking for the high order
bit.

On Tue, Sep 22, 2020, 6:50 PM Joe Monk  wrote:

> Well, here is the answer to at least part of the puzzle, if not all...
>
> "You can find the name of the calling programs from a COBOL V5 or V6
> program
> at run time by using the LE service CEETBCK. For more information, see
> the z/OS®
> Language Environment® Vendor Interfaces."
>
>
> https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R3SA380688/$file/ceev100_v2r3.pdf
>
> Joe
>
>
> On Tue, Sep 22, 2020 at 5:42 PM Paul Gilmartin <
> 000433f07816-dmarc-requ...@listserv.ua.edu> wrote:
>
> > On Tue, 22 Sep 2020 21:51:34 +, Farley, Peter x23353 wrote:
> >
> > >Current Enterprise COBOL compilers (and back as far as I know, even
> COBOL
> > F-level from MVT) always mark the last parameter address in the address
> > list with the bit 0 turned on, though I have not researched what current
> > ones do if the last parameter is "BY VALUE".
> > >
> > >Again for current Enterprise COBOL versions, the LE Vendor Interfaces
> > manual available in KC has the PPA1 format and in general how to locate
> it.
> > >
> > The answer depends on agreement between the designers of the calling
> > and called programs.  Lacking such agreement there's no general
> > solution.
> >
> > C programs called by a POSIX shell can rely on argc, but only because
> > that's
> > specified in the Standard.
> >
> > -- gil
> >
> > --
> > 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
>

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


Re: BPXP018I message when STC cancelled

2020-09-21 Thread Brian Chapman
Pierre,

I'd love to hear if you find a resolution. I have a process with similar
behavior and I receive the same message for each sub-task when it
terminates within the ESTAE.



Thank you,

Brian Chapman


On Sun, Sep 20, 2020 at 9:49 AM Charles Mills  wrote:

> I have always seen that message when one of my dubbed applications ends
> abnormally. I have never figured out exactly what the variables are. I
> never worried about it, because (a.) it's an "I" message so "nothing to
> worry about" and (b.) you're already in an ABEND situation: I focus on
> solving the ABEND, not on worrying about the side effects of the ABEND.
>
> That said, what exactly does the message mean and how can you get rid of
> it? I always kind of figured -- without real evidence -- that the cause of
> the message was some "unfinished business" on the USS side of things: an
> open file, a running process, something of that sort. You might try making
> sure that every UNIX file has been closed and every UNIX process has ended.
>
> I suppose one might try to create a test program that triggered the
> message even without an ABEND: what happens if you open a UNIX file and
> then end "normally" without closing it? Or starting up a UNIX process and
> ending "normally" without stopping the UNIX process?
>
> Charles
>
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Pierre Fichaud
> Sent: Saturday, September 19, 2020 12:49 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: BPXP018I message when STC cancelled
>
> I have an authorized STC that shuts down normally when it is stopped (/P).
> When I cancel the STC, my ESTAEs are driven from newest to oldest.
> But I get the message shown below after the ESTAEs are finished.
> I do TCP/IP calls using IEZASMI in 2 sub-tasks.
> The 2 sub-tasks that do TCPIP cleanup and issue TERMAPI in their ESTAEs.
> The thread id is for the JOB STEP TCB.
>
> I'd like to undub my address space but don't know what to do.
> The Unix Callable Services doesn't seem to have a function to do that.
> I'd set a SLIP trap but this situation doesn't seem slipable.
> Any help would be appreciated.
> Thanks in advance, Pierre.
>
> 14.33.43 STC00663  BPXP018I THREAD 1B216000, IN PROCESS 33620001,
> ENDED  039
>039 WITHOUT BEING UNDUBBED WITH COMPLETION CODE 40222000
>039 , AND REASON CODE .
>
> --
> 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: zSHOP order too large to download

2020-06-04 Thread Brian Chapman
We have a similar problem when applying a new version of CICS. We must have
the AGGRGROW option specified on the USS file system mount for the
directory.



Thank you,

Brian Chapman


On Thu, Jun 4, 2020 at 12:11 PM Carmen Vitullo  wrote:

> another thing I'd do is allocate your SMPWORK as a tfs file system that's
> large enough to unpax your order when you do get to the part of the process
> of receiving the order to SMP/E
>
>
>
> MOUNT FILESYSTEM('TMPSMPWK')
> MOUNTPOINT('//local/smpe/workdir')
> TYPE(TFS) /* Filesystem type TFS */
> MODE(RDWR) /* Mounted for read/write */
> PARM('-s 2147380171 -b 1')
>
> Carmen Vitullo
>
> - Original Message -
>
> From: "Carmen Vitullo" 
> To: IBM-MAIN@LISTSERV.UA.EDU
> Sent: Thursday, June 4, 2020 11:02:03 AM
> Subject: Re: zSHOP order too large to download
>
> my DB2 guy has that product installed, he uses the same shopz zfs I've
> allocated for all his orders and has not had any issues with the order
> being too large, I'd still be looking at, if you don't already create a
> separate zfs filesystem just for shopz downloads and ensure it's large
> enough to hold that order; for example
>
>
>
>
>
>
>
> CLUSTER --- OMVS.BCBS.SHOPZ.ZFS
> IN-CAT --- USERCAT.TECHSERV
> HISTORY
> DATASET-OWNER-(NULL) CREATION2015.266
> RELEASE2 EXPIRATION--.000
> SMSDATA
> STORAGECLASS ---OMVS MANAGEMENTCLASS-STANDARD
> DATACLASS ---LINEARE LBACKUP ---.000.
> EATTR-(NULL)
> BWO STATUS-- BWO TIMESTAMP---0 00:00:00.0
> BWO---(NULL)
> .
>
>
>
> ALLOCATION
> SPACE-TYPE--CYLINDER HI-A-RBA-7630848
> SPACE-PRI--1 HI-U-RBA-7618560
> SPACE-SEC500
> VOLUME
>
>
>
>
> Carmen Vitullo
>
> - Original Message -
>
> From: "Bill Giannelli" 
> To: IBM-MAIN@LISTSERV.UA.EDU
> Sent: Thursday, June 4, 2020 10:55:01 AM
> Subject: Re: zSHOP order too large to download
>
> My mistake.the product I am trying to download now is Query Monitor
> for Db2 z/OS v3.3
>
> --
> 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
>
>
> --
> 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: deduce program language

2019-10-02 Thread Brian Chapman
Don,

Thanks for the info. I'm familiar with the LE Vendor Interfaces, but I
guess I need to dig deeper.

With all of my test with COBOL and Assembler have been successful. However,
it always abends when I intercept a C program; usually with the CEE3550
message. Occasionally it is a 0C4 in the intended program.

Does LE have stricter requirements with CEESTART in C programs?


Thank you,

Brian Chapman


On Tue, Oct 1, 2019 at 1:23 PM Don Poitras  wrote:

> In article  t1cmgbfaka497yhff...@mail.gmail.com> you wrote:
> > I created a trace facility to intercept external interface calls (MQ,
> DB2,
> > IMS, etc) and dynamic calls.
> > For dynamic calls, I intercept the load request and replace the entry
> point
> > address with an entry point address of my own program. I then save the
> > original entry point address to later branch to the intended program. The
> > interception works for assembler and COBOL programs, but it fails for C
> > programs. When intercepting a C program, the process abends with a 4038
> > (CEE3550S  The DLL cannot be loaded because it does not contain a
> CEESTART
> > CSECT).
> > Is there a write-up on how the program load point is mapped and how to
> > deduce the loaded program's language?
> > I hoped to clone my assembler intercept program and create a second copy
> > that includes the CEESTART macro to resolve this issue. However, I read
> > that the CEESTART, CEEMAIN, and CEEFMAIN should not be used within an
> > assembler program because it will produce unpredictable behavior. Must I
> > write a C program?
> > Thank you,
> > Brian Chapman
>
> I'm not sure how COBOL is working for you as it's an LE program the same
> as C, but perhaps you're not using standard LE DLL's for your COBOL
> programs. CEESTART is not a macro, it's a module/CSECT that gets linked
> from the LE bind library when you compile an LE program or DLL. It's
> always linked as the entry point as that's where the WSA is allocated
> and other housekeeping before the user code is called (either main() or
> the DLL function). LE doc is kind of spread all over the place, but
> for writing an assembler front-end as you're doing, I think the LE
> Vendor Interfaces book is something you should look at.
>
>
> https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.ceev100/abstract.htm
>
> --
> Don Poitras - SAS Development  -  SAS Institute Inc. - SAS Campus Drive
> sas...@sas.com   (919) 531-5637Cary, NC 27513
>
> --
> 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


deduce program language

2019-10-01 Thread Brian Chapman
I created a trace facility to intercept external interface calls (MQ, DB2,
IMS, etc) and dynamic calls.

For dynamic calls, I intercept the load request and replace the entry point
address with an entry point address of my own program. I then save the
original entry point address to later branch to the intended program. The
interception works for assembler and COBOL programs, but it fails for C
programs. When intercepting a C program, the process abends with a 4038
(CEE3550S  The DLL cannot be loaded because it does not contain a CEESTART
CSECT).

Is there a write-up on how the program load point is mapped and how to
deduce the loaded program's language?

I hoped to clone my assembler intercept program and create a second copy
that includes the CEESTART macro to resolve this issue. However, I read
that the CEESTART, CEEMAIN, and CEEFMAIN should not be used within an
assembler program because it will produce unpredictable behavior. Must I
write a C program?



Thank you,

Brian Chapman

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


Re: Rexx calls versus branching

2019-09-30 Thread Brian Chapman
Bill,

Rexx is a procedural language. Calls to a subroutine that end with a RETURN
statement will always branch back to the calling routine. Rexx has the
SIGNAL statement that behaves like a GOTO, but it is mostly intended to be
used for error handling. If you want the program to terminate after calling
the subroutine, replace the RETURN statement with EXIT(0).



Thank you,

Brian Chapman


On Mon, Sep 30, 2019 at 9:38 AM Bill Giannelli 
wrote:

> I am still learning Rexx. Can someone give a simple example of 1) calling
> a routine and returning. 2) branching to a routine without returning.
> I have a SELECT statement and from the last where clause I want to branch
> to a routine without returning. But it keeps returning and falling thru the
> end of the SELECT statement.
> thanks
> Bill
>
> --
> 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: Submitting batch if you don't have TSO

2019-09-05 Thread Brian Chapman
This topic comes up from time to time at my shop. We have allowed it in the
past, but we try to steer away from any new development with submitting
batch jobs from a region.

The security implications are extremely broad. If you're using a generic
CICS plan exit for DB2 that is defined to use the region userid as plan
authorization, then the region userid has update access to every DB2 table
that is updated by a CICS transaction. If a user submits a QMF or Spufi job
under the region userid, then they can read your DB2 tables. Or even worse,
update them.

The region userid will may also have update access to system datasets. It
will definitely have read access to system datasets (although it may be
limited to CICS specific HLQs).

I would only allow the region to submit jobs under a different user.



Thank you,

Brian Chapman


On Thu, Sep 5, 2019 at 1:59 PM Seymour J Metz  wrote:

> <https://www.oed.com/view/Entry/246938>
>
> But there are some good auditors, and if you're lucky enough to have them
> they're your natural allies.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
>
> 
> From: IBM Mainframe Discussion List  on behalf
> of John McKown 
> Sent: Thursday, September 5, 2019 1:49 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Submitting batch if you don't have TSO
>
> On Thu, Sep 5, 2019 at 12:38 PM Seymour J Metz  wrote:
>
> >  There's no way that adding a RACF segment would reduce the exposure.
> They
> > need to close the loophole. I'm cheering for the auditor, assuming that
> > he's not brain dead.
> >
>
> Most auditors that I've had to work with are absymally ignorant of z/OS, or
> anything other than Windows. Except one in the past, pre-Windows, who was
> an idiot. He wanted an explanation of every possible exit in MVS and every
> installed product on MVS and what could be done using them. {shudder}
>
>
>
> >
> >
> > --
> > Shmuel (Seymour J.) Metz
> > http://mason.gmu.edu/~smetz3
> >
>
> --
> I find television very educational. The minute somebody turns it on, I go
> into the library and read a good book
> -- Groucho Marx
>
> Maranatha! <><
> John McKown
>
> --
> 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
>

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


Re: Attitude of companies toward mainframers working from home?

2019-08-22 Thread Brian Chapman
Other than changing (or kicking) the hardware, what can be done on-site
that can't be done off-site? Most sysprog responsibilities are software.

On Thu, Aug 22, 2019, 1:08 PM Chuck Kreiter 
wrote:

> Do you have to also go into the office for "off-hours" support?  During an
> outage, I would expect that is when you are needed to be most productive so
> being on-site seems logical (according to the management explaination).
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of esmie moo
> Sent: Thursday, August 22, 2019 12:30 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Attitude of companies toward mainframers working from home?
>
>  We were able to work from home until last year.  According  to
> management's explanation "productivity had deteriorated"Now, we all make
> the trek to the office.  A lot of people were caught in a bind because
> their homes were about 50 -70 miles away from the city center.  Others had
> to scramble to find daycare for their toddlers.  An immense strain and
> hardship was exacted on us because we now have to pay expensive
> transportation costs etc.  But as we are reminded by management to "count
> our blessings and we are lucky to have a job".  Amen !
> On Thursday, August 22, 2019, 02:55:34 a.m. GMT-4, Ron Hawkins <
> ron.hawk...@ipsicsopt.com> wrote:
>
>  Charles,
>
> It may be a bit different for a test environment, but up until I left
> Hitachi last year, I was the only MF person that split time between home
> and the office.
>
> A year later, the MF itself has moved, and none of the testers works on
> site. When I left they were located in both US states and another country.
> I am doing some contract work for them n and split my time between
> Australia and Philippines.
>
> I liked to have our team to train and work face to face occasionally and
> had regular fly-ins of the team for a week. California killed this off as
> they want to declare you a tax resident if you spend more than 60 calendar
> days in the state. Tell that to someone from Nevada.
>
>
> RON HAWKINS
> Director, Ipsicsopt Pty Ltd (ACN: 627 705 971)
> m+61 400029610| t: +1 4085625415 | f: +1 4087912585
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Charles Mills
> Sent: Thursday, 22 August 2019 06:46
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: [IBM-MAIN] Attitude of companies toward mainframers working from
> home?
>
> I am doing a favor for a friend who is writing a blog article on the above
> subject, with an emphasis on the effect of the shrinking mainframe
> personnel pool. (This is NOT some disguised headhunter pitch. Reply to the
> list or to me personally. I will take full responsibility for "sanitizing"
> your e-mail address and so forth out of what I forward to my friend.)
>
> Does your employer allow mainframe sysprogs and developers to work from
> home?
> Any particular restrictions or qualifications?
> Have they changed their policies specifically to address the shrinking
> mainframe personnel pool?
> Roughly what percentage of your colleagues work from home?
>
> Thanks!
>
> Charles
>
> --
> 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
>
> --
> 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
>

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


Re: Mainframes testing

2019-08-15 Thread Brian Chapman
Timothy,

While I don't disagree with you, I think that most people here feel that
these topics are systemic issues with any platform. Storing unencrypted (or
even encrypted) userids and passwords in datasets or files that are not
highly restricted is a major liability. I feel that it is disingenuous and
unrealistic to say that a mainframe is antiquated or obsolete because of
these issues. These are just security 101 topics that are valid for every
platform.



Thank you,

Brian Chapman


On Thu, Aug 15, 2019 at 12:26 AM Timothy Sipples  wrote:

> Let's quote the author directly, OK? I'm going to quote the whole second
> section since context is important:
>
> "2. Data Left Behind
>
> "Because mainframes were once typically set-up-and-forget systems, they
> often contain sensitive data files that should have been deleted after the
> deployment phase ended. Certain data should not be written to a space that
> just any user can access.
>
>
> "We had one mainframe hacker who logged into the mainframe as an
> unprivileged user and immediately saw a highly sensitive file that
> contained information she could have used to compromise high-privileged
> users in the company’s environment. Files, such as lists of usernames and
> passwords and confidential client information, should not remain on the
> mainframe, where they are exposed to any type of user who gains physical or
> remote access."
>
>
> I don't think this is a particularly well written (or well edited? editors
> can sometimes do damage) piece of text -- let me just say that up front.
> However, in context, it's not awful. Let's work through this together
>
>
> "Because mainframes were once typically set-up-and-forget systems"
>
>
> That's not the first description that comes to mind of classic mainframes
> running MVS, for example. However, that is an excellent description of IBM
> AS/400s, and I have seen more than a few references to AS/400s (and IBM i
> machines) as "mainframes." That said, the first sentence is my least
> favorite.
>
>
> Sentence #2 in this section is quite important for context.
>
>
> "Files, such as lists of usernames and passwords and confidential client
> information, should not remain on the mainframe, where they are exposed to
> any type of user who gains physical or remote access."
>
>
> I don't think we should automatically blame the author for a stray comma.
> Let me oh-so-slightly adjust this sentence, and I'm going to add three
> words just to emphasize the problem with that comma:
>
>
> "Files, such as lists of usernames and passwords and confidential client
> information, should not remain on the mainframe or anywhere else where they
> are exposed to any type of user who gains physical or remote access."
>
>
> It's a very, very reasonable interpretation in context that that's what the
> author meant, but the comma, in particular, wasn't at all helpful. No, that
> comma certainly shouldn't be there, but it's a comma, and editors (and
> sometimes authors) unfortunately make punctuation mistakes.
>
>
> Has anyone who doesn't like this article bothered to contact the author, or
> at least try, to suggest improvements? If not, why not?
>
>
> 
> Timothy Sipples
> IT Architect Executive, Industry Solutions, IBM Z & LinuxONE
>
> 
>
> E-Mail: sipp...@sg.ibm.com
>
> --
> 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: [SUSPECTED SPAM] Re: Instruction speeds

2019-08-13 Thread Brian Chapman
Mike,

I believe the difference is related to the fact that branch instructions
require a base register and jump does not.



Thank you,

Brian Chapman


On Tue, Aug 13, 2019 at 10:40 AM Mike Shaw  wrote:

> On 8/12/2019 9:33 PM, Christopher Y. Blaicher wrote:
> > ..>
> > JUMPs are faster than BRANCHes.
> > .
>
> I don't know what you mean by that Chris.
>
> The various types of Jump instructions are just extended mnemonics for
> various types of Branch instructions. JNE generates the same machine
> instruction as BNE, etc.
>
> Do you mean the combined compare and jump instructions like CLGRJ?
>
> Mike Shaw
> MVS/QuickRef Support Group
> Chicago-Soft, Ltd.
>
> --
> 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: Instruction speeds

2019-08-13 Thread Brian Chapman
Thanks Giliad. This is what I was searching for. I understand that the
timings in this document are very old and probably wildly inaccurate for
today's Z systems, but would it be on a relative scale? Would a LR be twice
the speed of a L?



Thank you,

Brian Chapman


On Tue, Aug 13, 2019 at 10:28 AM Giliad Wilf <
00d50942efa9-dmarc-requ...@listserv.ua.edu> wrote:

> On Mon, 12 Aug 2019 20:48:18 -0400, Brian Chapman 
> wrote:
>
> >Hi everyone,
> >
> >I did some searching, but I didn't find anything that really discussed
> this
> >on the topic that I'm interested. Is there anything published that
> compares
> >the cycle times of the most used instructions?
> >
> >For example; moving an address between areas of storage. I would assume
> >that executing a LOAD and STORE would be much quicker than executing a
> MVC.
> >
> >Or executing a LOAD ADDRESS to increment a register instead of ADD HALF
> >WORD.
> >
> >Or does this really matter as much as ordering the instructions so they
> are
> >optimized for the pipeline?
> >
>
> There used to be, with every new IBM System/360 machine, a "Functional
> Characteristics" publication stating "Instruction Times" in microseconds.
> Here is one for the IBM System/360 Model 85:
>
>
> http://www.bitsavers.org/pdf/ibm/360/funcChar/A22-6916-1_360-85_funcChar_Jun68.pdf
>
> See page 27.
>
> --
> 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: Instruction speeds

2019-08-13 Thread Brian Chapman
Thanks everyone for your input. I learned a lot from these responses. I
actually meant to write ADD HALFWORD IMMEDIATE in my original email. I was
surprised to hear about LA. I had assumed that direct register manipulation
was the fastest.

On the topic of cache, how do I know that my literal pool is actively
cached at execution of a certain instruction? What would cause the hardware
to move my literal pool out of cache?


Thank you,

Brian Chapman


On Tue, Aug 13, 2019 at 10:17 AM Charles Mills  wrote:

> I second everything Chris Blaicher says. You just cannot say how long an
> instruction takes. Let me give you an example. (The example is based on
> theoretical concepts and has not been tested or benchmarked.)
>
> Let's say you had some tight loop that was executed many thousands or
> millions of times. Let's say you were to insert into the code somewhere the
> following instruction: L R0,=F'1', and let's assume that R0 is not in use
> at that point so this addition does not change the logic of the program.
>
> If the insertion were between some compare and an immediately following
> conditional jump or branch, and the literal pool were already in the data
> cache, then the impact of the added instruction might literally be zero.
> The processor could execute it entirely while it was waiting for the
> condition code to "settle" anyway. You might in a benchmark see absolutely
> no discernible change. So it would be fair to say that the LOAD took no
> time at all.
>
> On the other hand if you inserted it at some other point in the code,
> where the literal pool was not in the cache already, or worse, was always
> at that point in the flow cached for write access on some other processor,
> then the impact might be quite noticeable (assuming enough executions of
> the loop -- on a human scale of time, ANY instruction takes no noticeable
> time at all).
>
> With regard to your specific questions, I think of a L/ST sequence as
> being faster than an MVC for four aligned bytes, but I am not certain that
> is true. (MUCH faster? I seriously doubt it.) Other factors such as those
> discussed in my little example above are much more significant.
>
> I am told that LA is "worse" than other "increment" instructions because
> it involves an index register. The instruction to use to increment a
> register is undoubtedly AHI for reasons that I believe Chris mentions. AH
> (or A) is certainly the worst of the lot because it involves storage access.
>
> My (admittedly grossly oversimplified) rule of thumb when coding is
> "instructions take no time at all; memory accesses take forever."
>
> Charles
>
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Brian Chapman
> Sent: Monday, August 12, 2019 5:48 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Instruction speeds
>
> Hi everyone,
>
> I did some searching, but I didn't find anything that really discussed this
> on the topic that I'm interested. Is there anything published that compares
> the cycle times of the most used instructions?
>
> For example; moving an address between areas of storage. I would assume
> that executing a LOAD and STORE would be much quicker than executing a MVC.
>
> Or executing a LOAD ADDRESS to increment a register instead of ADD HALF
> WORD.
>
> Or does this really matter as much as ordering the instructions so they are
> optimized for the pipeline?
>
> --
> 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


Instruction speeds

2019-08-12 Thread Brian Chapman
Hi everyone,

I did some searching, but I didn't find anything that really discussed this
on the topic that I'm interested. Is there anything published that compares
the cycle times of the most used instructions?

For example; moving an address between areas of storage. I would assume
that executing a LOAD and STORE would be much quicker than executing a MVC.

Or executing a LOAD ADDRESS to increment a register instead of ADD HALF
WORD.

Or does this really matter as much as ordering the instructions so they are
optimized for the pipeline?

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


Re: Memo apix product for email

2019-07-05 Thread Brian Chapman
Peter,

Are you referring to eMemo by Techserv (was Nexus)?

On Fri, Jul 5, 2019, 12:00 PM Peter  wrote:

> Hi
>
> Cross posted
>
> Does anyone uses this product to send email ?
>
> I am just looking for manual.
>
> Peter
>
> --
> 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: QSAM question

2019-05-06 Thread Brian Chapman
Scott,

An assembler I/O module would handle this without much effort. Take a look
at the EXLST parameter on the file DCB.



*DCBEXIT  DS0H   *

* USING DCBXPLST,R1  *

* CLHHSI DCBXPRM1,B37   Abend code B37?  *

* BERECOVER Yes. Ignore abend*



*…*

*RECOVER  DS0H   *

**





* LTORG  *

*B37  EQU   X'B370' B37 Abend code   *

**   *

*DCBTEMP  DCB   DDNAME=,DSORG=PS,MACRF=PM,RECFM=FB,LRECL=2960, **

*   EXLST=ABNDXLST   *

**   *

*ABNDXLST DCAL1(EXLLASTE+EXLDCBAB),AL3(DCBEXIT) *


**   *

* IHAEXLST   *

* DCBD   *

**   *


Thank you,

Brian Chapman


On Mon, May 6, 2019 at 2:15 PM scott Ford  wrote:

> All:
>
> I have a QSAM question. If I have a Cobol program writing to a QSAM file
> and it runs out of space on the file, i.e.;  SB37 , can i recover from the
> SB37 without manual intervention.
> A possible condition handler ?
>
> If I write and Assembler I/O routine to be called passing the data to and
> writing to the QSAM file, the same question, my assumption is "yes" and can
> someone point me to the manual I assume it DFSMSdfp working with datasets
> ...
>
> Regards,
> Scott
>
> --
>
>
>
> *IDMWORKS *
>
> Scott Ford
>
> z/OS Dev.
>
>
>
>
> “By elevating a friend or Collegue you elevate yourself, by demeaning a
> friend or collegue you demean yourself”
>
>
>
> www.idmworks.com
>
> scott.f...@idmworks.com
>
> Blog: www.idmworks.com/blog
>
>
>
>
>
> *The information contained in this email message and any attachment may be
> privileged, confidential, proprietary or otherwise protected from
> disclosure. If the reader of this message is not the intended recipient,
> you are hereby notified that any dissemination, distribution, copying or
> use of this message and any attachment is strictly prohibited. If you have
> received this message in error, please notify us immediately by replying to
> the message and permanently delete it from your computer and destroy any
> printout thereof.*
>
> --
> 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: COBOL 6.2 and ARCH(12)

2019-05-06 Thread Brian Chapman
Charles,

Thanks for the explanation. Our system IGYCOPT specifies ARCH=*8.

We are only experiencing this issue on our production machine. We clone our
machine for DR, but our test systems are never started so the debugging
tool would never be used on this machine. Simulation debuggers are not
allowed on our production systems.



Thank you,

Brian Chapman


On Mon, May 6, 2019 at 10:34 AM Charles Mills  wrote:

> > How does z/OS handle a situation where two COBOL programs that are
> compiled
> > at different ARCH levels and part of the same LE enclave? Since the
> vendor
> > code receives execution first, does it determine the enclave level?
>
> I don't think an enclave HAS an ARCH level. ARCH is a compiler parm. If
> you were writing a compiler, your compiler code would say "can I use
> machine instruction XYZ? Nope, user said ARCH(n), so no can do." The code
> you emitted would be fixed (of course): it would never, ever have an
> instruction XYZ in it. If the user ran it on a zWhatever, it would still be
> devoid of XYZ instructions. The enclave does not have an ARCH level, the
> various programs running there either do or do not include instruction XYZ.
>
> > I'm not
> > sure what ARCH level the vendor compiles their COBOL code (if they have
> > any).
>
> They need to know. I was until very recently responsible for a vendor
> product written in C++. There was a conscious management decision to
> support customers back through a z9, so I compiled ARCH(7). End of story. I
> did not pick some new ARCH level that appealed to me that day.
>
> Question: did you possibly customize or parametize the debugger for a z14
> during installation, and then clone that installation over to your older DR
> machine?
>
> Charles
>
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Brian Chapman
> Sent: Monday, May 6, 2019 6:13 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: COBOL 6.2 and ARCH(12)
>
> I verified a few of my recent COBOL listings, and they all have ARCH(8)
> specified.
>
> Our applications developers claim that this issue only occurs when they run
> their code through the debugger. It apparently never occurs outside the
> debugger. The issue has been very intermittent, so it hasn't been easy to
> replicate but we have dumps from most of the 0C1 or 0C4 abends.
>
> How does z/OS handle a situation where two COBOL programs that are compiled
> at different ARCH levels and part of the same LE enclave? Since the vendor
> code receives execution first, does it determine the enclave level? I'm not
> sure what ARCH level the vendor compiles their COBOL code (if they have
> any).
>
>
> Thank you,
>
> Brian Chapman
>
> --
> 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: COBOL 6.2 and ARCH(12)

2019-05-06 Thread Brian Chapman
I verified a few of my recent COBOL listings, and they all have ARCH(8)
specified.

Our applications developers claim that this issue only occurs when they run
their code through the debugger. It apparently never occurs outside the
debugger. The issue has been very intermittent, so it hasn't been easy to
replicate but we have dumps from most of the 0C1 or 0C4 abends.

How does z/OS handle a situation where two COBOL programs that are compiled
at different ARCH levels and part of the same LE enclave? Since the vendor
code receives execution first, does it determine the enclave level? I'm not
sure what ARCH level the vendor compiles their COBOL code (if they have
any).


Thank you,

Brian Chapman


On Mon, May 6, 2019 at 9:01 AM John Abell <
john.ab...@intnlsoftwareproducts.com> wrote:

> Your should have something similar to the following in the COBOL listing
> where I have used ARCH(11).
>
> Invocation parameters:
>  OPTFILE
> Options from SYSOPTF:
>  ARCH(11)
>  ARITH(COMPAT)
>  DATA(31)
> .
> .
> .
>
> John T. Abell
> Tel:800-295-7608Option 4
> President
> International:  1-416-593-5578  Option 4
> E-mail:  john.ab...@intnlsoftwareproducts.com
> Fax:800-295-7609
>
> International:  1-416-593-5579
>
>
> International Software Products
> www.ispinfo.com
>
> This email may contain confidential and privileged material for the sole
> use of the intended recipient(s). Any review, use, retention, distribution
> or disclosure by others is strictly prohibited. If you are not the intended
> recipient (or authorized to receive on behalf of the named recipient),
> please contact the sender by reply email and delete all copies of this
> message. Also,email is susceptible to data corruption, interception,
> tampering, unauthorized amendment and viruses. We only send and receive
> emails on the basis that we are not liable for any such corruption,
> interception, tampering, amendment or viruses or any consequence thereof.
>
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Allan Staller
> Sent: Monday, May 06, 2019 8:35 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: COBOL 6.2 and ARCH(12)
>
> The actual arch level should be somewhere in the Job listing from the
> Cobol Compile.
>
> HTH,
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of John Abell
> Sent: Saturday, May 4, 2019 9:44 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: COBOL 6.2 and ARCH(12)
>
> I am a bit behind on this issue so maybe you have tried some of the below.
>
> I am puzzled by this unless the ARCH parm is not taken by the compiler for
> some reason.  Do you have the same problem using the DEFAULT ARCH value?
>
> Generate the assembler listing and then see if the S0C1 or S0C4 actually
> happens in the COBOL code.  Also check the ARCH value in the listing.  Look
> for Vector instructions, in the assembler listing for starters. I did this
> for the C modules compiled under z/OS 2.3 and ARCH(12) and the new Vector
> instructions were in the listing.  They were not there using earlier
> versions of the compiler.  I generate C code all of the time using the ARCH
> and TUNEs value for the client's machine.  The code is compiled on a z14.
> Client's with z12s and z13s report no issues.  This is all using LE.
>
> One item of interest, maybe, is that the C code compiled with ARCH(12) on
> z/OS 2.3 runs without issue on z/OS 2.2 and 2.2's LE on a z14.
>
> Can you run without the 3rd party software and see if your code runs?
>
> John T. Abell
> Tel:800-295-7608Option 4
> President
> International:  1-416-593-5578  Option 4
> E-mail:  john.ab...@intnlsoftwareproducts.com
> Fax:800-295-7609
>
> International:  1-416-593-5579
>
>
> International Software Products
>
> https://apc01.safelinks.protection.outlook.com/?url=www.ispinfo.comdata=02%7C01%7Callan.staller%40HCL.COM%7C94623be694344a0455d808d6d09f07a0%7C189de737c93a4f5a8b686f4ca9941912%7C0%7C0%7C636925778808536522sdata=hIdc5QKlumv6gBEJu8VMRPH7iXIE42%2BgqvIYR5yhpZY%3Dreserved=0
>
> This email may contain confidential and privileged material for the sole
> use of the intended recipient(s). Any review, use, retention, distribution
> or disclosure by others is strictly prohibited. If you are not the intended
> recipient (or authorized to receive on behalf of the named recipient),
> please contact the sender by reply email and delete all copies of this
> message. Also,email is susceptible to data corruption, interception,
> tampering, unauthorized amendment and viruses. We only send and receive
> emails on the basis that we ar

Re: COBOL 6.2 and ARCH(12) [EXTERNAL]

2019-05-03 Thread Brian Chapman
This article from IBM agrees with your thoughts and everything else I've
read. I can't find anything that confirms the vendor's statement.

https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca=an=897=ENUS217-323


On Fri, May 3, 2019, 5:20 PM Feller, Paul 
wrote:

> It is my understanding that if you set the ARCH level to something lower
> than the machine type you are running on it should not use any of the new
> machine instructions.  If what the vendor says is truly what is happening
> then I would think a question to IBM would be in order.
>
> Thanks..
>
> Paul Feller
> AGT Mainframe Technical Support
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Brian Chapman
> Sent: Friday, May 03, 2019 2:58 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: COBOL 6.2 and ARCH(12) [EXTERNAL]
>
> We have a vendor debugging product that is constantly causing 0C1 and 0C4
> abends since we have upgraded to COBOL 6.2. It also caused these abends
> when we were at COBOL 4,2, but the abend rate has grown considerably after
> the upgrade.
>
> The vendor has produced countless patches, but so far they have not
> resolved the issues. We were notified today that they believe they
> understand the issue. They are stating that even though our COBOL compiler
> is set with ARCH(8) (to support our DRE machine), LE run-time is
> recognizing that the program is COBOL 6.2, running on a z14, and
> automatically switch the ARCH level to ARCH(12). They believe the run-time
> execution is exploiting the new Vector Packed Decimal Facility and
> producing erratic behavior.
>
> I searched through several presentations and IBM manuals for COBOL 6.2,
> and everything I have found states that a recompile with ARCH(12) is
> required to take advantage of the new facility. Is the vendor correct?
>
>
>
> Thank you,
>
> Brian Chapman
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send email
> to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
> --
> Please note:  This message originated outside your organization. Please
> use caution when opening links or attachments.
>
> --
> 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


COBOL 6.2 and ARCH(12)

2019-05-03 Thread Brian Chapman
We have a vendor debugging product that is constantly causing 0C1 and 0C4
abends since we have upgraded to COBOL 6.2. It also caused these abends
when we were at COBOL 4,2, but the abend rate has grown considerably after
the upgrade.

The vendor has produced countless patches, but so far they have not
resolved the issues. We were notified today that they believe they
understand the issue. They are stating that even though our COBOL compiler
is set with ARCH(8) (to support our DRE machine), LE run-time is
recognizing that the program is COBOL 6.2, running on a z14, and
automatically switch the ARCH level to ARCH(12). They believe the run-time
execution is exploiting the new Vector Packed Decimal Facility and
producing erratic behavior.

I searched through several presentations and IBM manuals for COBOL 6.2, and
everything I have found states that a recompile with ARCH(12) is required
to take advantage of the new facility. Is the vendor correct?



Thank you,

Brian Chapman

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


Re: Authorized and unauthorized in same address space

2019-03-28 Thread Brian Chapman
*Doesn't CICS turn off authorization before executing transactions? *

I believe that is true. I believe it disables authorization before the PLT
(first opportunity for user code).


Thank you,

Brian Chapman


On Thu, Mar 28, 2019 at 12:18 PM Seymour J Metz  wrote:

> AFAIK, no IBM code runs APF authorized and unauthorized code concurrently
> in the same address space, but rather makes the unauthorized code
> nondispatchable while the authorized code is running. Doesn't CICS turn off
> authorization before executing transactions?
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List  on behalf
> of Brian Chapman 
> Sent: Thursday, March 28, 2019 9:06 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Authorized and unauthorized in same address space
>
> Searching through the archives, I quickly saw that this has been a repeat
> heated discussion, but
> all of the discussions seem to ignore the fact that CICS initializes as an
> authorized address space, performs authorized work, and then disables
> authorization to load unathorized programs from the DFHRPL tasklib. It does
> what so many people deem to be a security integrity violation.
>
> I have an unauthorized address space that collects information from the
> system and uses MQ or CICS EXCI (if MQ is unavailable) to transport the
> data to another address space which stores the data to DB2. Having the
> ability to execute authorize services would greatly increase the
> functionality of this address space. Since neither of these transport
> mechanisms are authorized, i cannot run authorized in the current setup.
>
> The idea is to execute the authorized requests as non-system supervisor PC
> routines. One of the PC routines would be to simply disable JSCBAUTH (ONLY
> disable. NEVER enable). Before invoking this PC routine, I perform a
> MODESET to switch back to problem state and key 8. The only authorized
> services performed before this switch would be the LXRES, ETDEF, ETCRE, and
> ETCON services to build the PC routines. After invoking the JSCBAUTH
> disable PC routine from the job step program, I cannot switch back.
> Invoking a MODESET after the switch abends address space with a 047.
>
> From this point forward, all of the ATTACH and LOAD services are performed
> with the supplied tasklib. The unauthorized code is COBOL. Before this
> program is invoked, it initializes LE and replaces the default CEEZLOD and
> CEEZDEL with my own version that loads from the tasklib.
>
>
> Thank you,
>
> Brian Chapman
>
> --
> 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
>

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


Re: Authorized and unauthorized in same address space

2019-03-28 Thread Brian Chapman
*2. Run authorized tasks in parallel with unauthorized tasks - bigger
issue.You cannot use any user key storage - even the passed save area or
the LEanchor. No LM 14,12,12(13) at the end of your module - use SVC 3.
AllSTORAGE/GETMAIN to protected subpools. And if you will be fetching
fetchprotected storage, you must block the unauthorized tasks while doing
it so*
*that they cannot examine your RBs and possible see storage contents.  *

Binjamin,

Are supervisor PC routines included? The save areas and PR instruction are
handled by z/OS. I definitely see the exposure of modifying user passed
data without any validation, but this same exposure is present in space
switching PC routines hosted by an authorized address space.




Thank you,

Brian Chapman


On Thu, Mar 28, 2019 at 10:45 AM Binyamin Dissen 
wrote:

> Two separate things:
>
> 1. Prepare user supplied authorized services and then change the job to
> unauthorized - perfectly fine,as long as you follow standard authorized
> service logic, i.e., never trust any user supplied address and use
> protected
> storage as your worrkarea.
>
> 2. Run authorized tasks in parallel with unauthorized tasks - bigger issue.
> You cannot use any user key storage - even the passed save area or the LE
> anchor. No LM 14,12,12(13) at the end of your module - use SVC 3. All
> STORAGE/GETMAIN to protected subpools. And if you will be fetching fetch
> protected storage, you must block the unauthorized tasks while doing it so
> that they cannot examine your RBs and possible see storage contents.
>
> On Thu, 28 Mar 2019 09:06:02 -0400 Brian Chapman 
> wrote:
>
> :>Searching through the archives, I quickly saw that this has been a repeat
> :>heated discussion, but
> :>all of the discussions seem to ignore the fact that CICS initializes as
> an
> :>authorized address space, performs authorized work, and then disables
> :>authorization to load unathorized programs from the DFHRPL tasklib. It
> does
> :>what so many people deem to be a security integrity violation.
> :>
> :>I have an unauthorized address space that collects information from the
> :>system and uses MQ or CICS EXCI (if MQ is unavailable) to transport the
> :>data to another address space which stores the data to DB2. Having the
> :>ability to execute authorize services would greatly increase the
> :>functionality of this address space. Since neither of these transport
> :>mechanisms are authorized, i cannot run authorized in the current setup.
> :>
> :>The idea is to execute the authorized requests as non-system supervisor
> PC
> :>routines. One of the PC routines would be to simply disable JSCBAUTH
> (ONLY
> :>disable. NEVER enable). Before invoking this PC routine, I perform a
> :>MODESET to switch back to problem state and key 8. The only authorized
> :>services performed before this switch would be the LXRES, ETDEF, ETCRE,
> and
> :>ETCON services to build the PC routines. After invoking the JSCBAUTH
> :>disable PC routine from the job step program, I cannot switch back.
> :>Invoking a MODESET after the switch abends address space with a 047.
> :>
> :>From this point forward, all of the ATTACH and LOAD services are
> performed
> :>with the supplied tasklib. The unauthorized code is COBOL. Before this
> :>program is invoked, it initializes LE and replaces the default CEEZLOD
> and
> :>CEEZDEL with my own version that loads from the tasklib.
> :>
> :>
> :>Thank you,
> :>
> :>Brian Chapman
> :>
> :>--
> :>For IBM-MAIN subscribe / signoff / archive access instructions,
> :>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
> --
> Binyamin Dissen 
> http://www.dissensoftware.com
>
> Director, Dissen Software, Bar & Grill - Israel
>
>
> Should you use the mailblocks package and expect a response from me,
> you should preauthorize the dissensoftware.com domain.
>
> I very rarely bother responding to challenge/response systems,
> especially those from irresponsible companies.
>
> --
> 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


Authorized and unauthorized in same address space

2019-03-28 Thread Brian Chapman
Searching through the archives, I quickly saw that this has been a repeat
heated discussion, but
all of the discussions seem to ignore the fact that CICS initializes as an
authorized address space, performs authorized work, and then disables
authorization to load unathorized programs from the DFHRPL tasklib. It does
what so many people deem to be a security integrity violation.

I have an unauthorized address space that collects information from the
system and uses MQ or CICS EXCI (if MQ is unavailable) to transport the
data to another address space which stores the data to DB2. Having the
ability to execute authorize services would greatly increase the
functionality of this address space. Since neither of these transport
mechanisms are authorized, i cannot run authorized in the current setup.

The idea is to execute the authorized requests as non-system supervisor PC
routines. One of the PC routines would be to simply disable JSCBAUTH (ONLY
disable. NEVER enable). Before invoking this PC routine, I perform a
MODESET to switch back to problem state and key 8. The only authorized
services performed before this switch would be the LXRES, ETDEF, ETCRE, and
ETCON services to build the PC routines. After invoking the JSCBAUTH
disable PC routine from the job step program, I cannot switch back.
Invoking a MODESET after the switch abends address space with a 047.

>From this point forward, all of the ATTACH and LOAD services are performed
with the supplied tasklib. The unauthorized code is COBOL. Before this
program is invoked, it initializes LE and replaces the default CEEZLOD and
CEEZDEL with my own version that loads from the tasklib.


Thank you,

Brian Chapman

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


Re: CPU time and zIIP

2019-02-26 Thread Brian Chapman
Thanks Peter.

Here is the IBM document that I based my assumptions of the SDSF fields.

*CPU-Time*

Accumulated CPU time consumed by and on behalf of the address space, for
the current job step, in seconds. SDSF obtains this value from RMF, as
follows:



ASCBEJST + ASCBSRBT + ASSBASST (source field R791TCPU)



where



*ASCBEJST*

is elapsed job step time

*ASCBSRBT*

is accumulated SRB time

*ASSBASST*

is the CPU time consumed by preemptible class SRBs running on behalf of
this address space, in milliseconds



*ECPU-Time*

Total CPU time consumed by and within the address space, for the current
job step, in seconds. SDSF obtains this value from RMF, as follows:



ASCBEJST + ASCBSRBT + ASSBPHTM (source field R791TCPC)



where

*ASCBEJST*

is elapsed job step time

*ASCBSRBT*

is accumulated SRB time

*ASSBPHTM*

is the CPU time consumed by preemptible class SRBs running in this address
space, in milliseconds (threads plus enclaves)



https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zosmfsdsf.jobresources.help.doc/izusfhpJobActiveSystemUse.html

I assumed since SDSF compartmentalized the zIIP, zAAP, and zICP times that
they must not be included in the CPU-Time field. Like Carmen noted, when I
add the GCP-Time, zIIP-Time, zAAP-Time, and zICP-Time it does not calculate
out to be the same as the CPU-Time or ECPU-Time amount.


Thank you,

Brian Chapman


On Tue, Feb 26, 2019 at 9:21 AM Peter Relson  wrote:

> If the comment is correct that the SDSF display is using ASCBEJST, then
> the statement
> "ZIIP is not reported as part of CPU."
> is not correct with respect to that display.
>
> ASCBEJST includes all time, whether standard CP or zIIP.
> There are additional fields, such as ASSB_TIME_ON_CP, that do not include
> zIIP.
>
> Fields in SMF records do use ASSB_TIME_ON_CP rather than ASCBEJST. For
> those fields, the statement is correct.
>
> I wasn't sure in what way the OP concluded that zIIP was or was not
> included when he wrote "must not be true" and "I'm thinking it is not".
>
> Peter Relson
> z/OS Core Technology Design
>
>
> --
> 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


CPU time and zIIP

2019-02-25 Thread Brian Chapman
Hello,

I'm trying to understand the CPU and ECPU times displayed on SDSF and the
relation to zIIP processing time.

For example, here is a CICS region running a Java web service.

*CPU-Time ECPU-Time GCP-Time zIIP-Time zICP-Time zIIP-NTime*

*   164.42166.2890.89 30.21  3.42  71.29*

Here is a CICS transaction executing in the region to display various ASSB
fields.

 CPU DISPLAY *

*ASCBEJST. . . . . . :  162.20*

*ASCBSRBT. . . . . . :2.23*

*ASSBASST. . . . . . : .00*

*ASSBPHTM. . . . . . :1.86*

*CPU . . . . . . . . :  164.43 (ASCBEJST + ASCBSRBT + ASSBASST)*

*ECPU. . . . . . . . :  166.29 (ASCBEJST + ASCBSRBT + ASSBPHTM)*

*ASSB-TIME-ON-ZIIP . :   30.22*

*ASSB-ZIIP-ENCT. . . :1.60*

*ASSB-ZIIP-PHTM. . . :1.60*

*ASSB-ASST-TIME-ON-CP: .00*

The CPU-Time, ECPU-Time, and zIIP-time match (as close as humanly possible
to switch 3270 emulators and press enter). I was under the assumption that
ECPU also included time spent on zIIPs, but that must not be true. Is zIIP
time included in CPU and ECPU? I'm thinking it is not.


Thank you,

Brian Chapman

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


Re: IARV64 - why ABEND rather than return with reason code?

2019-01-25 Thread Brian Chapman
I found this to be the most irritating aspect of working with 64 bit areas.

On Fri, Jan 25, 2019, 5:23 PM Charles Mills  I have an application that uses IARV64 REQUEST=GETCOMMON,COND=YES. I have
> tested with an unreasonable request size and gotten a return with a reason
> code as expected.
>
> I recently had the IARV64 fail, due to my bug that I have located. But what
> surprised me is that I got an SDC2 ABEND rather than a return with a reason
> code. I would rather get a return because I can handle it more neatly than
> an ABEND (although yes, I do catch the ABEND with ESTAE). Why the ABEND
> rather than a return? Can I force a return rather than an ABEND? Is this
> documented somewhere? (I obviously did not see it.)
>
> In case it matters the reason code in question is xx0042yy, Guard size is
> greater than object size. (And again, I have located the underlying bug; I
> don't need help with that; just with "why ABEND rather than return?")
>
> z/OS V2R2 and V2R3, if that matters.
>
> Charles
>
> --
> 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: Concurrent Server Task Dispatch issue multitasking issue

2019-01-05 Thread Brian Chapman
1. Are you checking the COMM ECB after every wait? Even after a subtask
post the main task's ECB or any other ECB in your list? I've had problems
with subtasks posting the main task and not checking the COMM ECB after
servicing the subtask request and missing console commands.

2. Double check which ECB in your ECB list has the high order bit set. I've
added more ECBs in my list and forgot to move the high order bit flip.

On Jan 5, 2019 6:26 PM, "Joseph Reichman"  wrote:

First off it is being posted I saw a X’48’ in the first byte the operative
bit being the 4
I am doing the wto on timeout from both selects and the problem is that the
main task doesn’t get control

Thanks



> On Jan 5, 2019, at 12:20 AM, Brian Westerman <
brian_wester...@syzygyinc.com> wrote:
>
> When you test the ECB is anything being posted?  Is it possible that your
subtasks are actually sharing the ECBLIST for other use and they are
clearing it for you?
>
> It would be interesting to have all of your tasks (main and sub) wto when
they are posted so that you can see where you are when the post happens.
Possibly you are in a subtask, it gets posted and that subtask sees that
it's not "his" data, so clears things and moves on.  I don't share the
ECBLIST between the main and subtask, so I'm not sure what happens if you
do, but it always seemed to me to be asking for trouble.
>
> Brian
>
> --
> 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

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


Re: System level coding examples

2018-11-16 Thread Brian Chapman
Thanks Don.

I didn't realize that the listserv even existed. I thought the Google newsgroup 
was the primary forum.

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