Release Date: Monday, July 11, 2016
Release Highlights
- Build lifecycle improvements in ADM code generation tools.
Compatibility Notes
ADM Compatibility Level: 3.2.0 (see ADM Compatibility Matrix) THIS IS A CHANGE FROM THE 3.3 RELEASE WHICH HAD A LEVEL OF 3.1.0 ... CODE GENERATED WITH THIS RELEASE WILL NOT BE API COMPATIBLE WITH PRIOR VERSIONS OF THE PLATFORM.
The following issues have compatibility implications:
- XPLATFORM-713 - Create a message copy() method.
- XPLATFORM-1253 - nv.time.usenative should default to false
- XPLATFORM-1254 - Change Unsafe Buffer Management to take precedence over NATIVE buffer management
- XPLATFORM-1255 - FLOW_FORWARDING_MODE default should be set to 1 (non cut through) in Solace Binding
- XPLATFORM-1252 - Startup Expectations DDL overrides do not take effect
- XPLATFORM-1305 - CommitTransitionLatencies are not reported in Server Heartbeats
Change Log
- Story
- New Feature
- XPLATFORM-713 - Create a message copy() method.
- XPLATFORM-774 - Enhance ADM to resolve unambiguous imported field types without fully qualifying them.
- XPLATFORM-990 - Enhance ADM to preserve the origin model of imported fields.
- XPLATFORM-1056 - Implement server side heartbeat transaction logging.
- XPLATFORM-1250 - Feature Request: Add 'NotEmpty' as store startup expectation
- XPLATFORM-1320 - Allow suppression of native library extraction from jar.
- Improvement
- Change
- XPLATFORM-1235 - Apply AppExceptionHandlingPolicy to unchecked MessageFilter exceptions
- XPLATFORM-1249 - Feature Request: Add an option to specify 'None' for Role Expectation in DDL
- XPLATFORM-1253 - nv.time.usenative should default to false
- XPLATFORM-1254 - Change Unsafe Buffer Management to take precedence over NATIVE buffer management
- XPLATFORM-1255 - FLOW_FORWARDING_MODE default should be set to 1 (non cut through) in Solace Binding
- Bug
- XPLATFORM-1080 - MessageEvent autoAck race condition can cause dropped acks
- XPLATFORM-1240 - ADM model should not allow two messages with same name in a model
- XPLATFORM-1252 - Startup Expectations DDL overrides do not take effect
- XPLATFORM-1305 - CommitTransitionLatencies are not reported in Server Heartbeats
- XPLATFORM-1310 - DDL parser does not parse ICR detachedSend enabled property correctly
- XPLATFORM-1315 - Embedded entity clone methods set unset field values as default in clone.
- XPLATFORM-1318 - SrvMonAppExceptionMessage is not set as backing message for AepApplicationExceptionEvent alert
- XPLATFORM-1319 - NullPointerException in discovery if shutdown hook fires before contructor completes
Story
New Feature
XPLATFORM-713 - Create a message copy() method. |
This release updates the ADM code generator to generate a copy() method for ADM generated messages. The copy:
ADM code must be regenerated to generate the new copy method on Messages, but this change doesn't require that code be regenerated if the new copy() methods aren't needed. At runtime, a check for whether the message implements com.neeve.sma.CopyableMessageView can be done to check if a generic MessageView supports copy. Code must be regenerated to generate the new copy() methods on messages. All embedded entities used by the message should also be regenerated. Messages generated with older versions of the platform will continue to work with this version, but will not support copy(). ADM MESSAGE LIBRARY |
XPLATFORM-774 - Enhance ADM to resolve unambiguous imported field types without fully qualifying them. |
This release adds support for resolution of imported in ADM models without fully qualifying them. It is possible to specify non-full-qualified name when using fields and types from imported models, provided they type name can be unambiguously resolved:
See ADM Model Imports. ADM MESSAGE LIBRARY |
XPLATFORM-990 - Enhance ADM to preserve the origin model of imported fields. |
This release enhances the ADMModel api such that an AdmField field provides access to the model in which a field was defined and the ability to determine the import path from which the field was imported. This can be useful for documentation tools. The following new apis have been added to com.neeve.adm.AdmField ADM MESSAGE LIBRARY |
XPLATFORM-1056 - Implement server side heartbeat transaction logging. |
This release add the ability to log server heartbeats to a transaction log. To enable heartbeat logging for a server add the <heartbeatLogging> element to the platform configuration descriptor: Heartbeats are logged in a file titled <servername>-heartbeats which by default will end up in a server-heartbeats subfolder in the data directory. The directory can be overridden by specifying a storeRoot property in the logger (recommended to avoid logging heartbeats to the same disk as recovery data). Each time the server is started prior heartbeat logs are backed up to the same folder and suffixed with a time stamp. See the DDL Configuration Document (https://docs.neeveresearch.com/display/KB/DDL+Schema+Reference#DDLSchemaReference-<heartbeatLogging) for more details STATS AND ALERTS |
XPLATFORM-1250 - Feature Request: Add 'NotEmpty' as store startup expectation |
This release adds support for specifying LogEmptinessExpectation.NotEmpty as an expectation for an engine's store. When NotEmpty is specified startup will fail if the store doesn't have an existing transaction log with at least one entry in it. As with the existing LogEmptinessExpectation.Empty expectation the expectation is only enforced on a primary store. Example: CONFIGURATION |
XPLATFORM-1320 - Allow suppression of native library extraction from jar. |
This release introduces a System Property 'nv.native.suppressextraction' which when true, skips extraction of the native libraries for cases in which the user has already manually extracted them.
CONFIGURATION |
Improvement
Change
Bug
XPLATFORM-1080 - MessageEvent autoAck race condition can cause dropped acks |
This fix resolves a race condition in which acks for guaranteed messages filtered by the newly introduced message filtering feature can be lost. TALON |
XPLATFORM-1240 - ADM model should not allow two messages with same name in a model |
Added duplicate name check for messages. If multiple messages of same name are defined in a model, Code Generator will report error early (with line number) instead of letting it show at generated code compilation or runtime. ADM |
XPLATFORM-1252 - Startup Expectations DDL overrides do not take effect |
This release fixes a bug in ddl override handling in which the values for engine startup expectations were not being set if the ddl didn't already specify a startupExpectations element. With this fix DDL override for startup expections will now be applied whereas before they may have been ignored. CONFIGURATION TALON |
XPLATFORM-1305 - CommitTransitionLatencies are not reported in Server Heartbeats |
This release fixes a bug in reporting CommitTransitionLatencies in ISrvMonAppEngineStats in Server Heartbeats. Prior to this fix the accessor method was incorrectly named getCommitTransactionLatencies - this release adds a getCommitTransitionLatencies() accessor. The existing getCommitTransactionLatencies() accessor has been deprecated and will no longer be populated. After upgrading to this release, processors of hearbeats should stop using getCommitTransactionLatencies() and switch to using getCommitTransitionLatencies(). Applications must upgrade to this release to correctly emit the CommitTransitionLatency statistic. STATS AND ALERTS |
XPLATFORM-1310 - DDL parser does not parse ICR detachedSend enabled property correctly |
Prior to this release, there was a bug in the DDL XML parser that causes the 'enabled' flag for detached ICR send to not be parsed correctly. This release fixes this issue |
XPLATFORM-1315 - Embedded entity clone methods set unset field values as default in clone. |
This release fixes an issue with embedded entity cloning in which unset primitive fields are set on the clone as there default values. With this fix unset fields will also be unset in the clone ADM |
XPLATFORM-1318 - SrvMonAppExceptionMessage is not set as backing message for AepApplicationExceptionEvent alert |
This release fixes a bug in which the backing SrvMonAppExceptionMessage was not being AepApplicationExceptionEvent alert when running in a Talon Server STATS AND ALERTS TALON |
XPLATFORM-1319 - NullPointerException in discovery if shutdown hook fires before contructor completes |
This release fixes a race condition in discovery shutdown hook that can result in a NullPointerException or an IllegalStateException. DISCOVERY |