I would second that... asynchronous is definitely the way to go. And I don't think it's a just a matter of the number of sockets at the OS level, it's also a matter of the number of threads your web/app server can run. A heavy-duty app server like weblogic has 15 execute threads by default. Here you're talking about a 100 new requests coming in per second, and each taking 25 seconds to complete. So even if you had 10 weblogic servers in a load-balanced cluster, you would still run out of available threads after just a few seconds ...
Regards, Sunil D'Monte Tavant Technologies http://www.tavant.com > -----Original Message----- > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > Sent: Wednesday, August 02, 2006 17:18 > To: [email protected] > Subject: Re: Too many sockets being created. Bad architecture? > > My question is : > What is the standard way to architect web services which have > a very long blocking synchronous operations ? > > Don't. Design an asynchronous exchange instead. > > Anne > > On 8/2/06, kk kk <[EMAIL PROTECTED]> wrote: > > Hi, > > > > I am developing a WS which provides an operation that takes > around 25 > > seconds to complete. I can not speed this up nor I can not use a > > polling pattern or a callback to inform the client of the result of > > the request. > > > > I want to make the WS server capable to handle 100 new requests per > > second, so 100 x 25 = 2500 sockets connections will exist > at any point > > in time with my current design !! I am sure this is bad but am not > > sure what is the best way to go to get a scalable solution with a > > single server process. > > > > I am using Axis 1.2 and Tomcat on the server which is a Sun Solaris > > box. My test client is a Axis/Java application though I need to be > > able to support other clients too. > > > > As expected, I can see huge numbers of open sockets and FDs > using unix > > commands like netstat and lsof. > > > > I have been experimenting with TCP/IP kernel setting on the > server and > > using ideas from > > > http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic= > > /com.ibm.websphere.express.doc/info/exp/ae/tprf_tunesolaris.html > > I have used > > ndd -set /dev/tcp tcp_conn_req_max_q 8000 to increase number of > > sockets that the server can handle and this does seem to > allow a 1500+ > > parallel sockets to exist. > > > > My question is : > > What is the standard way to architect web services which > have a very > > long blocking synchronous operations ? > > Assuming I have a small number of clients each making many > WS calls is > > there a way to somehow multiplex many SOAP requests for > eackh client > > down one socket? > > Is there a way to get Axis/Tomcat server to use UDP/IP rather than > > TCP/IP? > > > > I am new to this and all ideas much appreciated. > > > > Cheers, > > KP > > > > > > > > > > > > > > ___________________________________________________________ > > All new Yahoo! Mail "The new Interface is stunning in its > simplicity > > and ease of use." - PC Magazine > > http://uk.docs.yahoo.com/nowyoucan.html > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
