Deprecation of NMS in Jboss version 7

Latest response

Hi, I have a question about the meaning of the word "deprecated". In the release notes for Jboss 7, it says the NMS client is deprecated and we are encouraged to use an AMQP client as a replacement for NMS on the .Net side of things.

However, we have a large number of apps that use the NMS client and are wondering if we can expect them to work against version 7 on a short term basis until we can migrate them one at a time to AMQP.

While testing Jboss 7 I am finding that NMS is not working very well for me and perhaps some new internal code related to the openwire protocol may be at fault. Below is an error and callstack I keep seeing in the logs on the broker. I get it when connecting from an 6.2 NMS client ("jboss-a-mq-nms-6.2.0.redhat-138")

The broker is Red Hat JBoss AMQ 7.0.2.GA running on Windows.

-------here is the error in broker logs--------
01:31:30,439 WARN [org.apache.activemq.artemis.core.server] Error during message dispatch: java.io.UTFDataFormatException: bad string
at org.apache.activemq.util.DataByteArrayInputStream.readUTF(DataByteArrayInputStream.java:263) [activemq-client-5.11.0.redhat-630262.jar:5.11.0.redhat-630262]
at org.apache.activemq.openwire.v10.BaseDataStreamMarshaller.looseUnmarshalString(BaseDataStreamMarshaller.java:571) [activemq-client-5.11.0.redhat-630262.jar:5.11.0.redhat-630262]
at org.apache.activemq.openwire.v10.MessageIdMarshaller.looseUnmarshal(MessageIdMarshaller.java:122) [activemq-client-5.11.0.redhat-630262.jar:5.11.0.redhat-630262]
at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:357) [activemq-client-5.11.0.redhat-630262.jar:5.11.0.redhat-630262]
at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:194) [activemq-client-5.11.0.redhat-630262.jar:5.11.0.redhat-630262]
at org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.toAMQMessage(OpenWireMessageConverter.java:716) [artemis-openwire-protocol-2.0.0.amq-700011-redhat-1.jar:]
at org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.createMessageDispatch(OpenWireMessageConverter.java:427) [artemis-openwire-protocol-2.0.0.amq-700011-redhat-1.jar:]
at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQConsumer.handleDeliver(AMQConsumer.java:224) [artemis-openwire-protocol-2.0.0.amq-700011-redhat-1.jar:]
at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.sendMessage(AMQSession.java:250) [artemis-openwire-protocol-2.0.0.amq-700011-redhat-1.jar:]

at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1080) [artemis-server-2.0.0.amq-700011-redhat-1.jar:2.0.0.amq-700011-redhat-1]

... please check the stuff that refers to "OpenWireMessageConverter.toAMQMessage"
...
ultimately this makes use of a "readUTF" method and fails with
UTFDataFormatException: bad string

This has happend with several different types of message bodies. I've rewritten my NMS consumer several ways and the problem won't go away. If I write a small sample AMQP client and get the same message from the broker I have no problems.

Thanks in advance for any guidance.

Responses