Home-server queues are implemented by the
MQeHomeServerQueue class.
They are managed with the
MQeHomeServerQueueAdminMsg class,
which is a subclass of
MQeRemoteQueueAdminMsg. The only
addition in the subclass is the
Queue_QTimerInterval characteristic.
This field is of type int and is set to a millisecond timer interval. If you
set this field to a value greater than zero, the home-server queue checks
the home server every
n milliseconds to see if there are
any messages waiting for collection. Any messages that are waiting are delivered
to the target queue.
A value of 0 for this field means
that the home-server is polled only when the MQeQueueManager.triggertransmission method
is called. Note: If a home-server queue fails to connect to its store-and-forward
queue (for instance if the store-and-forward queue is unavailable when the
home server queue starts) it stops trying until a trigger transmit
call is made.
Figure 1. Home-server queue
The name of the home-server queue is set as follows:
- The queue name must match the name of the store-and-forward queue
- The queue manager attribute of the queue name must be the name of the
home-server queue manager
The queue manager where the home-server queue resides must have a connection
configured to the home-server queue manager.
Figure 1 shows an example of a queue manager qm3 that
has a home-server queue SFQ configured to collect messages
from its home-server queue manager qm2.
The configuration consists of:
- A home server queue manager qm2
- A store and forward queue SFQ on queue manager qm2 that
holds messages for queue manager qm3
- A queue manager qm3 that normally runs disconnected and
cannot accept connections from queue manager qm2
- Queue manager qm3 has a connection configured to qm2
- A home server queue SFQ that uses queue manager qm2 as
its home server
Any messages that are directed to queue manager qm3 through qm2 are
stored on the store-and-forward queue SFQ on qm2 until
the home-server queue on qm3 collects them.