Yes, the error message is coming out in the ActiveMQ console window.

In the C++ module that sends a message into ActiveMQ we are using:

void MQProducer::sendMessage(const std::string &gameMessage, const
std::string& tag)
{
   std::auto_ptr<TextMessage>
message(session->createTextMessage(gameMessage));
   message->setStringProperty("JMSXGroupID", tag);
   m_Logger.messageSent(gameMessage);
   producer->send(message.get());
}



tabish121 wrote:
> 
> You are going to need provide a little more information than this.  What
> are you doing in the C++ code.  Can you provide a sample app that
> demonstrates the problem?
> 
> I assume that this is coming out in the ActiveMQ console window, not
> from the c++ client as a BrokerError?  
> 
> Regards
> Tim.
> 
> On Wed, 2007-11-14 at 10:39 -0800, JohnOldman wrote:
>> Hi
>> 
>> Running SUSE 10.2 using CMS 2.1.1 with ActiveMQ 4.1 and stomp.
>> 
>> Set up is one producer and two consumers (for failover).
>> 
>> We have set JMSXGroupID in the producer, to make failover work, so only
>> one
>> consumer consumes.
>> 
>> And on receiving messages the producer dumps the following errors:
>> 
>> <-----snip----->
>> WARN  QueueSubscription              - Failed to set boolean header:
>> javax.jms.MessageNotWriteableException: Message properties are read-only
>> javax.jms.MessageNotWriteableException: Message properties are read-only
>>         at
>> org.apache.activemq.command.ActiveMQMessage.checkReadOnlyProperties(ActiveMQMessage.java:568)
>>         at
>> org.apache.activemq.command.ActiveMQMessage.setObjectProperty(ActiveMQMessage.java:382)
>>         at
>> org.apache.activemq.command.ActiveMQMessage.setBooleanProperty(ActiveMQMessage.java:534)
>>         at
>> org.apache.activemq.broker.region.QueueSubscription.assignGroupToMe(QueueSubscription.java:134)
>>         at
>> org.apache.activemq.broker.region.QueueSubscription.canDispatch(QueueSubscription.java:101)
>>         at
>> org.apache.activemq.broker.region.PrefetchSubscription.dispatch(PrefetchSubscription.java:383)
>>         at
>> org.apache.activemq.broker.region.QueueSubscription.dispatch(QueueSubscription.java:172)
>>         at
>> org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:129)
>>         at
>> org.apache.activemq.broker.region.policy.RoundRobinDispatchPolicy.dispatch(RoundRobinDispatchPolicy.java:58)
>>         at
>> org.apache.activemq.broker.region.Queue.dispatch(Queue.java:520)
>>         at
>> org.apache.activemq.broker.region.Queue.sendMessage(Queue.java:346)
>>         at org.apache.activemq.broker.region.Queue.send(Queue.java:326)
>>         at
>> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:292)
>>         at
>> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:382)
>>         at
>> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193)
>>         atvoid MQProducer::sendMessage(const std::string &gameMessage,
>> const std::string& tag)
> {
>    std::auto_ptr<TextMessage>
> message(session->createTextMessage(gameMessage));
>    message->setStringProperty("JMSXGroupID", tag);
>    m_Logger.messageSent(gameMessage);
>    producer->send(message.get());
> }
> 
>> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126)
>>         at
>> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98)
>>         at
>> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:136)
>>         at
>> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:498)
>>         at
>> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:604)
>>         at
>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)
>>         at
>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
>>         at
>> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
>>         at
>> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
>>         at
>> org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:81)
>>         at
>> org.apache.activemq.transport.stomp.ProtocolConverter.sendToActiveMQ(ProtocolConverter.java:119)
>>         at
>> org.apache.activemq.transport.stomp.ProtocolConverter.onStompSend(ProtocolConverter.java:204)
>>         at
>> org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommad(ProtocolConverter.java:139)
>>         at
>> org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:71)
>>         at
>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
>>         at
>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
>>         at java.lang.Thread.run(Thread.java:619)
>> <-----snip----->
>> 
>> 
>> I understand that properties are read only - is the CMS violating this? 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Possible-Bug%3A-CMS-%22MessageNotWriteableException%22-tf4807167s2354.html#a13754001
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to