Caucho maker of Resin Server | Application Server (Java EE Certified) and Web Server


Resin Documentation

home company blog docs 
app server 
 Resin Server | Application Server (Java EE Certified) and Web Server

resin 4.0.27 release notes


Thanks to everyone who reported bugs in 4.0.26. We encourage people to report 4.0.27 bugs at

Resin 4.0.27 is primarily a reliability and performance release.

100,000 requests per second: performance improvements

Resin's performance and threading scalability have been improved considerably in Resin 4.0.27.

We've replaced locking has with non-locking atomic operations, cleared contention bottlenecks, improved the async/epoll performance, and reduced thread overhead.

port-max thread throttling

The maximum number of active threads for a port can be restricted with port-max thread throttling (port_thread_max in the

The number of requests can be much larger, because async keepalives and comet/async threads and inactive websocket connections, are not counted as active threads. The throttling can improve performance by reducing thread contention. port_thread_max
# throttle the number of active threads for a port
port_thread_max   : 256

http_ping_urls for watchdog reliability checks

The now has a http_ping_urls for improved reliability. You can add a list of URLs to be checked periodically to ensure the site is responding properly at all times. If the HTTP response fails, the watchdog will restart Resin automatically, after retrying.
http_ping_urls :

Ping Time meters and anomaly detection

The HTTP Ping Time is metered and checked as part of the health system. The PDF report and the /resin-admin meters will show the ping time. An anomaly analyzer is attached to the Ping Time, to detect if the response time cchanges.

WebSocket messaging model improvements

Since WebSockets is a messaging protocol, it's best to program using a messaging model, sending messages to queues to be sent to the client. Following this model, we've changed the WebSockets API to allow for custom marshalling and queue handling to the stream.

WebSocket: creating an output queue
public void service(WebSocketContext ws)
  WebSocketEncoder<MyMsg> myEncoder = new MyWebSocketEncoder();

  BlockingQueue<MyMsg> queue = ws.createOutputQueue(myEncoder);

  queue.offer(new MyMsg("my-data"));

Copyright © 1998-2015 Caucho Technology, Inc. All rights reserved. Resin ® is a registered trademark. Quercustm, and Hessiantm are trademarks of Caucho Technology.