2 Replies Latest reply on Jul 25, 2012 10:50 AM by mikemil

    Does Remoting allow load testing that 'simulates' a number of clients

    mikemil

      Sorry if this is not the correct forum - please direct me to the correct forum, if that is the case.

       

      Our application is a POS application that runs JNLP started remote clients using EJB 2.1.    A potential customer wants us to run some volume tests that simulate approximately 50 cash registers attached to our store server and actively ringing transactions.   I believe the tools our performance engineering team is planning on using is one of the Mercury (now HP) tools, using the RMI protocol feature.

       

      My question is,  if the test is driven from one box, does remoting see that as one client or 50 clients, if the ip address on the other end of the request is always the same?

       

      I have never worked with any of these tools, but I would hope they can 'simulate' the client requests such that the application believes 50 clients are attached vs just 1 client and all traffic going across one set of sockets?   Hope this makes sense.

        • 1. Re: Does Remoting allow load testing that 'simulates' a number of clients
          ron_sigal

          Hi Mike,

           

          When you say "RMI protocol feature", I'm assuming you're talking about the tool, rather than Remoting.  Remoting has an RMI transport, but, by default, EJB2 in JBoss AS uses the Remoting socket transport, so that's what I'll address.

           

          A Remoting server using the socket transport doesn't see clients, per se.  It has a pool of worker threads, each of which manages a connection to a client.  Now, on the client side, multiple clients running in the same JVM and connected to the same server will share a connection pool, where each connection in the pool is affiliated with a distinct worker thread.   If you have 50 clients running in a single JVM and they never do more than one simultaneous invocation, there will be only one connection in use and only one worker thread for all of these clients.  But if a client makes an invocation and the single connection is in use, a new connection and a new worker thread will be created.  If the clients are very busy and make 50 simultaneous invocations, you will have 50 connections and 50 worker threads.

           

          Now, if your 50 clients are all running in different JVMs, there won't be any sharing of connections, so they will each have their own connection and worker thread.

           

          Hope that helps.

           

          -Ron

          • 2. Re: Does Remoting allow load testing that 'simulates' a number of clients
            mikemil

            Ron, thanks for the quick response.  At least now I have a better idea of what will happen on the server and should be able to talk a little bit more intelligently with our Performance Engineering group.