Set to 23 the same number as the workers are set to. 

thanks
> On 17 Aug 2015, at 23:04, Javier Gonzalez <[email protected]> wrote:
> 
> How many ackers have you got configured when you submit your topology?
> 
> On Aug 17, 2015 5:57 PM, "Stuart Perks" <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi I am attempting to run guaranteed message processing but ACK is not being 
> called. Post on stack overflow if you prefer answer there. 
> http://stackoverflow.com/questions/32060081/apache-storm-ack-not-working 
> <http://stackoverflow.com/questions/32060081/apache-storm-ack-not-working>
> 
> 
> Thanks
> 
> 
> 0
> down vote
>  <>favorite
>  <http://stackoverflow.com/questions/32060081/apache-storm-ack-not-working#>  
> I am trying to implement the guaranteed message processing but the ack or 
> fail methods on the Spout are not being called.
> 
> I am passing the a message ID object with the spout. I am passing the tuple 
> with each bolt and calling collector.ack(tuple) in each bolt.
> 
> Question The ack or fail is not being called and I cannot work out why?
> 
> Here is a shortened code sample.
> 
> Spout Code using BaseRichSpout
> 
> public void nextTuple() {
> 
>     .... further code ....
> 
>     String msgID = UUID.randomUUID().toString()
>                     + System.currentTimeMillis();
> 
>     Values value = new Values(splitUsage[0], splitUsage[1],
>                     splitUsage[2], msgID);
>     outputCollector.emit(value, msgID);
> 
> }
> 
> @Override
> public void ack(Object msgId) {
>     this.pendingTuples.remove(msgId);
>     LOG.info("Ack " + msgId);
> }
> 
> @Override
> public void fail(Object msgId) {
>     // Re-emit the tuple
>     LOG.info("Fail " + msgId);
>     this.outputCollector.emit(this.pendingTuples.get(msgId), msgId);
> }
> Bolt Code using BaseRichBolt
> 
> @Override
> public void execute(Tuple inputTuple) {
> 
> this.outputCollector.emit(inputTuple, new Values(serverData, msgId));
> 
> this.outputCollector.ack(inputTuple);
> }
> Final Bolt
> 
> @Override
> public void execute(Tuple inputTuple) {
>   ..... Simply reports does not emit .....
>   this.outputCollector.ack(inputTuple);
> }
> 
> 

Reply via email to