The Talon Manual

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Adding missing default for nv.sma.treatemptykeyasnull

...

PropertyDefaultDescription
nv.sma.maxresolvedkeylength0

Controls the maximum resolved key length for resolved and static message keys.

When set to a length greater than 0 the length of the message key is checked to ensure that the length is not greater this value.

For maximum portability between bindings this property can be set to the lowest value for destination lengths supported amongst the bindings that will be used.

If this property is not set and "nv.sma.validatemessagekey" is set a message bus binding instance should still validate that a resolved message key is not too long. For example the solace binding only supports topics that are 250 characters long and would enforce the resolved topic length as part of key validation.

Note

Prior to version 3.4.373 this property was named nv.sma.maxResolvedKeyLength. This property was changed to be all lowercase for uniformity with other environment property names. The old camelcase property name is still supported for backwards compatibility, but the newer property name takes precendence. It is therefore important for applications that may specify and override this property from multiple locations (e.g. system property and ddl) use the same case everywhere.

nv.sma.cleanmessagekey false

Controls whether or not variable key parts in channel keys are sanitized by replacing any non letter or digit character with an '_' when resolving a variable key.

For example: if the channel key is specified as "/Orders/${Region}" and key resolution is performed using a message that returns a value of "Asia/Pac" for getRegion(), then the resolved key value will be "/Orders/Asia_Pac" rather than "/Orders/Asia/Pac" when this property is set to true.

This property applies to values coming from a key resolution table or via message reflection. 

 

Note

Prior to version 3.4.373 this property was named nv.sma.cleanMessageKey. This property was changed to be all lowercase for uniformity with other environment property names. The old camelcase property name is still supported for backwards compatibility, but the newer property name takes precendence. It is therefore important for applications that may specify and override this property from multiple locations (e.g. system property and ddl) use the same case everywhere.

nv.sma.allowemptykeyfield false

Controls whether or not variable key parts in channel keys may be substituted with an empty String value.

For example: if the channel key is specified as "/Orders/${Region}/${Department}" and key resolution is performed using a message that returns a value of "" for getRegion(), then this property specifies that key resolution should fail when set to false.

This property applies to values coming from a key resolution table or via message reflection. 

(lightbulb) See also nv.sma.treatemptykeyasnull which can be used as more permissive alternative for handling empty string values during key resolution.

Note

Prior to version 3.4.373 this property was named nv.sma.allowEmptyKeyField. This property was changed to be all lowercase for uniformity with other environment property names. The old camelcase property name is still supported for backwards compatibility, but the newer property name takes precendence. It is therefore important for applications that may specify and override this property from multiple locations (e.g. system property and ddl) use the same case everywhere.

nv.sma.treatemptykeyasnull

Anchor
treatemptykeyasnull
treatemptykeyasnull

 false

The XRuntime property controlling whether or not an empty key value is treated as null when resolving message keys.

When this property is set it takes precedence over the value set for "nv.sma.allowemptykeyfield". If a variable key value is resolved from a message or a key resolution table as an empty string it is treated as if the value were not set at all.

Unlike nv.sma.allowemptykeyfield=false, this value allows the key resolution to continue to look for valid values from other sources or the default value configured for the channel key variable, only resulting in an exception if the value can't be resolved at all.

Users should take care when setting this property to true if variable substitution values are expected to be resolved from a field in the message: setting this value to true when there is a default value provided in the channel key itself could mask issues related to message contents not containing valid values.

Status
colourGreen
titleSince 3.8

 nv.sma.validatemessagekey false

Controls whether or not message key validation is done prior to sending a message.

When this property is false calls to MessageChannel.validateResolvedMessageKey(MessageView) will be a no-op. 

...