Caucho Technology

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 withjava -jar lib/resin.jar help. Documentation for a particular command can be viewed withjava -jar lib/resin.jar help <command>

Commands added in release 4.0.17 arethread-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-2011 Caucho Technology, Inc. All rights reserved.
Resin ® is a registered trademark, and Quercustm, Ambertm, and Hessiantm are trademarks of Caucho Technology.