XPLATFORM-667 - Incremental Code Regeneration
|
The ADM code generator has been enhanced to provide the option of incremental code generation for faster build times. This is the default mode. Source code won't be re-generated on each build unless model XML file or some of its imports changed. Maven plugin(s) can control this through incrementalBuild configuration parameter. To disable new ADM code generator change detection mechanism, useBasicDeltaDetection configuration parameter can be set to true . This feature causes some additional metadata to be written to the generated source folder root to track model changes. |
|
XPLATFORM-893 - Non commit-queue playback of large transactions from the transaction log
|
This release improves playback of large transactions during cluster sync. |
|
XPLATFORM-1223 - General performance improvements in ODS store
|
This release implements the following performance improvements to the ODS store. - Replace the use of read-write locks with lock free concurrency mechanisms.
|
|
XPLATFORM-1298 - Improved facilities for detecting "too late" config initialization
|
This release introduces new diagnostic trace to detect cases where the runtime environment is accessed prior to it being initialized with the full set of platform configuration. This is particularly helpful for customers that use ther own configuration mechanisms to initialize the runtime, because in that scenario it is possible that some platform components may be initialized prior to such configuration being applied. The new diagnostic options must be enabled with the following properties being set as System properties on the process' command line or as environment variables by replacing the '.' with '_'. Property Name | Description |
---|
nv.env.warnonearlyaccess=true | This property allows tracing of access to the runtime environment before it has been initialized. When set to true a warning message will be traced to System.err to flag possible premature access to the environment. This is useful in cases where a component is created and sources configuration before the environment has been fully initialized Property Name: "nv.env.warnonearlyaccess" Default value: false |
| nv.env.dumponearlyaccess=true | This property allows dumping a stack trace on access to the runtime environment before it has been initialized. When set to true a stack dump will be traced to System.err to flag possible premature access to the environment. Property Name: "nv.env.dumponearlyaccess" Default value: false |
| nv.env.warnonreinit=true | This property allows tracing when the runtime environment has been reinitialized. When set to true a warning message will be traced to System.err to flag possible occurences of the environment being inadvertently reinitialized. Property Name: "nv.env.warnonreinit" Default value: false |
| nv.env.dumponreinit=true | This property allows dumping a stack trace when the runtime environment has been reinitialized. When set to true a stack dump will be traced to System.err to flag possible occurences of the environment being inadvertently reinitialized. Property Name: "nv.env.dumponreinit" Default value: false |
|
For the most up to date usage of these constants: See also: UtlConstants Javadoc |
|
XPLATFORM-1316 - Enhance UtlTime to support epoch offset timestamps.
|
This release changes the timestamps returned by UtlTime.now() to represent the number of microseconds since the Epoch (1970-01-01 UTC). This allows such timestamps to be more meaningfully displayed as a date string and allows them to be better compared against System.currentTimeMillis(). As a measure of the number of microseconds from the epoch the timestamp only has millisecond resolution and is based on the resolution supported by System.currentTimeMillis(). The delta timestamp between subsequent calls remains at microsecond level resolution. Returning epoch relative time is controlled by the property nv.time.useepochoffset=true|false. The property can be set to false to disable epoch based timestamps. Compatiblity Notes: UtlTime.now() now returns the the microseconds since the Epoch. In prior releases with native time disabled ... the timestamp was returned as System.nanoTime() / 1000. With this change, this will no longer be the case. |
|
XPLATFORM-1348 - AepEngine should emit AepEngineStoppingEvent before engine is stopped
|
As of this release the AepEngine will not emit an AepEngineStoppingEvent prior to stopping the engine. This adds greater visibility into the engine lifecycle and is also can be used by an application to augment handling of whether channel joins are preserved. See Also: Aep Engine Lifecycle Compatiblity Notes: Applications that declare handlers for IAlertEvent or ILifecycleEvent should consider whether additional processing is required for this event. |
|
XPLATFORM-1356 - Enhance AEP Engine to output whether detached pool washing is enabled
|
Prior to this release, the AEP engine did not output whether detached pool washing is enabled or not in its config trace (i.e. when nv.aep.trace=config). This story adds this additional information to the engine's config trace |
|
XPLATFORM-1357 - Enhance AepEngine config option to provide option to control subscription removal on graceful shutdown.
|
This release adds a new configuration option to an AepEngine to allow the application to control whether channel joins are preserved on shutdown. The engine's default behavior on graceful shutdown is to "leave" channels meaning underlying subscriptions are removed ... this new configuration property allows this behavior to be changed. See: The behavior set for preserveChannelJoinsOnStop can additionally be overridden at runtime by setting a different value on the AepEngineStoppingEvent (See AepEngineStoppingEvent.html.setPreserveChannelJoins).
|
|
XPLATFORM-1367 - Set network link trace level on link descriptor
|
Prior to this release, a user could only set network link trace level at a global level by using X/SLF4J mechanisms to configure the trace/logging level for the nv.network.link logger. This release adds the ability to set the trace level using the "trace" link descriptor parameter. For application cluster replication links, this parameter can be included in the <linkParams> element of the application store's <clustering> element in the X DDL configuration file. For example, the following sets an app's cluster replication link's trace level to config. <storage enabled="true">
<clustering enabled="true">
<linkParams>trace=config</linkParams>
</clustering>
</storage>
|
|
|
XPLATFORM-1368 - Enable network link statistics using link descriptor
|
Prior to this release, a user could only enable network link statistics trace at a global level by setting the nv.link.network.stats.interval parameter to a positive value (indicating the interval at which link stats are output to the nv.link.network.stats logger). This release adds the ability to enable statistics output and set the statistics output frequency using the "statsinterval" link descriptor parameter. Once enabled, the network link will output statistics to the nv.link.network.stats trace logger. For application cluster replication links, this parameter can be included in the <linkParams> element of the application store's <clustering> element in the X DDL configuration file. For example, the following enables and sets an app's cluster replication link's statistics output interval to 1 second. <storage enabled="true">
<clustering enabled="true">
<linkParams>statsinterval=1</linkParams>
</clustering>
</storage>
|
|
|
XPLATFORM-1371 - "warning: dep-ann deprecated item is not annotated with @Deprecated" in ADM generated source
|
This release improves ADM generated source to include @Deprecated annotation in addition to the the javadoc annotations which avoids compiler warnings. |
|
XPLATFORM-1375 - Direct Binding should populate preWireTs and postWireTs when message latency stats are enabled.
|
Prior to this release if the direct binding was not configured with stampiots=true in its descriptor preWireTs and postWireTs would not be populated, this release additionally enables wire timestamp capture when nv.msg.latency.stats=true is enabled making allowing the full set of latency statistics to be computed. |
|
XPLATFORM-1376 - Rationalize UnhandleMessageEventHandling in Direct binding
|
This release enhances the Direct Binding to emit UnhandledMessageEvent to emit UnhandledMessageEvents in the same manner as the platform's other built in bus bindings. |
|
XPLATFORM-1385 - Exception subscribing to solace should show channel name and subscription.
|
This release improves the Solace binding to append channel and topic name to exceptions related to subscribe and unsubscribe operations to make issue easier to diagnose. |
|
XPLATFORM-1406 - Provide javadoc for com.neeve.util
|
This release provides javadoc for the com.neeve.util package which contains some utilities that are pertinent to the end user. Not all apis in the util package are intended for use by end users, so users should check the class level javadoc to check if APIs are supported prior to using them. |
|
XPLATFORM-1410 - Separate create and open of a discovery cache
|
Prior to this release, the act of instantiating a discovery cache automatically opened the cache too. This prevented the use case where a user could create and open a cache and just tap into the event stream to obtain the full, lossless picture of what is happening in the cache. This is because event handlers could only be created after the creation of the cache which was too late since events could start streaming in immediately after create completes. This release provides a mechanism by which the user can decouples the creation and opening of the cache to allow the act of create->addEventHandler->open to get all events happening on the cache without loss |
|
XPLATFORM-1411 - Support entity creation before addition to the discovery cache
|
Prior to this release, a user of a discovery cache could only get the entity added to the cache after the addition is complete. There are situations where a user would like to know the entity before addition to the cache. To support this requirement, this release implements the create() method that creates a new DiscoveryEntity and a add() that accepts discovery entity for addition. This allows for a user to get a reference to the entity before it is added to the cache |
|
XPLATFORM-1412 - Discontinue support for ODS store auto open
|
Prior to this release, the ODS store automatically opened the store during creation and provided a flag to override that behavior. This release discontinues support for this flag and, by default, does not open the store during create. This means that direct users of the store API must create the store and then explicitly open it |
|
XPLATFORM-1417 - Enhance discovery cache to return "JVM shutting down" exception when calls made during JVM shutdown
|
Prior to this release, the discovery cache returned IllegalStateException if a method is invoked on a closed closed cache. During JVM shutdown, it is possible for the JVM shutdown hook thread to close the cache while other threads are concurrently accessing the cache. The other threads do not expect the cache to be closed and so the IllegalStateException results in an ugly stack trace. This occurs particularly in the ODS store when JVM shutdown occurs while store membership changes are in progress. This release adds a new exception to the discovery cache - EDiscoveryJVMShuttingDownException - that the store traps and ignore thus eliminating the stack traces. |
|
XPLATFORM-1430 - Unsubscribing from a loopback bus channel doesn't remove messages.
|
This release enhanced the loopback bus binding to ensure that message queued for a client are removed when a loopback channel is left and later rejoined. Prior to this release it was possible for messages queued prior to leaving the channel would be redelivered on subsequent rejoin. |
|
XPLATFORM-1432 - Create diagnostic log on transaction log corruption
|
This release enhances the transaction log to create a diagnostic dump to a temporary file when corruption is detected. This file can be used by Neeve support to diagnose issue related to transaction log corruption. ...Corrupted packet dump written to /temp/PktLogCorruption7801847786289107932.dump
Failed to open '/usr/local/myapp/rdat/myapp': 8
...***** Recovery log 'C:\temp\XPLATFORM-1428\rdat\market.log' is corrupt [com.neeve.pkt.log.EPktLogCorruptException: 8].
...***** ...[preamble=[ver=1 checkpoints=0], recoverableEntries=9909, recoverableLength=4111137]
|
Note: This dump will be emitted even in cases where transaction log corruption can be repaired by setting repair flag on the transaction log being opened. In many cases such 'corruption' is harmless: there is always the chance that an ungraceful shutdown of an engine will leave partially written records at the end of a transaction log which is not a cause for concern for a properly configured application. |
|