It’s the wait macro the caller has to be in same key as the storage key of the 
ECB is this true of SELECB parm



> On Jan 10, 2019, at 12:00 AM, Tony Thigpen <t...@vse2pdf.com> wrote:
> 
> 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

Reply via email to