Tony thanks as I said the basic design of my code is from section H in tcp/ip for beginners “concurrent server” with the exception of the subtask having a select or as I change it to selectx and multiple tasks
Thanks again > On Jan 4, 2019, at 10:51 AM, Tony Thigpen <t...@vse2pdf.com> wrote: > > This sounds like an ECB problem, not an EZASMI problem. > > Double check your ECB list to make sure that you have the high bit set in the > last ECB pointer only. Make sure that any of your subtasks that use the same > ECB list is not setting the high-bit on the wrong ecb pointer. > > Verify that you are not sharing the ECBs between the main task and the > subtasks. > > As a side note, I always recommend that you have a master 'shutdown' ECB for > all your EZA subtasks and that you use SELECTEX instead of SELECT so that the > SELECTEX will trigger if the main task sets the 'shutdown' ECB. > > > Tony Thigpen > > Joseph Reichman wrote on 1/4/19 9:49 AM: >> Just did didn't seem to help I'll post my code shortly but let me explain >> the scenario. >> As I stated in my earlier post I have two selects >> * In the main acting as a listener >> * In the subtask to do multiple I/Os different sockets >> Initially before I do any reads or writes the 4 subtask ECBS have waits on >> multiple ECBs one from the select in the subtask, another from the main task >> for new work >> At the is point (I can verify this via WTO's) the Main task does get >> control. And I am able process the modify command >> When the main task gets the first connection it does a givesocket and posts >> an available subtask to process this command via a takesocket, read and then >> write All of this is successful. >> After the subtask has finished the write it goes back to the select. >> The code I am now posting is (and please don’t get on my case for using >> CVTUSER as it is only a one time deal to see where the problem is) is now I >> bypass the SELECT and use STIMER however >> Even now the main task does seem to get control. As I said tried many things >> CALLDSIP LPMOD DPMOD on the attach of the 4 subtasks but for some reason the >> main task doesn't get control >> thanks >> SELECT_LOOP DS 0H >> L R15,16 Get CVT >> USING CVT,R15 >> CLI CVTUSER,C'1' >> BNE NOTNOW >> DROP R15 >> WTO 'BEFORE STIMER..' >> STIMER WAIT,DINTVL=LTINTVL WAIT A BIT >> WTO 'AFTER STIMER...' >> B SELECT_LOOP >> NOTNOW DS 0H >> XC MY_ECBT,MY_ECBT >> EZASMI TYPE=SELECT, Issue Macro X >> TIMEOUT=TIMEVAL, X >> MAXSOC=MAXSNO, SPECIFY MAXIMUM NUMBER OF SOCKETS X >> RSNDMSK=RSNDMSK, READ MASK X >> RRETMSK=RRETMSK, RETURN FROM READ X >> ESNDMSK=ESNDMSK, X >> ERETMSK=ERETMSK, X >> ERRNO=ERRNO, (Specify ERRNO field) X >> RETCODE=RETCODE, (Specify RETCODE field) X >> ECB=MY_ECBT, MAIN TASK EMB X >> ERROR=ERROR, Abend if Macro error X >> TASK=MYTIE, X >> MF=(E,MY_PARX) >> * >> * Wait For Something to happen >> * >> * >> WAIT 1,ECBLIST=ECBLST WAIT For Something top Happen >> -----Original Message----- >> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of >> Rob Scott >> Sent: Friday, January 4, 2019 7:35 AM >> To: IBM-MAIN@LISTSERV.UA.EDU >> Subject: Re: FW: Concurrent Server Task Dispatch issue multitasking issue >> I suggest replacing the EZASMI SELECTS with simple STIMERM timers and see if >> the problem still exists. >> -----Original Message----- >> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU >> <mailto:IBM-MAIN@LISTSERV.UA.EDU> > On Behalf Of Joseph Reichman >> Sent: Friday, January 4, 2019 12:31 PM >> To: IBM-MAIN@LISTSERV.UA.EDU <mailto:IBM-MAIN@LISTSERV.UA.EDU> >> Subject: Re: FW: Concurrent Server Task Dispatch issue multitasking issue >> Brian >> I have that code the problem is after I attach my Subtasks my Main Task >> Hardly gets control. I have 4 subtasks each with a EZASMI SELECT as each >> handles multiple I/O’s I do a WTO after the TIMEOUT from the SELECT on both >> the main task and subtask and it seems that the main task Hardly gets >> control. I would say the Modify command works about 1 out 5 tries >> 1558 * WTO 'AFTER WAIT....' >> 00984 1559 L R10,ECB_LIST+4 GET COMMUCATION ADDR >> 00000 1560 TM 0(R10),X'40' MODIFY COMMAND POSTE >> 00B7E 1561 BZ CK_TCPIP NO CHECK TCP IP >> 1562 * WTO 'PROCESSING MODIFY' >> 1563 * >> 1564 * DBGRDIE LINKAGE=SVC >> 1565 * >> 00A78 1566 L R6,COMMADDR Get Communi >> R:6 00000 1567 USING COM,R6 >> 00004 1568 L R6,COMCIBPT Point to CIB >> 1569 DROP R6 >> R:6 00000 1570 USING CIB,R6 >> 00004 1571 CLI CIBVERB,CIBMODFY Q. IS it a M >> 009EA 1572 BNE SELECT_LOOP no; Go back >> 4868 00010 01868 1573 CLC CIBDATA,=CL8'SHUTDOWN' Shut Down >> 014AC 1574 BE CLEAN_UP get out >> 009EA 1575 B SELECT_LOOP >> 1576 CK_TCPIP DS 0H >> -----Original Message----- >> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU >> <mailto:IBM-MAIN@LISTSERV.UA.EDU> > On Behalf Of Brian Westerman >> Sent: Friday, January 4, 2019 1:40 AM >> To: IBM-MAIN@LISTSERV.UA.EDU <mailto:IBM-MAIN@LISTSERV.UA.EDU> >> Subject: Re: FW: Concurrent Server Task Dispatch issue multitasking issue >> One way to do it is when you set up your console interface and do the >> extract, you need to save the comm ECB address into a register and then save >> it into the ECB list (when you wait, i.e. WAIT >> 1,ECBLIST=youECBlistname,LONG=YES) you are using for your other waits (your >> normal timer ones). You need to make sure that Then when you are posted it >> may be for a console communication or from one of your other timers, so you >> have to test to see why at that time. You are then waiting on the list of >> ECBs (they can be posted by anything you set them up for) and no matter >> which one is posted, you will end up in the same code. Therefore you go >> back to that place all the time (within your standard code) and mostly you >> are just waiting for something to happen (or for a console interrupt for >> your task). Just make sure you don't forget to wait (in the case of the >> sample below it's at WAITTIME) only. Otherwise, you could end up never >> knowing when you get a console message. You can have multiple waits in your >> program so long as they all use the same ECBLIST. It can have more in it, >> mine just has the two ECBs in the sample. >> So it's something like this: >> WAITTIME DS 0H >> WAIT 1,ECBLIST=ECBLIST,LONG=YES WAIT UNTIL AN ECB IS POSTED >> L R1,COMMECB ADDR OF COMMUNICATIONS ECB >> CLI 0(R1),X'00' CHECK FOR OPERATOR REQUEST >> BNE OPERREQ YES--GO TO PROCESS OPER REQ >> CLI TIMEECB,X'00' DID THE TIMER POP ? >> BNE TIMERPOP YES--GO PROCESS TIME REQUEST >> B WAITTIME HMMM.. DON'T KNOW, RETRY >> ... >> ECBLIST DS 0F >> COMMECB DC A(0) >> DC X'80',AL3(TIMEECB) >> Brian >> ---------------------------------------------------------------------- >> 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 ================================ Rocket Software, >> Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ Main Office >> Toll Free Number: +1 855.577.4323 Contact Customer Support: >> https://my.rocketsoftware.com/RocketCommunity/RCEmailSupport >> Unsubscribe from Marketing Messages/Manage Your Subscription Preferences - >> http://www.rocketsoftware.com/manage-your-email-preferences >> Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy >> ================================ >> This communication and any attachments may contain confidential information >> of Rocket Software, Inc. All unauthorized use, disclosure or distribution is >> prohibited. If you are not the intended recipient, please notify Rocket >> Software immediately and destroy all copies of this communication. Thank you. >> ---------------------------------------------------------------------- >> 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