CLWLUSEQ (cluster workload use queue) decides whether your queue manager treats its own copy of a cluster queue as the only target for local application puts, or as one equal choice among every instance in the cluster. Wrong CLWLUSEQ settings send traffic over expensive WAN links when processing could stay on box, or leave a local server idle while remote nodes overload. This page covers CLWLUSEQ(LOCAL), CLWLUSEQ(ANY), and CLWLUSEQ(QMGR) on queues, the matching queue manager attribute, how the cluster workload algorithm uses the flag, and design patterns for hub processing versus scale-out consumers—aimed at beginners who already defined CLUSTER and DEFBIND on a queue.
When ORDERS.IN exists on QM_APP1 and QM_APP2 in cluster SALES, a put on QM_APP1 must choose a destination. CLWLUSEQ(LOCAL) on QM_APP1 says: if ORDERS.IN exists here, put it here—do not load-balance to QM_APP2 for application puts. CLWLUSEQ(ANY) says: consider QM_APP1's copy alongside QM_APP2's copy using weights, channel state, and CLWLPRTY. The algorithm is documented in IBM's cluster workload management guide; CLWLUSEQ is one of the early filters.
| Value | Effect on application puts | Typical scenario |
|---|---|---|
| LOCAL | Use only the queue on this queue manager | Process where you produce; avoid cross-QM traffic |
| ANY | Local instance competes in cluster workload | Shared pool of workers on many nodes |
| QMGR | Use queue manager CLWLUSEQ setting | Central policy with per-queue overrides |
ALTER QMGR CLWLUSEQ(LOCAL) or ANY sets the default when queues say CLWLUSEQ(QMGR). Data centers often set QMGR to LOCAL for branch spokes (keep work on site) and ANY on central hubs (absorb cluster-wide load). Document the standard: new cluster queues inherit QMGR via CLWLUSEQ(QMGR) unless a template specifies LOCAL for edge nodes. DISPLAY QMGR CLWLUSEQ during incident response when puts “unexpectedly” remote.
Branch registration: stores put orders to ORDERS.IN locally; consumers on the same queue manager drain the queue without cross-city channel use. If the local instance is unavailable (queue full, GET inhibited), behavior falls to algorithm rules and alternate instances—test failure cases. LOCAL does not stop other members from putting to their own local instances; it is not global affinity by customer ID unless you partition queue names or use message keys.
Stateless worker pools on four queue managers all host ORDERS.IN with ANY—puts spread by workload. Combine with DEFBIND(NOTFIXED) for maximum distribution. Consumers on all four nodes compete for work. Watch channel utilization: ANY may still prefer local when channels to remote are degraded—algorithm details matter during partial outages. Symmetric ANY on all members is easier to reason about than mixed LOCAL/ANY without a diagram.
1234567ALTER QMGR CLWLUSEQ(ANY) DEFINE QLOCAL('ORDERS.IN') REPLACE CLUSTER('SALES') + CLWLUSEQ(QMGR) DEFBIND(NOTFIXED) * Force local-only on edge server: ALTER QLOCAL('ORDERS.IN') CLWLUSEQ(LOCAL) DISPLAY QLOCAL('ORDERS.IN') CLWLUSEQ CLUSTER DISPLAY QMGR CLWLUSEQ
CLWLUSEQ narrows candidates; DEFBIND sticks messages to an instance; CLWLPRTY and CLWLRANK on channels and queues bias choice among remaining candidates. A queue with LOCAL plus DEFBIND(OPEN) keeps a session on the local box. ANY plus NOTFIXED spreads each put. Troubleshooting “why did this message go to QM2?” requires DISPLAY CHSTATUS on cluster channels and reviewing all three attribute families on source and target definitions.
You have snack stands in four parks (cluster instances). LOCAL means “if this park has a stand, always buy here.” ANY means “pick any stand in the city based on shortest line rules,” including yours.
Retail stores put orders locally and process locally—sketch CLWLUSEQ and DEFBIND choices.
Four-way worker pool with no locality—which CLWLUSEQ on each member?
After ALTER QMGR CLWLUSEQ(LOCAL), queues with CLWLUSEQ(QMGR) behave how?
1. CLWLUSEQ(LOCAL) means:
2. CLWLUSEQ(ANY) is used when:
3. CLWLUSEQ(QMGR) uses:
4. CLWLUSEQ does not apply to: