would someone be kind enough to have a quick look at this code to see if it
could cause problems? The method returns a reusable connection so the user of
the class doesn't have to connect/disconnect on every message. The first
message never fails, it's always when reusing the connection that random
messages disappear.
thanks,
Alistair
try {
// Try to reuse a previous connection
if (previousMxConnection == null) {
ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(brokerURL);
connection = connectionFactory.createConnection();
connection.setClientID(clientId);
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
destination = session.createTopic(topicName);
producer = session.createProducer(destination);
producer.setDeliveryMode(messageMode);
mxConnection = new MatrixConnection();
mxConnection.connection = connection;
mxConnection.session = session;
mxConnection.destination = destination;
mxConnection.producer = producer;
}
else {
session = previousMxConnection.session;
if (previousMxConnection.producer == null) {
producer = session.createProducer(previousMxConnection.destination);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
previousMxConnection.producer = producer;
}
else {
producer = previousMxConnection.producer;
}
mxConnection = previousMxConnection;
}
TextMessage message = session.createTextMessage(messageText);
producer.send(message);
return mxConnection;
}
catch(Exception e) {
throw new MatrixClientException(e);
}
}
--
mov eax,1
mov ebx,0
int 80h
On 22 Sep 2011, at 10:50, Alistair Young wrote:
> nothing seems to help. There are still messages just disappearing. Also the
> logging doesn't seem to log anything to do with producers:
>
> <loggingBrokerPlugin logAll="true" logConnectionEvents="true" />
>
> I can see lots of camel consumers from the local machine looking at the
> routes but nothing about incoming messages from producers.
>
> Alistair
>
> --
> mov eax,1
> mov ebx,0
> int 80h
>
>
>
>
> On 21 Sep 2011, at 13:13, Alistair Young wrote:
>
>> I'm running ActiveMQ 5.5.0 as a spring webapp rather than the standalone
>> version. Would you recommend the standalone one? Not sure how to use camel
>> with that though.
>>
>> there's quite a high rate of packet loss on the network it seems and
>> according to this:
>> http://activemq.apache.org/async-sends.html
>> the default is sync send for persistent messages outside transactions. I'm
>> using transactions on the broker but not the producer to preserve camel
>> routes across restarts. So I presume the producer is using sync mode to send
>> the messages as they are persistent. However, no error from the broker and
>> no message arriving might hint at async mode falling foul of packet loss
>> perhaps?
>>
>> I'll try this on the broker connection to see if it helps:
>>
>> jms.useAsyncSend=false
>>
>> Alistair
>>
>>
>> --
>> mov eax,1
>> mov ebx,0
>> int 80h
>>
>>
>>
>>
>> On 21 Sep 2011, at 13:02, Torsten Mielke wrote:
>>
>>> What is the exact broker version used on your side?
>>> In case its not the latest released version, can you try the latest version?
>>>
>>> Do you set any particular headers on the Topic message in your producer?
>>>
>>>
>>>
>>> On Sep 21, 2011, at 1:54 PM, Alistair Young wrote:
>>>
>>>> I can't explain this at all. It's almost like the opposite of reliable
>>>> messaging. At times, almost 1 in 3 messages just disappears. No errors.
>>>> The KahaDB/db-*.log show no record of the message every arriving and yet
>>>> the producer doesn't get an error.
>>>>
>>>> Alistair
>>>>
>>>>
>>>> --
>>>> mov eax,1
>>>> mov ebx,0
>>>> int 80h
>>
>