Marcin Wiśniewski
Marcin Wiśniewski

Reputation: 253

camel-akka and response from actor

Dear Akka/Camel Masters!

I have following route:

(netty4:tcp) -> (akka:actor)

I'm using akka-camel module where:

akka:actor is of type UntypedConsumerActor netty4:tcp is an endpoint defined in getEndopointUri method of akka:actor

netty4:tcp://localhost:8000?textline=true

When I send bytes to tcp socket I receive exception which tells that socket channel is closed:

Caused by: java.nio.channels.ClosedChannelException: null
        at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source) [netty-all-4.1.4.Final.jar:4.1.4.Final]

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
[akka://FileDaemonS] [akka://FileDaemonS] [tcp://localhost:8000                                                          ] [     60061]
[akka://FileDaemonS] [to1               ] [akka://FileDaemonSystem/user/FileDaemonTcpEndpoint?autoAck=false&replyTimeout=] [     60037]
java.util.concurrent.TimeoutException: Failed to get response from the actor [ActorEndpointPath(akka://FileDaemonSystem/user/FileDaemonTcpEndpoint)] within timeout [1 minute]. Check replyTimeout and blocking settings [Endpoint[akka://FileDaemonSystem/user/FileDaemonTcpEndpoint?autoAck=false&replyTimeout=60000+milliseconds]]
        at akka.camel.internal.component.ActorProducer$$anonfun$1.applyOrElse(ActorComponent.scala:151) ~[akka-camel_2.11-2.4.9.jar:na]
        at akka.camel.internal.component.ActorProducer$$anonfun$1.applyOrElse(ActorComponent.scala:148) ~[akka-camel_2.11-2.4.9.jar:na]
        at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) ~[scala-library-2.11.8.jar:na]
        at scala.PartialFunction$AndThen.apply(PartialFunction.scala:186) [scala-library-2.11.8.jar:na]
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [scala-library-2.11.8.jar:na]

What am I doing wrong?

Upvotes: 0

Views: 185

Answers (1)

Marcin Wiśniewski
Marcin Wiśniewski

Reputation: 253

I found a solution. Setting netty endpoint as a one-way solves the problem.

netty4:tcp://localhost:8000?textline=true&sync=false

Upvotes: 0

Related Questions