Property names
A property name is a character string. Certain restrictions apply to its length and the set of characters that can be used.
A property name is a case-sensitive character string, limited to +4095 characters unless otherwise restricted by the context. This limit is contained in the MQ_MAX_PROPERTY_NAME_LENGTH constant.
If you exceed this maximum length when using a message property MQI call, the call fails with reason code MQRC_PROPERTY_NAME_LENGTH_ERR.
Because there is no maximum property name length in JMS, it is possible for a JMS application to set a valid JMS property name that is not a valid IBM® MQ property name when stored in an MQRFH2 structure.
In this case, when parsed, only the first 4095 characters of the property name are used; the following characters are truncated. This could cause an application using selectors to fail to match a selection string, or to match a string when not expecting to, since more than one property might truncate to the same name. When a property name is truncated, WebSphere®MQ issues an error log message.
All property names must follow the rules defined by the Java Language Specification for Java Identifiers, with the exception that Unicode character U+002E (.) is permitted as part of the name - but not the start. The rules for Java Identifiers equate to those contained in the JMS specification for property names.
White space characters and comparison operators are prohibited. Embedded nulls are allowed in a property name but not recommended. If you use embedded nulls, this prevents the use of the MQVS_NULL_TERMINATED constant when used with the MQCHARV structure to specify variable length strings.
Keep property names simple because applications can select messages based on the property names and the conversion between the character set of the name and of the selector might cause the selection to fail unexpectedly.
mcd
jms
usr
mq
sib
wmq
Root
Body
Properties
A good way to avoid name clashes is to ensure that all applications prefix their message properties with their Internet domain name. For example, if you are developing an application using domain name ourcompany.com
you could name all properties with the prefix com.ourcompany
. This naming convention also allows for easy selection of properties; for example, an application can inquire on all message properties starting com.ourcompany.%
.
See Property name restrictions for further information about the use of property names.