Hi, I am using apache's xmlrpc2.0.1 in my application. As a xmlrpc server I am using org.apache.xmlrpc.WebServer class. I am starting this webserver on port 8080 while starting my application. The use of this xmlrpc server is to enable other out of process aplications to be able to talk to my application.
Now the problem is, even if no other aaplication tries to connect to my application, the webserver will keep on listening or waiting for requests. To detect the cause for this, I decided to profile my application on the basis of CPU usage. I have used JRE 1.5 HProf profiling interface. HProf requires a debug build to get line numbers and the JIT compiler disabled. It is described at: http://java.sun.com/developer/TechTips/2000/tt0124.html#tip2 I analyzed the raw data(produced by using HProf) using the tool "PerfAnal" http://java.sun.com/developer/technicalArticles/Programming/perfanal/ Below is a distillation of one test. For this run, profiling was set to sample the CPU, so the times are not clock-times but rather proxies for CPU cycles. Here is a fragment of call tree graphs. The xml-rpc server is waiting for requests: 1: org.apache.xmlrpc.WebServer.run: 26.61% (23014 inclusive / 0 exclusive) 2: java.net.ServerSocket.accept: 26.61% (23014 inclusive / 0 exclusive) 3: java.net.ServerSocket.implAccept: 26.61% (23014 inclusive / 0 exclusive) 4: java.net.PlainSocketImpl.accept: 26.61% (23014 inclusive / 0 exclusive) 5: java.net.PlainSocketImpl.socketAccept: 26.61% (23014 inclusive / 23014 exclusive) Does enyone know how to tune webserver so that if there are no connections are being made to it then the server will not keep on waiting? Does anyone know any performace tunining tip for this webserver? Also tell me how to subscribe to this mailing list? -- Regards, - Atul