Hi All,

I'm interested in using SimpleHTTPServer in production because it simplifies installation and packaging and it is (or should be) lean and fast.  The application is a dedicated SOAP service that does not need other web or application server facilities.  To use SimpleHTTPServier, I need to make some extensions and revisions.  I'd appreciate any feedback on these ideas and an indication of whether others would find the changes and features useful:

  1. SimpleHTTPServer declares that it is not intended for production use.  Is there any fundamental reason for not using it in production?

  2. SimpleHTTPServer uses HTTPWorker as its request handler.  When processing SOAP messages, HTTPWorker reads the entire message, writes it into a ByteArrayOutputStream, and converts this to a byte[] that is then wrapped in a ByteArrayInputStream.  The ByteArrayInputStream is used as the actual stream that gets wrapped by a stax reader.  This copying has several problems.  It is uncontrollable so a flurry of large messages will exhaust the jvm's Xmx.  It is inefficient.  It seems to eliminate the opportunity to process the message by streaming.  My app has some messages with very large payloads that are processed by streaming message receivers.  I'd like to eliminate the copying in HTTPWorker but suspect it is there for a reason.  Does anybody know why it would be important to read the entire message before processing it?  If the only concern is http timeouts, there are other ways to manage this.

  3. I'd like to add facilities for assigning operations to a set of alternative thread pools than can be separately prioritized and resource-managed.  E.g., small status-related requests would get immediate high-priority processing, while larger requests that will demand a lot of memory and cycles will wait for availability of a thread in a smaller pool.

Any feedback appreciated.

Thanks,

Chuck

Reply via email to