hi, we face some issue which happens approximately after one day after
running our application on Ubuntu linux. We use a disruptor and after
one-day messages are published into disruptor but no invocation of event
handler happens.
Our disruptor config
disruptor = new Disruptor<>(new OrderEventFactory(),
BUFFER_SIZE,
Executors.defaultThreadFactory(),
ProducerType.SINGLE,
new YieldingWaitStrategy());
RingBuffer<OurEvent > ringBuffer = disruptor.getRingBuffer();
producer = new OurEventProducer(ringBuffer);
disruptor.handleEventsWith(new OurEventHandler()).then((event,
sequence, endOfBatch) -> {
event.clear();
});
disruptor.start();
public class OurEventProducer{
private final RingBuffer<OurEvent > ringBuffer;
public OrderEventProducer(RingBuffer<OurEvent > ringBuffer)
{
this.ringBuffer = ringBuffer;
}
public void onData(OurEvent wrapper)
{
long sequence = ringBuffer.next();
try
{
EventWrapper eventWrapper = ringBuffer.get(sequence);
eventWrapper.setRequest(wrapper.getRequest());
}
catch(Exception e) {
LOGGER.error("Error publishing event with " + sequence, e);
}
finally
{
ringBuffer.publish(sequence);
LOGGER.info("Published event with sequence " + sequence);
}
}
}
Now our OurEventHandler has this log msg and logic after that, also it
suppresses all exceptions
@Override
public void onEvent(OurEvent event, long sequence, boolean endOfBatch)
throws Exception {
try {
LOGGER.info("Incoming event " + event.getRequest());
} catch(Exception e) {
}
}
After a day of load we see a lot of msgs "Published event with sequence"
but no "Incoming event" messages from handler, i.e. we see that messages
are published, but not consumed. What is the possible reason for that? Can
it be that disruptor is full? If yes, why in this case it allows publishing
of data?
Our disruptor buffer size is 1024 and we use Disruptor version 3.3.6.
Thanks.
--
You received this message because you are subscribed to the Google Groups
"mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.