ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Installation/Configuration Support » Channel Status

Post new topic  Reply to topic
 Channel Status « View previous topic :: View next topic » 
Author Message
vidmar
PostPosted: Mon Nov 19, 2001 3:10 pm    Post subject: Reply with quote

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
View user's profile Send private message
bduncan
PostPosted: Mon Nov 19, 2001 3:41 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website AIM Address
issac
PostPosted: Sat Oct 04, 2008 11:28 pm    Post subject: Reply with quote

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
View user's profile Send private message
atheek
PostPosted: Sun Oct 05, 2008 3:40 am    Post subject: Reply with quote

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
View user's profile Send private message
ranganathan
PostPosted: Sun Oct 05, 2008 4:41 am    Post subject: Reply with quote

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
View user's profile Send private message
bruce2359
PostPosted: Sun Oct 05, 2008 8:19 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Installation/Configuration Support » Channel Status
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.