If the queues are not defined in a Group or Shared mode, the QMGR on the local system owns the queue.
When sharing queues, the queues reside on the coupling facility, and multiple QMGRS can update the queues.
As multiple QMGRS can update the queues in this situation, a queue on SYSA may not have had any updates.
It will reflect 0 (or a blank field which signifies 0).
However, if that shared queue is updated on SYSB say 10 times, it will reflect a qdepth of 10 on SYSB.
Essentially, the queue only reflects the depth for the LOCAL system.
If it's wanted that all the Sysview systems to report the Alert, there is a hidden Sysview parameter (which is undocumented), which can be set in the MQSERIES parmlib member.
Setting this parameter to YES will cause all of your Sysview systems to receive the alert and report the true depth value on all systems.
Running in this manner will result in a slight increase in overhead.
This undocumented parameter is:
QLOCAL-GET-TRUE-SHARED-DEPTH
The default value for this is NO. It's needed to define set it to YES
QLOCAL-GET-TRUE-SHARED-DEPTH YES
As stated, this paramemter will force each Sysview system to get/reflect the TRUE depth value of the queue.
Make sure that the placement of this parameter in the MQSERIES parmlib member is above the )EOF statement, otherwise, it will not be honored (ie: it will be ignored).