To tableBASE, each IMS MPR is a single region or task. Therefore, with an MPR, only one copy of a table can be open at any time. This copy of the table will be shared by all transactions that run in a particular MPR.
The user should understand the following:
- tableBASE manages tables in-memory, and consequently, relies on the user to store (ST) any updated tables.
- If for any reason the MPR abends or comes down, any table updates not yet stored are lost.
- If any transaction abends in an MPR, all pre-loaded programs are reloaded. The TSR is deleted and recreated and the tables will be reloaded if they are needed. From a performance point of view, this slows down the throughput of the MPR. From a tableBASE update point of view, any table updates not yet stored are lost.
- While a table is open for update in an MPR, it cannot be opened for update in another MPR. Therefore, the user must ensure that all tableBASE update transactions for a particular table be run in the same MPR.
One possible way for an application to detect the loss of table updates would be to establish three transactions: one to open the table being updated, one to update it, and one to store it. At the start of the day or at the beginning of an updating session, a transaction should be written to do an open write against the table, expecting an error to be returned because the table is already open. If the return code is zero, the table was not open. This indicates that the region had been down and some sort of recovery may be needed.