May I ask a few questions to more fully understand your question?
Let me try here.
You say "connection counts (CHSTATUS = NONE)". What do you mean by this?
Sorry, my bad, ts ASTATE(NONE) for the connection. Command used for listing the connections for specific channel used-
echo "dis conn(*) type(all) where(channel eq CHANNELNAME)"|runmqsc QMGRNAME|grep -o '^\w\+:\|\w\+[(][^)]\+[)]' | awk -F '[()]' -v OFS='","' 'function printValues() { if ("CONN" in p) { print p["CONN"], p["CHANNEL"], p["CONNAME"], p["OBJNAME"], p["OBJTYPE"], p["ASTATE"], p["APPLDESC"], p["APPLTAG"], p["OPENOPTS"] } } /^\w+:/ { if (x !~ /YES/) {printValues()}; x = "NO"; delete p; next } { p[$1] = $2 } { if ("OPENOPTS" in p) { printValues() ; delete p["OPENOPTS"]; x = "YES"} } END { if (x !~ /YES/) {printValues()} }'
Observations - Below type are increasing after24 Hrs :-(
E07DDE5801B4CE22","CHANNELNAME","IP","QMGRNAME","QMGR","NONE","WebSphere MQ Channel","WebSphere MQ Client for Java","MQOO_INQUIRE
What command are you issuing to get your totals? Is it DISPLAY CONN? Can you provide an example of the "" object type using DISPLAY CONN.
Repeating from my earlier post. Below is command for Channel instances-
CHL=${1}
QMGR=${2}
echo "Total Number of channel instances: $(echo "DIS CHS(${CHL}) ALL"|runmqsc $QMGR| grep -o '^\w\+:\|\w\+[(][^)]\+[)]' | awk -F '[()]' -v OFS="," 'function printValues() { if ("CHANNEL" in p) { print p["CHANNEL"], p["CURSHCNV"], p["CONNAME"] } } /^\w+:/ { printValues(); delete p; next } { p[$1] = $2 } END { printValues() }'|wc -l)"
echo "Total shared conversations: $(expr $(echo $(echo "DIS CHS(${CHL}) ALL"|runmqsc $QMGR| grep -o '^\w\+:\|\w\+[(][^)]\+[)]' | awk -F '[()]' -v OFS="," 'function printValues() { if ("CHANNEL" in p) { print p["CHANNEL"], p["CURSHCNV"], p["CONNAME"] } } /^\w+:/ { printValues(); delete p; next } { p[$1] = $2 } END { printValues() }'|awk -F, '{print $2}')|sed -e 's/ / + /g'))"
echo "Unique CONNs: $(echo "dis conn(*) type(all) where(channel eq ${CHL})"|runmqsc $QMGR|grep -o '^\w\+:\|\w\+[(][^)]\+[)]' | awk -F '[()]' -v OFS='","' 'function printValues() { if ("CONN" in p) { print p["CONN"], p["CHANNEL"], p["CONNAME"], p["OBJNAME"], p["OBJTYPE"], p["ASTATE"], p["APPLDESC"], p["APPLTAG"], p["OPENOPTS"] } } /^\w+:/ { if (x !~ /YES/) {printValues()}; x = "NO"; delete p; next } { p[$1] = $2 } { if ("OPENOPTS" in p) { printValues() ; delete p["OPENOPTS"]; x = "YES"} } END { if (x !~ /YES/) {printValues()} }'|sed -e 's/^/"/g' -e 's/$/"/g'|awk -F, '{print $1}'|sort -u|wc -l)"
echo "Objects opened by CONNs:"
echo "dis conn(*) type(all) where(channel eq ${CHL})"|runmqsc $QMGR|grep -o '^\w\+:\|\w\+[(][^)]\+[)]' | awk -F '[()]' -v OFS='","' 'function printValues() { if ("CONN" in p) { print p["CONN"], p["CHANNEL"], p["CONNAME"], p["OBJNAME"], p["OBJTYPE"], p["ASTATE"], p["APPLDESC"], p["APPLTAG"], p["OPENOPTS"] } } /^\w+:/ { if (x !~ /YES/) {printValues()}; x = "NO"; delete p; next } { p[$1] = $2 } { if ("OPENOPTS" in p) { printValues() ; delete p["OPENOPTS"]; x = "YES"} } END { if (x !~ /YES/) {printValues()} }'|sed -e 's/^/"/g' -e 's/$/"/g'|awk -F, '{print $5}'|sort|uniq -c
Observations (After 3 days of continuous running):
Total Number of channel instances: 107
Total shared conversations: 414
Unique CONNs: 413
Objects opened by CONNs:
112 ""
241 "QMGR"
60 "QUEUE"
"" and "QUEUE" object type connections remain almost same over period of time but "QMGR" type connections keep on increasing and it seems they are closed only after a server restart.
Are the extra QMGR type object handles associated with a channel? Again you can see this in DISPLAY CONN. Are they from a expected source?
Yes, extra are there as explained above but they are from expected source as per IP verification.
Look at the CHSTATUS of the additional channel instances (DISPLAY CHSTATUS), are they doing anything? For example, does the number of bytes moved over the channel keep increasing? What is the SUBSTATE? Maybe they are stale connections.
Yes, bytes are increasing. All Substate are in RECEIVE. We couldn't establish more any conclusive outcome though.