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 » WebSphere Message Broker (ACE) Support » Viewing webservice requests

Post new topic  Reply to topic Goto page 1, 2  Next
 Viewing webservice requests « View previous topic :: View next topic » 
Author Message
broker_new
PostPosted: Thu Sep 11, 2008 5:59 pm    Post subject: Viewing webservice requests Reply with quote

Yatiri

Joined: 30 Nov 2006
Posts: 614
Location: Washington DC

I have nearly 20 message flows that are exposed as web services each webservice calls a stored procedure and waits for significant time and responds with the stored procedure response..

When we are performing a load test on these webservices some requests are getting timed out and i see those requests queueing up in SYSTEM.BROKER.WS.INPUT queue .

I read about the HTTP nodes and each broker by default can accept only 250 concurrent connections is that true.

And we can alter the count using this command..

mqsichangeproperties MyBroker -b httplistener -o HTTPConnector -n maxThreads -v 2000


Could anyone clarify that this is true ............

Is there a way to view what are all the requests that are coming to broker.
Back to top
View user's profile Send private message
sridhsri
PostPosted: Thu Sep 11, 2008 8:06 pm    Post subject: Reply with quote

Master

Joined: 19 Jun 2008
Posts: 297

Perhaps the problem is that connection between broker and the database is poor - causing the delay. The only way to monitor all requests coming in is to use a tunnel monitor like the one shipped with the toolkit or nettool.
Back to top
View user's profile Send private message
broker_new
PostPosted: Thu Sep 11, 2008 8:13 pm    Post subject: Reply with quote

Yatiri

Joined: 30 Nov 2006
Posts: 614
Location: Washington DC

Iam wondering how do we achieve it using a nettool or toolkit..

Iam tesing the performance using a JMeter which opens 500 threads and POST for the webservice.

I would like to browse for the requests coming in.....basically for testing the throughput of it.......If it is a simple message flow(MQ protocol) we can do the same using the RFHUTIL utilities(mqputs and mqtimes)
Back to top
View user's profile Send private message
sridhsri
PostPosted: Thu Sep 11, 2008 8:19 pm    Post subject: Reply with quote

Master

Joined: 19 Jun 2008
Posts: 297

There is a view in the toolkit called TCPPI Monitor. Nettool has a tab called tunnel monitor. Now that I know you requirement, I am not sure if these tools will help you. I guess you are interested in the time taken for a round trip. The best way is to incorporate that in JMeter or whatever that is. Since it is making the request (and presumably getting the response), it is easiest to calculate the time taken for the round trip from there.

With WMB 6.1, the monitoring profile allows you to log message entry and message exit times for every message. You could leverage this.

p.s: Did you try and increase the number of additional instances on your flows ?
Back to top
View user's profile Send private message
broker_new
PostPosted: Thu Sep 11, 2008 8:25 pm    Post subject: Reply with quote

Yatiri

Joined: 30 Nov 2006
Posts: 614
Location: Washington DC

Actually iam trying to test how many no of concurrent HTTP/HTTPS connections a broker can handle..In the documentation it was said like it can handle max 250 client connections and from 251 connection it should throw Connection refused error but its not happening for me ....using Jmeter i have generated 500 HTTP requests at a given point of time after processing certain number of requests all are getting timedout..
Back to top
View user's profile Send private message
broker_new
PostPosted: Wed Sep 17, 2008 6:17 pm    Post subject: Reply with quote

Yatiri

Joined: 30 Nov 2006
Posts: 614
Location: Washington DC

Can anyone answer my query please.....

I have exposed a webservice which calls the stored procedure ....on the stored procedure end the timeout was set as one minute.

After my performance testing i observed that broker is processing one request at a time.Is that true,does broker can handle concurrent processes...

If i want to accept multiple requests and process them parallely what settings we need to do...........
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Sep 17, 2008 7:54 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

broker_new wrote:
Can anyone answer my query please.....

I have exposed a webservice which calls the stored procedure ....on the stored procedure end the timeout was set as one minute.

After my performance testing i observed that broker is processing one request at a time.Is that true,does broker can handle concurrent processes...

If i want to accept multiple requests and process them parallely what settings we need to do...........

Set additional instances of the flow in the bar file.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
broker_new
PostPosted: Wed Sep 17, 2008 8:04 pm    Post subject: Reply with quote

Yatiri

Joined: 30 Nov 2006
Posts: 614
Location: Washington DC

Iam confused here..

http://www.ibm.com/developerworks/websphere/library/techarticles/0608_braithwaite/0608_braithwaite.html

as per the document it says a webservice can accept 250 client connections at given point of time...It means that a webservice should be able to process all the requests concurrently right....did i understood it wrongly...
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Sep 17, 2008 8:09 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

broker_new wrote:
Iam confused here..

http://www.ibm.com/developerworks/websphere/library/techarticles/0608_braithwaite/0608_braithwaite.html

as per the document it says a webservice can accept 250 client connections at given point of time...It means that a webservice should be able to process all the requests concurrently right....did i understood it wrongly...

And where does it say that it HAS to be processed by a single instance of the flow? Parallelism and throughput are achieved by instanciating more than one instance of the flow in the same execution group. This is done via the additional instances deployment descriptor. It is called scaling.

And for the books the reference to the 250 connections:
Quote:
The default value is 250, which means the 251st client that tries to connect will get a Connection Refused response. (Actually, a few connections in excess of the maxThreads value may be allowed, because connections can be queued up to the limit set by the acceptCount parameter, which is again configurable). In many environments, the default setting may be enough, but in some cases you may need to set this value higher by running this command: mqsichangeproperties MyBroker -b httplistener -o HTTPConnector -n maxThreads -v 2000. (For the meanings of the parameters, see above list.)
refers to the http listener.

This does not mean that none of them will time out because you do not have enough instances of the flow to handle them in parallel.
This means that should you have an additional client trying to connect to the httplistener it will get a connection refused.

Again, in order to handle the 250 parallel requests you better have an ultra rapid flow and a long timeout on the client or enough instances of the flow to process them in parallel....

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
broker_new
PostPosted: Wed Sep 17, 2008 8:26 pm    Post subject: Reply with quote

Yatiri

Joined: 30 Nov 2006
Posts: 614
Location: Washington DC

So broker process each Soap request at a time and while it is processing first message and second request message arrives it will be queued up...

But a webservice deployed in application server behaves differently i dont have the correct number of concurrent process it can handle but it process multiple requests at a particular time...
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Sep 17, 2008 8:45 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

broker_new wrote:
So broker process each Soap request at a time and while it is processing first message and second request message arrives it will be queued up...

But a webservice deployed in application server behaves differently i dont have the correct number of concurrent process it can handle but it process multiple requests at a particular time...

OK so imagine you have multiple choke points:

  1. http queue => governed by the httpbiplistener and its configuration
    This determines how the listener handles client requests.
  2. flow input queue => how the httpbiplistener feeds the flow.
  3. The flow itself with its # of instances.

You can't do much about b) which is determined by a) and c).

Assuming you have 1 instance of the flow only.
Assuming that each instance of the flow will need 1 second in average to process the message
Assuming that you have 200 concurrent requests that will wait for 1 min before timeout...
You can process 60 requests in 1 min. => 140 requests will timeout.
Now with 4 instances of the flow you can process 240 requests in 1 min and none of your requests will timeout.

I think you get the picture now...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Maximreality
PostPosted: Thu Sep 18, 2008 2:39 am    Post subject: Reply with quote

Acolyte

Joined: 04 Jun 2004
Posts: 65
Location: Copenhagen

The biphttplistener supports ~1200 concurrent http connections, if you need more than that you need to put a http proxy in front of the broker.

But as other people has been saying you message flow might need to be instantiated several times to actually provide proper capacity to avoid timeouts.

You also need to configure your biphttplistener correctly if you have a high volume, it very much depends on if you expect many requests from different http clients or many request from the same http client.

You can try this command to disable Nagles Algorithm if you have long response times on a single request
Code:
mqsichangeproperties <BrokerName> -e <ExecutionGroupName> -o ComIbmSocketConnectionManager -n tcpNoDelay -v true


You should also consider using persistent http connections if you get many requests from the same http client (it can be enabled by setting "Enable HTTP/1.1 keep-alive")
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Sep 18, 2008 2:58 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Quote:
The biphttplistener supports ~1200 concurrent http connections, if you need more than that you need to put a http proxy in front of the broker.
The doc states ~1200 concurrent connections across all flows. This does not mean that you can get more than 250 (max threads) to a single flow in a single execution group. However due to time out wait time and flow speed this may not be relevant.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
broker_new
PostPosted: Thu Sep 18, 2008 8:57 am    Post subject: Reply with quote

Yatiri

Joined: 30 Nov 2006
Posts: 614
Location: Washington DC

Iam not clear on one apsect,
If Broker can accept multiple requests(let's say 250) and if it processing one at a time(single threaded) it makes no meaning at all..

We can increase the instances by looking into the memory and no of CPUs available ...This may not be the correct answer because if we increase the Additional instances to 10 and each thread takes atleast 10 seconds to complete the round trip then all the other requests will be queued up anyway and sometimes they may get timedout..........

is it the only way the webservices work ob broker....

Lets take the example of a webservice deployed on application server without increasing no of threads it supports concurrent processing(I dont have correct metrics on that) but i do think this is the limitation on the broker side......

Any thoughts on this
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Sep 18, 2008 9:09 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Nothing you said in there makes much sense.

When you deploy a J2EE application to a J2EE server, that application is inherently run in many different threads - but that threadpool can be constrained by the app deployment configuration or the app server configuration. That threadpool can only grow to the maximum number of threads that the app server instance can support.

When you deploy a message flow application to a Broekr, that message flow application is inherently run with a single thread per *Input node in the flow. You can configure additional instances of the message flow application, and in 6.1 additional instances for each *Input node, at deploy time. Those additional instances *are* threads, and so it is *the same as* configuring a threadpool in a J2EE app server. You can only run as many additional instances as the ExecutionGroup process will support.

Eveything is Turing complete. It all works "the same way" at a fundamental level. If you use that approach to learning computing technology, it *all* makes sense. There are no Magic Server Beans.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Viewing webservice requests
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.