>What happens when a CICS transaction must do something >like: > > Invalid PIN number; please re-enter > >??? Does that spawn a separate transaction?
The basic design of transaction managers is that there is a message queue manager which stacks messages until a transaction becomes idle so it can handle the message. The transaction would read one message, process it, and then send a message back to the user (i.e terminal). So the wait for user action is not tied to any running transaction. There is a way to program transactions that is called Wait-For-Input transactions: Once they are finished with one transaction, they don't end but read the next input message from the message queue (which probably comes from another user). IMS was designed to run multiple transaction regions called message processing regions (MPP). Each MPP was running only one transaction at a time. The IMS controller dispatched the correct transaction for the next message to the next free MPP. CICS was originally designed to be a single address space multi user transaction manager. Therefore CICS had multiple tasks running in one region: terminal input / output, queue manager, db access, transaction dispatcher, etc, but there was only one transaction related "MVS"-task. The CICS transaction dispatcher schedules the transactions for the messages to be worked onto that task one after the other. If an IMS transaction incurs a WAIT, only that MPP was waiting, the other MPPs continued to run. If a CICS transaction incurs a WAIT the whole transaction processing is blocked. CICS has evolved much and is running wiith multiple address spaces and even multiple transaction tasks nowadays. -- Peter Hunkeler Credit Suisse ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html