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


 

Resin Documentation

Aug 2012: Resin outscales C-based web server nginx in AutoBench benchmark
Feb 2012: NetCraft survey says Resin experiencing strong growth in last year and used in number of the Million Busiest Sites.
home company blog wiki docs 
app server web server 
health cloud java ee pro 
 Resin Server | Application Server (Java EE Certified) and Web Server
 

resin 4.0.17 release notes


Summary

4.0.17 includes Web Profile TCK, JMS, cloud, health, eclipse plugin, and command-line work

  • Web Profile TCK - now passing all Web Profile TCK sections
  • JMS - now passing JMS TCK
  • cloud - dynamic -join-cluster added
  • health - configurable JMX meters for graphing, and many added health predicates.
  • command-line - added support for log-level, profile, heap-dump and thread-dump.

Web Profile TCK

  • EL - pass
  • EJB - pass
  • JDBC - pass
  • JMS - pass
  • JPA - pass
  • JSF - pass
  • JSP - pass
  • JSR-299 (CDI) - pass
  • JSR-330 (javax.inject) - pass
  • JSTL - pass
  • JTA - pass
  • Servlet - pass

Dynamic Server Cloud Support

Resin 4.0.17 finishes up our dynamic cloud support, putting the final piece together. You can now add and remove a new dynamic server to the cluster, and Resin's cloud will update to support the new server automatically.

  • Resin load balancing automatically uses the new server.
  • The new server gets the latest application .war.
  • JMS Queue sender/receivers work with the new server.
  • JMX clustered management works with the new server.
  • Clustered caching data is shared with the new server.
Example: starting new server
unix> java -jar lib/resin.jar -join-cluster app-tier -server dyn1 start

Health Check Updates

Enhancements to the health check system continue with the following new command available.

  • <health:IfFlapping> - predicate that qualifies an action to match on frequent state changes.
  • <health:IfCron> - predicate that qualifies an action to match if the current time is in an active range configured using cron-style syntax.
  • <health:IfExpr> - predicate that qualifies an action to match on the evaluation of a JSP EL expression.
  • <health:ExprHealthCheck> - check that evaluates one or more JSP EL expressions to a health status.
  • <health:ExecCommand> - action that executes a shell command.

<health:IfExpr> and <health:ExprHealthCheck> work well in combination with enhancements made to EL syntax that enables JMX access and regular expression evaluation.

Example: JMX access and regular expressions in EL
<cluster xmlns="http://caucho.com/ns/resin"
         xmlns:health="urn:java:com.caucho.health">

  <health:SendMail>
   <to>admin@yourdomain.com</to>
    <health:Not>
      <health:IfExpr test="${mbean('java.lang:type=Runtime').BootClassPath =~ '.*resource-16.jar.*'}"/>
    </health:Not>
  </health:SendMail>
 
</cluster>

In this example, the mbean('java.lang:type=Runtime') function looks up an MBean in JMX, and '.BootClassPath' retrieves the attribute value. The =~ operator matches the value to a regular expression. <health:Not> qualifies the predicate to match on a failure. This is a useful check to alert if a required jar is not present in the boot classpath.

JMX Meter Updates

A number of previously hard-coded JMX meters are now setup in health.xml. Meters provide graphing in /resin-admin. Any numeric MBean attribute can be graphed using the new <health:JmxMeter> or <health:JmxDeltaMeter> elements.

Example: JMX meters in health.xml
<cluster xmlns="http://caucho.com/ns/resin"
         xmlns:health="urn:java:com.caucho.health">

  <health:JmxMeter>
    <name>JVM|Thread|JVM Thread Count</name>
    <objectName>java.lang:type=Threading</objectName>
    <attribute>ThreadCount</attribute>
  </health:JmxMeter>

  <health:JmxDeltaMeter>
    <name>JVM|Compilation|Compilation Time</name>
    <objectName>java.lang:type=Compilation</objectName>
    <attribute>TotalCompilationTime</attribute>
  </health:JmxDeltaMeter>

</cluster>

JmxMeter graphs the current value, while JmxDelta meter graphs the different between the current and previous values. /resin-admin uses the pipe | character in the <name> attribute to enhance the UI by categorizing meters into drill-downs.

(CLI) Resin command line updates

Resin 4.0.17 introduces commands to produce thread and heap dumps, change log levels and profile applications. Documentation for an updated CLI interface can be viewed with java -jar lib/resin.jar help. Documentation for a particular command can be viewed with java -jar lib/resin.jar help <command>

Commands added in release 4.0.17 are thread-dump, heap-dump, log-level, profile

Eclipse plugin updates

Eclipse plugin has undergone significant updates, with configuration, deployment and debugging reworked. Added option for remote deployment. Bugs #4417, #4418 are resolved.

Removing the older version of plugin is necessary for a smooth update. Procedure for complete removal of the plugin is outlined at http://bugs.caucho.com/view.php?id=4417

NetBeans plugin updates

Updates to NetBeans plugin resolve bug #3936 and changes deployment option to exploded web-app directory deploy.


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