Author |
Message
|
shashivarungupta |
Posted: Sat Aug 07, 2010 12:23 am Post subject: SYSTEM.BROKER.CONTROL.QUEUE and AMQFCXBA.EXE |
|
|
 Grand Master
Joined: 24 Feb 2009 Posts: 1343 Location: Floating in space on a round rock.
|
Hi All,
Question is related to the SYSTEM.BROKER.CONTROL.QUEUE and process AMQFCXBA.EXE
When I used to do multiple say twice 'amqsput' (each using separate command prompts) and a single 'amqsget' on a Queue TEST1 then it would obviously show OPPROC=2 and IPPROC=1 ( and each amqsput, amqsget would have different Process ID and 1 Thread each ).
NOW .. when I see the Queue S.B.C.Q it shows IPPROC=3 and OPPROC=0 and the process name is AMQFCXBA.EXE with SAME Process IDs and each one of those having multiple count of threads !!!!
How does it happen, when IPPROC=x (x>1) and PIDs are SAME for the same Process ??? Could you please also explain the functioning of the threads here ?
AFAIK, AMQFCXBA process is the broker worker job and broker is suppose to MQGET the messages from the CONTROL i.e. S.B.C.Q and STREAM i.e. SYSTEM.BROKER.DEFAULT.STREAM queues whenever Subscribed and Published.
I have also put an image, finally , to view it (Hope It can be viewed)
Used MQv7.0.1.0, Windows. and I haven't implemented the pubsub to cause any change in ip/opcounts in the SBCQ. _________________ *Life will beat you down, you need to decide to fight back or leave it. |
|
Back to top |
|
 |
shashivarungupta |
Posted: Sun Aug 08, 2010 10:57 pm Post subject: |
|
|
 Grand Master
Joined: 24 Feb 2009 Posts: 1343 Location: Floating in space on a round rock.
|
Hmmm... it's been two long days and am looking for some discussion on this scenario ! I'm still Optimistic.  _________________ *Life will beat you down, you need to decide to fight back or leave it. |
|
Back to top |
|
 |
Mr Butcher |
Posted: Mon Aug 09, 2010 1:41 am Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
same process, but different threads as you can see from your screenshot.
for whatever reason, this is implemented in the programming logic to open the same queue within multiple threads. so ask the programmer  _________________ Regards, Butcher |
|
Back to top |
|
 |
shashivarungupta |
Posted: Mon Aug 09, 2010 2:01 am Post subject: |
|
|
 Grand Master
Joined: 24 Feb 2009 Posts: 1343 Location: Floating in space on a round rock.
|
Mr Butcher wrote: |
same process, but different threads as you can see from your screenshot.
for whatever reason, this is implemented in the programming logic to open the same queue within multiple threads. so ask the programmer  |
hmm... that I can see & thats why I did put it here..
same process, but different threads that I can understand BUT same ProcessID of The Process and OpenInputCount is 3, HOW ? Generally when we test the scenario it used to have diff. ProcessIDs for SAME Process ( As I have said earlier ! Image I have pasted here of the test scenario )
 _________________ *Life will beat you down, you need to decide to fight back or leave it. |
|
Back to top |
|
 |
Mr Butcher |
Posted: Mon Aug 09, 2010 5:09 am Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
you have started amqsput 3 times, so you started three processes and every process gets its own PID. every process has 1 thread that openes the queue.
that amq.... process is started only once, so there is only 1 process. that process has multiple threads, and every thread openes the queue.
i see nothing strange here. 3 processes on the one hand, one process on the other one.
?!? _________________ Regards, Butcher |
|
Back to top |
|
 |
shashivarungupta |
Posted: Mon Aug 09, 2010 5:38 am Post subject: |
|
|
 Grand Master
Joined: 24 Feb 2009 Posts: 1343 Location: Floating in space on a round rock.
|
Mr Butcher wrote: |
that amq.... process is started only once, so there is only 1 process. that process has multiple threads, and every thread openes the queue. |
I Agree , But if that Process (AMQFCXBA.EXE) is started only once and has multiple threads 3,4,5,2 against one PID 6512 THEN do you mean to say IPPROC / OPPROC count varies because of its Threads ? If that Process was started only once then why its OpenInputCount is 3 ?
 _________________ *Life will beat you down, you need to decide to fight back or leave it. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Aug 09, 2010 5:40 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
shashivarungupta wrote: |
If that Process was started only once then why its OpenInputCount is 3 ? |
Because each thread has a handle. As previously discussed. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
shashivarungupta |
Posted: Wed Aug 11, 2010 2:48 am Post subject: |
|
|
 Grand Master
Joined: 24 Feb 2009 Posts: 1343 Location: Floating in space on a round rock.
|
Vitor wrote: |
shashivarungupta wrote: |
If that Process was started only once then why its OpenInputCount is 3 ? |
Because each thread has a handle. As previously discussed. |
I did some test using MH04 (http://www-01.ibm.com/support/docview.wss?uid=swg24025857) on my local TEST queue and aswell on SBCQ
And my POC on TEST Queue shows that It has got 2 Thread and both have OPENed the Queue to MQPUT the msgs. Thats why its OPPROC goes to 2 from 1.
Code: |
C:\mh04>xmqqstat -c SYSTEM.DEF.SVRCONN -m QM1 -q TEST -i 1 -h -s -t -x "localhost(1414)"
Xmqqstat v1.0 - Developed by Oliver Fisse (IBM)
Processing LOCAL queue TEST
No handle to display...
Time MxML MxQD GET PUT OIC OUC MDC MEC UNC CQD
------------------------------------------------------------------------------
14:33:51 4194304 100 E E 0 0 0 0 0 11
15:03:55 4194304 100 E E 0 1 0 0 0 11
15:03:58 4194304 100 E E 0 1 0 1 0 12
15:03:59 4194304 100 E E 0 1 0 0 0 12
15:04:03 4194304 100 E E 0 1 0 1 0 13
15:04:04 4194304 100 E E 0 1 0 0 0 13
15:04:07 4194304 100 E E 0 1 0 1 0 14
15:04:08 4194304 100 E E 0 1 0 0 0 14
15:04:12 4194304 100 E E 0 0 0 0 0 14
15:10:06 4194304 100 E E 1 0 14 0 0 0
15:10:07 4194304 100 E E 1 0 0 0 0 0
15:10:21 4194304 100 E E 0 0 0 0 0 0
15:37:17 4194304 100 E E 0 1 0 0 0 0
15:37:19 4194304 100 E E 0 1 0 2 0 2
15:37:20 4194304 100 E E 0 1 0 3 0 5
15:37:21 4194304 100 E E 0 1 0 5 0 10
15:37:22 4194304 100 E E 0 1 0 5 0 15
15:37:23 4194304 100 E E 0 1 0 5 0 20
15:37:24 4194304 100 E E 0 1 0 7 0 27
15:37:25 4194304 100 E E 0 1 0 0 0 27
15:37:26 4194304 100 E E 0 0 0 1 0 28
15:37:27 4194304 100 E E 0 0 0 0 0 28
15:40:51 4194304 100 E E 0 1 0 0 0 28
15:41:03 4194304 100 E E 0 1 0 1 0 29
15:41:04 4194304 100 E E 0 1 0 0 0 29
Dumping 2 handle(s)...
PID TID AT CHL/APPL TAG/CONN USER ID B INP I O S
---------------------------------------------------------------------------
6208 1 USER <none> varun@varun N NO N Y N
WebSphere MQ\bin\amqsput.exe
<none>
7996 1 USER <none> varun@varun N NO N Y N
WebSphere MQ\bin\amqsput.exe
<none>
Time MxML MxQD GET PUT OIC OUC MDC MEC UNC CQD
------------------------------------------------------------------------------
15:42:21 4194304 100 E E 0 2 0 0 0 29
15:42:22 4194304 100 E E 0 2 0 1 0 30
15:42:23 4194304 100 E E 0 2 0 1 0 31
15:42:24 4194304 100 E E 0 2 0 0 0 31
15:42:25 4194304 100 E E 0 2 0 1 0 32
15:42:26 4194304 100 E E 0 2 0 0 0 32
15:42:28 4194304 100 E E 0 2 0 1 0 33
15:42:29 4194304 100 E E 0 2 0 0 0 33
|
Code: |
C:\mh04>xmqqstat -c SYSTEM.DEF.SVRCONN -m QM1 -q SYSTEM.BROKER.CONTROL.QUEUE -i 1 -h -s -t -x "localhost(1414)"
Xmqqstat v1.0 - Developed by Oliver Fisse (IBM)
Processing LOCAL queue SYSTEM.BROKER.CONTROL.QUEUE
Dumping 4 handle(s)...
PID TID AT CHL/APPL TAG/CONN USER ID B INP I O S
---------------------------------------------------------------------------
2580 3 QMGR <none> MUSR_MQADMIN@varun N SHR N N N
ebSphere MQ\bin\amqfcxba.exe
<none>
2580 5 QMGR <none> MUSR_MQADMIN@varun N SHR N N N
ebSphere MQ\bin\amqfcxba.exe
<none>
2580 4 QMGR <none> MUSR_MQADMIN@varun N SHR N N N
ebSphere MQ\bin\amqfcxba.exe
<none>
2580 2 QMGR <none> MUSR_MQADMIN@varun Y NO N N N
ebSphere MQ\bin\amqfcxba.exe
<none>
Time MxML MxQD GET PUT OIC OUC MDC MEC UNC CQD
------------------------------------------------------------------------------
14:07:22 4194304 5000 E E 3 0 0 0 0 0
|
In the above screen shot, handles are 4.. where as OpenInputCount is 3.. and threads have Opened the Queue in Shared Mode.
This Utility shows 'TID' and MQExplorer shows 'Thread' (under one Process)
where (as per the manual. you can download the manual in the link given.)
TID is the thread id within the process id having the queue open
B indicates whether the application has the queue opened for Browse (Y/N)
INP indicates whether the application has the queue opened for Input and what the input mode is.
OIC is the number of applications having the queue opened for input (queue attribute IPPROCS)
OUC is the number of applications having the queue opened for output (queue attribute OPPROCS)
MDC is the number of messages coming off the queue since the last interval
MEC is the number of messages coming on to the queue since the last interval _________________ *Life will beat you down, you need to decide to fight back or leave it.
Last edited by shashivarungupta on Wed Aug 11, 2010 3:05 am; edited 1 time in total |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Aug 11, 2010 3:00 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
shashivarungupta wrote: |
It has got 2 Thread and both have OPENed the Queue to MQPUT the msgs. Thats why its OPPROC goes to 2 from 1. |
That's what we've been telling you over and over and over again. |
|
Back to top |
|
 |
shashivarungupta |
Posted: Wed Aug 11, 2010 3:07 am Post subject: |
|
|
 Grand Master
Joined: 24 Feb 2009 Posts: 1343 Location: Floating in space on a round rock.
|
mqjeff wrote: |
shashivarungupta wrote: |
It has got 2 Thread and both have OPENed the Queue to MQPUT the msgs. Thats why its OPPROC goes to 2 from 1. |
That's what we've been telling you over and over and over again. |
And that's what I wanted to understand and prove using some utility !  _________________ *Life will beat you down, you need to decide to fight back or leave it. |
|
Back to top |
|
 |
|