Hey David,

I am not really working on anything specific, I was just curious as to how many calls per second a client could make to a stateless session bean. I could never get more than ~4000 ejb calls. I was sure it wasn't a configuration issue since the first 4000 calls worked. I discovered that there was a tonne of sockets in a "TIME_WAIT" state on the server side, which didn't seem right. Eventually, I found that the client was doing the open-write-read-close. I wrote a client/server program that did exactly the same and sure enough after about ~4000 calls my sample demonstrated the same behaviour. After some more research, I learned that windows reserves the range 1024 > n < 5000 for the "dynamic" ports (not sure what the correct term is). This is co-incided with the connection limits I was seeing.

Anyway, I just thought that could be better so I made some changes. :-) I'd like to slowly complete the code and allow user configuration and then I'd had it over to the OpenEJB team for review.

Thanks
Mark

David Blevins wrote:
On Oct 26, 2006, at 8:31 PM, Mark DeLaFranier wrote:

Jacek,

I was going to do a top level diff, but it had lots of other diffs due to having other modified files. To reduce the complexity of the diff, I only diff'd the ServerMetaData.java file.

I am certainly not a svn experty  :-), but a current diff shows me:

> svn diff | wc
  1189    5247   49331

Thats quite a lot to filter out and make your job easier of assessing my patch.

What are your thoughts?

That's totally fine, Mark. It only takes a second to figure out where they go. Thanks for all the time you put into tracking this performance issue down!

You've got me curious about what you're working on that has you running OptimizeIt on the client :) No sweat of you're not at liberty to share too many details -- we're always happy to be on the receiving end of any kind of work people do with OpenEJB.

Thanks,
David


Thanks
Mark

Jacek Laskowski (JIRA) wrote:
     [ http://issues.apache.org/jira/browse/OPENEJB-295?page=all ]

Jacek Laskowski resolved OPENEJB-295.
-------------------------------------

    Fix Version/s: 2.2
       Resolution: Fixed
         Assignee: Jacek Laskowski

Sending        ServerMetaData.java
Transmitting file data .
Committed revision 468031.

Thanks Mark!

A (friendly) note: please run svn diff at the top-level directory of OpenEJB sources.


o.a.o.client.ServerMetaData optimization wrt InetAddress.getLocalHost
---------------------------------------------------------------------

                Key: OPENEJB-295
                URL: http://issues.apache.org/jira/browse/OPENEJB-295
            Project: OpenEJB
         Issue Type: Improvement
         Components: general
   Affects Versions: 2.2
        Environment: Windows XP
           Reporter: Mark DeLaFranier
        Assigned To: Jacek Laskowski
           Priority: Minor
            Fix For: 2.2

        Attachments: OpenEJB-295.patch


While running OptimizeIt on a small test client, I stumbled across the call to "InetAddress.getLocalHost();" which was taking 33% in a client test. In this test the client was creating several copies of an InitialContext object rather than sharing one.










Reply via email to