У меня серьезная проблема.У меня есть ситуация, когда мне нужно отправить несколько сообщений в netty, которые все генерируются верблюдом в одном месте, а затем получить ответ на каждое сообщение.
Код выглядит примерно так:
from("direct:status")
.split().method("splitMessage", "split").to("direct:device")
from("direct:device")
.to("netty:tcp://4533sync=true&decoders=#myDecoders&encoders=#myEncoders")
.to("direct:send")
Класс splitMessage генерирует не менее 10 сообщений, если не больше
После того, как первое сообщение сгенерировано, netty будетполучить его, он отправит ответ и переслать его.И теперь генерируется второе сообщение, оно отправляется netty, и именно здесь начинается проблема.Я всегда получаю сообщение об ошибке:
2011-10-14 10:27:14,326 [ent worker #1-3] ERROR DefaultErrorHandler - Failed delivery for exchangeId: ID-Stenver-LapTop-60537-1318576334993-0-24. Exhausted after deliver y attempt: 1 caught: java.lang.IllegalStateException: await*() in I/O thread causes a dead lock or sudden performance drop. Use addListener() instead or call await*() from a differ ent thread.
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.
Я пытался обойти проблему, задерживая сообщения, но это не помогает.Я могу обойти ошибку, отключив тупик, но на самом деле это не решение проблемы.
Кто-нибудь может помочь?