ImsQueryTask>>processAction"We invoke the IMS query txn and process txns till done. The doImsLogon can failif we encounter an error. If it works we queue the work then clear/PA1 the screen to getthe next screen image til we get an error or see the quit message. Note we pause if theSybase receive process is down to prevent flooding the queue. note the pauselong to slowthe rate we issue lpcLogon"| screenQueue |[XyzGlobal global sqlRecvIsActive]whileFalse: [self pauseLong].screenQueue := ImsQuery new.screenQueue doImsLogon.[screenQueue notDone] whileTrue:[self processScreen: screenQueue screen.screenQueue doClearPA1Screen].self pauseLong
| Previous slide | Next slide | Back to first slide | View graphic version |
Notes:
In theory, I could let transactions queue in memory when either partner was down. But I was concerned about how much I could queue, and how long a nasty situation could last. Either side had GigaBytes of space, but I didn't. So I opted to halt feeds if any side was out of action.