public ISession CreateSession(AcknowledgementMode acknowledgementMode)
        {
            CheckClosedOrFailed();
            CreateNmsConnection();

            NmsSession session = new NmsSession(this, SessionIdGenerator.GenerateId(), acknowledgementMode)
            {
                SessionInfo = { requestTimeout = ConnectionInfo.requestTimeout }
            };

            try
            {
                session.Begin().ConfigureAwait(false).GetAwaiter().GetResult();
                sessions.TryAdd(session.SessionInfo.Id, session);
                if (started)
                {
                    session.Start();
                }

                return(session);
            }
            catch (NMSException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw ExceptionSupport.Wrap(ex, "Failed to establish amqp Session.");
            }
        }
        protected NmsMessageConsumer(NmsConsumerId consumerId, NmsSession session, IDestination destination, string name, string selector, bool noLocal)
        {
            Session             = session;
            acknowledgementMode = session.AcknowledgementMode;

            if (destination.IsTemporary)
            {
                session.Connection.CheckConsumeFromTemporaryDestination((NmsTemporaryDestination)destination);
            }

            Info = new NmsConsumerInfo(consumerId)
            {
                Destination        = destination,
                Selector           = selector,
                NoLocal            = noLocal,
                SubscriptionName   = name,
                LocalMessageExpiry = Session.Connection.ConnectionInfo.LocalMessageExpiry,
                IsDurable          = IsDurableSubscription
            };
            deliveryTask = new MessageDeliveryTask(this);

            Session.Connection.CreateResource(Info).ConfigureAwait(false).GetAwaiter().GetResult();


            Session.Add(this);

            if (Session.IsStarted)
            {
                Start();
            }
        }
Exemplo n.º 3
0
        public async Task <ISession> CreateSessionAsync(AcknowledgementMode acknowledgementMode)
        {
            CheckClosedOrFailed();
            await CreateNmsConnectionAsync().Await();

            NmsSession session = new NmsSession(this, GetNextSessionId(), acknowledgementMode);

            try
            {
                await session.Begin().Await();

                sessions.TryAdd(session.SessionInfo.Id, session);
                if (started)
                {
                    session.Start();
                }

                return(session);
            }
            catch (NMSException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw ExceptionSupport.Wrap(ex, "Failed to establish amqp Session.");
            }
        }
Exemplo n.º 4
0
        public NmsMessageConsumer(Id consumerId, NmsSession session, IDestination destination, string name, string selector, bool noLocal)
        {
            Session             = session;
            acknowledgementMode = session.AcknowledgementMode;

            if (destination.IsTemporary)
            {
                session.Connection.CheckConsumeFromTemporaryDestination((NmsTemporaryDestination)destination);
            }

            Info = new ConsumerInfo(consumerId, Session.SessionInfo.Id)
            {
                Destination        = destination,
                Selector           = selector,
                NoLocal            = noLocal,
                SubscriptionName   = name,
                LocalMessageExpiry = Session.Connection.ConnectionInfo.LocalMessageExpiry
            };
            deliveryTask = new MessageDeliveryTask(this);

            if (Session.IsStarted)
            {
                Start();
            }
        }
Exemplo n.º 5
0
 internal NmsMessageProducer(NmsProducerId producerId, NmsSession session, IDestination destination)
 {
     this.session = session;
     Info         = new NmsProducerInfo(producerId)
     {
         Destination = destination
     };
 }
Exemplo n.º 6
0
 public NmsMessageProducer(Id producerId, NmsSession session, IDestination destination)
 {
     this.session = session;
     Info         = new ProducerInfo(producerId, session.SessionInfo.Id)
     {
         Destination = destination
     };
 }
Exemplo n.º 7
0
        public NmsMessageProducer(NmsProducerId producerId, NmsSession session, IDestination destination)
        {
            this.session = session;
            Info         = new NmsProducerInfo(producerId)
            {
                Destination = destination
            };

            session.Connection.CreateResource(Info).ConfigureAwait(false).GetAwaiter().GetResult();

            session.Add(this);
        }
Exemplo n.º 8
0
        protected NmsMessageConsumer(NmsConsumerId consumerId, NmsSession session, IDestination destination, string name, string selector, bool noLocal)
        {
            Session             = session;
            acknowledgementMode = session.AcknowledgementMode;

            if (destination.IsTemporary)
            {
                session.Connection.CheckConsumeFromTemporaryDestination((NmsTemporaryDestination)destination);
            }

            Info = new NmsConsumerInfo(consumerId)
            {
                Destination        = destination,
                Selector           = selector,
                NoLocal            = noLocal,
                IsExplicitClientId = Session.Connection.ConnectionInfo.IsExplicitClientId,
                SubscriptionName   = name,
                IsShared           = IsSharedSubscription,
                IsDurable          = IsDurableSubscription,
                IsBrowser          = IsBrowser,
                LocalMessageExpiry = Session.Connection.ConnectionInfo.LocalMessageExpiry
            };
            deliveryTask = new MessageDeliveryTask(this);
        }
Exemplo n.º 9
0
 public NmsDurableTopicSubscriber(Id consumerId, NmsSession session, IDestination destination, string name, string selector, bool noLocal) : base(consumerId, session, destination, name, selector, noLocal)
 {
 }
Exemplo n.º 10
0
 public NmsDurableMessageConsumer(NmsConsumerId consumerId, NmsSession session, IDestination destination, string name, string selector, bool noLocal) : base(consumerId, session, destination, name, selector, noLocal)
 {
 }
Exemplo n.º 11
0
 public NmsMessageConsumer(NmsConsumerId consumerId, NmsSession session, IDestination destination, string selector, bool noLocal) : this(consumerId, session, destination, null, selector, noLocal)
 {
 }
 public NmsLocalTransactionContext(NmsSession session)
 {
     this.session    = session;
     this.connection = session.Connection;
 }
 public NmsNoTxTransactionContext(NmsSession session)
 {
     this.session = session;
 }
Exemplo n.º 14
0
 public NmsQueueBrowser(NmsSession session, IQueue destination, string selector)
 {
     this.session     = session;
     this.destination = destination;
     this.selector    = selector;
 }
 public NmsAcknowledgeCallback(NmsSession session, InboundMessageDispatch envelope = null)
 {
     this.session  = session;
     this.envelope = envelope;
 }