AFAIK, a PSW key of 0 in MVS will allow waiting on an ECB of any key, but I can 
think of reasons to disallow it. I wouldn't even try to guess for z/VSE.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
Tony Thigpen <t...@vse2pdf.com>
Sent: Thursday, January 10, 2019 1:47 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Concurrent Server Task Dispatch issue multitasking issue

Seymour,

Can a z/OS program, running in key-0, wait on an ECB that is in key-8?

Tony Thigpen

Seymour J Metz wrote on 1/10/19 1:36 PM:
>   1. It is part of the architecture that with a PSW key of 0 you can access 
> any storage not protected by some other mechanism, e.g., low storage 
> protection.
>
>   2. There are software requirements for particular OS services, and I don't 
> know what they are in z/VSE
>
> 3. In MVS all ECBs are equal but some are more equal than others.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> ________________________________________
> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
> Tony Thigpen <t...@vse2pdf.com>
> Sent: Thursday, January 10, 2019 12:00 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Concurrent Server Task Dispatch issue multitasking issue
>
> Joseph,
>
> My z/OS experience is still limited. Most of my experience is with
> z/VSE. In z/VSE, if in key-0, I can access any other key storage. I
> don't know if this is true for z/OS. Someone else will have to speak up
> on that issue.
>
> Tony Thigpen
>
> Joseph Reichman wrote on 1/9/19 10:39 PM:
>> This my TIMEVAL
>>
>> TIMEVAL     DS   0F
>> TIMESEC     DC   F'9'
>> TIMEMICR    DC   F'9'
>>
>> There is another problem COMECBPT is key 0 storage and MY_ECB is key 8  WAIT 
>> requires the user to be in the key of the ECB would I have the that problem 
>> using SELECB
>>
>> Second
>> -----Original Message-----
>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
>> Tony Thigpen
>> Sent: Wednesday, January 9, 2019 10:21 PM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Concurrent Server Task Dispatch issue multitasking issue
>>
>> Looking at your code, I see several issues. I think the first is your real 
>> problem.
>>
>> 1) There is nothing in your select (other than a TIMEOUT condition) that 
>> will drop you out of the SELECT processing when a MODIFY command is issued. 
>> So, you can enter a bunch of MODIFY commands and none will be processed 
>> until something happens to the one of the sockets listed in the mask areas.
>>
>> This can be fixed with (best guess based upon limited code provided):
>>
>>        L     R10,CONADD         GET COMMUCATION ADDRSS ECB
>>        EZASMI TYPE=SELECTEX,      Issue Macro                          X
>>                TIMEOUT=TIMEVAL,                                        X
>>                MAXSOC=MAXSOC1,    SPECIFY MAXIMUM NUMBER OF SOCKETS    X
>>                RSNDMSK=RSNDMSK,   READ MASK                            X
>>                RRETMSK=RRETMSK,   RETURN FROM READ                     X
>>                WSNDMSK=WSNDMSK,   WRITE MASK                           X
>>                WRETMSK=WRETMSK,   RETURN FROM WRITE                    X
>>                ESNDMSK=ESNDMSK,                                        X
>>                ERETMSK=ERETMSK,                                        X
>>                ERRNO=ERRNX,       (Specify ERRNO field)                X
>>                RETCODE=RETCODY,   (Specify RETCODE field)              X
>>                SELECB=(R10),                                           X
>>                ERROR=ERROR,       Abend if Macro error                 X
>>                MF=(E,MY_PARM)
>>
>> Then remove the WAIT  ECB=MY_ECB.
>>
>> Your code should drop out of the SELECTEX when either the MODIFY ECB is 
>> posted or a socket has activity.
>>
>> 2) You code does not handle the situation where both the MODIFY ECB was 
>> posted *and* a socket has activity. (And, I think the issue above would make 
>> this happen often.) The fix is to change the two branches to SELECT_LOOP (in 
>> the MODIFY logic) to branch to CK_TCPIP instead.
>>
>> 3) You did not include the TIMEOUT= value. If it is set to low-values, you 
>> may not get the results you expect. Based on your posts, I think there may 
>> be an issue here.
>> There are 3 distinct actions based on how TIMEOUT= done.
>>      a) If TIMEOUT= is not provided, you only get posted with socket 
>> activity.
>>      b) If TIMEOUT= points to a low-values data-element, the ECB is posted 
>> right away without waiting for socket activity.
>>      c) If TIMEOUT= points to a non-low-values data element, the ECB will be 
>> posted after that time period expires *or* when socket activity occurs, 
>> which ever happens first.
>> In other words, a TIMEOUT= pointer to low-values is not the same as not 
>> specifying the TIMEOUT= option. Your posts make me think that you may be 
>> using a low-value TIMEOUT value.
>>
>>
>> Tony Thigpen
>>
>> Joseph Reichman wrote on 1/9/19 3:36 PM:
>>> Bottom line with this code the  processing of modify command works
>>> consistently I now tried it 8 times in a row I'll post the  code.
>>> Without the STIMER  the modify command only 1 of 5
>>>
>>>      SELECT_LOOP DS   0H
>>>             XC    MY_ECB(104),MY_ECB      CLEAR ECB AREA
>>>             MVC   COMMAND,=CL8'SELECT'
>>>             XC    MY_PARM(MY_PARM_LEN),MY_PARM    CLEAR PARAMTER LIST
>>> *        WTO   'ENTERING SELECT LOOP....'
>>> *
>>>             STIMER   WAIT,DINTVL=LTINTVLL  WAIT A BIT
>>> *
>>>             EZASMI TYPE=SELECT,      Issue Macro                          X
>>>                   TIMEOUT=TIMEVAL,                                        X
>>>                   MAXSOC=MAXSOC1,    SPECIFY MAXIMUM NUMBER OF SOCKETS    X
>>>                   RSNDMSK=RSNDMSK,   READ MASK                            X
>>>                   RRETMSK=RRETMSK,   RETURN FROM READ                     X
>>>                   WSNDMSK=WSNDMSK,   WRITE MASK                           X
>>>                   WRETMSK=WRETMSK,   RETURN FROM WRITE                    X
>>>                   ESNDMSK=ESNDMSK,                                        X
>>>                   ERETMSK=ERETMSK,                                        X
>>>                   ERRNO=ERRNX,       (Specify ERRNO field)                X
>>>                   RETCODE=RETCODY,   (Specify RETCODE field)              X
>>>                   ECB=MY_ECB,        MAIN TASK EMB                        X
>>>                   ERROR=ERROR,       Abend if Macro error                 X
>>>                   MF=(E,MY_PARM)
>>>
>>>
>>>                  WAIT  ECB=MY_ECB
>>>
>>>                 L     R10,CONADD         GET COMMUCATION ADDRSS ECB
>>>                 TM    0(R10),X'40'       MODIFY COMMAND POSTED
>>>                 BZ    CK_TCPIP           NO CHECK TCP IP
>>>                 WTO   'PROCESSING MODIFY'
>>> *
>>>                USING COM,R6
>>>                L     R6,COMCIBPT                Point to CIB
>>>                DROP  R6
>>>                USING CIB,R6
>>>                CLI   CIBVERB,CIBMODFY           Q. IS it a Modify
>>>                BNE   SELECT_LOOP                no; Go back
>>>                CLC   CIBDATA,=CL8'SHUTDOWN'     Shut Down
>>>                BE    CLEAN_UP                  get out
>>>                B     SELECT_LOOP
>>>       CK_TCPIP DS    0H
>>>               CLC   RETCODY,=F'0'      A REAL TIME OUT OCCURED ???
>>>               BE    SELECT_LOOP
>>>               BH    CKCONN
>>>               BAL   XLNK,RCCHECK
>>>               B     SELECT_LOOP
>>>
>>> *  if value is > 0 then this a read request to be handled  *
>>>     *  by subtask go back to main loop                         *
>>>     *----------------------------------------------------------*
>>>     CKCONN   DS    0H
>>>              MVC   NOSELECT,RETCODY   Save Number of Selected Sockets
>>>              BAL   XLNK,CK_SELECT     Check connections
>>>              B     SELECT_LOOP
>>>              TITLE 'CHECK SELECTION ACTIVITY.......'
>>>     CK_SELECT DS   0H
>>>              ST    R14,SAVE14F                 Save link register
>>>              LA    R6,SOCKTBL                  Get Socket tbl
>>>              USING SOCK_TBL,R6
>>>     SEL_LOOP    DS  0H
>>>     ***********************************************************************
>>>     *                                                                     *
>>>     *        check out Slected sockets                                    *
>>>     *                                                                     *
>>>     ***********************************************************************
>>>              TPIMASK TEST,                                                 X
>>>
>>>
>>> LTINTVLL DC    CL8'00000001'
>>>
>>> -----Original Message-----
>>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU 
>>> <mailto:IBM-MAIN@LISTSERV.UA.EDU> > On
>>> Behalf Of Tony Thigpen
>>> Sent: Wednesday, January 9, 2019 3:21 PM
>>> To: IBM-MAIN@LISTSERV.UA.EDU <mailto:IBM-MAIN@LISTSERV.UA.EDU>
>>> Subject: Re: Concurrent Server Task Dispatch issue multitasking issue
>>>
>>> What for? I think you are just making it worse.
>>>
>>> Tony Thigpen
>>>
>>> Joseph Reichman wrote on 1/9/19 1:51 PM:
>>>> Hi
>>>>
>>>> I quite don’t understand this but In my testing when I had WTO's the
>>>> modify logic would work. I now decided to put a STIMER after the
>>>> SELECT_LOOP
>>>>
>>>> I.E.
>>>>
>>>>                  STIMER   WAIT,DINTVL=LTINTVLL  WAIT A BIT
>>>> LTINTVLL DC    CL8'00000001'
>>>>
>>>>
>>>> I just ran the code 6 times in a row and it worked with out the
>>>> STIMER the code would work 1 out 5 times
>>>>
>>>> thanks
>>>> -----Original Message-----
>>>> From: Joseph Reichman <reichman...@gmail.com
>>>> <mailto:reichman...@gmail.com> >
>>>> Sent: Monday, January 7, 2019 3:45 PM
>>>> To: 'IBM Mainframe Discussion List' <IBM-MAIN@LISTSERV.UA.EDU
>>>> <mailto:IBM-MAIN@LISTSERV.UA.EDU> >
>>>> Subject: RE: Concurrent Server Task Dispatch issue multitasking issue
>>>>
>>>> The code bypassed the 1,000 limit size I had no choice but to  chop
>>>> it up if you give me an e-mail I'll attach the program/code
>>>> -----Original
>>>> Message-----
>>>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU
>>>> <mailto:IBM-MAIN@LISTSERV.UA.EDU> > On Behalf Of Tony Harminc
>>>> Sent: Monday, January 7, 2019 3:33 PM
>>>> To: IBM-MAIN@LISTSERV.UA.EDU <mailto:IBM-MAIN@LISTSERV.UA.EDU>  
>>>> <mailto:IBM-MAIN@LISTSERV.UA.EDU>
>>>> Subject: Re: Concurrent Server Task Dispatch issue multitasking issue
>>>>
>>>> On Sun, 6 Jan 2019 at 15:29, Seymour J Metz <sme...@gmu.edu 
>>>> <mailto:sme...@gmu.edu <mailto:sme...@gmu.edu <mailto:sme...@gmu.edu> > > 
>>>> wrote:
>>>>
>>>>> Second, MODIFY is not the only type of CIB, If the COMM ECB is
>>>>> posted then you need to process and delete the CIB, regardless of
>>>>> type, and regardless of whether you recognize the text of a MODIFY. The 
>>>>> types I would expect to see are START, MODIFY and STOP. I would do a WTO 
>>>>> for any CIB my code didn't recognize, but you still need to delete it.
>>>>
>>>> I agree with you, of course, but I'm not sure that that's fundamental to 
>>>> the reported problem.The symptom for failing to delete the CIB would be 
>>>> that the next MODIFY (or STOP or anything else) command would
>>>> get an IEE342I MODIFY   REJECTED-TASK BUSY.  (To say nothing of a hard
>>>> loop.) Joe hasn't told us how his MODIFYs are mostly "not working", nor if 
>>>> all of them that he has issued are "valid" in that his code understands 
>>>> them.
>>>>
>>>> I am more suspicious of mixing async (are they really all async?)
>>>> EZASMI calls with WAITs in the same maintask flow of control. Is
>>>> there any reason for a Givesocket to be async? (For that matter is
>>>> there any reason for Takesocket or indeed any of the worker task's
>>>> socket calls to be async?)
>>>>
>>>> In the enlarged but still incomplete code snippet posted, the WAIT after 
>>>> the SELECTX is commented out. SELECTX isn't going to WAIT on the Comm ECB, 
>>>> so who does?
>>>>
>>>> Joe, if you want serious help with this, please post something that can 
>>>> actually be assembled and run.
>>>>
>>>> Tony H.
>>>>
>>>> ---------------------------------------------------------------------
>>>> - For IBM-MAIN subscribe / signoff / archive access instructions,
>>>> send email to lists...@listserv.ua.edu <mailto:lists...@listserv.ua.edu>
>>>> <mailto: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 <mailto:lists...@listserv.ua.edu>
>>>> <mailto: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 <mailto:lists...@listserv.ua.edu>  
>>> <mailto: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 <mailto: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 <mailto: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

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

Reply via email to