Overview
Queue records are available to all tasks running under DC/UCF, as well as to batch programs. Records in a queue established by one task are available to subsequent tasks running on the same logical terminal, or to concurrent or subsequent tasks running on any other terminal. Queue records are saved across system shutdowns and are recovered across a system crash.
Because queue records are available to concurrent tasks running on other terminals, the records can be used to pass data from one application to another. Additionally, queue records provide a convenient means of storing data for subsequent processing.
Storing a Queue Record
A queue record is stored in the data dictionary as a member occurrence in a set owned by a queue header record. All records associated with a particular queue header are referred to collectively as a queue. The queue is identified by a queue id. Requests to access a queue record can use the queue id to specify the queue in which the object record participates. If a request to store a queue record specifies an unknown queue id, a queue is created with the specified id.
When a queue record is stored, DC/UCF can return a queue record identifier to a specified location in a dialog's record buffers. The queue record identifier can then be used to access the queue record.
Currencies
The CA ADS runtime system maintains currencies for each queue accessed by a task. If concurrently executing tasks access the same queue, each task has its own queue currency. A request for a particular queue record can identify the record by the queue id, by the queue record id, by the position of the record within the queue, or by the relationship of the object record to the record that is current of queue for the requesting task.
Queue records remain in the data dictionary until explicitly deleted or until the retention period specified for the queue has expired. When all records associated with a given queue header have been deleted, the header record is also deleted and the queue no longer exists.
Considerations
Because no other task can access a locked queue record, a concurrently executing task that attempts to access the record must wait until the lock is released. To minimize such waits, queue access should be as brief as possible.
|
Copyright © 2014 CA.
All rights reserved.
|
|