softwaremill / elasticmq

In-memory message queue with an Amazon SQS-compatible interface. Runs stand-alone or embedded.
https://softwaremill.com/open-source/
Apache License 2.0
2.51k stars 194 forks source link

Akka dead letters encountered #64

Closed micmicsuarez closed 8 years ago

micmicsuarez commented 8 years ago

This is the stacktrace:

--------------------------------------
[INFO] [12/18/2015 14:19:00.695] [elasticmq-akka.actor.default-dispatcher-9] [akka://elasticmq/deadLetters] Message [scala.collection.immutable.Nil$] from Actor[akka://elasticmq/user/$a/$a#-833948945] to Actor[akka://elasticmq/deadLetters] was not delivered. [4] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[Fatal Error] :1:1: Content is not allowed in prolog.
| Error 2015-12-18 14:19:00,746 [elasticmq-akka.actor.default-dispatcher-10] ERROR sqs.TheSQSRestServerBuilder$$anon$1  - Exception when running routes
Message: Ask timed out on [Actor[akka://elasticmq/user/$a/$a#-833948945]] after [21000 ms]
   Line | Method
->> 334 | apply$mcV$sp     in akka.pattern.PromiseActorRef$$anonfun$1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   117 | run              in akka.actor.Scheduler$$anon$7
|   599 | unbatchedExecute in scala.concurrent.Future$InternalCallbackExecutor$
|   109 | execute          in scala.concurrent.BatchingExecutor$class
|   597 | execute . . . .  in scala.concurrent.Future$InternalCallbackExecutor$
|   467 | executeTask      in akka.actor.LightArrayRevolverScheduler$TaskHolder
|   419 | executeBucket$1  in akka.actor.LightArrayRevolverScheduler$$anon$8
|   423 | nextTick         in     ''
|   375 | run . . . . . .  in     ''
^   745 | run              in java.lang.Thread
2015-12-18 14:19:02,604 [quartzScheduler_Worker-2] DEBUG job.RememberLoginAuthTokenDeleteJob  - Deleting expired REMEMBER_LOGIN tokens...
2015-12-18 14:19:03,917 [quartzScheduler_Worker-10] D

Is there a way to fix this issue? I'm using elasticmq version 0.8.12. Thanks

adamw commented 8 years ago

How did you get this? Did you invoke any operations?

micmicsuarez commented 8 years ago

@adamw , sorry for late response.

I have a method inside the JmsListener that process hundred thousands of data. This method downloads the csv file and save each row in a list. After parsing it, we iterate in the list and create an object. It looks like this:

     List sampleObjectList = []
     List numbers = [1, 2, 3, 4, 5, 6, 7, ...']
     numbers.each { number ->
         sampleObjectList << new SampleObject(number: number)
     }
     batchValidateAndSave(sampleObjectList)

We save a batch of objects. I just send a message to the other JmsListener by using the send method of jmsService.

jmsService.send(queue: CustomQueue.MyQueue, [userId: user.id])
adamw commented 8 years ago

So this works now?