2 votes

Les acteurs distants d'Akka ne fonctionnent pas (dans le framework Play)

Lorsque vous essayez d'exécuter le code ci-dessous :

ActorRef parserActor1 =system.actorFor("akka://ParserActorsSystem@10.0.0.9:2552/user/ParserMainActor");
System.out.println("*$^%$^%$^"+parserActor1);   
parserActor1.tell("Please parse!", mainActor);

La première et la deuxième ligne fonctionnent bien - cela signifie que le remoting fonctionne correctement (je pense). À la 3e ligne, j'obtiens l'erreur "swallowing exception during message sent".

Je travaille avec akka-remote version 2.1.1. Quel pourrait être le problème ?

Le fichier application.conf contient :

    akka {
  actor {
    provider = "akka.remote.RemoteActorRefProvider"
  }
  remote {
    transport = "akka.remote.netty.NettyRemoteTransport"
    netty {
      hostname = "10.0.0.8"
      port = 2552
    }
 }
}

Voici l'erreur exacte : "[ERROR] [03/06/2013 16:15:42.129] [New I/O worker #1] [akka://ParserActorsSystem@10.0.0.9:2552/user/ParserMainActor] swallowing exception during message send java.lang.IllegalStateException: await*() in I/O thread causes a dead lock or sudden performance drop. Use addListener() instead or call await*() from a different thread."

Merci beaucoup, Aviad

2voto

Roland Kuhn Points 7589

Vous rencontrez une bizarrerie de Netty exposée par Play en collaboration avec Akka remoting : http://play.lighthouseapp.com/projects/82401-play-20/tickets/1042-Netty-pipeline-needs-an-executionHandler

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X