Scalability in Tomcat 4.0????

How many concurrent users does Tomcat 4.0 standalone support. Is it necessary to use Tomcat with Apache or IIS or any other web server. If yes, Why?????

Don't Forget that you Win 2000/NT has a basic limit of 10 concurrent connections unless you purchase more from microsoft. (I don't know if 98 has a cap but i expect it does)
So unless you have a Server or greater package w/ more per-seat license or a per-server license you are limited to 60 connection / hour (10 minutes per connection)
There have been a couple articles in SysAdmin Magazine about Apache/Tomcat/MySql performance in small cluster (3 to 4 nodes) and the performance stats were pretty good.
but good or bad scalability has many components, the server software, the OS, the application.
Apache/Tomcat is much more friendly to scale then is Win98/2000 by a long shot. If the application that you are serving is well designed, then Apache/Tomcat capacity should well exceed your OS's capacity

Similar Messages

  • What are the advantages of Tomcat 6.x in comparison to Tomcat 5.5?

    Hi,
    What are the advantages of Tomcat 6.x in comparison to Tomcat 5.5, in terms of performance, scalability, development and deployment.
    Is there any particular reason for the changed directory structure in Tomcat 6.x, other than making it simplified.
    In case this is not the right place for this question, please direct me to the right forum.
    Thanks

    http://forums.sun.com/thread.jspa?threadID=5422359&messageID=10897994#10897994
    http://forums.sun.com/thread.jspa?threadID=5422354&messageID=10897951#10897951
    http://forums.sun.com/thread.jspa?threadID=5422095&messageID=10896690#10896690

  • Apache HTTPd + 2 Tomcats with BlazeDS

    The web architecture that we have is quite simple, it is a single Apache HTTPd server that is communicating with 2 Tomcat servers using mod_jk. The configuration is made so one Tomcat is in a waiting state in case the other Tomcat server crashes (or bounce).
    How can I configure BlazeDS to support this configuration? Is sharing the HTTPSession between the two Tomcats enough for BlazeDS?
    I would like the simplest solution possible, I know about BlazeDS clustering possibilities with JGroups but it seems not adapted to multi-environments (DEV/QA/PROD) sites because we have to configure stuff inside the web app.
    In short, do BlazeDS only need HTTPSession sharing between Tomcats or is there some other requirements?

    As far as my understanding goes there should be no reason to use JGroups unless you are using messaging.
    If you are storing session data on the server you will need to using Tomcat clustering other wise you shouldn't even need that.
    We are using a similar setup with HTTPd and multiple JBoss servers for high availability/scalability. We are not using messaging so we didn't configure JGroups. We don't have JBoss clustering enabled because we don't have any data to replicate between the JBoss nodes.
    I have run several load tests using JMeter and everything runs happily when JBoss nodes are added or removed under load.
    Something to note if you are using recent builds of BlazeDS and you want to run 2 or more Tomcat servers concurrently you will need to enable Sticky Sessions with mod_jk and Tomcat other wise recent builds of BlazeDS may start throwing exceptions. This change was introduced to prevent subsequent client requests from needlessly creating new sessions. As it turns out this is a bit of an issue when doing loadbalancing unless Sticky Sessions are used.
    Hope some of that information helps,
    Lance

  • Clustered upload with java under tomcat

    I have a web project using servlets and jsp..Almost finished most...But there is a some scalability problem which makes me think about...
    People upload their pictures with their quota limitation...But when the server's storage area filled how am i going to forward my upload requests to the second server...
    I heard about tomcat clustering thats allright...Maybe some user's web request will be handled by random server but how are the upload requests handled by the empty storaged server...
    is it possible to manage or how?
    thank you
    thank you

    yes in fact i tried to say someone must monitor free
    space sometimes...Or there must be a way to learn how
    much free space left from one server to the
    others...so we may switch the upload requests
    Doesn't sound like a good idea to me.
    1. Find some way to monitor the space which will require an OS specific method.
    2. Keep a list of boxes with free space
    3. Switch to the next one when one is within 10% of full.
    4. Send a email if you reach the last entry in the switch list (so no more entries after the current one.)
    Although the above could be made to work if it was me I would work on changing the requirements of the system myself.

  • ADF business components and scalability ?

    Hello,
    I am new to the ADF Framework, I come from an open source background.
    I have a limitation to use Oracle technologies for an internet banking design.
    My concern is the large number of users accessing the system and how we scale up through clustering.
    Do you recommend ADF business components for this application, can ADF be simple POJOs handlers or EJB 3.0 session facades ? if that is the case, would you recommend EJB 3.0 for clustering and scalability for an internet banking system.
    Any guidance is appreciated.
    Thanks.

    Thanks for the reply, I will read the document, however,
    If I try to compare ADF to other frameworks, creating BCms as POJOs would take advantage of the Apache clustering(web tier, same as Tomcat clustering in Jboss), there is no need for OC4J services of the 10gAS, on the other hand, if I go with EJB3 stateless session beans BCms then i would need 10g OC4J container and its clustering capability(AS clustering).
    Your time is appreciated and please respond only if you time, i will go through the doc.

  • Tomcat session management (serverid) in loadrunner - thick client application (single signon)

    Hi,
    We have a system that is currently undergoing scalability and performance tuning and we are having a problem with sessions randomly expiring.
    Here is our setup:
    Tomcat
    LoadRunner launching 20, 50, 100, 150, 200 users against the server
    (within a few mins of eachother)
    Thick client application (signle signon)
    As per the business requirement created the scripts with single sign on, however in vugen
    the scripts works fine. During the load test noticed that after few mins approx 7 mins started
    getting the error.
    Recording captured: Xml request and response
    Correlation: serverid (ex. 2142) login transaction
    Script details:
                                 Login (serverid)
                                 Action repeat iteration till the execution (replacing the serverid throught the script)
                                 Logout (replacing the serverid throught the script)
    But manually looks all fine the user can use the same one login throught the day without any expiration.
    Note: while the user gets login a jsessionid 12BDE39384940483HDFFKDH.1 created but the loadrunner unable to record anywhere in the script.
    Quick response will be appreciated.
    If you need any additional information please let me know.
    Regards,
    Suresh.

    I'm having the same problem, did you get any luck with this ?
    Thanks

  • A scalability question

    Hi guys, I'm a bit concerned with the scalability of a proposed design for our servlet-based multi-service handler system.
    Here's a brief description:
    1. A single controller servlet get's an Xml message.
    2. The message contains info, incuding the sub-application it belongs to. The controller uses a Dispatcher object to locate a handler object for that sub-application, and passes along the message to it.
    3. The app-handler gets info from the message describing a specific action that need be executed, and the required parameters. It maintains a pool of action handlers, so it locates the proper one and passes along the data.
    4. The action handler executes and returns a response message.
    5. The response is propagated back to the original servlet and is sent back to the caller.
    Although that "architecture" enables us to dynamically add sub-applicatins & actions to the system, I'm afraid that it might not scale well. Everything is executed within the original servlet's thread, and the application handler is usually a single instance saved in the Application attributes.
    Possible solutions:
    1. A first proposed amend is to use JNDI to get a reference to the sub-application handlers through a Factory object that maintains a pool of application handler instances. I'm assuming that the Factory will be run in a separate VM on the same machine, or even another one. (Perhaps it could even be a SessionBean on an App. Server ? ). Still however, the response need be passed back to the original servlet instance that serviced the call.
    I'd like to be able to pass the output stream to the handler and just forget about it from the servlet, just like I'd do if i were using a plain socket server, but I doubt I could give it an OutputStream parameter through the two separate VM's ( or could I ? )
    2. Perhaps maintain a pool of sub-application handlers within the servlet, in a member variable that get's initialised in the servlet's init() method, and get the reference through JNDI, but wouldn't that place a heavy bourdon on my little Tomcat servler ? And again, the original servlet that serviced the call would have to give the response back to the caller ...
    Before we start trying out the possible alternatives, I thought I'd ask around for some opinions. It's no use spending the time to proof-test a solution that costs valuable time before asking a second opinion.
    Anyhow, thanks for the help people, any ideas would be much appreciated.
    Cheers,
    Angel
    O:]

    I'm not sure what you are trying to do... Seems to me points 1-5 would be covered by:
    class SuperDuperDispatcherServlet
        extends HttpServlet
        doGet()
            String app_name = ...get string from XML message...;
            SubApplication app = SubApplicationManager.get(app_name);
            app.doit(request, response);
    class SubApplicationManager
        private static HashMap by_name = new HashMap();
        void register(String name, SubApplication app)
            by_name.put(name, app);
        SubApplication get(String name)
            return (SubApplication) by_name.get(name);
    interface SubApplication
        void doit(HttpServletRequest request, HttpServletResponse response);
    }I.e.: stick applications in a HashMap, indexed by the application's name. The "generic sub-application dispatcher engine (TM) (pat.pend.)" has a fancy name but it doesn't mean you need to over-engineer it...
    There is no "pool" of SubApplication objects. The best way to deal with that is not to have instance variables in SubApplication objects (just like servlets.) That way you need only one object to represent each sub-application.
    Is there something I missed or you didn't mention that prevents such a simple approach...?
    Although that "architecture" enables us to dynamically add
    sub-applicatins & actions to the system, I'm afraid that it might not
    scale well. Everything is executed within the original servlet's
    thread, and the application handler is usually a single instance saved
    in the Application attributes.Every instruction is executed in some thread. Might as well use the thread you have. A function call is a couple of machine instructions; you can only go downhill from there. Handing work to another thread or process, and then waiting for it to finish, is just silly.
    How many requests per second do you expect? Is there heavy computation involved? I.e. do you need to transfer parts of sub-application executions to other computers? There is non-trivial overhead in that; only do it if you can't avoid it. Consider clustering instead.

  • Tomcat 4.1.18 Capacity?

    Can anyone give me an idea when I will begin to experience system slow down and/or crashes running Tomcat 4.1.18 . Tomcat is running stand-alone on a Sun Solaris box which has four processors and, I beileve, two gigs of memory. The database is Oracle. On a 'heavy' day, the system handles 10, 000 requests but I'm wondering how many transacations can be processed per hour before issues arrise. I belive it's tied to memory but any comments are greatly appreciated.
    Thanks!

    1:
    thats a very powerful system you have, any problems should only occur
    if you have incorrect program techniques.
    2:
    10,000 requests per day is only a request every 8 seconds
    what is the trafic at peak times?
    how many requests per second?
    3:
    you can set the number of processes that tomcat uses.
    this is the number of threads it creates to handle the workload.
    this will determine the number of requests it can handle per hour.
    4:
    i would recommend upgrading to tomcat 5.5 as this is the latest version
    with bug fixes and security.
    it also uses java 1.5 which is meant to be the most scalable version of java.
    5:
    the only way to answer your question is for you to perform a stress test on
    your system setup.
    6:
    as long as (your code has no memory leaks or deadlocks) and (you set the
    number of processors to a sufficient number) the only factor influncing the
    performance of your app is the server memory capacity.
    7:
    some useful links
    http://www.google.ie/search?q=tomcat+performance+tuning

  • Help.. Desperation kicks iN! Tomcat 4.1.24 dies under load

    If tomcat 4.1.24 is hit with heavy load, it quickly reaches its max configured processors (regardless of what I set it to), and then hangs. Its not dead, but doesn't serve out pages.
    I've tried everything from setting more memory for the JVM using -Xmx to altering the acceptcount, min/max processors, but nothing stops the inevitable...
    Any assistance would be appreciated.
    Under normal load conditions, the tomcat is fine for days.

    Even we had a few problems using TomCat:
    No Connection Pooling- Special coding is necessary to instigate this functionality
    - No Caching Capabilities
    - Tomcat does not include functionality outside the J2EE specification designed to increase performance and enhance scalability for production application
    We have moved out with Oracle.....and we have stopped worrying about support

  • Migrate from Tomcat to OC4J

    Hi! Everyone,
    I developed a Servlet/JSP application on tomcat, now I am going to deploy it to OC4J. In OC4J, directly under default-web-apps, I created a directory called misc, and put my servlets (in default-web-apps/misc/WEB-INF/classes), jsp (in default-web-apps/misc/jsp), beans (in default-web-apps/misc/WEB-INF/classes/beans) there (no EJB). The OC4J server can run jsp correctly, but it can not locate servlets. It can only locate servlets under default-web-apps/WEB-INF/classes directory.
    It means it is not scalable if I put my servlets directly in default-web-apps/WEB-INF/classes, because if I deploy another project, which has a servlet, I also need to put it in the same directory.
    All in all, OC4J can locate the servlet by "http://127.0.0.1:port/servlet/myservlet", but if I put the servlet in misc/WEB-INF/classes directory, it can not locate the servlet by "http://127.0.0.1:port/misc/servlet/myservlet".
    In tomcat, it is good because every time I created a new project, I just create a new directory "misc" parallel to "examples", and I can access that project by "http://127.0.0.1:port/misc/servlet/myservlet". By doing this way, different projects are in different directory. But in OC4J, different projects' servlet has to be in the same directory (I know I can create a directory under WEB-INF/classes called misc, and then call my servlet by "http://127.0.0.1:port/servlet/misc.myservlet, but this is not what I want).
    Is there a way to let OC4J to deploy projects like tomcat? The documentation said OC4J is 100% compatible with tomcat, but I think it is not.
    Thanks a lot if you can provide help.
    Jingzhi

    Hi! Everyone,
    I developed a Servlet/JSP application on tomcat, now I am going to deploy it to OC4J. In OC4J, directly under default-web-apps, I created a directory called misc, and put my servlets (in default-web-apps/misc/WEB-INF/classes), jsp (in default-web-apps/misc/jsp), beans (in default-web-apps/misc/WEB-INF/classes/beans) there (no EJB). The OC4J server can run jsp correctly, but it can not locate servlets. It can only locate servlets under default-web-apps/WEB-INF/classes directory.
    It means it is not scalable if I put my servlets directly in default-web-apps/WEB-INF/classes, because if I deploy another project, which has a servlet, I also need to put it in the same directory.
    All in all, OC4J can locate the servlet by "http://127.0.0.1:port/servlet/myservlet", but if I put the servlet in misc/WEB-INF/classes directory, it can not locate the servlet by "http://127.0.0.1:port/misc/servlet/myservlet".
    In tomcat, it is good because every time I created a new project, I just create a new directory "misc" parallel to "examples", and I can access that project by "http://127.0.0.1:port/misc/servlet/myservlet". By doing this way, different projects are in different directory. But in OC4J, different projects' servlet has to be in the same directory (I know I can create a directory under WEB-INF/classes called misc, and then call my servlet by "http://127.0.0.1:port/servlet/misc.myservlet, but this is not what I want).
    Is there a way to let OC4J to deploy projects like tomcat? The documentation said OC4J is 100% compatible with tomcat, but I think it is not.
    Thanks a lot if you can provide help.
    Jingzhi

  • Scalability in deploy Cisco Apps

    Hello there! We are at the moment considering deploy a CallInfo based application to about 1200 Cisco IP Phones using apache-tomcat, the average call numbers at any given time is around 100. My question is if we run the CallInfo Sample as it is from the SDK, will there be any scalability issue? Any suggested reading on the topic? Thank you very much for your help!

    Cisco has a load generator software - if you have a development support contract, ask your cisco contact about it. Of course, you can also derive numbers emprically.. keep track of CPU and memory use on the server you're running this app on, and if you correlate that with the number of active calls, you can extrapolate how much resources you need per active device.. and if you correlate this with the usual busy hour numbers a customer has, you can tell them what kind of server they need.

  • Scalable Chat Server

    Hello
    I am developing a solution that uses a Socket based Java
    application and a VC++ based Socket Client.
    We started off with the server spining off one thread per client
    but shortly but surely my server was running out of memory and
    other resources.
    Hence we took the approach of One Thread per multiple
    connections. So this approach also is dying due to limitation of
    JDK1.4 that it does not allow more than 62 connections per
    Selector channel.
    Now my next thinking was that we shift the OS base -- read that
    the same JDK version does not have this limitation on Linux BUT
    we can also server the Socket Server (which is naturally
    connection oriented) via a Middle-ware or an application server
    such as Tomcat, Apache or even Oracle 9iApplication server as it
    it J2EE compliant.
    So please somebody suggest me on how can we support thousands of
    users that too of different variety like few accessing via an
    applet, few accessing via an application (VC++).
    So the answer to my question will decide does really J2EE made
    for the enterprise which requires scalability and stability.
    Hoping for an early answer

    Anup,
    VC++? Why not Java? And why not an applet client in a web page?
    I can't tell you have many applet clients are used for chat
    rooms on the web....there's just too many to count.
    OC4J has soap built in. You can use your applet client or vc++
    client directly connect to oc4j with soap.
    With a jms server built directly into oc4j, you can integrate
    your soap messages with a jms server.
    All of this loadbalanced, and clustered.
    Regards,
    the elephantwalker
    www.elephantwalker.com

  • Orcale with Tomcat

    Hi All,
    I am new to Oracle. My application server is Tomcat. But I came to know Oracle is working with its server. Can we integrate Oracle with Tomcat server...? Please come up with a solution. Its very urgent.Any reply will be appreciated..

    Oracle has an integrated PL/SQL appliction server inside the core database. Simplistically, you can call a PL/SQL stored procedure (with parameters) from your web browser. You can upload files directly by calling a PL/SQL stored procedure.
    Even better, with Oracle 10G you do not need a web server like Apache. The httpd daemon resides inside the database.
    This means less software layers. Less hardware needed (like a separate application server platform). Less moving parts that results in less complexity, fewer bugs and exponentially faster development times. (and no, the application server does not scale the data tier - so scalability is also not an issue)
    Or you can use a web-based IDE and run-time system from Oracle using this technology, called Oracle Application Express. It is free. It supports Oracle 9.2 and 10G. It can run on anything from Oracle XE (Express Edition) to Oracle Enterprise RAC (Real Application Clusters).
    I can pretty much guarantee that not knowing Oracle, you can and likely will make a mess of using Oracle from an application tier like Tomcat. There are numerous issues, especially around bind variables and locking and maximizing SQL (and PL/SQL) and minimizing app tier data processing code. I have lost count of how many poorly design and even poorer performing "high-end" commercial web-based applications I have run into for Oracle. Some of these costing serious money (and utterly lacking in peformance and scalability, requiring me to implement hacks on the back-end to work around their flaws)
    Fact: to effectively use Oracle (in any architecture), you need somewhere someone that has solid Oracle experience to ensure that the fundamental Oracle principles are adhered to.
    Using something like Oracle Application Express does a lot of these for you automatically. It handles state, optimistic locking, bind variables, etc. Allowing the developer to simply focus on the web application page design and the processing flow of the application. Very little PL/SQL or Oracle expertise required compared to using another app tier like Tomcat.
    I would suggest that you give serious consideration to using Oracle's Application Express or moving your app tier into PL./SQL (and out of JSP, Java, PHP, Perl, etc).

  • Tomcat and network file access permissions

    Hi there,
    We have a servlet running in Tomcat 4.1 environment in one windows 2003 server (DOMAINONE) , and we write the logs in another machine (different domain DOMAINTWO). We have a USER1 who has access to both domains and has access to map the drive to DOMAINTWO. We have mapped G drive to \\DOMAINTWO\SHAREDDRIVE. The servlet needs to write information to g:\logs and what we are having problem with is that Tomcat is throwing an exception when writing to G: Is there any settings we need to do at the Tomcat configuration file (security settings).
    Tomcat is started by USER1 as well.
    ANy help would be greatly appreciated.
    Thanks
    John

    Are you using a Logging package or just trying to create a File object and writing text to it?
    If the later, you may want to look at URLConnection.getOutputStream() and wrapping that with a BufferedOutputStream and writing to that.
    Even though you're mapped and all that, it may look like a "local drive" to you, but it's not. There's a whole bunch of negotiation and networking that needs to go on that a File class is just not designed to do, but a URL is.
    There are other options as well which would make something like this WAY more scalable. Do you ever have to move this thing?

  • Problem with JNI and Tomcat (and threads???)

    Howdy,
    Here is the issue - I would like some help on HOW to debug and fix this problem:
    2 test use cases -
    1)
    a)User goes to Login.jsp, enters user and password
    b) User submits to LoginServlet
    c) login calls JNI code that connects to a powerbuilder(Yes I know this is ugly) PBNI code module (this is a .dll) that authenticates the user with the database
    d) the servlet then redirects to another .jsp page
    e) user then submits to LogoutServlet - also a JNI call to a powerbuilder PBNI code module
    f) REPEAT STEPS a-e over a few times (inconsistent) and then the call to the JNI code hangs
    2)
    a) users does NOT goto Login.jsp, but rather calls LoginServlet and passes the userid and password as GET parms
    b) user does NOT get redirected to a page (redirect code commented out)
    c) user calls LogoutServlet
    d) repeat steps a-c at will and no failure, no hanging
    The only difference is that in case 1 (with JSP), there is a redirect and it afffected the JNI call by haniging inside JNI code.
    In case 2 (without JSP) there is still a JNI call, but it does not hang. In addition, when it hangs and I stop Tomcat, the logs show cleanup entries that say:
    Oct 19, 2004 9:17:09 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Oct 19, 2004 9:17:10 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Oct 19, 2004 9:17:11 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Is this a threading issue in Tomcat???
    On would assume that the JNI code is not cleaning up after itself, but I don't believe this is the case,
    and even if it was, why would I get the tomcat log cleanup entries above???
    What do those cleanup entries imply about the state of Tomcat????

    hi ,
    I met the same problem this morning, and searched the www.google.com in order to solve it, as a result, your article was shown on my screen. :)
    Till now I have read some technical information and solved my problems. Maybe the solution be useful to you:
    ==============================
    error message : (Environment : Tomcat 5, Windows 2003, Mysql5)
    2006-3-29 11:53:48 org.apache.catalina.core.StandardWrapper unload
    message: Waiting for 2 instance(s) to be deallocated
    ==============================
    cause: the number of connection to database exceeded.another word,too many connections.
    ==============================
    solution: close the connection when it becomes useless for your program. :)
    ==============================
    ps. Sorry for my weak English . hehe ....

Maybe you are looking for

  • Error While Control File Creation

    Hi Experts, i'm trying to create control file but i'm getting following error. SQL> CREATE CONTROLFILE   2     SET DATABASE venk   3     LOGFILE GROUP 1 ('C:\oracle\product\10.2.0\oradata\venk\redo01_01.log',   4                      'C:\oracle\produ

  • Blob on db9i & form 6i

    I was working on DB 8i with forms 6i & i upgrade the data base with export/import on data base 9i there is no problem with the data except a blob column is working good with the data imported but when i try to store a new image the db9i accepted and

  • How do I fix: The Plugin Check comes up EVERY time I start Firefox, AND I've installed Adobe Acrobat over 3 times but it still shows up as outdated

    I crammed the info into the subject line, but to repeat... Every time I start Firefox, the Plugin Check runs. Every ... single ... time. Very annoying. How do I get this to stop? AND I installed Adobe Acrobat at least 3 times, but it still shows up a

  • Emoji not appearring correctly on non-iOS devices

    When I send an e-mail or sms with an Emoji, it just displays as a square at the receivers end. Why doesn't Apple send Emoji as a picture insertion in an e-mail, for receivers on non-iOS devices? Or do Emoji in fact display correctly on some non-iOS d

  • Open video in iPhoto

    My 2008 videos imported and previousely played in iPhoto will not play.  A window drops down saying "A necessary data reference could not be found."  Any answers??