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 Java / JMS » Triggering channels

Post new topic  Reply to topic
 Triggering channels « View previous topic :: View next topic » 
Author Message
Vin
PostPosted: Fri May 10, 2002 6:44 pm    Post subject: Reply with quote

Master

Joined: 25 Mar 2002
Posts: 212
Location: India

I tried to trigger a channel using the initiation queue as system.channel.initq. The channel is not getting triggered.I set up the transmission queue to have the attribute initq as system.channel.initq. Is there something wrong I'm doing? Not getting a clue as to what's wrong? Thanks.
Back to top
View user's profile Send private message
bduncan
PostPosted: Sat May 11, 2002 10:27 pm    Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

Vin,
Check out this thread:
http://www.webmq.com/phpBB2/viewtopic.php?t=298&highlight=channel+trigger

Most likely your channel initiator program isn't running. When started it watches the SYSTEM.CHANNEL.INITQ for trigger messages...
_________________
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
Vin
PostPosted: Tue May 14, 2002 8:36 pm    Post subject: Reply with quote

Master

Joined: 25 Mar 2002
Posts: 212
Location: India

My channel Initiator is running but the queue is not trigerred somehow? All the messages are landing on the transmission Queue. I ran the channel Initiator using runmqchi -m queueManagerName -q SYSTEM.CHANNEL.INITQ. What could be wrong, really weird. Thanks.
Back to top
View user's profile Send private message
amurugan
PostPosted: Tue May 14, 2002 9:37 pm    Post subject: Reply with quote

Voyager

Joined: 10 Sep 2001
Posts: 75
Location: india

hi ,
check out whether the initq is running . if not try to start it . Also make sure the channel initiator is running . Verify the remote q definitions. kindly check whether the remote queue maanager is running and the channel listener of the remote queue manager is running. Above all check whether do u have network connectivity to the remote MQseries server and whether is it behind a firewall or not .

cheers,
Murugan
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
Vin
PostPosted: Wed May 15, 2002 8:24 am    Post subject: Reply with quote

Master

Joined: 25 Mar 2002
Posts: 212
Location: India

I did set this correct since I'm able to send/recieve messages from the two machines. I started the channel initiator using the runmqchi -m queueManagerName -q SYSTEM.CHANNEL.INITQ. I did not understand what you meant by start the INITQ? Is this something which I have to do before running the channel Initiator? My transmission channel is set to trigger type FIRST and trigerring is enabled. The Queue SYSTEM.CHANNEL.INITQ exists. Thanks.
Back to top
View user's profile Send private message
bduncan
PostPosted: Wed May 15, 2002 9:56 am    Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

Vin,
I think he was referring to starting the channel initiator (runmqchi) on the SYSTEM.CHANNEL.INITQ, which you've already done. Here's my question, have you looked at the depth of the SYSTEM.CHANNEL.INITQ?

The real test would be to stop the channel initiator program, and then attempt to send some messages (with the corresponding channels already running, of course). If the queue objects are setup properly, you should see some messages stack up on the SYSTEM.CHANNEL.INITQ, since there is nothing there to process them. If you don't see any messages, this probably means your transmission queue isn't configured properly. I noticed that you mentioned having set "trigger type FIRST and trigerring is enabled" on the transmission queue. But I didn't notice you mention anywhere that you set the INITQ attribute for the transmission queue to "SYSTEM.CHANNEL.INITQ". If you don't have this set, nothing will happen, even though you set triggering.
Of course, if you do see messages stacking up on the SYSTEM.CHANNEL.INITQ, then you need to start the channel initiator program and see if it picks them up. If it picks them up and the channel isn't starting, you probably have a configuration problem. If it doesn't even pick up the messages, then you've likely got a permission problem of some kind...
_________________
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
Vin
PostPosted: Wed May 15, 2002 10:22 am    Post subject: Reply with quote

Master

Joined: 25 Mar 2002
Posts: 212
Location: India

Brandon,
Here is my transmission queue definition. I set the initq attribute to SYSTEM.CHANNEL.INITQ. Do I need to restart the QueueManager after I change the transmission queue definition? Thanks.

DESCR( ) PROCESS( )
BOQNAME( ) INITQ(SYSTEM.CHANNEL.INITQ)
TRIGDATA(PROSERVCHANNEL) CLUSTER( )
CLUSNL( ) QUEUE(proserv.queue.manager)
CRDATE(2002-04-24) CRTIME(14.13.23)
ALTDATE(2002-05-14) ALTTIME(10.12.19)
GET(ENABLED) PUT(ENABLED)
DEFPRTY(0) DEFPSIST(NO)
MAXDEPTH(5000) MAXMSGL(4194304)
BOTHRESH(0) SHARE
DEFSOPT(SHARED) HARDENBO
MSGDLVSQ(PRIORITY) RETINTVL(999999999)
USAGE(XMITQ) TRIGGER
TRIGTYPE(FIRST) TRIGDPTH(1)
TRIGMPRI(0) QDEPTHHI(80)
QDEPTHLO(20) QDPMAXEV(ENABLED)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QSVCINT(999999999) QSVCIEV(NONE)
DISTL(YES) DEFTYPE(PREDEFINED)
TYPE(QLOCAL) SCOPE(QMGR)
DEFBIND(OPEN) IPPROCS(1)
OPPROCS(1) CURDEPTH(0)
Back to top
View user's profile Send private message
Vin
PostPosted: Wed May 15, 2002 2:13 pm    Post subject: Reply with quote

Master

Joined: 25 Mar 2002
Posts: 212
Location: India

My problem is that the messages are not being delivered to the SYSTEM.CHANNEL.INITQ. All my messages are landing on the transmission queue. I don't have a clue as to what I'm setting wrong that the messages are not being delivered to the initiatio queue which in my case is SYSTEM.CHANNEL.INITQ. I'm really stuck up with this. Appreciate all the help.
Back to top
View user's profile Send private message
bduncan
PostPosted: Wed May 15, 2002 2:40 pm    Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

Vin,
Remember, it's not your messages which are supposed to go to the system.channel.initq. Your messages will remain on the transmission queue, but a trigger message will be created automatically by the queue manager anytime the trigger conditions are met. In your case, it will happen when the first message lands on the transmission queue. This trigger message will be placed on the system.channel.initq with the expectation that the channel initiator will be listening and pick it up. Now, here are some things you need to do:

1) Make sure the channel initiator (runmqchi) isn't running. Now go into runmqsc, and type DIS QL(SYSTEM.CHANNEL.INITQ). Look at the IPPROCS and OPPROCS attributes. These should both be zero.

2) Start the channel initiator (runmqchi). Note, you don't need to specify system.channel.initq. It will assume this by default. So just enter "runmqchi -m queuemanager_name" Now go back into runmqsc and look at SYSTEM.CHANNEL.INITQ again. Now, OPPROCS should say 1. (It might be IPPROCS, I always get the two mixed up ) Now, if they both still show zero, it means the channel initiator isn't actually watching the SYSTEM.CHANNEL.INITQ

3) Stop the channel initiator again. Now make sure the transmission queue is empty. If the depth is greater than zero, you need to get enable the queue and then clear it manually. Also make sure the channel that is associated with this transmission queue is inactive. In other words, if it's already running, we won't be able to test the trigger mechanism. If it's running though, don't issue STOP CHANNEL. Just wait until the DISCINT interval is exceeded (in which case the channel goes inactive automatically) or alter the channel and give it a shorter DISCINT interval. Once these conditions have been satisfied, now have your application put a message to the remote queue definition which uses this transmission queue. In runmqsc, you should see the depth of the transmission queue go from zero to some value. Similarly, you should see the depth of the SYSTEM.CHANNEL.INITQ go from zero to 1. This message is the trigger message. If you now start the channel initiator program, it should remove this message from the initation queue and start the channel.

Please do these tasks and if your results deviate from what I said here, repsond with exactly what happened. We should be able to determine the root cause from that information...
_________________
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
Vin
PostPosted: Wed May 15, 2002 3:44 pm    Post subject: Reply with quote

Master

Joined: 25 Mar 2002
Posts: 212
Location: India

Brandon,
Thanks very much for the reply.The good news is, that worked. I have a couple of questions though. I was trying to start a stopped channel, that is a channel which is in a STOPPED STATE. Is this possible at all? I think that's the main reason why I was not getting a trigger messages. The IPPROCS is what indicates an open queue count right? (It changed to 1 when I issued the runmqchi command). Also when I sent a message to my local definition of remote queue, I noticed that the transmission queue had a depth of 1 but the SYSTEM.CHANNEL.INITQ had a count of 3? After I issued the runmqchi command the count of both the queues changed to 0. I wonder what those extra messages on that initiation queue were? Thanks once agian for your time.
Back to top
View user's profile Send private message
bduncan
PostPosted: Wed May 15, 2002 9:00 pm    Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

Vin,
If I'm not mistaken (and someone jump in here if I'm wrong) any channel you have manually stopped, such that it is in the "STOPPED" state (as oppossed to simply being inactive) it won't be started automatically by the channel initiator. I think this is because the queue manager assumes that since the channel was stopped by human intervention, it will wait until it has been started again by human intervention.
IPPROCS and OPPROCS act together to give you an idea of how many applications have issued MQOPEN calls against the queue in question. Since you can only open a queue for input or output (but not both) the same application will never be counted as both an IPPROC and an OPPROC. The fact that IPPROCS went to 1 when you started the channel initiator means that runmqchi was able to successfully issue an MQOPEN call against the SYSTEM.CHANNEL.INITQ.
As for the additional messages on the initiation queue, there are a few reasons why you may have seen more than you expected. A trigger message is generated everytime the trigger conditions for a queue have been met. In this case, the trigger was on your transmission queue, and the condition was when the depth went from 0 to 1. So, those messages may have been present from your earlier tests (I don't believe trigger messages have an expiry, and even if they did expire, they'd still show up in the queue depth until some application comes along and interacts with the queue) and so there may have already been 2 messages on the SYSTEM.CHANNEL.INITQ. Another reason could be that your trigger interval is low. This value (specified as an attribute of the queue manager, use DIS QMGR to view it) tells the queue manager how long to wait before retriggering a queue if nobody has come along and acted on the previous trigger messages. There's a few more obscure reasons, but you really don't need to worry about it. In the case of the channel initiator, the worse that will happen is that a START CHANNEL command will be issued on a channel that is already running, which does no harm...
Glad to hear you got it working
_________________
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
PeterPotkay
PostPosted: Thu May 16, 2002 4:29 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

Brandon, apps can open a queue for both input and output at the same time.

As far as keeping IPROCS/OPROCS straight in my head, I use this silly little memory trick. Open a queue to take messages Into a program = Iprocs (I=I). Open a queue to shoot messages Out of a program (and Onto the queue = Oprocs (O=O).
_________________
Peter Potkay
Keep Calm and MQ On
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 Java / JMS » Triggering channels
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.