Change your preferences any time. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. Is there an application server where I can set a defined maximum of concurrent client connections? Also no connections should be queued. In Glassfish you have the possibility to use the so called Connection Pooling which nearly does what you want. It limits the number of concurrent client connections to the size of the connection pool.
Normally it will queue the requests which are above the limitation, but you can also just disable the queueing or if not possible set it to 1. In JBoss there is something similar, you have the option maxThreads which is effectivly the same as maximum connections.
Learn more. Application Server : Limit the number of concurrent client connections Ask Question. Asked 6 years, 2 months ago. Active 6 years, 2 months ago. Viewed 2k times.
JWill JWill 95 11 11 bronze badges. Which one are you interested in? Active Oldest Votes. Nearly every application server has a feature which is similar to what you want.
Seems like I can not access any connection-pool settings. You have to use it like this: asadmin set server. Maybe I should be more specific - the exact exception is "no configuration found for server.
You don't have to create something.Home IIS. Last post Jun 20, PM by psborugadda. Nov 08, PM VincentW LINK Not sure if this should be here in "Performance" or in another section but the I put it here because I'm having a performance problem and I'm considering maximum concurrent connections as a possible culprit.
Unfortunately I'm not sure what my maximum concurrent connections value actually is because I'm seeing two different values.
I suspect that these two values actually are two different things, and so I need to know what exactly I'm looking at. The reason I'm looking at this is because my website is very busy and just in the last week or so I've been getting complaints that people are seeing the " The service is unavailable " message.
So I just want to rule out the possibility that I'm going over my max connections. However, I did confirm that the server was generating too many connections when executing a specific report. I suspected a particular report, and while watching the performance monitor showing both the current connections which bounced around between 30 and and the maximum connections which was showingI executed the report and sure enough the current connections value started to climb and within about 15 seconds it had passed the red line and my server started giving the "Service is unavailable error".
So that tells me that the is the actual maximum connections before bad things happen. And it sounds like you're saying that the is the application pool connection limit not the site limit which is actually defined by Queue Length. Except the Queue length on my application pool is still set atwhich is the default. So where does that come from? I'm guessing its calculated somehow. You probably need to look the concurrent connections to see what is happening.
If your report running creates hubdr3ds or thousand of connections you likely have an issue with the code in your report. There are various perfmon stats to see how many requests you have queued. Or just look at the worker process icon under the server in IIS manager to see the requests live.
If that's the case, then why was I seeing "The service is unavailable" when hitting that threshold? Yes, there was a problem with the report. I was queueing up a bunch of ajax calls, and one of those calls was getting caught in an endless loop. That's all fixed now, but I'm still trying to understand this max connections thing.
A batch of 71 calls were repeated with a wait time of 1 millisecond. Maximum Concurrent Connections - What is the true value? Print Share Twitter Facebook Email. VincentW 14 Posts. In Performance Monitor, I add a counter under "Web Service" called "Maximum Connections" and this value is displayed on the graph as 1, Re: Maximum Concurrent Connections - What is the true value? Rovastar You probably need to look the concurrent connections to see what is happening.
Thanks for the tip! I never even realized that was there.We will focus now on the incoming request flows as they cross the WildFly borders. And we will learn how to monitor the most critical attributes. If you want to tune a complex beast like a Java application server it is crucial that you understand the single steps that the request performs before reaching the target component.
All the rest has usually a minor impact on performance. So let's see a typical request coming from a Web front-end and reaching WildFly EJBs which in turn invoke the database:. Setting the correct amount of IO threads is crucial in this scenario, otherwise you will have a bottleneck at the beginning of your request.
Provided that there are enough io-threads to serve your http request, the core-max-threads first and the task-max-threads after are used to determine in the request is served or if it is going to be discarded. Undertow threads are configured through the IO subsystem.
Still in the Web layer, you need to take into account the number of sessions which are running. The parameter max-active-sessions is used to determine how many active HTTP session will be allowed.
That's a big price in terms of performance so let's see how to configure it using jboss-web. Then, keep monitoring the number of sessions using the CLI. This is the second element that you need to consider in this scenario: that you have enough resources on your EJB Container. The rationale behind this decision is that an accurate pool size is tightly dependent on your application and cannot be easily guessed. Therefore, a poorly configured pool of EJBs could be even detrimental in terms of performance, causing excessive cycles of garbage collections.
This requires however just as little as a combo box selection from the EJB3 Container tab. Or a simple CLI command:. The Stateful cache by default uses a simple caching system which does not involve Passivation of data.
This might be desirable in terms of performance, however if you need to use a Passivation mechanism in your application, you must learn how to configure the limits of your cache.
At first you need to enable the SFSB to use a passivation capable cache like the distributable :. Then, you can configure the maximum number of SFSB allowed in the cache. For example, the distributable cache uses the infinispan passivation-store which allows a maximum number of elements in the cache. Once that you have configured your Pool or Cache, it is time to monitor if your configuration is appropriate.
As for the Web layer, you can obtain this information through your deployment unit, by digging into the ejb3 subsystem as follows:.
If you have enough resources in the EJB container, then the IO thread will continue its race to the last step which is usually the Database, but could be as well another EIS.
5.3.3. Setting Concurrency Limits
In case you are dealing with Database connections, you must acquire a connection from the pool, that is governed by the JCA layer. The key configuration parameter is max-pool-size which specifies the maximum number of connections for a pool. Default Note that there will be a maximum limit for the number of connections allowed by the database to match.
You can set your Connection pool max size to a different attribute using this CLI:. Note in this tutorial Monitor WildFly with your bash skills we have demonstrated how to monitor the Connection pool with some simple bash and CLI interaction. In the second example, we will cover a slightly different approach which involves remote EJB calls.Database Connection Pooling
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up. We have an apache webserver in front of Tomcat hosted on EC2, instance type is extra large with 34GB memory.
Our application deals with lot of external webservices and we have a very lousy external webservice which takes almost seconds to respond to requests during peak hours.
During peak hours the server chokes at just about httpd processes. I have googled and found numerous suggestions but nothing seems to work. I have increased the limits of max connection and max clients in both apache and tomcat. I have been trying numerous suggestions but in vain. I'm sure m2xlarge server should serve more requests thanprobably i might be going wrong with my configuration. The server chokes only during peak hours and when there are concurrent requests waiting for the [ second delayed] webservice to respond.
Now everything seems under control. Consider setting up an asynchronous proxying web server like nginx or lighttpd in front of Apache. Apache serves content synchronously so workers are blocked until clients download generated content in full more details here. Setting up an asynchronous non-blocking proxy usually improves situation dramatically I used to lower the number of concurrently running Apache workers from 30 to using nginx as a frontend proxy.
I suspect your problem is in tomcat not apache, from the logs you have shown anyway. When you get 'error ' trying to connect back into tomcat it indicates you've got a queue of connections waiting to be served that no more can fit into the listening backlog setup for the listening socket in tomcat.
If I had to guess, I would suspect that the vast majority of HTTP requests when the server is "choking" is blocked waiting for something to come back from tomcat. I bet if you attempted to fetch some static content thats directly served up by apache rather than being proxied to tomcat that this would work even when its normally 'choking'.
I am not familiar with tomcat unfortunately, but is there a way to manipulate the concurrency settings of this instead? Oh, and you might need to also consider the possibility that its the external network services thats limiting the number of connections that it is doing to you down toso it makes no difference how much manipulating of concurrency you are doing on your front side if practically every connection you make relies on an external web services response.
In one of your comments you mentioned data goes stale after 2 minutes. I'd suggest caching the response you get from this service for two minutes to reduce the amount of concurrent connections you are driving to the external web service. That's not righteous. The second thing to mention I by myself dislike to be told answers to questions I wasn't asking, but Also, did you exactly restart apache, or just graceful ly reloaded it?
At least switch to the worker MPM apache 2.Rather than configuring the connection manager factory related MBeans discussed in the previous section via a mbean services deployment descriptor, JBoss provides a simplified datasource centric descriptor. This is transformed into the standard jboss-service. XSLSubDeployer included in the jboss-jca. The simplified configuration descriptor is deployed the same as other deployable components.
Multiple datasource configurations may be specified in a configuration deployment file. The child elements of the datasources root are:. This may be used to configure services used by the datasources. To ensure that all work in a local transaction occurs over the same ManagedConnectionit includes a xid to ManagedConnection map.
When a Connection is requested or a transaction started with a connection handle in use, it checks to see if a ManagedConnection already exists enrolled in the global transaction and uses it if found. Otherwise, a free ManagedConnection has its LocalTransaction started and is used.
The non-transactional DataSource configuration schema. The schema for the experimental non-XA DataSource with failover. The schema for the experimental XA Datasource with failover. The actual username may be overridden by the application code getConnection parameters or the connection creation context JAAS Subject.
Limit concurrent users on the server (http)
The actual password may be overridden by the application code getConnection parameters or the connection creation context JAAS Subject. The content of the security-domain is the name of the JAAS security manager that will handle authentication. This name correlates to the JAAS login-config. These pool instances are not created until an initial request for a connection is made. This default to 0. No more than the max-pool-size number of connections will be created in a pool. This defaults to Note that this blocks only while waiting for a permit for a connection, and will never throw an exception if creating a new connection takes an inordinately long time.Company Giving Back Brand Guide.
Store Login. Forums New posts Trending Search forums. What's new New posts New resources Latest activity. Resources Latest reviews Search resources. Feature Requests. Log in. Search Everywhere Threads This forum This thread. Search titles only.
Search Advanced search…. Everywhere Threads This forum This thread. Search Advanced…. New posts. Search forums. Limit concurrent users on the server http.
If there is a setting to limit concurrent user numbers, where do I find this setting? The user I refer to is the user who accesses the sites via http. GOT Get Proactive! These are the settings that limit the number of concurrent connections. Apr 11, 47, 2, The interface is documented on the link below: Global Configuration - Version 80 Documentation - cPanel Documentation Let us know if this helps.
Wildfly 8.x: Control Maximum Number of Connections (Threads) Assigned to an Application
The dark mode beta is finally here. Change your preferences any time. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. We are currently developing a servlet that will stream large image files to a client.
I know that it takes roughly milliseconds to serve a single request. Specifically they say that you should limit each server to requests per cpu, but I don't know if I should use that in the formula or not. Each server we are using will have 8 cores so I think the forumula should either go like this:. It makes a big difference which one they meant.
Without a example in their documentation it is hard to tell. Could anyone clarify? First thing to ease the load from the Tomcat is to use the Web server for serving static content like images, etc.
Even if not, you've got larger issues than a factor of 8: the purpose of his formula is to determine how many concurrent connections you can handle without the AART average application response time exceeding 0. Your application takes 5 seconds to serve a single request. The formula as you're applying it is telling you 9 women can produce a baby in one month.
If you agree that 0. You need to test. That's your actual value for the second half of his equation. But at that point you can keep testing and see the actual value for "Concurrent Users" by determining when the AART exceeds your maximum. Learn more. Maximum number of concurrent connections jBoss Ask Question. Asked 9 years, 8 months ago. Active 7 years, 10 months ago. Viewed 10k times. Thanks in advance. Active Oldest Votes. I guess these images aren't static, or you'd have stopped at this line?
Sign up or log in Sign up using Google. Sign up using Facebook.
Sign up using Email and Password. Post as a guest Name. Email Required, but never shown. The Overflow Blog. The Overflow How many jobs can be done at home?