public RemoteMsmqGrantReadWriteTask(PhysicalServer server, string queueName, string group)
 {
     _server = server;
     _group = group;
     var ub = new UriBuilder("msmq", server.Name) { Path = queueName };
     _address = new QueueAddress(ub.Uri);
 }
 public RemoteMsmqGrantAccessRightsTask(PhysicalServer server, QueueAddress address, string user, MessageQueueAccessRights accessRights)
 {
     _server = server;
     _address = address;
     _user = user;
     _accessRights = accessRights;
 }
Пример #3
0
        //dropkick.remote create_queue msmq://servername/dk_remote
        //dropkick.remote verify_queue msmq://servername/dk_remote
        //dropkick.remote grant [r|w|rw] username msmq://servername/dk_remote
        static void Main(string[] args)
        {
            try
            {
                if (args[0] == "create_queue")
                {
                    var queuename = args[1];
                    var queueAddress = new QueueAddress(queuename);
                    var formattedName = queueAddress.LocalName;
                    MessageQueue.Create(formattedName);

                    Environment.Exit(0);
                }
                else if (args[0] == "verify_queue")
                {
                    var queuename = args[1];
                    var queueAddress = new QueueAddress(queuename);
                    var formattedName = queueAddress.LocalName;
                    var result = MessageQueue.Exists(formattedName);
                    Console.WriteLine("exists");
                    Environment.Exit(0);
                }
                else if (args[0] == "grant")
                {
                    var perm = args[1];
                    var user = args[2];
                    var queue = args[3];

                    var queueAddress = new QueueAddress(queue);

                    switch (perm)
                    {
                        case "r":
                            new LocalMsmqGrantReadTask(queueAddress, user).Execute();
                            break;
                        case "w":
                            new MsmqGrantWriteTask(queueAddress, user).Execute();
                            break;
                        case "rw":
                            new LocalMsmqGrantReadWriteTask(queueAddress, user).Execute();
                            break;
                        case "default":
                            new SetSensibleMsmqDefaults(queueAddress).Execute();
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                File.AppendAllText("error.txt", ex.ToString());
                Console.WriteLine(ex);
                Environment.Exit(21);
            }
        }
Пример #4
0
        private static DeploymentResult CreateMsmq(string[] args)
        {
            var queuename = args[1];
            var queueAddress = new QueueAddress(queuename);
            var transactional = false;
            if (args.Length > 2)
                bool.TryParse(args[2], out transactional);

            var result = new CreateLocalMsmqQueueTask(_server, queueAddress, transactional).Execute();

            return result;
        }
Пример #5
0
        public DeploymentResult CreateQueue(QueueAddress path)
        {
            var t = new RemoteCommandLineTask("dropkick.remote.exe")
                        {
                            Args = "create_queue {0}".FormatWith(path.ActualUri),
                            ExecutableIsLocatedAt = @"C:\Temp\dropkick.remote\",
                            Machine = _server.Name,
                            WorkingDirectory = @"C:\Temp\dropkick.remote\"
                        };

            return t.Execute();
        }
        public override void RegisterRealTasks(PhysicalServer site)
        {
            var uriBuilder = new UriBuilder("msmq", site.Name) { Path = _queue };
            var address = new QueueAddress(uriBuilder.Uri);

            Task task;

            if (site.IsLocal)
                task = new LocalMsmqGrantAccessRightsTask(address, _group, _accessRights);
            else
                task = new RemoteMsmqGrantAccessRightsTask(site, address, _group, _accessRights);

            site.AddTask(task);
        }
Пример #7
0
 static void TryDeleteTable(SqlConnection conn, QueueAddress address)
 {
     try
     {
         using (var comm = conn.CreateCommand())
         {
             comm.CommandText = $"IF OBJECT_ID('{address.QualifiedTableName}', 'U') IS NOT NULL DROP TABLE {address.QualifiedTableName}";
             comm.ExecuteNonQuery();
         }
     }
     catch (Exception e)
     {
         if (!e.Message.Contains("it does not exist or you do not have permission"))
         {
             throw;
         }
     }
 }
Пример #8
0
        public void ExecuteLocal()
        {
            var ps = new DeploymentServer(Environment.MachineName);
            var ub = new UriBuilder("msmq", ps.Name)
            {
                Path = "dk_test2"
            };
            var address = new QueueAddress(ub.Uri);

            if (MessageQueue.Exists(address.LocalName))
            {
                MessageQueue.Delete(address.LocalName);
            }

            var t = new CreateLocalMsmqQueueTask(ps, address);
            var r = t.Execute();

            Assert.IsFalse(r.ContainsError(), "Errors occured during MSMQ create execution.");
        }
                protected override void Setup(FeatureConfigurationContext context)
                {
                    var endpointQueueName = context.Settings.EndpointQueueName();
                    var queueAddress      = new QueueAddress(endpointQueueName, null, null, "MySatellite");

                    var satelliteAddress = context.Settings.Get <TransportDefinition>().ToTransportAddress(queueAddress);

                    context.AddSatelliteReceiver("Test satellite", satelliteAddress, PushRuntimeSettings.Default,
                                                 (c, ec) => RecoverabilityAction.MoveToError(c.Failed.ErrorQueue),
                                                 (builder, messageContext, cancellationToken) =>
                    {
                        var testContext             = builder.GetService <Context>();
                        testContext.MessageReceived = true;
                        testContext.TransportTransactionAddedToContext = ReferenceEquals(messageContext.Extensions.Get <TransportTransaction>(), messageContext.TransportTransaction);
                        return(Task.FromResult(true));
                    });

                    Address = satelliteAddress;
                }
        public override void RegisterRealTasks(PhysicalServer site)
        {
            var uriBuilder = new UriBuilder("msmq", site.Name)
            {
                Path = _queue
            };
            var address = new QueueAddress(uriBuilder.Uri);

            Task task;

            if (site.IsLocal)
            {
                task = new LocalMsmqGrantAccessRightsTask(address, _group, _accessRights);
            }
            else
            {
                task = new RemoteMsmqGrantAccessRightsTask(site, address, _group, _accessRights);
            }

            site.AddTask(task);
        }
        /// <inheritdoc />
        public override string ToTransportAddress(QueueAddress address)
        {
            if (!address.Properties.TryGetValue("machine", out var machine))
            {
                machine = RuntimeEnvironment.MachineName;
            }
            if (!address.Properties.TryGetValue("queue", out var queueName))
            {
                queueName = address.BaseAddress;
            }
            var queue = new StringBuilder(queueName);

            if (address.Discriminator != null)
            {
                queue.Append("-" + address.Discriminator);
            }
            if (address.Qualifier != null)
            {
                queue.Append("." + address.Qualifier);
            }
            return($"{queue}@{machine}");
        }
Пример #12
0
    public QueueAddressQueue(QueueAddress queueAddress, IAmazonSQS sqsClient)
    {
        _client = sqsClient;

        Uri = queueAddress.QueueUrl;
        var pathSegments = queueAddress.QueueUrl.Segments.Select(x => x.Trim('/')).Where(x => !string.IsNullOrEmpty(x)).ToArray();

        if (pathSegments.Length != 2)
        {
            throw new ArgumentException("Queue Url was not correctly formatted. Path should contain 2 segments.");
        }

        var region    = RegionEndpoint.GetBySystemName(queueAddress.RegionName);
        var accountId = pathSegments[0];
        var resource  = pathSegments[1];

        RegionSystemName = region.SystemName;
        QueueName        = resource;
        Arn = new Arn {
            Partition = region.PartitionName, Service = "sqs", Region = region.SystemName, AccountId = accountId, Resource = resource
        }.ToString();
    }
Пример #13
0
        private static DeploymentResult GrantMsmqPermissions(string[] args)
        {
            var result = new DeploymentResult();

            var perm  = args[1];
            var user  = args[2];
            var queue = args[3];

            var queueAddress = new QueueAddress(queue);

            int accessRights;

            if (int.TryParse(perm, out accessRights))
            {
                return(new LocalMsmqGrantAccessRightsTask(queueAddress, user, (MessageQueueAccessRights)accessRights).Execute());
            }

            switch (perm)
            {
            case "r":
                result = new LocalMsmqGrantReadTask(queueAddress, user).Execute();
                break;

            case "w":
                result = new MsmqGrantWriteTask(queueAddress, user).Execute();
                break;

            case "rw":
                result = new LocalMsmqGrantReadWriteTask(queueAddress, user).Execute();
                break;

            case "default":
                result = new SetSensibleMsmqDefaults(queueAddress).Execute();
                break;
            }

            return(result);
        }
Пример #14
0
        public DeploymentResult GrantPermission(QueuePermission permission, QueueAddress address, string @group)
        {
            string perm;

            switch (permission)
            {
            case QueuePermission.Read:
                perm = "r";
                break;

            case QueuePermission.Write:
                perm = "w";
                break;

            case QueuePermission.ReadWrite:
                perm = "rw";
                break;

            case QueuePermission.SetSensibleDefaults:
                perm = "default";
                break;

            default:
                perm = "r";
                break;
            }

            var t = new RemoteCommandLineTask("dropkick.remote.exe")
            {
                Args = "grant {0} {1} {2}".FormatWith(perm, @group, address.ActualUri),
                ExecutableIsLocatedAt = @"C:\Temp\dropkick.remote\",
                Machine          = _server.Name,
                WorkingDirectory = @"C:\Temp\dropkick.remote\"
            };

            return(t.Execute());
        }
Пример #15
0
    protected override void Setup(FeatureConfigurationContext context)
    {
        var settings      = context.Settings;
        var configuration = settings.Get <PartitionAwareReceiverSideDistributionConfiguration>();

        var discriminator           = settings.Get <string>("EndpointInstanceDiscriminator");
        var transportInfrastructure = settings.Get <TransportDefinition>();
        var logicalAddress          = settings.EndpointQueueName();

        var supportMessageDrivenPubSub = transportInfrastructure.SupportsPublishSubscribe;
        var queueAddress = new QueueAddress(logicalAddress, null, null, null);

        var pipeline = context.Pipeline;

        if (supportMessageDrivenPubSub)
        {
            pipeline.Register(new DistributeSubscriptions.Register(discriminator, configuration.Partitions, address => transportInfrastructure.ToTransportAddress(address), queueAddress));
        }

        var forwarder = new Forwarder(configuration.Partitions, address => transportInfrastructure.ToTransportAddress(address), queueAddress);

        pipeline.Register(new DistributeMessagesBasedOnHeader(discriminator, forwarder), "Distributes on the receiver side using header only");
        pipeline.Register(new DistributeMessagesBasedOnPayload(discriminator, forwarder, configuration.MapMessageToPartitionKey), "Distributes on the receiver side using user supplied mapper");
    }
Пример #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueueAddressPublicationBuilder{T}"/> class.
 /// </summary>
 /// <param name="queueAddress">The address of the queue to publish to.</param>
 internal QueueAddressPublicationBuilder(QueueAddress queueAddress)
 {
     _queueAddress = queueAddress;
 }
#pragma warning disable CS0672 // Member overrides obsolete member
        public override string ToTransportAddress(QueueAddress address) => MsmqTransportInfrastructure.TranslateAddress(address);
Пример #18
0
 public MsmqGrantWriteTask(QueueAddress address, string group)
 {
     _group = group;
     _address = address;
 }
Пример #19
0
        public void Should_generate_address(string tableName, string schemaName, string catalogName, string expectedAddress)
        {
            var address = new QueueAddress(tableName, schemaName, catalogName);

            Assert.AreEqual(expectedAddress, address.Value);
        }
Пример #20
0
 public override string ToTransportAddress(QueueAddress address)
 {
     return(new LearningTransport().ToTransportAddress(address));
 }
Пример #21
0
 public SetSensibleMsmqDefaults(QueueAddress path)
 {
     _address = path;
 }
Пример #22
0
        private static DeploymentResult GrantMsmqPermissions(string[] args)
        {
            DeploymentResult result = new DeploymentResult();

            var perm = args[1];
            var user = args[2];
            var queue = args[3];

            var queueAddress = new QueueAddress(queue);

            switch (perm)
            {
                case "r":
                    result = new LocalMsmqGrantReadTask(queueAddress, user).Execute();
                    break;
                case "w":
                    result = new MsmqGrantWriteTask(queueAddress, user).Execute();
                    break;
                case "rw":
                    result = new LocalMsmqGrantReadWriteTask(queueAddress, user).Execute();
                    break;
                case "default":
                    result = new SetSensibleMsmqDefaults(queueAddress).Execute();
                    break;
            }

            return result;
        }
Пример #23
0
 public RemoteMsmqGrantReadTask(PhysicalServer server, QueueAddress address, string group)
 {
     _server  = server;
     _address = address;
     _group   = group;
 }
Пример #24
0
        private static DeploymentResult GrantMsmqPermissions(string[] args)
        {
            var result = new DeploymentResult();

            var perm = args[1];
            var user = args[2];
            var queue = args[3];

            var queueAddress = new QueueAddress(queue);

            int accessRights;
            if (int.TryParse(perm, out accessRights))
            {
                return new LocalMsmqGrantAccessRightsTask(queueAddress, user, (MessageQueueAccessRights)accessRights).Execute();
            }

            switch (perm)
            {
                case "r":
                    result = new LocalMsmqGrantReadTask(queueAddress, user).Execute();
                    break;
                case "w":
                    result = new MsmqGrantWriteTask(queueAddress, user).Execute();
                    break;
                case "rw":
                    result = new LocalMsmqGrantReadWriteTask(queueAddress, user).Execute();
                    break;
                case "default":
                    result = new SetSensibleMsmqDefaults(queueAddress).Execute();
                    break;
            }

            return result;
        }
 public override string ToTransportAddress(QueueAddress address)
 {
     throw new NotImplementedException();
 }
Пример #26
0
        public DeploymentResult GrantPermission(QueuePermission permission, QueueAddress address, string @group)
        {
            string perm;
            switch (permission)
            {
                case QueuePermission.Read:
                    perm = "r";
                    break;
                case QueuePermission.Write:
                    perm = "w";
                    break;
                case QueuePermission.ReadWrite:
                    perm = "rw";
                    break;
                case QueuePermission.SetSensibleDefaults:
                    perm = "default";
                    break;
                default:
                    perm = "r";
                    break;
            }

            var t = new RemoteCommandLineTask("dropkick.remote.exe")
            {
                Args = "grant {0} {1} {2}".FormatWith(perm, @group, address.ActualUri),
                ExecutableIsLocatedAt = @"C:\Temp\dropkick.remote\",
                Machine = _server.Name,
                WorkingDirectory = @"C:\Temp\dropkick.remote\"
            };
            return t.Execute();
        }
Пример #27
0
        private static DeploymentResult VerifyMsmqExists(string[] args)
        {
            var result = new DeploymentResult();
            var queuename = args[1];
            var queueAddress = new QueueAddress(queuename);
            var formattedName = queueAddress.LocalName;
            var exists = MessageQueue.Exists(formattedName);
            if (exists) result.AddGood("{0} exists on {1}.".FormatWith(queueAddress.LocalName),_server);
            Logging.Coarse("exists");

            return result;
        }
Пример #28
0
 public CreateRemoteMsmqQueueTask(PhysicalServer server, QueueAddress address)
 {
     _server = server;
     Address = address;
 }
Пример #29
0
 public bool VerifyQueue(QueueAddress path)
 {
     //exe verify_queue path
     return(false);
 }
Пример #30
0
 public MsmqGrantWriteTask(QueueAddress address, string group)
 {
     _group   = group;
     _address = address;
 }
Пример #31
0
 public RemoteMsmqGrantReadTask(QueueAddress address, string group)
 {
     _group   = group;
     _address = address;
 }
 public SetSensibleMsmqDefaults(QueueAddress path)
 {
     _address = path;
 }
Пример #33
0
 public CreateRemoteMsmqQueueTask(PhysicalServer server, QueueAddress address)
     : this(server, address, false)
 {
 }
        /// <inheritdoc />
        public override async Task <TransportInfrastructure> Initialize(HostSettings hostSettings, ReceiveSettings[] receivers, string[] sendingAddresses, CancellationToken cancellationToken = default)
        {
            Guard.AgainstNull(nameof(hostSettings), hostSettings);
            Guard.AgainstNull(nameof(receivers), receivers);
            Guard.AgainstNull(nameof(sendingAddresses), sendingAddresses);

            CheckMachineNameForCompliance.Check();
            ValidateIfDtcIsAvailable();

            var queuesToCreate = new HashSet <string>(sendingAddresses);

            var requiresDelayedDelivery = DelayedDelivery != null;

            string      timeoutsErrorQueue         = null;
            MessagePump delayedDeliveryMessagePump = null;


            if (requiresDelayedDelivery)
            {
                QueueAddress timeoutsQueue;
                if (receivers.Length > 0)
                {
                    var mainReceiver = receivers[0];
                    timeoutsQueue      = new QueueAddress(mainReceiver.ReceiveAddress.BaseAddress, qualifier: TimeoutsQueueQualifier);
                    timeoutsErrorQueue = mainReceiver.ErrorQueue;
                }
                else
                {
                    if (hostSettings.CoreSettings != null)
                    {
                        if (!hostSettings.CoreSettings.TryGetExplicitlyConfiguredErrorQueueAddress(out var coreErrorQueue))
                        {
                            throw new Exception("Delayed delivery requires an error queue to be specified using 'EndpointConfiguration.SendFailedMessagesTo()'");
                        }

                        timeoutsErrorQueue = coreErrorQueue;
                        timeoutsQueue      = new QueueAddress(hostSettings.Name, qualifier: TimeoutsQueueQualifier); //Use name of the endpoint as the timeouts queue name.
                    }
                    else
                    {
                        throw new Exception("Timeouts are not supported for send-only configurations outside of an NServiceBus endpoint.");
                    }
                }

                delayedDeliveryMessagePump = new MessagePump(mode => SelectReceiveStrategy(mode, TransactionScopeOptions.TransactionOptions),
                                                             MessageEnumeratorTimeout, TransportTransactionMode, false, hostSettings.CriticalErrorAction,
                                                             new ReceiveSettings("DelayedDelivery", timeoutsQueue, false, false, timeoutsErrorQueue));

                queuesToCreate.Add(delayedDeliveryMessagePump.ReceiveAddress);
                queuesToCreate.Add(timeoutsErrorQueue);
            }

            var messageReceivers = CreateReceivers(receivers, hostSettings.CriticalErrorAction, queuesToCreate);

            var dispatcher = new MsmqMessageDispatcher(this, delayedDeliveryMessagePump?.ReceiveAddress, OnSendCallbackForTesting);

            if (hostSettings.CoreSettings != null)
            {
                // enforce an explicitly configured error queue when using MSMQ transport with NServiceBus
                if (receivers.Length > 0 && !hostSettings.CoreSettings.TryGetExplicitlyConfiguredErrorQueueAddress(out _))
                {
                    throw new Exception("Faults forwarding requires an error queue to be specified using 'EndpointConfiguration.SendFailedMessagesTo()'");
                }

                bool outBoxRunning = hostSettings.CoreSettings.IsFeatureActive(typeof(Features.Outbox));
                if (hostSettings.CoreSettings.TryGetAuditMessageExpiration(out var auditMessageExpiration))
                {
                    TimeToBeReceivedOverrideChecker.Check(
                        TransportTransactionMode != TransportTransactionMode.None,
                        outBoxRunning,
                        auditMessageExpiration > TimeSpan.Zero);
                }

                if (CreateQueuesForUser == null)
                {
                    // try to use the configured installer user in Core:
                    CreateQueuesForUser = hostSettings.CoreSettings.GetOrDefault <string>("Installers.UserName");
                }
            }

            if (hostSettings.SetupInfrastructure && CreateQueues)
            {
                var installerUser = GetInstallationUserName();
                var queueCreator  = new MsmqQueueCreator(UseTransactionalQueues, installerUser);

                if (requiresDelayedDelivery)
                {
                    await DelayedDelivery.DelayedMessageStore.Initialize(hostSettings.Name, TransportTransactionMode, cancellationToken).ConfigureAwait(false);
                }

                queueCreator.CreateQueueIfNecessary(queuesToCreate);
            }

            foreach (var address in sendingAddresses.Concat(messageReceivers.Select(r => r.Value.ReceiveAddress)))
            {
                QueuePermissions.CheckQueue(address);
            }

            DelayedDeliveryPump delayedDeliveryPump = null;

            if (requiresDelayedDelivery)
            {
                QueuePermissions.CheckQueue(delayedDeliveryMessagePump.ReceiveAddress);
                QueuePermissions.CheckQueue(timeoutsErrorQueue);

                var staticFaultMetadata = new Dictionary <string, string>
                {
                    { Headers.ProcessingMachine, RuntimeEnvironment.MachineName },
                    { Headers.ProcessingEndpoint, hostSettings.Name },
                    { Headers.HostDisplayName, hostSettings.HostDisplayName }
                };

                var dueDelayedMessagePoller = new DueDelayedMessagePoller(dispatcher, DelayedDelivery.DelayedMessageStore, DelayedDelivery.NumberOfRetries, hostSettings.CriticalErrorAction, timeoutsErrorQueue, staticFaultMetadata, TransportTransactionMode,
                                                                          DelayedDelivery.TimeToTriggerFetchCircuitBreaker,
                                                                          DelayedDelivery.TimeToTriggerDispatchCircuitBreaker,
                                                                          DelayedDelivery.MaximumRecoveryFailuresPerSecond,
                                                                          delayedDeliveryMessagePump.ReceiveAddress);

                delayedDeliveryPump = new DelayedDeliveryPump(dispatcher, dueDelayedMessagePoller, DelayedDelivery.DelayedMessageStore, delayedDeliveryMessagePump, timeoutsErrorQueue, DelayedDelivery.NumberOfRetries, hostSettings.CriticalErrorAction, DelayedDelivery.TimeToTriggerStoreCircuitBreaker, staticFaultMetadata, TransportTransactionMode);
            }

            hostSettings.StartupDiagnostic.Add("NServiceBus.Transport.MSMQ", new
            {
                ExecuteInstaller = CreateQueues,
                UseDeadLetterQueue,
                UseConnectionCache,
                UseTransactionalQueues,
                UseJournalQueue,
                UseDeadLetterQueueForMessagesWithTimeToBeReceived,
                TimeToReachQueue   = GetFormattedTimeToReachQueue(TimeToReachQueue),
                TimeoutQueue       = delayedDeliveryMessagePump?.ReceiveAddress,
                TimeoutStorageType = DelayedDelivery?.DelayedMessageStore?.GetType(),
            });

            var infrastructure = new MsmqTransportInfrastructure(messageReceivers, dispatcher, delayedDeliveryPump);
            await infrastructure.Start(cancellationToken).ConfigureAwait(false);

            return(infrastructure);
        }
Пример #35
0
 public MsmqGrantWriteTask(PhysicalServer server, QueueAddress address, string group)
 {
     _server  = server;
     _address = address;
     _group   = group;
 }
Пример #36
0
 public CreateRemoteMsmqQueueTask(PhysicalServer server, QueueAddress address, bool transactional)
 {
     _server        = server;
     Address        = address;
     _transactional = transactional;
 }
 public SetSensibleMsmqDefaults(PhysicalServer server, QueueAddress path)
 {
     _server = server;
     _address = path;
 }
Пример #38
0
        public static DeploymentResult GrantMsmqPermission(this RemoteDropkickExecutionTask remoteTask, QueuePermission permission, QueueAddress address, string @group)
        {
            string perm;

            switch (permission)
            {
            case QueuePermission.Read:
                perm = "r";
                break;

            case QueuePermission.Write:
                perm = "w";
                break;

            case QueuePermission.ReadWrite:
                perm = "rw";
                break;

            case QueuePermission.SetSensibleDefaults:
                perm = "default";
                break;

            default:
                perm = "r";
                break;
            }

            var t = remoteTask.SetUpRemote("grant_queue {0} {1} {2}".FormatWith(perm, @group, address.ActualUri));

            return(remoteTask.ExecuteAndGetResults(t));
        }
Пример #39
0
 public SetSensibleMsmqDefaults(PhysicalServer server, QueueAddress path)
 {
     _server  = server;
     _address = path;
 }
Пример #40
0
 public LocalMsmqGrantReadTask(QueueAddress address, string group)
 {
     _group = group;
     _address = address;
 }
Пример #41
0
 public MsmqGrantWriteTask(PhysicalServer server, QueueAddress address, string group)
 {
     _server = server;
     _address = address;
     _group = group;
 }
Пример #42
0
 public CreateLocalMsmqQueueTask(PhysicalServer server, string queueName)
 {
     _server = server;
     var ub = new UriBuilder("msmq", server.Name) { Path = queueName };
     Address = new QueueAddress(ub.Uri);
 }
    public async Task <TransportInfrastructure> Configure(TransportDefinition transportDefinition, HostSettings hostSettings, QueueAddress inputQueueName, string errorQueueName, CancellationToken cancellationToken = default)
    {
        var msmqSettings   = (MsmqTransport)transportDefinition;
        var infrastructure = await msmqSettings.Initialize(hostSettings,
                                                           new[] { new ReceiveSettings("TestReceiver", inputQueueName, false, true, errorQueueName) },
                                                           new[] { errorQueueName },
                                                           cancellationToken);

        receiveQueue = infrastructure.ToTransportAddress(inputQueueName);

        return(infrastructure);
    }
 public RemoteMsmqGrantReadWriteTask(PhysicalServer server, QueueAddress address, string group)
 {
     _server = server;
     _group = group;
     _address = address;
 }
Пример #45
0
 public CreateLocalMsmqQueueTask(PhysicalServer server, QueueAddress address)
     : this(server, address, false)
 {
 }
    public async Task <TransportInfrastructure> Configure(TransportDefinition transportDefinition, HostSettings hostSettings, QueueAddress inputQueue, string errorQueueName, CancellationToken cancellationToken = default)
    {
        var mainReceiverSettings = new ReceiveSettings(
            "mainReceiver",
            inputQueue,
            true,
            true, errorQueueName);

        var transport = await transportDefinition.Initialize(hostSettings, new[] { mainReceiverSettings }, new[] { errorQueueName }, cancellationToken);

        queuesToCleanUp = new[] { transport.ToTransportAddress(inputQueue), errorQueueName };
        return(transport);
    }
 public LocalMsmqGrantAccessRightsTask(QueueAddress address, string user, MessageQueueAccessRights accessRights)
 {
     _accessRights = accessRights;
     _address = address;
     _user = user;
 }
Пример #48
0
 public CreateLocalMsmqQueueTask(PhysicalServer server, QueueAddress address, bool transactional)
 {
     _server = server;
     Address = address;
     _transactional = transactional;
 }
Пример #49
0
        public static DeploymentResult CreateQueue(this RemoteDropkickExecutionTask remoteTask, QueueAddress path, bool transactional = false)
        {
            var t = remoteTask.SetUpRemote("create_queue {0} {1}".FormatWith(path.ActualUri, transactional));

            return(remoteTask.ExecuteAndGetResults(t));
        }
Пример #50
0
 public bool VerifyQueue(QueueAddress path)
 {
     //exe verify_queue path
     return false;
 }
Пример #51
0
        public static DeploymentResult VerifyQueueExists(this RemoteDropkickExecutionTask remoteTask, QueueAddress path)
        {
            var t = remoteTask.SetUpRemote("verify_queue {0}".FormatWith(path.ActualUri));

            return(remoteTask.ExecuteAndGetResults(t));
        }
Пример #52
0
 public Forwarder(HashSet <string> knownPartitionKeys, Func <QueueAddress, string> addressTranslator, QueueAddress logicalAddress)
 {
     this.knownPartitionKeys = knownPartitionKeys;
     this.addressTranslator  = addressTranslator;
     this.logicalAddress     = logicalAddress;
 }