Author |
Message
|
techno |
Posted: Thu Dec 23, 2004 2:07 pm Post subject: Client - Channels |
|
|
Chevalier
Joined: 22 Jan 2003 Posts: 429
|
I have java receiver, receiving the messages from a queue. (Defines svrchl chl). I can see number of svr chls started and growing, even though the Receiver is just on one connection. I am wondering how does this happen. My receiver app is connecting to qmgr through client-con. This receiver implements MessageListener interface.
Any clues, links are very appreciated.
Thanks. |
|
Back to top |
|
 |
vennela |
Posted: Thu Dec 23, 2004 2:41 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Are you doing the disconnet from the QMGR after you are done ? |
|
Back to top |
|
 |
techno |
Posted: Thu Dec 23, 2004 2:52 pm Post subject: |
|
|
Chevalier
Joined: 22 Jan 2003 Posts: 429
|
No. I am not doing any disconnects.
Client Con is on and receiver is running on it continuosly. Receiver is subscriber to a topic.
Doing commit after processing each message.
On debugging, I have observed that each receive-of-message is increasing the number of svr-chl connections( chstatus(svchl) increases by one)
Thanks. |
|
Back to top |
|
 |
techno |
Posted: Thu Dec 23, 2004 4:06 pm Post subject: |
|
|
Chevalier
Joined: 22 Jan 2003 Posts: 429
|
No. I am not doing any disconnects.
Client Con is on and receiver is running on it continuosly. Receiver is subscriber to a topic.
Doing commit after processing each message.
On debugging, I have observed that each receive-of-message is increasing the number of svr-chl connections( chstatus(svchl) increases by one)
Even though I can see these errors in AMQERR logs, all the messages are getting received successfully.
Quote: |
AMQ9513: Maximum number of channels reached.
EXPLANATION:
The maximum number of channels that can be in use simultaneously has been
reached. The number of permitted channels is a configurable parameter in the
queue manager configuration file.
ACTION:
Wait for some of the operating channels to close. Retry the operation when some
channels are available.
|
|
|
Back to top |
|
 |
csmith28 |
Posted: Thu Dec 23, 2004 4:18 pm Post subject: |
|
|
 Grand Master
Joined: 15 Jul 2003 Posts: 1196 Location: Arizona
|
techno
Are you talking about SVR Channels or SVRCONN Channels?
The reason I ask is, I've never heard of a Client Application connecting to an MQManager with a SVR Channel. _________________ Yes, I am an agent of Satan but my duties are largely ceremonial. |
|
Back to top |
|
 |
techno |
Posted: Fri Dec 24, 2004 8:20 am Post subject: |
|
|
Chevalier
Joined: 22 Jan 2003 Posts: 429
|
SVRCONN channel, I am sorry for making you misunderstanding..
With Java App to make client connection, it does not need to have client-channel defined. Only SVRCONN channel needs to be defined on qmgr side, right?
Code: |
1 : dis chstatus(*) all
AMQ8417: Display Channel Status details.
CHANNEL(SVRCHL) XMITQ( )
CONNAME(127.0.0.1) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
LSTMSGTI(08.20.15) LSTMSGDA(2004-12-24)
MSGS(5981) BYTSSENT(2647425)
BYTSRCVD(2648006) HBINT(300)
CHSTATI(15.44.45) CHSTADA(2004-12-23)
BUFSSENT(5982) BUFSRCVD(5984)
JOBNAME(0000713F000000EC) MCASTAT(RUNNING)
STOPREQ(NO) LOCLADDR(127.0.0.1(1414))
SSLPEER() RQMNAME( )
AMQ8417: Display Channel Status details.
CHANNEL(SVRCHL) XMITQ( )
CONNAME(127.0.0.1) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
LSTMSGTI(18.54.06) LSTMSGDA(2004-12-23)
MSGS(3) BYTSSENT(738)
BYTSRCVD(1016) HBINT(300)
CHSTATI(18.54.06) CHSTADA(2004-12-23)
BUFSSENT(5) BUFSRCVD(6)
JOBNAME(00000F1E0000462C) MCASTAT(RUNNING)
STOPREQ(NO) LOCLADDR(127.0.0.1(1414))
SSLPEER() RQMNAME( )
AMQ8417: Display Channel Status details.
CHANNEL(SVRCHL) XMITQ( )
CONNAME(127.0.0.1) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
LSTMSGTI(08.20.17) LSTMSGDA(2004-12-24)
MSGS(108537) BYTSSENT(89893515)
BYTSRCVD(30994193) HBINT(300)
CHSTATI(15.44.45) CHSTADA(2004-12-23)
BUFSSENT(108538) BUFSRCVD(108540)
JOBNAME(0000713F000000ED) MCASTAT(RUNNING)
STOPREQ(NO) LOCLADDR(127.0.0.1(1414))
SSLPEER() RQMNAME( )
AMQ8417: Display Channel Status details.
CHANNEL(SVRCHL) XMITQ( )
CONNAME(127.0.0.1) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
LSTMSGTI(15.49.45) LSTMSGDA(2004-12-23)
MSGS(3) BYTSSENT(738)
BYTSRCVD(1016) HBINT(300)
CHSTATI(15.49.45) CHSTADA(2004-12-23)
BUFSSENT(5) BUFSRCVD(6)
JOBNAME(0000713F00000109) MCASTAT(RUNNING)
STOPREQ(NO) LOCLADDR(127.0.0.1(1414))
SSLPEER() RQMNAME( )
AMQ8417: Display Channel Status details.
CHANNEL(SVRCHL) XMITQ( )
CONNAME(127.0.0.1) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
LSTMSGTI(15.49.46) LSTMSGDA(2004-12-23)
MSGS(3) BYTSSENT(738)
BYTSRCVD(1016) HBINT(300)
CHSTATI(15.49.46) CHSTADA(2004-12-23)
BUFSSENT(5) BUFSRCVD(6)
JOBNAME(00000F1E00000200) MCASTAT(RUNNING)
STOPREQ(NO) LOCLADDR(127.0.0.1(1414))
SSLPEER() RQMNAME( )
AMQ8417: Display Channel Status details.
CHANNEL(SVRCHL) XMITQ( )
CONNAME(127.0.0.1) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
LSTMSGTI(15.44.46) LSTMSGDA(2004-12-23)
MSGS(3) BYTSSENT(738)
BYTSRCVD(1016) HBINT(300)
CHSTATI(15.44.46) CHSTADA(2004-12-23)
BUFSSENT(5) BUFSRCVD(6)
JOBNAME(0000713F000000F0) MCASTAT(RUNNING)
STOPREQ(NO) LOCLADDR(127.0.0.1(1414))
SSLPEER() RQMNAME( )
AMQ8417: Display Channel Status details.
CHANNEL(SVRCHL) XMITQ( )
CONNAME(127.0.0.1) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
LSTMSGTI(15.44.49) LSTMSGDA(2004-12-23)
MSGS(3) BYTSSENT(738)
BYTSRCVD(1016) HBINT(300)
CHSTATI(15.44.49) CHSTADA(2004-12-23)
---
-- |
I configured 100 max active chls and so above are hundred. I can see number of msgs received by each chl is different.
As soon as I stop my receiver(subscriber), all will be gone.
Even though Receiver is receiving all the messages, why is AMQERR log file is filling up with the errors, saying that max channels reached...
Am I understanding something wrong here? |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Dec 24, 2004 7:59 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
My guess is that either for each publish or message received by a subscribed agent you do the full intro:
acquire the TCF
acquire the connection from the TCF
acquire the session
publish and be done
receive and be done.
Only trouble is you can't do that without straining the resources as you saw.
Now you need to make sure that you do not create new topic connections willy nilly
You need to make sure that you do not leave a Topic connection to be garbage collected but close (not just stop) it as soon as it is no longer needed.
Enjoy  |
|
Back to top |
|
 |
dejanb |
Posted: Sat Dec 25, 2004 9:52 pm Post subject: |
|
|
Novice
Joined: 17 Dec 2004 Posts: 11 Location: Palo Alto, CA
|
During one stay at a client site one of their MQ administrators was kind enough to look into the relationship between JMS object -> MQ channel and what he found out was that for a SRVCONN for MQ is a JMS Session (Topic or Queue).
So just make sure you explicitly close all sessions after finishing using them.
The JMS spec states that sessions should close all of their resources upon garbage collection but I'm not certain this happens with MQ and in previous versions I've seen the MQ server still "seeing" sessions and subscriptions for clients that have been shutdown (Ctrl-C) before closing the connections.
This is one reason in the $MQS/java/bin directory there is a cleanup.sh/bat script that tries to clear these dead subscriptions.
Dejan |
|
Back to top |
|
 |
slaupster |
Posted: Fri Dec 31, 2004 6:33 am Post subject: |
|
|
Apprentice
Joined: 17 Nov 2004 Posts: 41
|
all MQ objects with a net presence/other resources for that matter have finalize() methods.
I would guess that this problem is to do with the publisher not closing its sessions. |
|
Back to top |
|
 |
|