Beispiel #1
0
        public static SqlServerStorage UseActiveMq(this SqlServerStorage storage, string activeMqUri, QueueStorageOptions options, params string[] queues)
        {
            if (storage == null)
            {
                throw new ArgumentNullException("storage");
            }
            if (queues == null)
            {
                throw new ArgumentNullException("queues");
            }
            if (queues.Length == 0)
            {
                throw new ArgumentException("No queue(s) specified for RabbitMQ provider.", "queues");
            }
            if (string.IsNullOrEmpty(activeMqUri))
            {
                throw new ArgumentNullException("activeMqUri is null");
            }

            if (options == null)
            {
                options = new QueueStorageOptions();
            }

            var         factory = new Apache.NMS.ActiveMQ.ConnectionFactory(activeMqUri);
            IConnection client  = factory.CreateConnection();

            var provider = new QueueStorageJobQueueProvider(client, options, queues);

            storage.QueueProviders.Add(provider, queues);

            return(storage);
        }
        static void Main(string[] args)
        {
            var connecturi = new Uri("activemq:tcp://localhost:61616");

            timer          = new System.Timers.Timer(1000);
            timer.Elapsed += timer_Elapsed;

            Console.WriteLine("About to connect to " + connecturi);

            var factory = new Apache.NMS.ActiveMQ.ConnectionFactory(connecturi);

            using (var connection = factory.CreateConnection())
                using (var session = connection.CreateSession())
                {
                    connection.Start();
                    IDestination destination = session.GetTopic("perf");
                    using (IMessageConsumer consumer = session.CreateConsumer(destination))
                    {
                        while (true)
                        {
                            timer.Start();
                            var message = consumer.Receive();
                            receivedMessages += 1;
                            //Console.WriteLine(message);
                        }
                    }
                }
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            var connecturi = new Uri("activemq:tcp://localhost:61616");

            Console.WriteLine("About to connect to " + connecturi);

            var factory = new Apache.NMS.ActiveMQ.ConnectionFactory(connecturi);

            using (var connection = factory.CreateConnection())
                using (var session = connection.CreateSession())
                {
                    IDestination destination = session.GetTopic("perf");
                    using (IMessageProducer producer = session.CreateProducer(destination))
                    {
                        int sendMessages = 0;
                        var watch        = new Stopwatch();
                        watch.Start();
                        while (true)
                        {
                            ITextMessage message = session.CreateTextMessage(Message);
                            producer.Send(message);
                            sendMessages += 1;
                            if (watch.ElapsedMilliseconds > 1000)
                            {
                                Console.WriteLine("{0} messages per second sent.", sendMessages);
                                watch.Restart();
                                sendMessages = 0;
                            }
                        }
                    }
                }
        }
Beispiel #4
0
        public void ConnectionThrowException()
        {
            var cf = new Apache.NMS.ActiveMQ.ConnectionFactory();

            cf.BrokerUri = new Uri("tcp://localaaahost:61616");
            Assert.Throws <NMSConnectionException>(() => cf.CreateConnection());
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            var connecturi = new Uri("activemq:tcp://localhost:61616");
            timer = new System.Timers.Timer(1000);
            timer.Elapsed += timer_Elapsed;

            Console.WriteLine("About to connect to " + connecturi);

            var factory = new Apache.NMS.ActiveMQ.ConnectionFactory(connecturi);
            using (var connection = factory.CreateConnection())
            using (var session = connection.CreateSession())
            {
                connection.Start();
                IDestination destination = session.GetTopic("perf");
                using (IMessageConsumer consumer = session.CreateConsumer(destination))
                {
                    while (true)
                    {
                        timer.Start();
                        var message = consumer.Receive();
                        receivedMessages += 1;
                        //Console.WriteLine(message);
                    }
                }
            }
        }
        public void sendMsg(string msg)
        {
            String user        = env("ACTIVEMQ_USER", this.user);
            String password    = env("ACTIVEMQ_PASSWORD", this.pwd);
            String host        = env("ACTIVEMQ_HOST", this.host);
            int    port        = Int32.Parse(env("ACTIVEMQ_PORT", this.port));
            String destination = this.topic;



            //String body = "";
            //for (int i = 0; i < size; i++)
            //{
            //    body += DATA[i % DATA.Length];
            //}

            String             brokerUri = "activemq:tcp://" + host + ":" + port;
            Uri                uri       = new Uri(brokerUri);
            IConnectionFactory factory   = new Apache.NMS.ActiveMQ.ConnectionFactory(uri);

            IConnection connection = factory.CreateConnection(user, password);

            connection.Start();
            ISession         session  = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
            IDestination     dest     = session.GetTopic(destination);
            IMessageProducer producer = session.CreateProducer(dest);

            producer.DeliveryMode = MsgDeliveryMode.NonPersistent;

            producer.Send(session.CreateTextMessage(msg));


            connection.Close();
        }
Beispiel #7
0
        public void Initialize(bool transactionMode)
        {
            Apache.NMS.IConnectionFactory connectionFactory = new Apache.NMS.ActiveMQ.ConnectionFactory(this.configurationProvider.GetConfigurationSection <QueueingConfig>().QueueServerUri);

            this.queueConnection          = connectionFactory.CreateConnection();
            this.queueConnection.ClientId = this.connectionNameProvider.GetConnectionName();
            this.queueSession             = this.queueConnection.CreateSession(transactionMode ? Apache.NMS.AcknowledgementMode.Transactional : Apache.NMS.AcknowledgementMode.AutoAcknowledge);
        }
Beispiel #8
0
        public void Post([FromBody] int nid)
        {
            Console.WriteLine("------------------ Received");
            Uri connecturi             = new Uri("activemq:tcp://es.giorgos.io:61616");
            IConnectionFactory factory = new Apache.NMS.ActiveMQ.ConnectionFactory(connecturi);

            using (IConnection connection = factory.CreateConnection())
                using (ISession session = connection.CreateSession())
                {
                    ActiveMQTopic topic = new ActiveMQTopic("VirtualTopic/ESNOTIF");
                    using (IMessageProducer producer = session.CreateProducer(topic))
                    {
                        // Start the connection so that messages will be processed.
                        connection.Start();
                        producer.DeliveryMode = MsgDeliveryMode.Persistent;
                        ITextMessage request = session.CreateTextMessage("Notification Received");
                        producer.Send(request);
                    }
                }
        }
Beispiel #9
0
        public RemoteBroker(
            string hostname,
            int port,
            string uniqueId,
            long timeout)
        {
            this.timeout = timeout;

            var brokerUrl         = new Uri($"tcp://{hostname}:{port}");
            var connectionFactory = new Apache.NMS.ActiveMQ.ConnectionFactory(brokerUrl);

            connection = connectionFactory.CreateConnection();
            session    = connection.CreateSession(AcknowledgementMode.ClientAcknowledge);

            messageConsumer = session.CreateConsumer(session.GetQueue($"{uniqueId}.req"));
            messageProducer = session.CreateProducer(session.GetQueue($"{uniqueId}.resp"));

            connection.Start();

            messageProducer.DeliveryMode = MsgDeliveryMode.NonPersistent;
        }
Beispiel #10
0
        static void Main(string[] args)
        {
            Console.WriteLine("consumer one connected");
            var logFactory = new LoggerFactory();

            var logger     = logFactory.CreateLogger <Program>();
            Uri connecturi = new Uri("activemq:tcp://localhost:61616");

            logger.LogInformation($"about to connect to {connecturi} at consumer one");
            var factory     = new Apache.NMS.ActiveMQ.ConnectionFactory(connecturi);
            var _connection = factory.CreateConnection();

            _connection.Start();
            logger.LogInformation($"connected to {factory.BrokerUri}");
            var _session = _connection.CreateSession();

            Thread.Sleep(1500);
            IDestination dest = _session.GetQueue("test-q1");

            using (IMessageConsumer consumer = _session.CreateConsumer(dest))
            {
                IMessage message;
                while ((message = consumer.Receive()) != null)
                {
                    var objectMessage = message as IObjectMessage;
                    if (objectMessage != null)
                    {
                        logger.LogInformation("Reciving files started at: " + DateTime.Now.ToLongDateString());

                        var messageData = objectMessage.Body;

                        Console.WriteLine($"received: {messageData}");
                    }
                    else
                    {
                        logger.LogError("File object is null");
                    }
                }
            }
        }
Beispiel #11
0
        public IActionResult CheckAMQ(AmqModel model)
        {
            var url = model.Url;

            if (url != null && url.Length > 0)
            {
                try
                {
                    OperatorRequestObject operatorRequestObject = new OperatorRequestObject
                    {
                        ShortCode = "ABC"
                    };
                    Uri uri = new Uri("activemq:" + url);
                    IConnectionFactory factory    = new Apache.NMS.ActiveMQ.ConnectionFactory(uri);
                    IConnection        connection = factory.CreateConnection(); // ("admin", "admin");
                    connection.Start();
                    ISession         session          = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
                    IDestination     queueDestination = SessionUtil.GetDestination(session, "ExampleQueue");
                    IMessageProducer messageProducer  = session.CreateProducer(queueDestination);
                    var objMessage = session.CreateObjectMessage(operatorRequestObject);
                    messageProducer.Send(objMessage);
                    session.Close();
                    connection.Stop();
                    ViewData["Message"] = "All Fine even after romving Creds";
                }
                catch (Exception ex)
                {
                    ViewData["Message"] = ex.Message;
                }
            }
            else
            {
                ViewData["Message"] = "No URL";
            }



            return(View("Index"));
        }
        static async Task Main(string[] args)
        {
            var logFactory = new LoggerFactory();

            var logger     = logFactory.CreateLogger <Program>();
            Uri connecturi = new Uri("activemq:tcp://localhost:61616");

            logger.LogInformation($"about to connect to {connecturi}");
            var factory     = new Apache.NMS.ActiveMQ.ConnectionFactory(connecturi);
            var _connection = factory.CreateConnection();

            _connection.Start();
            logger.LogInformation($"connected to {factory.BrokerUri}");
            var _session = _connection.CreateSession();

            var dest = SessionUtil.GetDestination(_session, "test-q1");

            using (IMessageProducer producer = _session.CreateProducer(dest))
            {
                var cnt = 1;

                while (cnt <= 10)
                {
                    var message = new
                    {
                        Id   = Guid.NewGuid(),
                        Name = $"Book {cnt}"
                    };

                    var objectMessage = producer.CreateObjectMessage(System.Text.Json.JsonSerializer.Serialize(message));
                    Thread.Sleep(1000);
                    producer.Send(objectMessage);
                    cnt++;
                    logger.LogInformation($"sent the message {message.Name}");
                }
            }
        }
Beispiel #13
0
        /// <summary>
        /// Opens a connection to the server.
        /// <para />
        /// By default, it uses 3 system environment variables as parameters
        /// <para />
        /// VHMSG_SERVER - This specifies the server to connect to.  It can either be an ip address or domain name
        /// <para />
        /// VHMSG_PORT - This specifies the port to connect to.
        /// <para />
        /// VHMSG_SCOPE - A unique id used to distinguish messages sent by different modules using the same server.  For example, if two users
        /// are using the same server, they would set different scopes so that they wouldn't receives each other's messages.
        /// </summary>
        public void OpenConnection()
        {
            string user     = null; // ActiveMQConnection.DEFAULT_USER;
            string password = null; // ActiveMQConnection.DEFAULT_PASSWORD;
            string url      = Apache.NMS.ActiveMQ.ConnectionFactory.DEFAULT_BROKER_URL;
            bool   topic    = true;

            //bool transacted = false;
            Apache.NMS.AcknowledgementMode ackMode = Apache.NMS.AcknowledgementMode.AutoAcknowledge;


            url = "tcp://" + m_host + ":" + m_port;


            //System.out.println("getConnection(): " + url + " " + m_scope );


            Apache.NMS.ActiveMQ.ConnectionFactory connectionFactory = new Apache.NMS.ActiveMQ.ConnectionFactory(new Uri(url));
            connection = connectionFactory.CreateConnection(user, password);
            //connection.setExceptionListener( this );
            connection.Start();

            //m_session = connection.CreateSession( transacted, ackMode );
            m_session = connection.CreateSession(ackMode);
            if (topic)
            {
                m_destination = m_session.GetTopic(m_scope);
            }
            else
            {
                m_destination = m_session.GetQueue(m_scope);
            }

            m_Producer = m_session.CreateProducer(m_destination);
            m_Producer.DeliveryMode = Apache.NMS.MsgDeliveryMode.NonPersistent; // Persistent = false;  // m_Producer.setDeliveryMode( DeliveryMode.NON_PERSISTENT );
        }
Beispiel #14
0
        public static void Main(string[] args)
        {
            // Example connection strings:
            //    activemq:tcp://activemqhost:61616
            //    stomp:tcp://activemqhost:61613
            //    ems:tcp://tibcohost:7222
            //    msmq://localhost

            Uri connecturi = new Uri("activemq:tcp://es.giorgos.io:61616");

            Console.WriteLine("About to connect to " + connecturi);

            // NOTE: ensure the nmsprovider-activemq.config file exists in the executable folder.
            //IConnectionFactory factory = new NMSConnectionFactory(connecturi);
            IConnectionFactory factory = new Apache.NMS.ActiveMQ.ConnectionFactory(connecturi);

            using (IConnection connection = factory.CreateConnection())
                using (ISession session = connection.CreateSession())
                {
                    // Examples for getting a destination:
                    //
                    // Hard coded destinations:
                    //    IDestination destination = session.GetQueue("FOO.BAR");
                    //    Debug.Assert(destination is IQueue);
                    //    IDestination destination = session.GetTopic("FOO.BAR");
                    //    Debug.Assert(destination is ITopic);
                    //
                    // Embedded destination type in the name:
                    //    IDestination destination = SessionUtil.GetDestination(session, "queue://FOO.BAR");
                    //    Debug.Assert(destination is IQueue);
                    //    IDestination destination = SessionUtil.GetDestination(session, "topic://FOO.BAR");
                    //    Debug.Assert(destination is ITopic);
                    //
                    // Defaults to queue if type is not specified:
                    //    IDestination destination = SessionUtil.GetDestination(session, "FOO.BAR");
                    //    Debug.Assert(destination is IQueue);
                    //
                    // .NET 3.5 Supports Extension methods for a simplified syntax:
                    //    IDestination destination = session.GetDestination("queue://FOO.BAR");
                    //    Debug.Assert(destination is IQueue);
                    //    IDestination destination = session.GetDestination("topic://FOO.BAR");
                    //    Debug.Assert(destination is ITopic);
                    //IDestination destination = SessionUtil.GetDestination(session, "queue://Consumer.esb.VirtualTopic.es-data");
                    //ActiveMQQueue topic = new ActiveMQQueue("Consumer.ERIC.VirtualTopic.ESDATA");
                    ActiveMQTopic topic = new ActiveMQTopic("VirtualTopic/ESDATA");

                    Console.WriteLine("Using destination: " + topic);

                    // Create a consumer and producer
                    using (IMessageConsumer consumer = session.CreateConsumer(topic))
                    //using(IMessageProducer producer = session.CreateProducer(destination))
                    {
                        // Start the connection so that messages will be processed.
                        connection.Start();
                        //producer.DeliveryMode = MsgDeliveryMode.Persistent;
                        //producer.RequestTimeout = receiveTimeout;

                        consumer.Listener += new MessageListener(OnMessage);

                        /*
                         * // Send a message
                         * ITextMessage request = session.CreateTextMessage("Hello World!");
                         * request.NMSCorrelationID = "abc";
                         * request.Properties["NMSXGroupID"] = "cheese";
                         * request.Properties["myHeader"] = "Cheddar";
                         *
                         * producer.Send(request);
                         */

                        while (true)
                        {
                            // Wait for the message
                            semaphore.WaitOne((int)receiveTimeout.TotalMilliseconds, true);

                            if (message == null)
                            {
                                Console.WriteLine("No message received!");
                            }
                            else
                            {
                                IBytesMessage bmsg = message as IBytesMessage;
                                Console.WriteLine("Received message with ID:   " + bmsg.NMSMessageId);
                                Console.WriteLine("Received message with text: " + System.Text.Encoding.UTF8.GetString(bmsg.Content));
                            }
                        }
                    }
                }
        }
Beispiel #15
0
        /// <summary>
        /// Opens a connection to the server.
        /// <para />
        /// By default, it uses 3 system environment variables as parameters
        /// <para />
        /// VHMSG_SERVER - This specifies the server to connect to.  It can either be an ip address or domain name
        /// <para />
        /// VHMSG_PORT - This specifies the port to connect to.  
        /// <para />
        /// VHMSG_SCOPE - A unique id used to distinguish messages sent by different modules using the same server.  For example, if two users
        /// are using the same server, they would set different scopes so that they wouldn't receives each other's messages.
        /// </summary>
        public void OpenConnection()
        {
            string user = null;     // ActiveMQConnection.DEFAULT_USER;
             string password = null; // ActiveMQConnection.DEFAULT_PASSWORD;
             string url = Apache.NMS.ActiveMQ.ConnectionFactory.DEFAULT_BROKER_URL;
             bool topic = true;
             //bool transacted = false;
             Apache.NMS.AcknowledgementMode ackMode = Apache.NMS.AcknowledgementMode.AutoAcknowledge;

             url = "tcp://" + m_host + ":" + m_port;

             //System.out.println("getConnection(): " + url + " " + m_scope );

             Apache.NMS.ActiveMQ.ConnectionFactory connectionFactory = new Apache.NMS.ActiveMQ.ConnectionFactory(new Uri(url));
             connection = connectionFactory.CreateConnection(user, password);
             //connection.setExceptionListener( this );
             connection.Start();

             //m_session = connection.CreateSession( transacted, ackMode );
             m_session = connection.CreateSession(ackMode);
             if (topic)
             {
            m_destination = m_session.GetTopic(m_scope);
             }
             else
             {
            m_destination = m_session.GetQueue(m_scope);
             }

             m_Producer = m_session.CreateProducer(m_destination);
             m_Producer.DeliveryMode = Apache.NMS.MsgDeliveryMode.NonPersistent;  // Persistent = false;  // m_Producer.setDeliveryMode( DeliveryMode.NON_PERSISTENT );
        }