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