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 » General Discussion » How to find which Client connection takes the max ????

Post new topic  Reply to topic Goto page 1, 2, 3  Next
 How to find which Client connection takes the max ???? « View previous topic :: View next topic » 
Author Message
Shalini
PostPosted: Wed May 05, 2004 1:18 am    Post subject: How to find which Client connection takes the max ???? Reply with quote

Master

Joined: 30 Apr 2002
Posts: 224
Location: India

Hi,

MQ 5.2.1 CSD7 in Solaris 2.6.

We have typical set up with java application, c application, and other queue manager connecting to a single queue manager.

For our typical application we have total of 85 (sender, receiver, server conn, client conn) and 2 java and 3 c application connecting thro the server or client conn channel respectively.

Our MaxChannel and MaxActiveChannel parameter is 200.

Even we have external client who connects to same QM thro client conn channel.

For each 3-4 days we get the "AMQ9513: Maximum number of channels reached "

In our C and Java application we take care that we connect to queue manager and disconnect from QM properly.

My query is How to know which application(c/java/any other channel/external application) is opening a thread/ handle improperly and increases the connection more than 200.

Since the connection is also from external client, we don’t know whether they are closing the connection properly. We don’t have rights to debug the all our external application.

Say for instance.
Is there any API/Command that I can issue to a QM or channel that tells me that Particular X application has opened n thread and Y application has opened n thread. So that I can tell to a particular developer that the max Client connection reaches due to c/java/external application/any other channel.


Looking for reply.
Back to top
View user's profile Send private message Send e-mail
kglenn
PostPosted: Wed May 05, 2004 5:52 am    Post subject: Max Channels Reply with quote

Newbie

Joined: 05 May 2004
Posts: 7
Location: Overland Park KS

Shalini,

The easiest way to figure out who is consuming all of the connections would be to have each one of the apps that does a client connection have its own SVRCONN channel based on the name of the application.

Define channel(applicationname.client) chltype(svrconn)

This will show you where all of your connections are being chewed up at and more than likely it will be an app that is not disconnecting properly.


Ken
Back to top
View user's profile Send private message Yahoo Messenger
Shalini
PostPosted: Wed May 05, 2004 9:17 pm    Post subject: Reply with quote

Master

Joined: 30 Apr 2002
Posts: 224
Location: India

Hi,

My question remains the same .How channel will show me whether x application is taking more handle/thread or y application connecting thro same channel is taking more handle/thread.

Back to top
View user's profile Send private message Send e-mail
vijiraghav
PostPosted: Wed May 05, 2004 11:51 pm    Post subject: How to find which Client connection takes the max ???? Reply with quote

Novice

Joined: 11 Nov 2003
Posts: 18

There is an indirect way.

You may have to find out which machine(s)/system(s)/client(s) is/are connected to the queue manager. The following runmqsc command will give you the list of all connections. You can see from the CONNAME parameter value returned to find out either the IP Address or the host name.

display chstatus (CLIENT_CHANNEL) current chstati

(Assuming CLIENT_CHANNEL is the name of the Server connection channel defined in the queue manager)

One more thing:

Please check the kernel parameter value of semmnu and modify it if necessary to allow the qm to accept more channels. Refer the MQ Solaris Manual for this.

Vijiraghav
Back to top
View user's profile Send private message Send e-mail
Shalini
PostPosted: Thu May 06, 2004 5:36 am    Post subject: Reply with quote

Master

Joined: 30 Apr 2002
Posts: 224
Location: India

Hi vijiraghav,

Still my question remains the same.According to IBM PDF

1) CHSTATI
Time when this channel was started (in the form hh.mm.ss).

So, I tried display chstatus (CLIENT_CHANNEL) current msgs

2) MSGS
Number of messages sent or received (or, for server-connection channels,
the number of MQI calls handled) during this session (since the channel
was started).

But my requirement is if X and Y application connecting thro CLIENT_CHANNEL to same QM(and if they leave any orphan connection without dissconnecting) The MSGS option of channel only gave me number of messages it passed not the connection/thread created.

For example the output for msgs with chstatus was as follows

display chstatus(CLIENT_CHANNEL) current msgs
CHANNEL(CLIENT_CHANNEL) XMITQ( )
CONNAME(xx.yy.zz.dd) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
MSGS(2001) RQMNAME( )


CHANNEL(CLIENT_CHANNEL) XMITQ( )
CONNAME(xy.yx.zy.dy) CURRENT
CHLTYPE(SVRCONN) STATUS(RUNNING)
MSGS(13001) RQMNAME( )

Our MaxChannel and MaxActiveChannel parameter is 200.

Is there any way to get which application is making MaxActiveChannel > 200. So that I can find the culprit

Looking for your Reply
Back to top
View user's profile Send private message Send e-mail
kglenn
PostPosted: Thu May 06, 2004 5:51 am    Post subject: Reply with quote

Newbie

Joined: 05 May 2004
Posts: 7
Location: Overland Park KS

Sahlini,

Making sure that the client apps that connect have thier own client channel will give you the ability to determine who the culprit is. If you have two clients connecting to a qmgr and you hit max channels, then you simply dis chs (*) to see which app has all of the connections open.

If you have all clients using the same channel, then you have to decifer which IP belongs to which app, if you have that much time on your hands then great. If not, then make sure each app has it's own channel and the answer to your question would be obvious.


Ken
Back to top
View user's profile Send private message Yahoo Messenger
PeterPotkay
PostPosted: Thu May 06, 2004 6:35 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

display chstatus(*) ALL

This will return ALL the active channels, along with the IP address of each connection. Look at the list returned, and identify which IP address shows up to many times for your liking, and you have the culprit.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
kglenn
PostPosted: Thu May 06, 2004 6:41 am    Post subject: Reply with quote

Newbie

Joined: 05 May 2004
Posts: 7
Location: Overland Park KS

Peter,

Why not have a one to one relationship with client/client channel, that way there is no mistake as to which app is causing the channels to max out. I dont have to know which set of IPs are associated with which app, all I need to know is of the client channels who has the most active connections. This is more than likely your application that is causing the problem, due to not disconnecting properly, etc...

Ken
Back to top
View user's profile Send private message Yahoo Messenger
PeterPotkay
PostPosted: Thu May 06, 2004 6:45 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

I agree Ken. But I think the original poster is not set up that way. They all come in over 1.

Regardless of which way you are set up, getting a list of all active channels on a QM will quickly identify which channel is spawning hundreds of connections, and what IP address is making them on the other side.

And if they are all separate decicated SVRCONN channels, it becomes very easy to shut down the bad guy without effecting the good guys.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Shalini
PostPosted: Fri May 07, 2004 12:47 am    Post subject: Reply with quote

Master

Joined: 30 Apr 2002
Posts: 224
Location: India

Hi PeterPotkay, kglenn, vijiraghav

Thanks for your Reply.

Kindly clarify, Is the list of connection shown are open connections or connection in unstable state which have not been closed.


Regards,
Shalini
Back to top
View user's profile Send private message Send e-mail
PeterPotkay
PostPosted: Fri May 07, 2004 4:06 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

Both.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Shalini
PostPosted: Fri May 07, 2004 6:17 am    Post subject: Reply with quote

Master

Joined: 30 Apr 2002
Posts: 224
Location: India

Hi,

Is there any way to view seperately.

open connections and connection in unstable state which have not been closed so that I can get more clarity.

Back to top
View user's profile Send private message Send e-mail
PeterPotkay
PostPosted: Fri May 07, 2004 6:20 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

Look at the time/date of the last message sent. If there has been no message sent in days, odds are the connection is stale. This is not 100% (maybe a legitimate app/connection sends messages only every 10 days).

No other way I can think of.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Shalini
PostPosted: Mon Aug 02, 2004 4:51 am    Post subject: Reply with quote

Master

Joined: 30 Apr 2002
Posts: 224
Location: India

Hi All,

Does WMQ has any option so that it may close any of the connetion automatically after some time coming from client.

Eg: If you do a telnet to a Solaris/Unix box, If you donot use for some time (timeout period). Its close the session and ask the client to login a new session.

Does WebsphereMQ provide such feature.

We have lots of EAI tools intercting with WMQ, even I know to get which tool makes max channel connectivity to MQ by knowing the status of channel (dis chs (*) all).

If there is such option please let me know how to use.

I could not get any clue.

Thanks
Back to top
View user's profile Send private message Send e-mail
Shalini
PostPosted: Tue Aug 10, 2004 4:43 am    Post subject: Reply with quote

Master

Joined: 30 Apr 2002
Posts: 224
Location: India

Hi All,

Do we have a MQ connection time out and a connection pooling concept (not the programming concept but in the MQ Setup Admin concept) in which the open connection to be released to the pool after connection time out.

Iam looking for Admin or any of the QM attribute not the prog concept (like in MQJava)


Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2, 3  Next Page 1 of 3

MQSeries.net Forum Index » General Discussion » How to find which Client connection takes the max ????
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.