The problem comes up when setting parameters which take a queue name as input but do not take additional criteria like source and target SID names. This creates a problem when the queue names are same and the only differentiator are the source and target SID names.
Unfortunately, currently there is no way to specify a Post queue in commands like “set param” where the queue names can be furnished as an option, if the queue names are identical except for the source and target SIDs which differentiate them. The only way is to set the parameter at a global level. This limitation only exists with “set param” command. Please note that not every command has this limitation. For example, the “reconcile” command actually requires the queue name and the source and target SIDs as a required component. So, even if the queue names were identical, the source and target SIDs are a differentiator when it comes to running reconcile on the correct queue. There are numerous commands in SharePlex and they may follow the former or latter convention. The command syntax is the best resource to check what is permissible and what is not. The following illustrates the point:
I have four named Post queues, each called QUEUE5 where the source and target SIDs differ as below:
Name: QUEUE5 (o.SID1-o.SID5) (Post Queue)
Number Messages: 0 (age 0 min; size 0mb)
Backlog (messages): 0 (age 0 min)
Name: QUEUE5 (o.SID2-o.SID5) (Post Queue)
Number Messages: 0 (age 0 min; size 0mb)
Backlog (messages): 0 (age 0 min)
Name: QUEUE5 (o.SID3-o.SID5) (Post Queue)
Number Messages: 0 (age 0 min; size 0mb)
Backlog (messages): 0 (age 0 min)
Name: QUEUE5 (o.SID4-o.SID5) (Post Queue)
Number Messages: 0 (age 0 min; size 0mb)
If I want to disable posting for a problem object with object_id 100001 which routes thru the named queue QUEUE5 (o.SID1-o.SID5), I cannot set the parameter SP_OPO_DISABLE_OBJECT_NUM at queue level as below:
sp_ctrl>set param SP_OPO_DISABLE_OBJECT_NUM queue QUEUE5 100001
Instead, I have to set the parameter globally as:
sp_ctrl>set param SP_OPO_DISABLE_OBJECT_NUM 100001
Setting the parameter at queue level has its own advantages like reducing the checks for the problem object in queues that do not contain any transactions for that object but unfortunately we cannot set it at queue level due to the limitation of syntax.