Caucho Technology
  • resin 4.0
  • 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-2011 Caucho Technology, Inc. All rights reserved.
    Resin ® is a registered trademark, and Quercustm, Ambertm, and Hessiantm are trademarks of Caucho Technology.