diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
index 53b41f6..98eb583 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
@@ -39,6 +39,7 @@
 
   public void connect() {
     ConnectionFactory factory = new ConnectionFactory();
+    exchangeName = UUID.randomUUID().toString();
     try {
       if (StringUtils.isNotEmpty(properties.getAMQPUri())) {
         factory.setUri(properties.getAMQPUri());
@@ -49,8 +50,17 @@
           factory.setPassword(properties.getAMQPPassword());
         }
         connection = factory.newConnection();
+      }
+      bind();
+    } catch (Exception ex) {
+      LOGGER.warn("#connect: " + ex.toString());
+    }
+  }
+
+  private void bind() {
+    if (connection != null && publishChannel == null) {
+      try {
         Channel ch = connection.createChannel();
-        exchangeName = UUID.randomUUID().toString();
         if (StringUtils.isNotEmpty(properties.getAMQPQueue())) {
           String exchangeType = EXCHANGE_TYPE_DIRECT;;
           String routingKey = properties.getAMQPRoutingKey();
@@ -69,24 +79,24 @@
             publishChannel = ch;
           }
         }
+      } catch (Exception ex) {
+        LOGGER.warn("#bind: " + ex.toString());
+        disconnect();
       }
-    } catch (Exception ex) {
-      LOGGER.warn("#connect: " + ex.toString());
     }
   }
 
   public void disconnect() {
-    if (connection != null) {
-      try {
-        publishChannel.close();
+    try {
+      if (connection != null) {
         connection.close();
-      } catch (Exception ex) {
-        LOGGER.warn("#disconnect: " + ex.toString());
-        ex.printStackTrace();
-      } finally {
-        connection = null;
-        publishChannel = null;
       }
+    } catch (Exception ex) {
+      LOGGER.warn("#disconnect: " + ex.toString());
+      ex.printStackTrace();
+    } finally {
+      connection = null;
+      publishChannel = null;
     }
   }
 
