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


Summary

Thanks to everyone who reported bugs in 4.0.26. We encourage people to report 4.0.27 bugs at http://bugs.caucho.com.

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 resin.properties).

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.

resin.properties: port_thread_max
# throttle the number of active threads for a port
port_thread_max   : 256

http_ping_urls for watchdog reliability checks

The resin.properties 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.

resin.properties
http_ping_urls : http://my.example.org/test_page.jsp

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.