X Platform Documentation Portal

Release Notes

X Platform Documentation Portal

Skip to end of metadata
Go to start of metadata

Release Date: Tuesday, July 04, 2017

Release Highlights

This is the first milestone release of 3.7. It includes patches rolled forward from 3.6 along with new features improvements and bug fixes.

 

Change Log

New Feature

XPLATFORM-1058 - Add Message Type latency stats to server heartbeats.

This release provides the ability to include message type latency stats in xvm heartbeats. To include message type latency stats in hearbeats the stats must be enabled for the corresponding app and the server must be configured to emit them:

 

See the DDL Schema Reference for more information

STATS AND ALERTS
TALON

XPLATFORM-1295 - Subscription sanitation feature

When using dynamic substitution for channel keys, we will replace non digit or letter characters with an '_' when resolving a topic using substitution values at runtime if nv.sma.cleanmessagekey == true. Prior to 3.7 X would not perform the same substitution on the subscribe side, which could lead to channels being subscribed to incorrect topics. As of 3.7, this substitution is also performed on the subscribe side by default if nv.sma.cleanmessagekey == true.
Compatibility Notes:

 

This change will replace non letter and digit characters in channel keys when 'nv.sma.cleanmessagekey=true'. To preserve the old behavior set 'nv.sma.cleanchannelfilter=false'

SMA
TALON

XPLATFORM-1451 - Implement AEP option to ack on store commit.

 

This release introduces a new InboundEventAcknowledgementPolicy that allows configuring an AepEngine to acknowledge inbound messages after store commit instead of the default behavior of acknowledging received messages when all outbound messages have been acknowledged. Using a policy of OnStoreStability enables acknowledge on store commit and can improve pipelining throughput for window based messages providers such as Solace by decreasing the upstream acknowledgement time.

See DDL Config Reference for more information

AEP
SMA

XPLATFORM-1515 - Allow messages sync() to be done by AepEngine at injection time

This release adds the ability to configure an AepEngine such that it calls MessageView.sync() on injected messages. This feature can save the AepEngine cpu cycles in cases where serializes the message for logging or replications.

See DDL Config Reference for additional details.

AEP

XPLATFORM-1527 - Add check for Orphan Subscriptions in Solace JNI Binding

This release ads the ability to enable solace binding orphan subscription checks introduced in 3.5 for JCSMP in the JNI binding.

See The Solace Binding documentation for more details.
Compatibility Notes:

 

When using JNI is it critical that you have the most up to date version of the nvx-native runtime (3.6.11).

SOLACE BINDING

XPLATFORM-1591 - Capture wait times in thread stats

 

This release can now report the wait time in nanoseconds that threads spent waiting to do work. In this release wait times are reported for threads waiting for events passed through a disruptor. Monitoring tools can use the wait time to determine the amount of time in a sampling interval a thread has done no productive work which is a good indicator of its excess processing capacity.

Wait times are reported in heartbeats as part of SrvMonSysIndividualThreadStats and can also be traced by enabling trace in DDL:

<servers>
  <server name="my-xvm">
    <heartbeats enabled="true" interval="5">
      <collectIndividualThreadStats>true</collectIndividualThreadStats>
      <tracing enabled="true">
        <traceThreadStats>true</traceThreadStats>
      </tracing>
    </heartbeats>
  </server>
</server>
[Thread Stats]
ID    CPU       DCPU    DUSER   CPU%  USER% WAIT% STATE           NAME
42    9.0m      10.3s   10.2s   100   99    90    RUNNABLE        X-STEMux-myapp-2 (aff=[2(s0c2t0)])

Where the above shows that the the my app event multiplexer is consuming 100% cpu, but 90% of that is spent spinning in a busy spin.

See SrvMonSysIndividualThreadStats Javadoc

STATS AND ALERTS

XPLATFORM-1628 - Create getXXXTo(EmbeddedEntity) copying accessor

This release adds copying accessors for embedded entities to ADM generated messages and entities of the form getXXXTo(Entity target), and also creates copy() and copyInto(Entity target) methods on generated entities.

In Xbuf and Protobuf generated code the copy() operations preserve pass-through field value for received entities that have not been modified (a pass-through field is a field not defined in the generated code, but encoded on the wire by a sender). Additionally, in Xbuf generated code the copy is zero garbage.

Prior to this change applications could:

  • use the clone() method to copy an embedded entity in a zero garbage fashion, but does not preserve pass-through fields.
    or
  • use EmbeddedEntity.deserializeFrom(other.serializeToByteBuffer()); which preserves pass-through fields, but is not zero garbage.

The new copy() methods provide a way to do a pass-through field preserving copy that is also zero garbage.

See Xbuf Embedded Entities

ADM
MESSAGE LIBRARY

XPLATFORM-1630 - Allow control over the initial backing buffer size for embedded Xbuf fields

This release provides the ability to globally configure the initial backing buffers size for embedded xbuf entities by setting the property:

nv.xbuf.fullyQualifiedClassName.initialbackingbuffersize

For example:

System Property

or in DDL

DDL

To take advantage of this functionality code regeneration is required. When not configured, the default backing buffer size of 256 bytes will continue to be used.

ADM
MESSAGE LIBRARY

XPLATFORM-1641 - Implement TransactionLogTool query based transaction repair.

This release adds a new rewrite command to the TransactionLogTool which writes the contents of a query into new transaction logs. This command can be used to remove 'poison' transaction log entries to allow recovery in situations where the removal of the event doesn't affect recoverability of subsequent entries.

See Transaction Log Tool Command Usage

TALON
TOOLS

XPLATFORM-1647 - Add autoStopOnLastAppStop as a server config element in DDL.

This release adds the ability to configure the nv.server.autostop.onlastappstop using the new autoStopOnLastAppStop element in DDL.

See DDL Schema Reference

CONFIGURATION
TALON SERVER

XPLATFORM-1650 - Add XVM admin command for triggering a thread dump

This story adds the ability to trigger a thread dump via a talon admin command (available through lumino or robin admin clients).

TALON SERVER

XPLATFORM-1651 - Add XVM admin command for triggering garbage collection

This story adds the ability to trigger garbage collection via a talon admin command (available through lumino or robin admin clients).

TALON SERVER

XPLATFORM-1657 - Add adminClientOutputQueueCapacity as a server config element in DDL

This release adds the ability to configure nv.server.adminclient.outputqueue.capacity via an adminClientOutputQueueCapacity element on the server in DDL.

See

DDL Config Reference 

CONFIGURATION

XPLATFORM-1662 - Add MessageBusBindingFailPolicy to DDL

This release makes the MessageBusBindingFailPolicy a DDL configurable option. See the DDL Reference

CONFIGURATION

XPLATFORM-1663 - Add MessagingStartFailPolicy to DDL

This release makes the MessagingStartFailPolicy a DDL configurable option. See the DDL Reference

CONFIGURATION

XPLATFORM-1742 - Implement ability to configure pools from DDL environment

This release provides experimental support for configuring pools at runtime via the environment or DDL config.

This can be achieved by setting properties of the form "nv.pool.<poolKey>.propertyName" where

poolKey is:
the name of the pool as reported in pool stats without the trailing pool ".<instanceId>" suffix.

propertyName is one of the bean properties on UtlPool.Params:

  • initialCapacity
  • maxCapacity
  • threaded
  • preallocate
  • detachedWash

For example, pool stats may show stats for the packet backing an XBuf generated message as "packet.MyMessageXbufPacket.71.1.216". The key to use for the pool would thus be "packet.MyMessageXbufPacket.71.1", and the pool could be configured for preallocation in DDL as:

HUMMINGBIRD

XPLATFORM-1743 - Implement ability to configure Xbuf pool parameters at runtime

This release introduced the ability to configure pools for xbuf generated messages and entities at runtime in the same way that initial backing buffer sizes can be configured (introduced in 3.5)

Pooling parameters for Xbuf can be configured as environment properties using nv.xbuf.<fullyqualifiedobjectname>.pool.<propertyName> where:

*propertyName* is one of the bean properties on UtlPool.Params:

  • initialCapacity
  • maxCapacity
  • threaded
  • preallocate
  • detachedWash

For example:

or in the DDL environment section:

Runtime configuration done for xbuf pools takes lower precedence than the general pool configuration mechanism introduced in XPLATFORM-1742. The primary motivation for allow Xbuf pools to be configured in the above fashion

XBUF

Improvement

XPLATFORM-1159 - Set more meaninful name for solace producer session threads.

This release provides better names for threads created by the solace API. The solace api doesn't provide a mechanism for specifying meaningful thread names. In previous releases the Neeve Solace binding would append "X-SMA-<busname>IN" to the solace reactor thread on receipt of the first message. This release now also sets appends "X-SMA<busname>-OUT" on receipt of the first ack to provide a more meaningful name to the producer session thread.

SOLACE BINDING

XPLATFORM-1234 - Allow configuration of Xbuf desync policies

This release allows global configuration of xbuf generated types desync policy. The desync policy can now be globally configured via:

nv.xbuf.default.desyncpolicy=Copy

or on a type by type basis via:

nv.xbuf.typename.desyncpolicy=FrameFields

for example in DDL one might set:

Where the valid values are one of Copy, FrameFields or FrameContainer.

This release also removes the restriction against calling getXXXUnsafe() for String fields when FrameFields is the desync policy which makes it possible to use FrameFields when application code uses Unsafe accessors.

ADM
CONFIGURATION
MESSAGE LIBRARY
XBUF

XPLATFORM-1644 - Change Solace binding to treat 0 length queue name as null

This release allows specifying a blank (empty string or whitespace) 'queue_name' solace bus descriptor property. When a blank value is provided it is interpreted to mean that a queue should not be used.

This is useful in situations in which a default queue name property is specified for a bus via DDL config, and one would like to override the binding not to use a queue.

XPLATFORM-1654 - Add displayName attribute to Command, Argument,Option and RemainingArgs annotations

This release adds the ability to set displayName on the Command, Argument, Option and RemainingArgs annotations. Specifying a display name allows for a better presentation in UI tools such as Lumino

TALON SERVER

XPLATFORM-1676 - Enhance heartbeat thread stats to include affinitization and interval cpu usage

This release changes the XVM server stats thread to populate the heartbeat fields for individual thread stats with cpu usage, user mode cpu usage, affinitization information and the collection time in nanoseconds. These stats can be used by monitoring tools to determine the number of cycles the thread used in a sampling interval and can help to diagnose problems cpu affinitization configuration.

See SrvMonSysIndividualThreadStats Javadoc

STATS AND ALERTS

XPLATFORM-1683 - Implement solace config parameter controlling SMA metadata version

This release provides the ability to set the property 'sma_metadata_version' on solace binding bus descriptors. This property can be used to control the version of the metadata to tag on the message. The solace binding currently defaults to metadata version 1, which does not include the transmitted message's type id. Setting it uses the current metadata version which does include the type id, but the metadata version used must be supported by all downstream receivers that deserialize it.

SOLACE BINDING

XPLATFORM-1688 - Unchecked exception preparing UnhandledMessageEvent should be caught

This release improves error handling in the Solace binding to handle the case where there is an issue contructing an UnhandledMessageEvent. With this change:

  • If there is an error preparing the UME or enqueuing it for the engine to process,
    the binding now catches the exception and traces the error.
  • The binding is closed based on the value of failOnUnhandledMessageEvents

    SMA
    SOLACE BINDING

XPLATFORM-1700 - Deprecate IOBuffer.getBuffer() in favor of IOBuffer.takeBuffer()/releaseBuffer()

XPLATFORM-1702 - Add IOElasticBuffer.getTo(..,IOBuffer,...)

This release adds the IOElasticBuffer.getTo(index, IOBuffer, bufferOffset, length) method to copy data from an IOElasticBuffer to an IOBuffer

XPLATFORM-1705 - Enforce RogLog cannot be opened after closed

Prior to this release, the RogLog did not validate that the open-close-open sequence is not permitted on a log. This release adds that validation. From this release onwards, if one opens, closes and then tries to open a log again, it will throw an IllegalStateException

XPLATFORM-1712 - Enhance Transaction Log Tool to surface objects in Remove entries.

XPLATFORM-1010 changed the store transaction log to include the serialized object being removed in Remove entries. This changes the TransactionLogTool and RogLog to surface the removed store objects in RogLog.Entry making the object content available for query.

TALON
TOOLS

XPLATFORM-1729 - Add ability to set compaction window size in TLT

The release provides the capability to set the compaction window size when using the transaction log tool's 'compact' command.

TOOLS

XPLATFORM-1737 - XVM heartbeat logger should not be auto optimized to busy spin.

This release disables auto optimization of an XVM's binary heartbeat logger so that it doesn't busy spin when nv.optimizefor is latency or throughput.

STATS AND ALERTS

XPLATFORM-1745 - Report pools stats in heartbeats on evicts or the size hits a new high water mark

This release changes server heartbeats to include pool stats for a pool if size highwater mark has changed or if there are evicts in a given interval.

  • The size high water mark shows the most number of elements returned to the pool without being taken for use. Knowing the maximum size is useful in inferring whether pool MISSES that are not balanced by subsequent PUTs are the result of leaks.
  • Reporting evictions is useful in determining if a pools max capacity may be size too low.

    STATS AND ALERTS
    TALON

XPLATFORM-1747 - Xbuf generated ADM messages should clear entity references on dispose

Prior to this release, when an Xbuf generated Message or Entity which has embedded entity array fields is disposed, it calls dispose on any of the embedded entity fields it contains so that they are returned to pools and eligible for use by other messages. However, the backing data structures in the message may still contain references to the disposed entities which may not be cleared until the disposed message is next revived from its pool which means that the embedded entities are not eligible for garbage collection.

In general this is not a problem since the embedded entities are themselves pooled and as such aren't eligible for garbage collection, but in cases where the embedded entity is configured not to pool or is with a pool max capacity configured to cause it to be evicted on return to its pool, this can be an issue.

Therefore this release clears references for embedded entities as well.

ADM
XBUF

Change

 

XPLATFORM-1629 - Enhance Xbuf entity clone() to preserve pass-through fields.

This release changes the ADM generated clone() method for embedded entities and messages to preserve pass through fields by leveraging the new embedded entity copy() functionality introduced in 3.5.
Compatibility Notes:

 

This change required a bump in the ADM compatibility level from 3.4.1 to 3.5.0. Generated code with the version will not be compatible with earlier versions of the platform (or with code generated by earlier versions of the platform).

ADM
MESSAGE LIBRARY

XPLATFORM-1660 - Prevent usage of adaptive commit and replicate in parallel simulatenously

Usage of both adaptive transaction commit and parallel cluster replication is not supported. This release enforces this by disabling parallel cluster replication if an adaptive commit batch size is specified for the engine.

AEP

XPLATFORM-1666 - Change solace binding 'sender_cpu_affinity_mask' to 'detached_sends_cpu_affinity_mask'

This release changes changes the solace binding property for the detached sender cpu affinity mask from 'sender_cpu_affinity_mask' to 'detached_sends_cpu_affinity_mask' so that is is more consistent with the the other 'detached_sends_*' binding properties.

The old property is still honored when specified.

See SolaceBindingProperties javadoc
Compatibility Notes:

 

Applications are encouraged to update the solace binding property for the detached sender cpu affinity mask from ''sender_cpu_affinity_mask' to 'detached_sends_cpu_affinity_mask'

SOLACE BINDING

XPLATFORM-1672 - Disallow environment provider registration when replicateInParallel is enabled

 

This changes modifies the AepEngine.registerEnvironmentProvider to throw an IllegalStateException if the engine is configured for parallel cluster replication. Parallel cluster replication cannot be used with environment providers because business logic must be executed to collect the environment data before replicating.

AEP

XPLATFORM-1685 - Make sparse population optimization the default for Xbuf

This release changes the code generation for Xbuf messages and entities to use the SPARSE_CONTENT optimization hint by default.

When this optimization is enabled the sync/desync code paths for the generated type uses a loop to loop through the type's fields syncing or desyncing generically. When the optimization is not enabled custom generated methods for sync/desync are used. Recent testing has shown that in recent JVMs that the generated methods can actually perform worse which has motivated this change.

This release also implements the ability to configure the optimization value globally by setting the XRuntime property:

nv.xbuf.default.optimizationhints=SparseContent|SparseInterest

... or on a type by type basis with:

nv.xbuf.<classname>.optimizationhints=None

where the optimizations hints are specified as a '|' delimited set of the values None, SparseInterest, and SparseContent.

Compatibility Notes:

 

To leverage the new optimization defaults, code regeneration is required. The newly generated code won't be compatible with older releases as it relies on new platform apis.

This change also removes the constants SPARSE_CONTENT and SPARSE_INTEREST from the generated types. The constants can now be found in com.neeve.xbuf.XbufOptimizations

ADM
CONFIGURATION
XBUF

XPLATFORM-1697 - Failure to get subscription over SEMP should throw exception on binding start.

 

This release changes the Solace binding to treat a failure to get subscriptions during subscription validation as a bus binding open failure that prevents an application from starting up. Prior to this change a failure to fetch subscriptions from the appliance would result in an exception being logged and bus binding open to continue successfully.

SOLACE BINDING

XPLATFORM-1704 - Channel join failure in an AepEngine should be treated as a failure rather than a warning

This release changes the AepEngine to treat a failure to join a channel as a bus binding open failure. Prior to this change if a subscription could not be issued the AepEngine would log an exception and continue, allow the bus to be opened with potentially missing subscriptions.
Compatibility Notes:

 

This change may result in applications that used to successful start with missing to subscription to no longer startup.

SMA

XPLATFORM-1713 - "cannot find object to remove" error should be treated as non fatal store integrity failure

 

Prior to this change a failure to find an entity in the store when processing a replicated or recovered Remove event for an application using State Replication was treated as a fatal error. This release changes the store not to treat this as a fatal error.

ODS

|

Bug

XPLATFORM-1635 - Transaction batch not closed because of EventMultiplexer wakeup event

This fix resolves an issue in which the scheduling events into an Aep Engine's input multiplexer queue can result in adaptively batched transactions not being closed if no new message events are received.

AEP

XPLATFORM-1649 - White space in returned app commands should not be trimmed.

The release fixes an issue in which app commands that returned String values had their contents trimmed of leading and trailing whitespace.
Compatibility Notes:

 

This release change command invocation not to strip whitespace from returned string values. This could have an impact on robin scripts that use the 'wait' or 'validate' commands.

TALON SERVER

XPLATFORM-1655 - Command annotation aliases are ignored by xvm

 

Prior to this release the XVM was ignoring aliases provided on @Command annotated methods. With this fix, commands can now be invoked using their aliases,

TALON SERVER

XPLATFORM-1667 - High memory usage / pool leaks when intializaing backup member with Xbuf messages containing a large number of embdedded entity fields.

This release fixes an issue in which Xbuf embedded entities were not being disposed when initializing a backup member from a primary member's transaction log.

Failing to dispose the entities during initialization can cause a lot of allocations to occur which can lead to significant garbage collection pauses.

XBUF

XPLATFORM-1670 - Normalize solace binding boolean properties to accept 1/true or 0/false

This release allows specifying boolean solace bus descriptor properties in either the JCMSP true/false format or the JNI 1/0 formats. The solace binding will now rationalize them appropriately depending on the value of the use_jni property.

CONFIGURATION
SOLACE BINDING

XPLATFORM-1674 - "source and dest buffers offsets and copy length must be >= 0" seen in solace binding

This release fixes an issue in the Solace binding that can occur when detached dispatched is enabled. Prior to this fix, with detached dispatch enabled, it was possible that the the solace reactor thread would dispose the topic it dispatched to the detached dispatch thread before the detached dispatch thread copied it into the channel key field of the message being dispatched to the application.

HUMMINGBIRD
SOLACE BINDING

XPLATFORM-1677 - AepEngine's auto created direct bus binding creates a spinning core.

Prior to this release, An AepEngines would automatically creates a direct bus binding with the same name as the application to avoid the need for boilerplate configuration. However when optimized for latency, this caused a bus manager with a BusySpin thread to be created which ties up an additional core.

Consequently, with this release auto creation of a direct binding has been disabled unless the runtime property nv.aep.autocreatedirectbus=true.

(lightbulb) Note that this change has no effect on applications that explicitly create a bus with the same name as the application.

AEP

XPLATFORM-1686 - UnhandledMessageEvent + source and dest buffers offsets and copy length must be >= 0

This release fixes the following exception in the solace binding when usejni=true&set_key_on_receipt=true&detached_dispatch=true

java.lang.IllegalArgumentException: source and dest buffers offsets and copy length must be >= 0
	at com.neeve.util.UtlBuffer.copy(UtlBuffer.java:377)
	at com.neeve.io.IOElasticBuffer.putFrom(IOElasticBuffer.java:900)
	at com.neeve.lang.XString.copyInto(XString.java:1603)
	at com.neeve.rog.impl.RogDirectMetadata.setMessageKeyAsRaw(RogDirectMetadata.java:875)
	at com.neeve.rog.impl.RogNode.setMessageKeyAsRaw(RogNode.java:341)
	at com.neeve.sma.impl.MessageBusBindingBase.wrap(MessageBusBindingBase.java:446)
	at com.neeve.sma.impl.MessageChannelBase.onMessage(MessageChannelBase.java:656)
	at com.neeve.solace.SolaceMessageChannel.onMessage(SolaceMessageChannel.java:221)
	at com.neeve.solace.SolaceMessageBusBinding.dispatchMessage(SolaceMessageBusBinding.java:306)

Prior to this release it was possible that with detached dispatch enabled in the binding that the solace reactor thread would dispose the received topic prior to it be in copied into the message by the detached dispatch thread.

SOLACE BINDING

XPLATFORM-1689 - Empty string dest pointer in solClient_msg_setDestination seen in solace JNI binding

This release resolves a bug in the solace JNI binding in which the jni portion of the binding can overwrite another memory location with a NUL (0x00) character.

This would occur when the solace JNI binding appends a NUL character at the end of topic string with a backing buffer size of exactly the topic length – in such a case the null character could overflow into the beginning of an adjacent memory buffer.

SMA
SOLACE BINDING

XPLATFORM-1706 - PreprocessingTs missing when reading 3.4 transaction log with 3.5 binaries

This release fixes a bug in which preProcessingTs is not read when reading transaction logs created with version 3.4 or earlier.

In the Talon version 3.5 the transaction log metadata serialization version was changed from 2 to 3. When a v2 version of the transaction log is read by 3.5 the metadata is converted to the v3, but this conversion was not reading the preprocessingTs field.

TALON
TOOLS

XPLATFORM-1707 - XString.charAt can return wrong value

Fixes a bug with XString when it is initialized from a java String and charAt is called prior to the java String being sync'd into its backing buffer. Prior to this fix charAt would return an incorrect value.

HUMMINGBIRD

XPLATFORM-1708 - AEP Engine throws NPE when primary environment provider returns null on recording end (no data recorded)

Prior to this release, AEP Engine threw an NPE when a primary environment provider returned null on recording end i.e. if no data was recorded. This release fixes that issue.

XPLATFORM-1710 - SIGSEGV JVM crash in solace JNI binding after error in send call.

This release fixes the following JVM crash in the Solace JNI binding related to freeing message memory after encountering a solace error code in send.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f2288309512, pid=18855, tid=139786289620736
#
# JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libsolclient.so.1+0xd6512]<1,18855,perf4.neeveresearch.com> 20170522-19:27:25:022 (dbg)...[MsgChannel<sender.default@nvx-perf-sma(Solace)>]  closing channel [state=Open, flags=0]
  solClient_msg_free+0x12
#
# Core dump written. Default location: /home/root/work/nvx-perf-3.7-SNAPSHOT/core or core.18855
#
&lt;1,18855,perf4.neeveresearch.com> 20170522-19:27:25:022 (dbg)...[MsgChannel<sender.default@nvx-perf-sma(Solace)&gt;]  leaving channel
# An error report file with more information is saved as:
# /home/root/work/nvx-perf-3.7-SNAPSHOT/hs_err_pid18855.log
&lt;1,18855,perf4.neeveresearch.com> 20170522-19:27:25:022 (dbg)...[MsgChannel<sender.default@nvx-perf-sma(Solace)&gt;] Closing channel...
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
./xperftool.sh

This fix requires picking up the latest native libraries 3.5.19

SOLACE BINDING

XPLATFORM-1711 - JsonMappingException: Incompatible ODS class: Unknown message view encoding: -1 (through reference chain: com.neeve.rog.log.Entry"contentEncodingType")

This release fixes an TLT issue that occur when dumping Remove entries from a State Replication log that resulted in the an exception like the following:

java.lang.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException: Incompatible ODS class: Unknown message view encoding: -1 (through reference chain: com.neeve.rog.log.Entry["contentEncodingType"])
        at com.neeve.rog.log.RogLogUtil.dumpLogEntryJson(RogLogUtil.java:1403)
        at com.neeve.tools.TransactionLogTool.writeEntry(TransactionLogTool.java:2988)
        at com.neeve.tools.TransactionLogTool.writeEntry(TransactionLogTool.java:2978)
        at com.neeve.tools.TransactionLogTool.access$700(TransactionLogTool.java:93)
        at com.neeve.tools.TransactionLogTool$Next.execute(TransactionLogTool.java:270)
TOOLS

XPLATFORM-1739 - Cstart and tleg1 transaction stats are incorrect.

This release fixes a regression in the cstart and tleg1 transaction latency stats that could cause them to report time spent waiting in the engine's input disruptor.

STATS AND ALERTS
TALON

XPLATFORM-1741 - Solace discovery descriptor with embedded protocol results in exception

This release fixes a bug in discovery over SMA in which a discovery descriptor containing slashes in the address portion (e.g. solace://tcp://solacehost:55555) results in the error "bus name cannot contain '/'"

DISCOVERY
SOLACE BINDING
  • No labels