[rabbitmq-discuss] Fwd: Exception in Creating Rabbit MQ Connection
sagar varpe
sagar.varpe at wissen.co.in
Thu Feb 24 17:47:39 GMT 2011
Hi guys ,
I am using RabbitMQ version 2.3 on server and in code I am
using java RabbitMQ client jar 2.3.1.
The whole application is in Scala in which there are 10 actors
each has its own Queue on RabbitMQ Server.
each Actor is accessing its Queue through its own methods
like get Message and addMessage.
In Attachment I have attached One sample code for Actor
methods .
in every actor continuously checks for any Message in queue
like
1. def act {
2. this ! 1
3. loop {
4. react {
5. case 1 =>
processMessage(QueueManager.getMessage); this ! 1
6.
7. }
8. }
9. }
this works fine ..But sometimes it gives me error like
Exception in Creating Rabbit MQ Connection
java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
at
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at
com.rabbitmq.client.ConnectionFactory.createFrameHandler(ConnectionFactory.java:338)
at
com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:376)
at
com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:399)
The server is running on its default port 5672. and actors are running
on same machine .
the QueueManager is
object QueueManager {
private val logger: Logger = Logger.getLogger(this.getClass.getName)
private val FACTORY = RabbitMQConstants.getFactory
private var conn: Connection = null
private var channel: Channel = null
/**
* @return
* com.prolinkd.actor.QueueObject
* reads a Message from rabbitMQ Queue
*/
def getMessage: QueueObject = synchronized{
if (conn == null || (channel != null && (!channel.isOpen))) {
getConnection
if (conn == null) {
return null
}
}
var obj = new ConnectionObject
try {
val response = channel.basicGet(CONNECTION_QUEUE, false)
if (response == null) return null
val msg = new java.io.ObjectInputStream(
new java.io.ByteArrayInputStream(response.getBody)).readObject()
obj = msg.asInstanceOf[ConnectionObject]
channel.basicAck(response.getEnvelope().getDeliveryTag(), false)
} catch {
case e: Exception => logger.error("error in Get Message", e);
//endConnection
}
//endConnection
obj
}
/**
* Get Connected with RabbitMQ Server
*/
private def getConnection {
try {
conn = FACTORY.newConnection
if (conn == null) {
logger.info(" FAILED TO CREATE CONNECTION WITH RABBITMQ ON " +
FACTORY.getHost + ":" + FACTORY.getPort)
}
channel = conn.createChannel
if (channel == null) {
logger.info(" FAILED TO CREATE CHANNEL WITH RABBITMQ ON " +
FACTORY.getHost + ":" + FACTORY.getPort)
}
if (conn != null) {
val durable = true
channel.exchangeDeclare(CONNECTION_EXCHANGE, "direct", durable)
channel.queueDeclare(CONNECTION_QUEUE, durable, false, false, null)
channel queueBind (CONNECTION_QUEUE, CONNECTION_EXCHANGE,
CONNECTION_ROUTING_KEY)
}
} catch {
case e: Exception => logger.error("Exception In Getting Connection to
RabbitMQ ", e)
}
}
}
we can't figure out the particular issue.can you guys help us please
--
Regards,
Sagar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110224/085ee164/attachment-0001.htm>
More information about the rabbitmq-discuss
mailing list