Hi Endre, I tried to reproduce my problem, but I could not do this. Everything works correctly in my test roject: https://github.com/SScare/PilotsAndTests/tree/master/PlayAkka I am confused even more than earlier...
Regards, Sergey вторник, 5 мая 2015 г., 14:25:23 UTC+3 пользователь Akka Team написал: > > Hi Sergey, > > The code looks OK, but I think it is not enough to see where the issue is. > Try to put together a minimized, self-contained code example that shows the > symptoms. The example should contain only minimal functionality that is > enough to replicate the problem. > > -Endre > > On Sun, May 3, 2015 at 12:48 PM, Sergey Sopin <[email protected] > <javascript:>> wrote: > >> Hi, I'm developing a system based on Akka and I got stuck with situation >> which is completely unclear for me. >> I have three actors with following hierarchy: Root actor -> >> SubPathProcessingSupervisor -> SubPathFinderActor. >> Root actor creates "SubPathProcessingSupervisor " one during preStart and >> then tries to send message to it using ask pattern. >> >> //Root actor >> >> @Override >> public void preStart() throws Exception { >> super.preStart(); >> this.subPathProcessingSupervisor = >> context().actorOf(Props.create(SubPathProcessingSupervisor.class)); >> this.pathModelsAggregatorSupervisor = >> context().actorOf(Props.create(PathModelsAggregatorSupervisor.class)); >> this.waitingDuration = (int)readConfig("akka.actor.timeouts", >> "subPathFindingAskDuration", 5000); >> } >> >> //... >> >> private Iterable<Future<Object>> >> process(ConfiguredPathProcessingRequest request) { >> Collection<Future<Object>> result = new ArrayList<>(); >> for (int ceSize = request.minCoverElementSize; ceSize <= >> request.path.getMaxCoverElementSize(); ceSize += 2) { >> for (int segSize = request.minCoverElementSize; segSize <= >> ceSize; segSize += 2) { >> Future<Object> future = >> Patterns.ask(subPathProcessingSupervisor, >> new SubPathProcessingRequest(request.path, >> ceSize, segSize), waitingDuration); >> result.add(future); >> } >> } >> >> return result; >> } >> >> SubPathProcessingSupervisor has following structure: >> >> public class SubPathProcessingSupervisor extends LoggingActor{ >> >> @Override >> public void onReceive(Object o) throws Exception { >> logger.info("SubPathProcessingSupervisor : Message received..."); >> if(o instanceof SubPathProcessingRequest) { >> ActorRef subPathProcessorActor = >> context().actorOf(Props.create(SubPathFinderActor.class)); >> subPathProcessorActor.forward(o, context()); >> } else { >> unhandled(o); >> } >> } >> } >> >> From time to time, when I am trying to debug my application I see >> following messages: >> >> Either: >> >>> [INFO] [05/03/2015 13:43:48.413] >>> [application-akka.actor.default-dispatcher-9] >>> [akka://application/user/localProcessor/$a/$a/$b/$a/$a/$a] Message >>> [kernel.modeller.data.messages.SubPathProcessingRequest] from >>> Actor[akka://application/temp/$a] to >>> Actor[akka://application/user/localProcessor/$a/$a/$b/$a/$a/$a#342530440] >>> was not delivered. [1] 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'. >> >> >> Or: >> >>> [INFO] [05/03/2015 13:44:18.962] >>> [application-akka.actor.default-dispatcher-2] >>> [akka://application/user/localProcessor/$b/$a/$b/$b/$a] Message >>> [kernel.modeller.data.messages.SubPathProcessingRequest] from >>> Actor[akka://application/temp/$c] to >>> Actor[akka://application/user/localProcessor/$b/$a/$b/$b/$a#-285620982] was >>> not delivered. [3] 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'. >> >> >> I am really confused with this issue because there are some successful >> attempts... But in most cases messages were not delivered >> to SubPathProcessingSupervisor, and very rarely from supervisor to >> SubPathFinderActor. Each attempt may have different results with the same >> input. Could you please help me to understand what is going on here? >> >> -- >> >>>>>>>>>> Read the docs: http://akka.io/docs/ >> >>>>>>>>>> Check the FAQ: >> http://doc.akka.io/docs/akka/current/additional/faq.html >> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user >> --- >> You received this message because you are subscribed to the Google Groups >> "Akka User List" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at http://groups.google.com/group/akka-user. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Akka Team > Typesafe - Reactive apps on the JVM > Blog: letitcrash.com > Twitter: @akkateam > -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
