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.

Reply via email to