CreateConnection() public final method

public final CreateConnection ( ) : IConnection
return IConnection
Example #1
0
        /// <summary>
        /// Create queues required by Burrow.RPC library
        /// </summary>
        /// <param name="connectionString"></param>
        /// <param name="createExchangesAndQueues"></param>
        public void CreateQueues(string connectionString, Action<IModel> createExchangesAndQueues)
        {
            var clusterConnections = connectionString.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
            if (clusterConnections.Length > 1)
            {
                Global.DefaultWatcher.InfoFormat("Found multiple Connection String, will use '{0}' to setup queues", clusterConnections[0]);
            }
            ConnectionString connectionValues = clusterConnections.Length > 1
                                              ? new ConnectionString(clusterConnections[0])
                                              : new ConnectionString(connectionString);


            var connectionFactory = new ManagedConnectionFactory
            {
                HostName = connectionValues.Host,
                Port = connectionValues.Port,
                VirtualHost = connectionValues.VirtualHost,
                UserName = connectionValues.UserName,
                Password = connectionValues.Password,
            };

            using (var connection = connectionFactory.CreateConnection())
            {
                using (var model = connection.CreateModel())
                {
                    try
                    {
                        createExchangesAndQueues(model);
                    }
                    catch (OperationInterruptedException oie)
                    {
                        if (oie.ShutdownReason.ReplyText.StartsWith("PRECONDITION_FAILED - "))
                        {
                            Global.DefaultWatcher.ErrorFormat(oie.ShutdownReason.ReplyText);
                        }
                        else
                        {
                            Global.DefaultWatcher.Error(oie);
                        }
                    }
                    catch (Exception ex)
                    {
                        Global.DefaultWatcher.Error(ex);
                    }
                }
            }
        }