Access Keys:
Skip to content (Access Key - 0)









Rhino 2.3.0 SDK Changelog

Print this page
Rhino Changelog
===============

Changes between 2.3.0.15 and 2.3.0.16
=====================================

Bugfixes

    * Fixed a memory leak which could occur in certain failure scenarios
      involving transaction time outs. (RHI-3557)

    * Fixed a potential deadlock in the resource adaptor Cluster State Change
      Facility when multiple cluster nodes are restarted at the same time.
      (RHI-3629)

    * A Rhino node that is shut down in a controlled manner will now also wait
      for all outstanding SNMP configuration changes to be persisted before
      terminating. (RHI-3630)

    * Fixed corruption of active service resource adaptor entity link bindings
      when copying and deleting per-node activation state. (RHI-3721)

    * Fixed an ordering issue that could cause a node to associate resource
      adaptor entity bindings with the wrong SBBs during service activation.
      (RHI-3775)

Changes between 2.3.0.13 and 2.3.0.15
=====================================

    * Treat profile-spec-ref as dependency when exporting profile tables. (RHI-3507)
    * Fixed a bug that caused connections to leak and an IllegalMonitorStateException to be logged
      when closing idle connections in Rhino JDBC connection pools. (RHI-3373)
    * Add watchdog.oom_gc_enabled option that runs an explicit GC when the over memory use limit
      condition is reached. Default is to try to detect if this behaviour is required
      (-XX:DisableExplicitGC absent and a G1 collector present = System.GC() at over limit,
      otherwise don't System.GC). (RHI-3374)
    * Fixed a race condition in the rate limiter in which work could be
      unnecessarily rejected (RHI-3465).
    * Fixed a classpath issue with the bundled Ant start script which caused RMI classloading issues
      with dynamically defined tasks using custom classes over a Rhino remote connection. (RHI-3455)
    * Provide earlier feedback of state exchange failures, for example if no address is available
      for listening. (RHI-3141)
    * Fixed javac task error when using Ant bundled with Rhino. (RHI-3479)
    * Profile imports will now complete successfully if a client decides to use a Rhino client jar
      from an early 2.3.0.x or 2.3.1.x release. (RHI-3454)
    * Fixed an NPE that could occur attempting to subscribe to or unsubscribe from monitoring of a
      stats parameter set that only exists on a subset of Rhino nodes. In the unsubscribe case the
      NPE could cause nodes to shutdown and restart. (RHI-3518)
    * A state cleanup of local memdb instances will now be initiated when services are uninstalled
      or profile tables are removed. This frees up any heap consumed by these artifacts immediately,
      rather than waiting until the next cleanup triggered by database state churn. (RHI-3526)
    * Fixed an infinite event router loop that occurred during the activity cleanup phase of
      activity end processing if an SBB that claimed to be attached to the activity didn't actually
      exist. (RHI-3508)
    * Fixed ClassNotFoundException thrown in the the stop-rhino.sh script if Rhino cannot be shut
      down due to a timeout waiting for memdb updates to be written back to the external database.
      (RHI-3572)


Changes between 2.3.0.10 and 2.3.0.13
=====================================

Bugfixes

    * Fixed a NullPointerException that could occur detaching an SBB from its attached activities
      when the SBB is removed. (RHI-3347)
    * Event router will no longer stall processing an event if an SBB increases its event delivery
      priority. (RHI-3350)
    * Fixed a race condition which could cause failures in getting a JDBC connection to an external
      database in some connection pool configurations. (RHI-3353)
    * Fixed a classloader NoClassDefFoundError issue when deploying an SBB with an Activity Context
      Interface containing an attribute whose type implements FastSerializable and contains
      constructors referencing previously unresolved classes.(RHI-3366)
    * Fixed an infinite event router loop that occurred if an SBB failure occurred during the
      activity cleanup phase of activity end processing. (RHI-3183)
    * Fixed an exception that could occur detaching an SBB from an activity during activity end
      processing if the SBB state for some reason did not agree with the activity state. (RHI-3183)

Changes between 2.3.0.8 and 2.3.0.10
====================================

Bugfixes

    * If the Rhino start script is in "keep-alive" mode (-k switch) then the delay before
      restarting Rhino is now a random value between 30 and 75 seconds. (RHI-3172)
    * Fixed a problem that caused service counter statistics to be under-reported if large amounts
      of incoming traffic was being received during Rhino start-up. (RHI-3198)
    * Rhino will no longer perform an activityUnreferenced() callback to a resource adaptor that
      requested it for an activity that is unreferenced but is already ending. (RHI-3247)
    * Rhino's periodic activity liveness scanner now checks if an idle activity is unreferenced
      and performs the appropriate callback to the owning resource adaptor if requested.  One
      result of this is that unreferenced null activities, orphaned due to conditions such as
      overload, will now be noticed by the scanner and cleaned up appropriately. (RHI-3248)
    * The event router will no longer stall processing events for an activity if an exception such
      as lock timeout occurs while trying to obtain the transactional state for the activity.
      (RHI-3236)
    * Added "getdescriptor" command to rhino-console, which displays the SLEE descriptor for a
      component including the outgoing and incoming references. (RHI-3306)
    * Root SBBs that detach and remove themselves will no longer cause the event router to fail
      and roll back the transaction after event delivery. (RHI-3287)
    * Sample statistics will now be correctly reported to existing stats sessions if a monitored
      stats parameter set is removed and later recreated.(RHI-3320)
    * An SBB may now successfully invoke suspendDelivery() and resumeDelivery() on a given event
      context in a single transaction as much as they like.  Furthermore, isSuspended() will now
      return the correct transactional state. (RHI-2374)
    * Exporter fixes: - SBB dependencies on resource adaptor entity link name bindings are now
      correctly associated with service activation (a'la SLEE 1.1) rather than SBB deployable unit
      installation (a'la SLEE 1.0). - Ant build target names will now be correctly generated for
      resource adaptor entities containing a comma or double-quote in their name. (RHI-3325)
    * Removing per-node activation state containing active services will no longer leave dangling
      references to resource adaptor entity link name bindings. (RHI-3328)
    * An unexpected runtime exception thrown by an initial event selector method will no longer
      permanently halt event delivery on the affected activity. (RHI-2590)
    * Fixed alarm entries incorrectly logging to all appenders on log file rollover
      instead of just the "AlarmsLog" appender. (RHI-3314)
    * A profile may now successfully invoke ProfileContext.getProfileName() to obtain its identity
      during profileActivate(). (RHI-2793)
    * Fixed a slow memory leak which could occur when repeatedly connecting
      from a stats client at a high rate over a long period of time. (RHI-3313)

Changes between 2.3.0.7 and 2.3.0.8
===================================

Improvements

    * MBean write operations are now blocked for a shorter period of time
      during Rhino startup. This should allow RAs to invoke management
      operations which don't require the management lock during their
      raActive() lifecycle method. (RHI-3195)

    * Make the maximum number of group RMI threads (i.e. concurrent group RMI
      invocations) configurable via the system property rhino.group_rmi.max_threads
      The default remains as 10. (RHI-3190)

Bugfixes

    * Improve robustness of periodic JDBC connection-idle checking for Rhino's
      built-in container JDBC connection pooling. (RHI-3223)

Changes between 2.3.0.4 and 2.3.0.7
===================================

Improvements

    * Rhino now does runtime compilation in-process, greatly improving
      deployment times for large projects. If required, the old behaviour
      where Rhino would fork an external javac instance can be restored by
      uncommenting the line containing "-Dcom.opencloud.javac.external" in
      read-config-variables (Rhino) or jvm_args (Rhino SDK). (RHI-3103)

    * Added 'CascadeUninstall' ant task which behaves in a similar manner to
      the cascade-uninstall script. This task can be used to uninstall a DU
      and all DUs, resource adaptors, profiles and services that depend on it.
      (RHI-1615)

    * Added a rhino-console command and Ant task to unset, all at once, the
      trace level assigned to any non-root tracers of a notification source.
      (RHI-3079)

    * Reduce default timer resolution from 250ms to 10ms, so timers fire much
      closer to their scheduled time. (RHI-3132)

Bugfixes

    * Fixed a problem where if a threshold rule referred to a non-existent
      statistic, rule processing would no longer run and connections from
      rhino-stats would fail. (RHI-2925)

    * Updated Rhino SDK start script to run correctly on Solaris. (RHI-3010)

    * Rhino will now automatically provide profile import/export codecs for
      profile CMP fields of enum types (or arrays of enum types). (RHI-3015)

    * Fixed compilation errors in generated code if the type of a profile
      CMP field was an array of an inner class. (RHI-3016)

    * Fixed the Java VM check at Rhino start so that certain supported JVMs are
      no longer reported as unsupported. (RHI-3023)

    * The SNMP agent will now rebind on restart in the case where it was not
      released correctly on shutdown. (RHI-3070)

    * Defined missing operation codes for audit logging of SNMP management
      operations. (RHI-3078)

    * Fixed a race condition that could cause the object ready pool to get
      stuck at maximum size with 100% misses. (RHI-3086)

    * Fixed a problem that occurred when timer events were re-fired (under
      overload conditions).  They are now more reliable and avoid certain
      scenarios which caused an exception to be thrown. (RHI-3108)


Changes between 2.3.0.1 and 2.3.0.4
===================================

Bugfixes

    * The SLEE Timer Facility has been reimplemented to use a hierarchical
      timing wheel rather than a binary heap. Cancelled timers now become
      immediately eligible for garbage collection, rather than waiting until
      they expire as they previously did. A new Rhino stats parameter set has
      been added which records Timer Facility stats, and configuration options
      have been added to rhino-config.xml which allow the Timer Facility to be
      tuned based on application needs. (RHI-2259)

    * Fixed a deployment time compilation error for SBBs with a CMP field type
      that is a subclass of ProfileLocalObject. (RHI-2468)

    * Fixed an issue with rhino-export that caused an null pointer exception
      when the security-permissions element was missing from the deployment
      descriptor (RHI-2935)

    * The SNMP4J library version has been upgraded to 1.4.1-oc.1, which fixes a
      possible null-pointer exception (RHI-2917)

    * Fixed a problem that meant timers and activities would never be cleaned
      up when timer events were dropped during overload conditions. (RHI-2919)

    * Fixed an issued where the New TimerLoop code could calculate an incorrect
      'timerError', which in turn caused TimerFacilityImpl.getResolution() to
      return an incorrect value (RHI-2921)


Changes between 2.2.0.7 and 2.3.0.1
===================================

New features and improvements

    * Added SNMP v3 support to SNMP subsystem. Note that SNMP v3 is disabled by
      default, and that authentication details are shared between stats
      collection and notification delivery for v3.

    * Added support for modification of the community string for use with
      v1/v2c. See the 'setsnmpcommunity' command in the console.

    * Added support for enabling/disabling of SNMP versions individually. See
      the 'enablesnmpversion' and 'disablesnmpversion' commands in the console.

    * Added support for multiple SNMP notification targets. See the
      'addsnmptarget' and 'removesnmptarget' console commands. (RHI-2580)

    * SNMP notifications can now be filtered by notification type. See the
      'setsnmpnotificationenabled' console command. (RHI-2657)

    * The security policies associated with deployed components (e.g. Resource
      Adaptors) can now be configured at runtime. See the 'getsecuritypolicy'
      and 'setsecuritypolicy' console commands.
      The security policy in use by Rhino JVM can now also be queried at
      runtime. See the 'getrhinopolicy' console command. This command is
      intended for diagnostic purposes only. (RHI-2593)

    * SBB and Profile Specification env entries can now be configured at
      runtime. See the 'setenventries' and 'getenventries' console commands.
      (RHI-2592)

    * Allow processing of ActivityEndEvent to "bounce" between SLEE nodes as
      many times as necessary, in the case of a mix of replicated and
      non-replicated SBB Entities attached to a replicated Activity Context.
      (RHI-2514)

    * Added a lock facility, which resource adaptors can use to obtain
      transaction-based distributed locks. (RHI-2669)

    * Added a new console command "alarmcatalog" that displays the alarms that
      can potentially be raised by Rhino and the deployed components that have
      registered their alarms. (RHI-2680)

    * Replicated pessimistic memdb storage now uses a new lock manager that
      improves latency when locks tend to be acquired on one node only (e.g.
      when traffic is "sticky" to a single node). Mutual exclusion is still
      provided between nodes, but acquiring a lock that was previously held by
      a different node will have higher latency than in earlier versions. The
      pre-2.3 lock manager is still available for cases where locks are usually
      acquired on many nodes. Services, SBBs, and RAs can configure the type of
      locking used via <lock-strategy> elements in extension deployment
      descriptors, in addition to other storage/locking options. (RHI-2595)

    * Extended the resource adaptor message passing facility with functionality
      that allows resource adaptors to make request-response type invocations
      to the same resource adaptor entity on other nodes. (RHI-2670)

Bugfixes

    * rhino-console commands that require or accept a notification source
      parameter as an argument now allow an abbreviated form of input if the
      notification source only has one attribute, ie. this change only affects
      the input of notification sources for resource adaptor entities, profile
      tables, and subsytems. As an example, whereby previously a command such
      as "listactivealarms resourceadaptorentity entity=cgin" was used, it is
      now also possible to invoke the same command as "listactivealarms
      resourceadaptorentity cgin", ie. the "entity=" part of the notification
      source value is no longer necessary. Note that the old form still remains
      valid input. (RHI-1719)

    * Amend rhino.policy so JMX clients can remove notification listeners.
      (RHI-1837)

    * Changes to staging queue type or maximum size are now applied
      immediately, rather than on the next restart. (RHI-1872)

    * Fixed the order in which profile specifications are uninstalled in the
      case where there are dependencies within a deployable jar. (RHI-2077)

    * Fixed bug in cascade-uninstaller tool where it would sometimes omit some
      component dependencies resulting in an incorrect uninstall order.
      (RHI-2144)

    * Implementations of profileStore() that modify indexed profile attributes
      no longer cause a ConcurrentModificationException on transaction commit.
      (RHI-2201)

    * Fixed an infrequent ArrayIndexOutOfBoundsException in internal timing
      code. (RHI-2395)

    * Increased default maximum permanent generation size to 192mb. (RHI-2407)

    * Improved exceptions thrown to a management client (including Ant) when an
      internal exception is thrown. (RHI-2534)

    * Spurious glibc version warnings no longer occur on recent Linux versions.
      (RHI-2581)

    * Rhino now includes an updated PostgreSQL JDBC driver (version 9.1-901).
      (RHI-2619)

    * Fixed SNMP 'exportmibs' console command not handling parameter set type
      names which contained path separator characters. (RHI-2622)

    * Fixed a bug that caused the last property specified in the
      config/jvm_args configuration file to be ignored. (RHI-2623)

    * Fixed bug preventing concurrent deployment of components using the same
      root parameter set name (e.g. CGIN 1.3.5 + 1.4.1). (RHI-2629)

    * Deployable units larger than 16MB are now supported when using Derby.
      (RHI-2632)

    * Restored missing rate limiter API classes in rhino-ra.jar. (RHI-2640)

    * Several fixes for SNMP address binding during node start. Additional
      debugging also added at debug level. (RHI-2649)

    * Strings of longer than 64k characters are now correctly handled in CMP
      fields and other contexts where they are persisted. (RHI-2661)

    * Manages JMX notification listeners more carefully: warn about slow
      listeners or listeners that throw exceptions. (RHI-2686)

    * Fixed tab completion in rhino-console in the case where tab completion
      results are based on a previous argument and that previous argument was
      quoted or contained escape characters. (RHI-2691)

    * Resuming a SleeTransaction from a resource adaptor using the
      SleeTransactionManager now works correctly rather than throwing an
      InvalidTransactionException. (RHI-2696)

    * Fix a lock manager statistics error where lock acquire/release/wait
      counts would be double-counted for each node in a cluster. (RHI-2698)

    * Fixed a lock manager statistics error that would incorrectly skew the
      lock acquire and lock wait time distributions. (RHI-2699)

    * Fixed a potential memory leak during lock acquisition if interrupted by
      an administrative transaction rollback. (RHI-2701)

    * Rhino now starts successfully if a SBB constructor throws an unchecked
      exception while filling service object pools. (RHI-2705)

    * Errors while accessing a Derby database for memdb persistence will now
      correctly rollback the transaction before closing the connection,
      avoiding subsequent database lock timeouts due to Derby not releasing
      locks on connection close. (RHI-2706)

    * Fixed a Savanna flow-control issue that could cause very slow deployments
      in a clustered environment if non-default group heartbeat settings were
      used. (RHI-2711)

    * Fixed a race condition whereby attempting to access the Profile MBean for
      the default profile immediately after creating a profile table might
      sometimes fail. (RHI-2712)

    * Handle logging misconfigurations more gracefully. (RHI-2713)

    * Fixed an issue where a component jar containing 2 or more components
      would fail to deploy if the component jar used the manifest Class-Path
      attribute. (RHI-2762)

    * Fixed bug in resource adaptor entity creation that, for relevant
      services, caused one serviceActive()/serviceStopping() callback to be
      made per resource adaptor type implemented by the resource adaptor,
      rather than once only. (RHI-2766)

    * Console command line completion will no longer return profile attribute
      names as suggested attribute values when creating or updating a profile.
      (RHI-2770)

    * Fixed a "zip file closed" warning error that occurred sometimes when
      uninstalling a deployable unit. (RHI-2792)

    * The default management auditing level is now "writes", which records only
      write operations (operations that modify Rhino state).
      To also audit read operations, set the auditing level to "all" via
      rhino-console. (RHI-2798)

    * Fixed exception handling in the createCommittedProfile method in
      RemoteProfiles (part of the Rhino Remote API) so that an uncommitted
      profile won't be left dangling if certain exceptions are thrown during
      the profile create. (RHI-2810)

    * Management clients performing 'write' operations via Rhino's MBean
      interface will now block until the end of the Rhino boot process.
      (RHI-2824)

    * Fixed JNDI Context implementation of list() and listBindings(). Names
      bound into subcontexts, and the name of the context being listed, are no
      longer included in the return result. (RHI-2833)

    * The <importconfiguration> Ant task (used in generated exports) now
      reports any errors encountered as fatal build exceptions, not as
      non-fatal build exceptions. (RHI-2843)

    * Fixed mishandling of the NEW_SIZE and MAX_NEW_SIZE variables when saving
      installation options with rhino-install.sh -d <properties-file>.
      (RHI-2846)

    * When using the rhino-remote helper classes:
      - mbean proxies now throw the underlying, unwrapped, exception whereever
        possible; when an exception is thrown that can't be directly thrown by
        the proxy (e.g. an I/O exception not declared by the mbean method) it
        is wrapped in either ManagementException (where possible) or
        RuntimeException. This avoids unexpected UndeclaredThrowableExceptions.
      - Exceptions thrown by Rhino-specific mbeans (i.e. those Rhino mbeans
        that are not in the standard SLEE domain) are now made remote-safe and
        should not produce unexpected ClassNotFoundExceptions if they contain a
        nested exception that is internal to Rhino. (RHI-2864)

    * A more useful error is reported by init-management-db if deletion of the
      existing Derby database fails. (RHI-2865)

    * Fixed a container bug that could cause index corruption if an OCBB object
      instance was modified in a transaction that rolled back then later reused
      in a transaction where the associated entity was removed from the
      database. (RHI-2893)

    * Alarms raised by a component will now be cleared during component removal
      for profile tables, RA entities, and services. (RHI-2066)

    * Clusters will now refuse to form when individual nodes are running
      different versions of Rhino. (RHI-2169)

    * Added command-line completors for resource adaptor config properties when
      creating or updating resource adaptor entities. (RHI-2521)

    * The "SystemInfo" stats parameter set has been removed; all data it
      provided is available in a more detailed form via the "JVM" parameter
      set. (RHI-2533)

    * The legacy web console has been removed from Rhino - to manage Rhino via
      a web interface, use REM instead. (RHI-2651)

    * Fixed a concurrency issue in the distributed lock manager algorithm which
      could cause a node to fail if a lock was changing state while lock state
      was being extracted for propagation to another booting node. (RHI-2742)

    * Improved error handling when the creating of a custom logging appenders
      throws an error. This prevents a potential issue where a faulty appender
      could prevent a Rhino node from starting. (RHI-2559)

    * Isolated some third party libraries (including Google Collections) from
      the class loader exposed to resource adaptors and services. (RHI-2501)

Changes between 2.2.0.5 and 2.2.0.7
===================================
    * Added 'setAlarmLogPeriod' and 'getAlarmLogPeriod' console commands (for changing the periodic
      active alarm log message interval). Setting the period to '0' will disable periodic active alarm
      notifications. (RHI-2621)
    * Removed erroneous semicolon from ProfileImportExportBuilder.template when generating
      CodecFactory interface. (RHI-2620)
    * Object pools 'initialPooledPoolSize' may now be configured in rhino-console with size 0. Previously
      the minimum allowed size was 1. (RHI-2602)
    * Fixed verifier of tracer names in various TraceMBean methods that was allowing some invalid names
      to be passed as valid. (RHI-2600)
    * Added an option to specify a timeout to the shutdown command. Outstanding in-memory database
      state that needs to be flushed to persistent storage must be flushed within this timeout period
      otherwise the shutdown will be aborted. If a timeout is not specified, a default timeout is used,
      which can be configured in rhino-config.xml. The initial default timeout is 60s. (RHI-2585)
    * Fixed a synchronisation issue in Rhino's custom classloader implementation which could cause a
      LinkageError if multiple threads simultaneously attempted to load the same class. (RHI-2192)
    * Fixed export of SLEE 1.1 profile tables so that profile attributes that export to a string
      containing '<', '>', or '&' characters are wrapped in a CDATA section, allowing the exported profile
      data to be reimported again without issue. (RHI-1966)

Changes between 2.2.0.3 and 2.2.0.5
===================================
    * Fixed management tools not allowing creation of Address profiles with an 'undefined' AddressPlan.
    * Fixed an issue with DynamicPolicy should treat jar:URL!/ as equivalent to just URL when
      canonicalizing cod[e]bases
    * Fixes for non-display of values in the stats client for parameter sets which contained no
      sample values when talking to a multi-node cluster.
    * Added new OC RA DTD to support 'oid' attribute in <stats-parameter-set-type>.
    * Added warning logged on Rhino startup if a file with a filename of 255 characters cannot be
      created in the deployments directory.
    * Updated Rhino to bundle 1.0.1.x builds of REM.
    * Make sure cleanup tasks run without holding the cleanup lock.

Changes between 2.2.0.2 and 2.2.0.3
===================================
    * Fixes for stop-rhino.sh argument handling. When running on the same host,
      the script will now also wait for rhino.pid to be removed before returning.
    * Fixed handling of multiple stats subscriptions for the same parameter-set and statistic-id
      within the same stats session.
      Caveat: with respect to live upgrades, this change is backwards compatible, but not
      forwards compatible.
      In the context of a cluster which has 'old' nodes (preceding this version) and 'new' nodes
      (this version or greater), a 'new' node can be introduced to a cluster, but an 'old' node cannot.
      Upgrading a live cluster one node at a time is supported, provided that no stats sessions are
      changed during the upgrade.
    * Fixed issues with alarms.csv logging:
      - rollover behavior improved to log a list of active alarms so that each alarms file is internally
        consistent after file rollover
      - logging only alarm raised and alarm cleared information
      - fix for incorrect alarm level for logging of cleared alarms
      New columns added 'logtime' and 'status' (which can be 'raised', 'cleared', or 'active')
    * DataStorage class for postgres DB configuration in rhino-config.xml is now
      org.postgresql.ds.PGSimpleDataSource
    * AuditingManagementMBean.setAuditLevel api (javadoc) altered to adhere to implementation:
      - Setter Sets whether read operations are logged to the management audit log. The correct values
        are "none", "writes", or "all" (case insensitive).
    * AuditingManagementMBean.getAuditLevel
      - Getter returns whether read operations are logged to the management audit log. The returned value
        will be "none", "writes", or "all" (case insensitive).
    * Improved value validation when creating Threshold rules.
    * Fixed handling of alarm raised when exceeding the SDK license limit.
    * Introduced a stats parameter set "EndpointLimiting", which shows how activities and events are being
      limited.
    * Fixed GC related file descriptor leak under Java 1.6 and when performing frequent deploy/un-deploy of
      several Deployable Units


Changes between 2.1-03 and 2.2.0.2
==================================
    * Rhino now requires Java version 1.6 or later.
    * Support for Java 6 running in 64-bit mode, on Solaris 10 and RH AS 5.5
    * Support for RedHat Linux AS 5.5
    * Changed how root user checks are performed on startup to make them more reliable.
    * Log JVM arguments on startup. Arguments are logged to a unique log key
    * Improved console commands to match with Rhino Element Manager
    * Added methods to LoggingManagementMBean: getAppenderType, getAppenderProperties,
      getThreshold, getCustomAppenderClassName, getCustomAppenderInfo,
      getFileAppenderInfo, getSocketAppenderInfo, and getSyslogAppenderInfo
    * Added "getappenderinfo" and "getappenderthreshold" rhino-console commands
    * Deprecated the process name property for log appender configuration,
      both in LoggingManagementMBean, and for rhino-import and rhino-export
    * Added methods to StatsManagementMBean:
      getParameterSetTypeMappings and getParameterSetTypeDescriptions
    * Removed the old Web Console and embedded the new Rhino Element Manager.
    * Added a logging appender 'PolledMemoryAppender' to the default configuration,
      which is used by the Rhino Element Manager to show recent log messages.
    * Add a management command called "getRhinoVersion" which shows what types of licenses
      the currently running version of Rhino will accept.
    * A log of management commands is now written to management.csv in the logs directory.
    * Improve efficiency of Activity Handler Garbage Collection at high activity count
    * Added SNMP statistics and notification support to Rhino, including Management interfaces.
    * Added Native support for SNMP Performance and Fault management, using SNMP v2c.
    * Activity Handler bugfixes: Activities now correctly prevent RAs from shutting down
      if there are remaining activities.
    * Updated derby.jar to version 10.6.1.0 (19-May-2010).
    * Added AuditingManagementMBean for auditing related management operations.
    * Added management auditing capability to Rhino: Added AuditingManagementMBean for
      auditing related management operations.
    * All management operations are logged to "management.log" and "encrypted.management.log".
    * Miscellaneous JMX Remote Adaptor m-let enhancements
    * All Rhino MBean names have been updated to use a more standard form so they will
      work with ObjectName pattern based queries.
    * Added a useDefaultConfig method to LimiterMBean and a "usedefaultlimiterconfig"
      rhino-console command, for removal of node specific limiter configuration settings.
    * LimiterMBean methods getConfigSummary and getInfoSummary now fail fast rather
      returning incomplete data, and use null in the "parent" column when not set.
    * The console appender will now respect the appender target field correctly.
    * Increased default size of management DB to 150MB.
    * Improvements to the stats client console mode to distinguish between statistics
      which do not yet have a value and statistics which cannot be aggregated.

Changes between 2.1-02 and 2.1-03
=================================
    * Sped up classloading when using complex component hierarchies.
    * The ConfigProperties object passed to an resource adaptor entity in the
      updateConfigurationProperties callback did not include the Rhino
      extension properties which are present in the equivalent ConfigProperties
      object used in raConfigure. Now they are included.
    * Fix profile specification uninstaller so that you can uninstall a profile
      specification that has other components referring to it, if those
      components are in the same deployable unit.
    * Fix updateConfigProperties method so that it doesn't try to update resource
      adaptor entities in the STOPPING state if active reconfiguration is not
      supported.
    * Fixed an issue with rhino-export running in the default 'snapshot' mode
      that prevented a successful export if a profile serialisation codec
      required a non-class resource from the component jar.
    * Fixed glibc version detection logic in rhino-common script so it
      supports multi-digit minor versions.
    * Enhanced licensing support for resource adaptors.
    * Add a message passing facility, which resource adaptors can use to
      asynchronously pass messages to the same RA entity on other nodes
      in the cluster.
    * Fix an issue where ActivityIsEndingException is thrown when Timer is
      fired during service deactivation, and SLEE primary component exit.
    * The Rhino-defined rhino_max_activities resource adaptor entity configuration
      property can now be updated at any time. Previously this update was not
      allowed if the resource adaptor entity was active and did not support
      active reconfiguration. Changing this property does not generate a callback
      to the resource adaptor entity, thus the semantics defined by the SLEE
      specification for active reconfiguration are preserved.
    * The names of stats parameter set types defined by resource adaptor components
      are now scoped only to that resource adaptor, so that different resource adaptors
      that define stats parameter set types with the same name will no longer interfere
      with each other. A resource adaptor component can no longer be deployed if it
      specifies a root parameter set name equal to a root parameter set name already
      present in Rhino. The name must be changed to something unique before Rhino will
      allow it to be deployed.
    * Resource adaptor stats parameter set interfaces can now define counters using
      either incrementXXX or setXXX method declarations (previously only incrementXXX
      was supported).

Changes between 2.1-01 and 2.1-02
=================================
    * Fix a potential locking issue in stats replication.
    * Fixed a deadlock problem in TimerFacility.
    * Fixed log message when reporting unexpected exception from
      ResourceAdaptor.eventProcessingFailed().
    * Fixed a race condition that could cause a long running transaction that
      could not be removed and cause a worker thread to get stuck.
    * Fixed a race condition during startup where RAs could fire events before
      any services were ready to process them.
    * Further fixes on startup ordering to ensure that service activities are
      always available to services before any events are processed.
    * Fixed an issue where SBBs using Rhino's log4j classloader would fail to
      deploy if log4j classes appeared in the signatures of SBB abstract class
      public methods or SBB local interface methods.
    * Fixed an issue where the getResourceOption method should return null if
      the SBB did not specify a resource option.
    * Fixed an issue in DynamicGrant if either set has greater than two items.
    * Fixed incorrect escaping of newlines and other non-alphanumeric characters
      for RA entity config properties in Rhino export.
    * Fixed implementation of DeploymentMBean.getReferringComponents to include
      dependencies between profile specifications.

Changes between 2.0-02 and 2.1-01
=================================
    * Aligned Windows SDK with Linux and Solaris. The SDK works the same way
      on all platforms and has the same set of features.
    * Windows installation simplified. Download, unzip, double click. For more
      information, see the Rhino (SDK) Getting Started Guide.
    * Added support for the Windows Vista operating system.
    * Fixed problem where some events stats counters were always zero.
    * Fixed an issue where JDBC pooled connections would be leaked if
      a non-fatal SQLException occurred during commit.
    * Fixed a stats-related deadlock when the session has been removed.
    * An oversight in oc-profile-spec-jar_1_1.dtd meant that <lock-strategy>
      wasn't allowed in <profile-spec>. We've released a new version of the
      dtd that does allow this, oc-profile-spec-jar_1_1_1.dtd.
    * The SLEE 1.1 tracer names for a particular notification source are now
      available on rhino console and the web console for 'get' and 'set'
      tracer level commands - by tab completion on rhino console, and by a
      linked drop-down list in the web console.
    * Fixed NullPointerException that sometimes happened when double-clicking
      values in stats GUI tree view.
    * Rhino 2.1 uses oc-resource-adaptor-jar_2_1.xml as its vendor extension
      DD if available. Otherwise it uses oc-resource-adaptor-jar.xml. A similar
      thing happens for SBB DDs. The 2.1 DD/DTD allows declarations for the new
      limiting features.
    * Fixed problem where the "exportall" console command would sometimes
      hang.
    * Added LIFO work queuing back into Rhino (it was in 1.4.5 but missing
      from 2.0). Use of LIFO or FIFO is selected by the queueType staging
      parameter. The node must be restarted for a change in this parameter
      to take effect. Changed the default queue type to LIFO. Changed behavior
      when the work queue is full. Previously a new item was rejected when the
      queue is full, now the oldest item in the queue is discarded and the
      new item added to the queue.
    * Added a maximum activities config property for all RA entities.
    * Added custom and RA input limiting and output servicing limiting, with
      a management command interface.
    * The security policy parser now supports system properties containing
      comma-separated lists. The format of these entries is
      ${{list:system_property_name}}. This will be expanded at runtime into
      one permission per entry in the list.
    * Rhino and Mlet configuration files now support system property
      substitutions, in the form of ${property.name}.
    * Used RSA key algorithm for keytool -genkey to fix a problem with
      Error code: sec_error_bad_signature persisting (even after adding an
      exception for FireFox 3).
    * The version of JLine used for the command-line console has
      been upgraded to version 0.9.94.
    * Each ResourceAdaptorContext instance will now use a new Timer thread
      instead of a single shared instance. This will prevent exceptions
      occurring in the Timer for one RA entity from affecting other RA entities.
    * Fixed Stats Client handling of very large parameter sets.
    * Updated version of Rhino remote API from 2.0 to 2.1 (rhino-remote-2.1.jar)
      to reflect changes in management classes related to rate limiting.
    * Added a command line utility 'dependency-graph', in the ${RHINO_HOME}/client/bin
      directory, which show the dependencies between SLEE components installed
      in Rhino.
    * Updated version of Rhino client apps API from 2.0 to 2.1
      (rhino-client-apps-2.1.jar) because of the addition of 'dependency-graph' above.

Changes between 2.0-01 and 2.0-02
=================================
    * findLongRunningTransactions console command now returns the set of all
      transactions not yet completed, rather than just transactions that are
      either Active or Marked for Rollback.
    * Alarm clearing log messages are now logged with log level "Clear"
      instead of the alarm level the alarm was raised with.
    * Fixed bug where cause throwables were being discarded by the Alarm
      Facility when an alarm was raised.
    * Enum types now stored more efficiently in CMP fields.
    * The User Rate Limiter can be specified with a smaller rate initially,
      and a larger maximum rate. The Rate Limiter will gradually increase
      the allowed rate until it reaches the maximum rate. This allows
      administrators to cater for artifacts such as Just In Time Compilation.
    * The eventrouter.transaction_timeout system property can now be used to
      set transaction timeout in milliseconds for eventrouter transactions.
      Its default value is 30 seconds and is configurable in the
      read-config-variables file.
    * The transaction.default_timeout system property can now be used to set
      the default transaction age in milliseconds before a long-running
      transaction is aborted. Its default is 2 minutes and is configurable
      in the read-config-variables file.
    * The transaction.timeout_check_interval system property can now be used
      to set the interval in milliseconds between checks for transactions that
      need timing out. Its default is 10 seconds and is configurable in the
      read-config-variables file.
    * The JDBC connection pool is now configurable in the rhino-config.xml
      instead of hardcoded at 5 seconds.
    * Additions of stats parameter sets for monitoring JDBC connection pool.

Changes between 2.0-DP and 2.0-01
=================================
    * Further changes to support SLEE 1.1 compliance.
    * Fixed a bug causing scaling problems in larger clusters.
    * Improvements to the Activity Handler and Event Router. The Activity
      Handler now supports pessimistic locking for activity contexts.
    * Individual RA entities can now create both replicated and non-replicated
      activities.
    * J2EE examples updated to SLEE 1.1 and included with this release.
    * Improvements to threshold rule calculations.
    * Additional statistics for monitoring performance and behaviour of activity
      handler.
    * SLEE, Rhino, and Mlet DTDs are now included in doc/dtd
    * Old administration manuals have been deprecated in favor of the Developer
      Portal documentation found at http://developer.opencloud.com/
    * Improved handling of relative paths in the Rhino install script.
    * Fixed several configuration related startup messages.
    * Platform information is now output during startup.
    * Specific log keys renamed for consistency.
    * New 'AnnotateLog' console command. This command allows output of
      arbitrary log messages into the Rhino logs, primarily for debugging
      purposes.
    * Added option to exporter to create exports with no container
      configuration data (i.e. exports containing only deployed components, not
      SLEE configuration).
    * Additional commands added for object pool configuration.
    * Improved command line tab completion for several commands in the command
      line management client.
    * Fixed deadlock issue with querying bound activities.
    * exportAll command line management client command renabled.
    * listEventRouterThreadState command added to command line management
      client.
    * Added new remote API, updated all existing clients to use it.
    * Performance improvements to ant management tasks.
    * Added missing RemoveUsageParameterSet ant task.
    * Added ant tasks for managing log appenders.
    * Notification Recorder Mlet now disabled by default.
    * Performance improvements to transacted operations on timers.
    * Performance improvements to collection of platform statistics.
    * Updates to support Java 1.6.
    * Fixed an issue with distributed locks not being released for some
      profiles when editing a large number of profiles within a single
      user transaction.
    * The notification recorder m-let is no longer included in the Rhino
      package.
    * Removed CPU stats collection from Rhino as the results were
      unreliable.

Changes between 1.4.5_02 and 2.0-DP
===========================================
   * SLEE 1.1 compliance updates. This release implements the majority
     of the functionality specified in the proposed final draft of the SLEE
     1.1 specification.
   * Internal components of Rhino have been redesigned to support SLEE
     1.1 and improve performance.
   * The appearance of the web console has been improved.
   * Usage MBeans now have a Rhino-specific extension,
     tabulateAll(...) which returns usage parameter data in a TabularData
     object.
   * Tab completion for more console commands has been implemented in
     the command console.
   * Various fixes to the statistics gathering system and statistics
     client have been applied.
   * Usage parameter names are now stable across node restarts
   * Fixed some scenarios where the stats client would return negative
     figures when a service is redeployed.
   * The statistics client now makes a single TCP connection to the
     SDK or a single server node.
   * The version of Jetty used for the web console has been upgraded
     to version 6.1.4.
   * The watchdog's default threshold for stuck threads has been
     increased to 75%.
   * Fixed a TransactionRolledbackLocalException error that occurred
     if a profile was modified then removed in the same user transaction.

Changes between 1.4.5_01 and 1.4.5_02
===========================================
   * Fix event router double delivery that could occur when a transaction
     rolls back because memdb is full.
   * Fixed incorrect name given to stats parameter sets for SBB usage parameter
     sets created by the administrator.
   * Fixed a ClassNotFoundException error that occurred when a management client
     attempted to invoke an MBean method that used a class not defined in the
     basic Rhino classloader as a parameter type.
   * Fixed session timeout errors seen when using the deprecated stats client
     API's from Rhino 1.4.0.  The errors did not affect clients using the new
     API.
   * Fixed a memory leak that occurred on each JMXR authentication.
   * Fixed a memory leak that occurred in a management client when obtaining
     certain proxy objects such as profile proxies, stats monitoring proxies,
     node housekeeping proxies, and SBB usage proxies.
   * SLEEClient methods close() and logout() are now synonyms to avoid confusing
     scenarios where a SLEEClient instance cannot be reused.
   * Added missing max-samples-per-thread element definition to rhino-config.xml
     DTD.
   * Added missing SubscriptionMode class to rhino-client.jar.  This class is
     used by management clients using the Rhino Statistics API.
   * Ensured that all root stats parameter sets exist before any components are
     installed or reloaded on node restart.


Changes between 1.4.4_03 and 1.4.5_01
===========================================
   * The SIP Resource Adaptor has had some major enhancements since the previous
     release of Rhino, including support for replicated dialogs and forking.
     Existing deployment scripts will need to be changed to use the new SIP RA.
     See examples/sip/RELEASE-NOTES.txt for a description of these changes.
   * The Diameter connectivity pack is now available as part of the default
     Rhino SDK install.
   * A new UserTransactionManagementMBean has been added which allows a
     management client to demarcate transaction boundaries for profile creation,
     edit, and/or removal.
   * SBB usage statistics are now also accessible through the Rhino Stats API.
   * A new version of the exported xml profile data DTD is now supported, which
     allows finer control over create vs. replace behaviour during an import.
     The new DTD also allows profiles to be deleted as part of an import.
   * Stats parameter sets are now identified by name not type, and their name
     may be different to their type.  A stats parameter set may have no defined
     type if a type is not applicable.  For example the SBB-Usage parameter set
     has no defined type - types for these parameter sets are defined by
     the individual SBBs that collect usage stats.
   * Fixed a classloader issue that prevented resource adaptors that attached
     alarm listeners to a Rhino node's MBean server from being able to use
     RhinoAlarmNotification objects correctly.
   * Fixed an exception infrequently reported by the long-running-transaction
     watchdog.


Changes between 1.4.4_02 and 1.4.4_03
===========================================
   * Fixed a file descriptor leak that occurred during code generation.
   * Fixed a bug in the JDBC connection pooling that could cause connections
     to be leaked in some circumstances, eventually leading to SBB event
     processing threads becoming blocked indefinitely waiting for connections
     to be returned to the pool (which never occurred).
   * Fixed a classloader issue that prevented resource adaptors that attached
     alarm listeners to a Rhino node's MBean server from being able to use
     RhinoAlarmNotification objects correctly.
   * Fixed an exception infrequently reported by the long-running-transaction
     watchdog


Changes between 1.4.4_01 and 1.4.4_02
===========================================
   * Fixed a bug in the notification recorder which prohibited log messages
     generated by the notification recorder for SBB trace messages to be
     deserialized at the other end of a socket appender.
   * Lifted limitation in size of serialised CMP field data from 32767 bytes
     to 2Gb.
   * Moved delivery of JMX notifications to notification listeners to a
     thread other than the thread that caused the notification to be
     generated.  This improves performance of SBBs, for example, where
     outputting a trace message causes a trace notification to be generated.
   * Fixed a number of obfuscation-related problems.
   * Fixed several potential deadlocks in event router.


Changes between 1.4.3_02 and 1.4.4_01
===========================================
   * Added the ability to specify multiple Rhino hosts to attempt connections
     to in the Rhino Command Console (and custom management clients that use
     the Rhino Client API).
   * Added a new snapshot feature to Rhino client library to increase export
     speed.
   * Fixed a deserialisation classloader problem of CMP fields when accessed
     by SBB code in a thread that is not currently executing an event-handler
     method, eg. SBB lifecycle method accessing CMP and the lifecycle method
     being invoked outside of an event-handler method call on the SBB.


Changes between 1.4.3_01 and 1.4.3_02
===========================================
   * Fixed an obfuscation related problem which prevented events from firing
     correctly with certain RAs.
   * Fixed a classloader problem related to log4j.


Changes between 1.4.2_03 and 1.4.3_01
===========================================

   * Removed assertions and debugging from a handful of hotspots seen during
     profiling
   * The Rhino SLEE SDK (v1.4.3) now uses an embedded Derby database to store
     its internal state by default. Refer to the Rhino Administration Manual
     for more information.
   * A Windows version of the Rhino SLEE SDK (v1.4.3) is now available.
   * The external management API for licenses has changed slightly due to
     improvements in the licensing system. 'long getLicensedCapacity()' has
     been replaced by 'long getLicensedCapacity(String function, String
     version).
   * Added support in the SIP RA for lazy parsing and the draft RFC
     draft-ietf-sip-outbound-03. The OCSIP RA Type version is now 1.3.
   * Removed deprecated manage.sh script. Please use client/bin/rhino-console
     instead.
   * Stack traces no longer displayed by default in command line console.
     A setshowstacktrace command was added to control this behaviour.
   * Fixed a bug in the pessimistic locking used by the Activity Context
     Naming Facility and the storage of ACI attributes.  The correct version
     of data is now retrieved from the DB after the pessimistic lock is
     obtained.
   * Added an serialisation optimisation for TimerID objects stored in CMP
     fields.
   * Fixed the J2EE Connector which had some classes missing, resulting in
     NoClassDefFoundErrors when trying to fire an event to the SLEE.
   * Fixed a race condition between timer start and timer cancellation that
     results in timers not being correctly cancelled if the cancel occurred
     quickly after the timer was started.
   * Fixed a number of minor SIP bugs.


Changes between 1.4.2_02 and 1.4.2_03
===========================================

   * Fixed an accounting bug in services statistics where root SBB's would
     be counted incorrectly in some cases.
   * Fixed a bug where reducing the number of staging threads would
     occasionally cause events to stall in the staging queue, and the
     available threads statistic to report the wrong value.
   * Fixed cases where remote class loading of dynamically loaded exception
     classes used in traces and/or alarms (eg. mlet start failure) should
     have worked but didn't.
   * Fixed a problem with additional security permissions granted to an SBB
     via the supplementary SBB deployment descriptor. Permissions should now
     work correctly, in that an SBB can perform privileged operations without
     using an AccessController.doPrivileged() code block, provided that no
     other "unprivileged" SBBs are in the call stack.
   * Fixed a threading related memory leak in the stats collection subsystem.
   * Fixed a deadlock when updating logging configuration at runtime.
   * Fixed a bug in logging config file handling.
   * Fixed a problem where firing a custom event could cause an invalid use
     of the EventLookupFacility, resulting in the node shutting down.


Changes between 1.4.2_01 and 1.4.2_02
===========================================

   * Fixed a problem where SLEE-generated activities for profile tables and
     active services were not being recreated on node restart.
   * Tweaked handling of in-memory database synchronisation notifications on
     node startup to avoid use of the database while it was still potentially
     loading state.
   * Fixed import of profile data for profiles containing attributes of
     primitive-type arrays.
   * Fixed export/import of profile data for profiles containing attributes of
     char or java.lang.Character type where the value of the attribute is not a
     legal XML character.  Non-printable 7-bit ASCII characters or characters
     that are not letters or digits (according to the JVM) are now expressed in
     Unicode format in the exported data.
   * Fixed a problem with parsing the -s (password) option in the exporter.
   * Tweak to versioning scheme to allow licenses to be valid for a particular
     version of Rhino, rather than being tied to an individual release build.
   * Fixed the list of SBBs for operations that take an SBB as a parameter
     in the ServiceUsage MBean page in the Web Console.
   * Fixed a problem in the rhino-install.sh script that was causing the license
     file to be ignored when performing unattended installs.
   * Fixed a problem in the SIP RA that was causing dialog activities to not
     end automatically when the dialog-initiating server transaction failed.


Changes between 1.4.2-ga and 1.4.2_01
===========================================

   * Fixed a problem where library component jars with inter-dependencies could
     be reloaded in the wrong order on node restart causing the restart to
     fail.
   * Fixed a problem in the persistence of public ACI attribute state which
     gave rise to the possibility of optimistic concurrency failures to occur
     in subsequent transactions that only read back that state.


Changes between 1.4.2-rc3 and 1.4.2-ga
===========================================

   * Fixed problem creating file appenders with absolute paths.
   * Fixed problems with deserialisation of serialised data for array-type
     profile attributes during an import.
   * Fix for database initialisation script to allow for capitalised postgres
     database names.
   * Fixed a problem with viewing non-primitive profile data types from the web
     console when running in embedded mode.


Changes between 1.4.2-rc2 and 1.4.2-rc3
===========================================

   * Added listEventTypes and listResourceAdaptorTypes commands to the
     command line management console.
   * Corrected error in calculation of counter values used in evaluation of
     threshold alarms.
   * Improvements to formatting of long statistic names in command line
     statistics client.
   * Updated internal statistics heartbeat to ensure rollover of frequency
     distributions even when the SLEE is under no load.
   * Improved selectiveness of user rate limiter so that end events for
     existing activities are not rejected.


Changes between 1.4.2-rc1 and 1.4.2-rc2
===========================================

   * Fixed problems which occured when running against multiple databases.
   * Connection management fixes in JMX Remote client API.
   * The web console has seen many improvements, including improved
     documentation and interaction.
   * Issues with searching for activies/sbbs/timers with future relative
     times have been fixed.
   * Issues with using MS Internet Explorer with the web console have been
     resolved.
   * Issues related to threshold rules have been resolved. Reinstalling
     low-memory rules from an export now works as well as some
     minor fixes.
   * Fixed a potential IllegalStateException during deployment.
   * Rhino will now use the platform's MBean server when using Java 1.5.
   * Alarm MBean's setAlarm method now can use string representations of
     alarms. This means that the drop-down box on the rule config page of
     the web console works.
   * Resolved issue with stats client failing when a node fails.
   * Issues regarding creating a SyslogAppender from the web console have
     been resolved.
   * Two new commands have been added to the command-line console:
     createSocketAppender and createSyslogAppender.
   * Role-based security is now available at the JMX remote interface.


Changes between 1.4.1 GA and 1.4.2-rc1
===========================================

   * Fixes and additions to the web console and command line management
     clients.
   * Added Support for starting the Web console as a standalone management
     client (client/web-console script).
   * Script fixes and improvements.
   * Added threshold based alarms.
   * Improvements to configuration handling. New management commands are
     available to export and import configuration data.
   * Extensive license handling changes. Licenses should now be installed via a
     management client.
   * Library jar support has been added. A library jar is some inert set of
     classes and/or prepackaged jars that other SLEE components can depend on.
     Library jars deprecate the use of manifest classpath 'library' jars which
     suffer a number of limitations.
   * Merged DeploymentFileDatabase into ManagementDatabase to improve
     transactional consistency.
   * Improved generation of unique of Call-IDs, tags and branches by the Sip
     stack.
   * Enhanced statistics for production and SDK installs.
   * Added support for an RA to implement multiple RA types. This breaks binary
     compatibility with RAs compiled against the previous ResourceAdaptor
     interface.
   * Improved JCC examples.
   * Added security permission support for profile spec jars.
   * Fixed bug which allowed default profiles to be removed.


Changes between 1.4.0 GA and 1.4.1 GA
===========================================

   * Added a license expiry alarm to give 7 days warning before a license
     expires.
   * Fixed bug that occurred when adjusting thread pool sizes at runtime.
   * Fixed a bug in Rhino's event router that could cause incorrect scheduling
     of events under high load with some applications.
   * Added several new commands to the command line management client. Fixed
     missing tab completions.
   * Changed staging configuration to be tunable at runtime.
   * Added a rule based threshold alarm manager.
   * Fixed incorrect descriptions of some built in statistics.
   * Fixed bug in exporter: Resource adaptor entity configuration property
     values are now quoted and/or escaped where necessary to ensure valid XML
     and correct parsing on import.
   * Fixed a bug in the updateConfigurationProperties method of the
     ResourceManagementMBean which didn't correctly re-notify the updated
     resource adaptor entity of the services that were installed and active in
     the SLEE, thereby breaking any event filtering the resource adaptor
     performed based on the state of services in the SLEE.
   * Numerous updates and fixes to the statistics monitoring client.
   * Added a checkConfiguration method to ResourceManagementMBean that suggests
     to a resource adaptor entity that it should check and/or reload any
     configuration state it has loaded.  For a resource adaptor entity to
     receive this notification the resource adaptor class must implement the
     com.opencloud.rhino.resourceadaptor.RhinoResourceAdaptor interface.
   * Fixed bug in exportAlarmTableAsNotifications method of Alarm MBean so that
     the node ID where the alarm was raised is correctly used.
   * Fixed bug in JMX SLEE Client API which reversed the old and new states in
     a SleeStateChangeNotification.
   * Fixed two bugs with pooling which could affect deployment and
     activity context naming facility when used in a cluster.
   * Added check to configuration parsing to prevent use of <remote-url> values
     which cannot be handled by JNDI.


Changes between 1.3.0 GA and 1.4.0 GA
===========================================

   * Added activity and service level configurability of fault tolerance
     features.
   * Added JMX remote Mlet for management API's and JMX remote client
     library.
   * Added new configurable parameters to aid performance tuning: object
     pool sizing, locking strategy for Activity Context Naming, and thread
     pool management.
   * Improved command line management interface with tab completion for
     most commands.  Added several new command line client commands to
     support new housekeeping and configuration features.
   * Added a statistics and monitoring interface allowing clients to monitor
     many internal Rhino performance metrics.  Added rhino-stats client
     application for viewing statistics.
   * Added new housekeeping API's for examining current Rhino SLEE state and
     removing selected activities or SBB's.  This API replaces the
     RhinoAdminMBean API in Rhino 1.3.0
   * Client applications now deploy in a separate client directory under the
     Rhino installation directory which includes the Rhino command line and
     statistics clients and support files, and the Rhino management Ant tasks.
   * Changed command line client and Rhino management Ant tasks to use new JMX
     remote client API.
   * Logging changes to reduce the amount of log 'noise' generated by Rhino under
     normal conditions.
   * Improved install script to better detect local configuration defaults.
   * Command line client manage.sh renamed to rhino-console and moved to the
     client directory under Rhino installation.  manage.sh now invokes
     rhino-console.
   * Fixed profile removal code to better manage memory requirements when
     removing very large profile tables.
   * Added configurable size limits for all internal memory databases to allow
     better management of available heap.
   * Improved overload behaviour to reduce performance costs incurred by failing
     some events under overload conditions.
   * Modified ResourceManagementMBean methods to allow whitespace between RA
     entity configuration property name=value pairs.
   * On Linux/x86 installs where JDK 1.4 is detected as the target VM a
     .hotspot_compiler file is created in the target directory to work around a
     JVM bug with LinkedList.toArray() on this platform.
   * Event "filtering" methods xxxFilter() in ResourceAdaptor class replaced
     with serviceXxx() methods.  This correctly identifies the underlying behaviour
     of the original filtering methods, and aligns with the direction expressed in
     SLEE 1.1 EPD.
   * Renamed UnrecognizedResourceAdaptorEntityNameException to
     UnrecognizedResourceAdaptorEntityException for consistency with other exception
     naming conventions, and again aligns with SLEE 1.1 EPD.
   * Replaced html management interface with role based security aware web console
     with improved user interface.
   * Implemented MVCC in Rhino memory databases so read transactions do not need to
     acquire locks.
   * Added the capability to configure multiple backend databases for persisting
     state from memory databases.

Sip RA & Examples:

   * Fixed problem closing idle SSL connections.
   * Replaced example SIP applications with new Proxy and Registrar services and
     added sample FindMeFollowMe and Location services.
   * Added support for Dialog activities to SIP RA.

Changes between 1.3.0-beta5 and 1.3.0 GA
===========================================

   * Corrections to internal JNDI and classloader implementation so that
     listBindings() works correctly for all SBBs.
   * SIP RA corrected handling of ViaHeader port values when no port is
     specified in the header.
   * Improved locking in memory database to allow for more fine grained
     locking.
   * Improvements in the parser for security permissions used by mlet
     configuration files and RA deployment descriptors to allow Java style
     comments.
   * Corrected SMPP-SIP example service to deploy correctly with OCSIP RA.
   * Improved exception handling in OCSIP stack.
   * Fixes to JDBC statement pooling to correctly pool statements with
     JDBC drivers other than PostgreSQL's.
   * Changed deployment code to allow deploying components which reference
     library jars that may contain duplicate classes or resources.
   * Fixed class loader problems that occurred at runtime between
     collaborating SBBs defined in different SBB component jar files.
   * Improved support for IPV6 addresses in the OCSIP stack and RA.
   * Fixed error in profile provisioning that could leave a profile in an
     uncommitted state when an error occurs while trying to create a profile
     using manage.sh.
   * J2EE example is now packaged separately from the SDK.

Changes between 1.3.0-beta4 and 1.3.0-beta5
===========================================

   * Minor modifications to the J2EE examples buildfile.
   * Fixed resource adaptor lifecycle callbacks when the SLEE was STOPPED,
     which previously could prevent clean SLEE shutdown.
   * Clarify and improve a number of log messages.
   * Add support for calling an external script to cause a JVM thread-dump if
     a watchdog timeout occurs.
   * Various resource adaptor infrastructure robustness improvements in the
     face of buggy resource adaptor implementations.
   * Improve reporting of exceptions causing rollback during distributed
     management operations.
   * Fixed a rare case where the watchdog would generate a spurious timeout.
   * The SLEE state (STOPPED, RUNNING, etc) now persists across SLEE restart.
   * Avoid errors involving COMMENT ON when using recent PostgreSQL JDBC
     drivers against a 7.4 or newer server.
   * Include a recent PostgreSQL JDBC driver by default. This gives substantial
     performance improvements when importing bulk profile data.
   * The install script now checks for JDK 1.4.2 or later, matching the
     documentation.
   * Exporter and ant management task updates to provide a smoother upgrade
     path to 1.4.
   * Added an export script upgrade utility to allow upgrade and import of
     scripts generated by older Rhino versions.
   * Fixed a hang on exit when the exporter encountered an error.
   * Fixed a number of race conditions during SLEE startup.
   * License infrastructure bugfixes.
   * Added ant management support for setting trace levels on more component
     types.
   * Fixed a number of SLEE eventrouter bugs. The majority of these only
     affect clustered (non-SDK) installs.
   * Fixed a deadlock involving dynamic security policy permissions.
   * The OpenCloud SIP (OCSIP) stack and RA is now included in SDK releases.
   * Updated the included SIP examples to use OCSIP by default.
   * IPV6 local addresses are included when expanding @LOCALIPS@ in
     configuration files.
   * Logging changes to produce less log noise under overload conditions.

Changes between 1.3.0-beta3 and 1.3.0-beta4
===========================================

   * Fixed unexpected SecurityExceptions that could be thrown from the JAIN SIP
     RA when getNewClientTransaction() or getNewServerTransaction() were called
     on the underlying SIP stack.
   * A deadlock in Rhino's TimerFacility implementation was fixed.
   * Corrected a bug where null activities would never be completely removed,
     eventually exhausting memory.
   * A ConcurrentModificationException in the HTML adaptor session purger
     thread has been fixed.
   * The HTML adaptor session purger thread should now take considerably less
     CPU and generate less garbage.
   * Fixed a bug where Rhino could continuously attempt to redeliver an event
     when the event processing transaction failed early in the event delivery
     algorithm.
   * The J2EE RA example buildfile now has undeploy targets.
   * The NetBeans plugin has been updated.
   * Fixed NullPointerExceptions and spurious warnings that could be generated
     by the SIP RA when communicating with buggy SIP peers.

Changes between 1.3.0-beta2 and 1.3.0-beta3
===========================================

   * start-rhino.sh no longer modifies the LANG environment variable.
   * The file.encoding system property and various JNDI-related system
     properties are no longer set.
   * Rhino's internal JNDI implementation is now loaded via a different
     mechanism (jndi.properties) to avoid being overridden by SBB-provided
     JNDI implementations.
   * Minor JNDI environment correctness fixes.
   * Command-line arguments to javac and jar are now passed via @-syntax
     command files to avoid problems on systems with limited command-line
     lengths.
   * Updates to persistent files are now done via a mechanism that does not
     require atomic rename-and-replace support from the host system.
   * Declarations of CMP fields not found in the SBB abstract class are now
     handled correctly.
   * SBB CMP fields that store a SbbLocalObject can now correctly store
     a particular SbbLocalObject in more than one field simultaneously.
   * SBB garbage collection after event delivery to a SBB that
     removed itself now operates correctly.
   * Retrieving non-reentrant SBBs from a CMP field no longer incorrectly
     generates a reentrant-call exception.
   * The rhinomanagement install subtask now respects the provided URL.
   * Usage parameter sets now correctly persist over a Rhino restart.
   * While use of the SDK under Windows is still officially unsupported, a
     number of changes have been made to the install and support scripts and
     default configuration to be more Cygwin-friendly.
   * Generated classes now have somewhat more concise names.

Changes between 1.3.0-beta1_02 and 1.3.0-beta2
==============================================

   * The install scripts were updated to refer to the canonical
     hostname, not 'localhost', in HTTP management URLs. Using the canonical
     hostname produces a more obvious failure in the case where the browser
     is configured to use a HTTP proxy but the proxy denies access to the
     html mlet's main or static content ports.
   * The security policy for the JAIN SIP RA was moved from rhino.policy to
     a per-RA deployment descriptor.
   * Several RAs are no longer signed, as they are no longer referenced
     by signer in the Rhino security policy.
   * Rhino now uses external helper scripts to invoke 'javac' or 'jar':
     run-compiler.sh and run-jar.sh. These scripts can be customized as
     needed for a particular install. The default scripts run 'javac'
     and 'jar from $JAVA_HOME/bin under 'nice -n5'.
   * As javac now runs in a separate process, memory leaks in javac that
     eventually resulted in OutOfMemoryErrors after many deployments should
     no longer occur.
   * On Linux installs, LD_ASSUME_KERNEL=2.4.1 is set to disable use
     of NPTL threads, as there are internal JVM deadlock problems
     under load when using current JVMs with some versions of NPTL.
   * A race condition between event delivery and service deactivation that
     could cause NullPointerExceptions was fixed.
   * Accessing session beans (ejb-ref-type of Session) from SBBs is now
     supported.
   * On undeployment of a service, unsetSbbContext() is now correctly called
     on any remaining pooled SBBs. Note that currently this only happens
     on undeployment of the service, and not on service deactivation.
   * The SIP Registrar SBB now listens for service deactivation events and
     promptly cleans up when they are received. This should eliminate delays
     when deactivating the example SIP services while there are active
     registrations.
   * An ant script to deploy the J2EE resource adaptor is now included in
     examples/j2ee/build.xml.
   * The SLEE state exporter and supporting ant tasks have been updated to
     generate buildfiles that run correctly regardless of the current
     directory. This required an incompatible change in the "rmissl"
     parameter of the rhinomanagement ant task. If you are importing SLEE
     state from a -beta1 buildfile, you should edit import.properties and
     remove the "file:" prefix from the "rmissl" property for the import
     to operate correctly.

Changes between 1.3.0-beta1 and 1.3.0-beta1_02
==============================================

   * A bashism that prevented the install/support scripts from
     working on Solaris and other systems where /bin/sh is not a 'bash'
     was fixed.


Adaptavist Theme Builder Powered by Atlassian Confluence