|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Channel Status |
« View previous topic :: View next topic » |
Author |
Message
|
vidmar |
Posted: Mon Nov 19, 2001 3:10 pm Post subject: |
|
|
Newbie
Joined: 23 Oct 2001 Posts: 2
|
I am trying to monitor the status of a sender channel
After a period of time the channel goes inactive and I no longer can query the status.
DISPLAY CHSTATUS(*)
1 : DISPLAY CHSTATUS(*)
AMQ8420: Channel Status not found.
The status in the gui at this time is inactive. Which is an OK status but I need to know the status, not that there is not status.
Is there a way around this so I can get a status whether it is inactive or not?
|
|
Back to top |
|
 |
bduncan |
Posted: Mon Nov 19, 2001 3:41 pm Post subject: |
|
|
Padawan
Joined: 11 Apr 2001 Posts: 1554 Location: Silicon Valley
|
Sorry, but this is part of the design of the MQSeries product. You cannot have a status for an inactive channel. It's only when the queue manager tries to "activate" a channel that it determines the status. If I am trying to start an inactive channel, it will either succeed in starting or encounter some problem, but in either case it will go from being inactive to active, and therefore have a status when I issue "DIS CHS(*)". You may have some options however, depending on your particular requirements.
One is to set the DISCINT parameter on your sender channels to "0" such that they will never go inactive. This way, they will always have some status - the downside of course is that the channel will always be "active", which usually means always running, provided there aren't any outstanding problems.
The other possibility is to attempt starting the channel before you check it's status. If the channel is already running, you will lose little overhead making the start call, and if it isn't active, the channel will become active whether or not the start call succeeds and then your DIS CHS(*) call should work. A more complex workaround is to parse the queue manager log. When a channel becomes inactive, the queue manager will log the reason why. Which brings me to another point. As far as I know, the only time a channel is inactive is when one of two conditions occurs:
1. The channel has been defined, but never started.
2. The channel has been idle longer than the discontinuation interval, prompting the queue manager to make it inactive.
Notice neither of possibilities includes an error state. Therefore, as far as I know, if you issue a "DIS CHS(channelname)" and you get STATUS NOT FOUND, you can assume that the channel either:
1. Never had a status because it's never been activated before.
2. Had a "running" status before the DISCINT was exceeded.
If the channel had some other status, like RETRYING or STOPPED, it will always retain this status, and the DISCINT value will be ignored.
_________________ Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator |
|
Back to top |
|
 |
issac |
Posted: Sat Oct 04, 2008 11:28 pm Post subject: |
|
|
 Disciple
Joined: 02 Oct 2008 Posts: 158 Location: Shanghai
|
I've tested that it requires restarting the channel for DISCINT change to be effective.
I've also tested that an inactive channel is not auto-restarting once another message needs to be transmitted through the channel. Do I need some special config to ensure that an inactivated channel would auto-restart when the next msg comes?
Here is my config. I've deliberately set DISCINT to 5 to test what happens if my channel goes inactive in a production environment. After 5 seconds I could not find the channel status any more, that's right. But when I amqsput something into the channel, it's still not started...
Quote: |
DIS CHANNEL(WINNT.AIX) ALL
2 : DIS CHANNEL(WINNT.AIX) ALL
AMQ8414: 显示通道细节。
CHANNEL(WINNT.AIX) CHLTYPE(SDR)
ALTDATE(2008-10-05) ALTTIME(15.20.21)
BATCHHB(0) BATCHINT(0)
BATCHSZ(50) COMPHDR(NONE)
COMPMSG(NONE) CONNAME(127.0.0.1(1414))
CONVERT(NO) DESCR( )
DISCINT(5) HBINT(300)
KAINT(AUTO) LOCLADDR( )
LONGRTY(999999999) LONGTMR(1200)
MAXMSGL(4194304) MCANAME( )
MCATYPE(PROCESS) MCAUSER( )
MODENAME( ) MONCHL(QMGR)
MSGDATA( ) MSGEXIT( )
NPMSPEED(FAST) PASSWORD( )
PROPCTL(COMPAT) RCVDATA( )
RCVEXIT( ) SCYDATA( )
SCYEXIT( ) SENDDATA( )
SENDEXIT( ) SEQWRAP(999999999)
SHORTRTY(10) SHORTTMR(60)
SSLCIPH( ) SSLPEER( )
STATCHL(QMGR) TPNAME( )
TRPTYPE(TCP) USERID( )
XMITQ(QXMIT001) |
And there's another question, i found CURDEPTH of the xmitq, namely QXMIT001 here is not zero. Why do my test msgs stuck inside the xmiq, not thrown into a dead letter queue? thanks.. |
|
Back to top |
|
 |
atheek |
Posted: Sun Oct 05, 2008 3:40 am Post subject: |
|
|
 Partisan
Joined: 01 Jun 2006 Posts: 327 Location: Sydney
|
issac wrote: |
I've also tested that an inactive channel is not auto-restarting once another message needs to be transmitted through the channel. Do I need some special config to ensure that an inactivated channel would auto-restart when the next msg comes?
Here is my config. I've deliberately set DISCINT to 5 to test what happens if my channel goes inactive in a production environment. After 5 seconds I could not find the channel status any more, that's right. But when I amqsput something into the channel, it's still not started...
Quote: |
DIS CHANNEL(WINNT.AIX) ALL
2 : DIS CHANNEL(WINNT.AIX) ALL
AMQ8414: 显示通道细节。
CHANNEL(WINNT.AIX) CHLTYPE(SDR)
ALTDATE(2008-10-05) ALTTIME(15.20.21)
BATCHHB(0) BATCHINT(0)
BATCHSZ(50) COMPHDR(NONE)
COMPMSG(NONE) CONNAME(127.0.0.1(1414))
CONVERT(NO) DESCR( )
DISCINT(5) HBINT(300)
KAINT(AUTO) LOCLADDR( )
LONGRTY(999999999) LONGTMR(1200)
MAXMSGL(4194304) MCANAME( )
MCATYPE(PROCESS) MCAUSER( )
MODENAME( ) MONCHL(QMGR)
MSGDATA( ) MSGEXIT( )
NPMSPEED(FAST) PASSWORD( )
PROPCTL(COMPAT) RCVDATA( )
RCVEXIT( ) SCYDATA( )
SCYEXIT( ) SENDDATA( )
SENDEXIT( ) SEQWRAP(999999999)
SHORTRTY(10) SHORTTMR(60)
SSLCIPH( ) SSLPEER( )
STATCHL(QMGR) TPNAME( )
TRPTYPE(TCP) USERID( )
XMITQ(QXMIT001) |
|
You need to set trigger on the XMITQ used by the channel (QXMIT001 as per your channel definition)
You need to configure the following on XMITQ
Enable trigger : use TRIGGER attribute of the queue definition
Set trigger type ( could be first, depth or every) and priority : Use TRIGTYPE and TRIGMPRI
Define a initiation queue for the trigger messages : use INITQ attribute
Specify the name of the channel to be triggered : You can use either the TRIGDATA or PROCESS attribute..the simplest way is to specify the name of the channel in the trigdata attribute TRIGDATA is only available in unix and windows. Else if you use a PROCESS the channel name is specified in the USERDATA attribute of the Process definition
Also ensure channel initiator is polling the INITQ
You can get an idea of channel triggering by reading chapter 2 &9 of Intercommunications manual and the different triggering paramaters by reading appliocation program guide. The library link at the top of this page points to where you can get these docs.
Hope this covers your query on channel triggering on the other forum as well..
Last edited by atheek on Sun Oct 05, 2008 9:55 am; edited 1 time in total |
|
Back to top |
|
 |
ranganathan |
Posted: Sun Oct 05, 2008 4:41 am Post subject: |
|
|
 Centurion
Joined: 03 Jul 2008 Posts: 104
|
Yes.. channel triggering will solve your problem.. instead of defining a process and starting the trigger monitor you can let MQ to do the job for you... you can use SYSTEM.CHANNEL.INITQ as the initiation queue.. start the TRIGGER and define the trigger depth attribute in the XMITQ and do not forget to mention the TRIGDATA('Channel Name') in the xmitq.. now the channel initiator will start the channel for you whenever a message is received in XMITQ...
Please read the Triggering section Intercommunication Manual for more details...
Note:
Specifying DISCINT=0 and specifying the value too low will cause unnecessary performance overhead.. (All depends on the Message throughput of the channel and requirements) |
|
Back to top |
|
 |
bruce2359 |
Posted: Sun Oct 05, 2008 8:19 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Take a look at the WMQ Script Command Reference manual. DISPLAY CHS allows you to display CURRENT and SAVED status. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|