public void PurgeQueue(string context)
        {
            var factory = new QueueConnectionFactory();

            factory.setConnectionURLs(TransportConstants.BROKER);
            QueueConnection connection = factory.createQueueConnection(TransportConstants.USERNAME,
                                                                       TransportConstants.PASSWORD);

            connection.start();

            Session receiveSession = connection.createSession(false, SessionMode.AUTO_ACKNOWLEDGE);

            PurgeQueue(context, receiveSession, TransportConstants.QUEUE1);
            PurgeQueue(context, receiveSession, TransportConstants.QUEUE2);
            connection.close();
        }
示例#2
0
        public Transport(TransportInfo transportInfo, Action onFailure, MessageFormat messageFormat)
        {
            if (onFailure == null)
            {
                throw new ArgumentNullException("onFailure");
            }
            m_OnFailure     = onFailure;
            m_MessageFormat = messageFormat;
            m_JailedTag     = (transportInfo.JailStrategy ?? JailStrategy.None).CreateTag();

            var factory = new QueueConnectionFactory();

            (factory as ConnectionFactory).setConnectionURLs(transportInfo.Broker);
            m_Connection = factory.createQueueConnection(transportInfo.Login, transportInfo.Password);
            ((Connection)m_Connection).setConnectionStateChangeListener(new GenericConnectionStateChangeListener(connectionStateHandler));
            ((Connection)m_Connection).setPingInterval(30);
            m_Connection.start();
        }
        public void InvestigationTest()
        {
            var factory = new QueueConnectionFactory();

            (factory as ConnectionFactory).setConnectionURLs(TransportConstants.BROKER);
            var connection = factory.createQueueConnection(TransportConstants.USERNAME, TransportConstants.PASSWORD);

            ((Connection)connection).setPingInterval(30);
            connection.start();


            var session = (QueueSession)connection.createQueueSession(false, 1004);



            var queue = session.createQueue("finam.ibank.dev.tests");


            var consumer = session.createConsumer(queue);
            int i        = 0;

            consumer.setMessageListener(new GenericMessageListener(message => { Console.WriteLine(DateTime.Now); message.acknowledge(); }));
            Thread.Sleep(2000);
            consumer.close();



            var producer = session.createProducer(queue);

            BytesMessage bytesMessage;

            for (int j = 0; j < 5; j++)
            {
                bytesMessage = session.createBytesMessage();
                bytesMessage.writeBytes(new byte[] { 100 });
                producer.send(bytesMessage);
            }


            consumer = session.createConsumer(queue);


            var p = session.createProducer(session.createTemporaryQueue());

            bytesMessage = session.createBytesMessage();
            bytesMessage.writeBytes(new byte[] { 100 });
            p.send(bytesMessage);

            consumer.setMessageListener(new GenericMessageListener(message =>
            {
                Console.WriteLine("" + DateTime.Now + (++i) + " " + (i % 2 == 0));
                //message.acknowledge();return;
                if (i % 2 == 0)
                {
                    message.acknowledge();
                }
                else
                {
                    throw new Exception();
                }
                //session.recover();
            }));
            Thread.Sleep(1000);
            Console.WriteLine("waiting");
            Thread.Sleep(60 * 60 * 1000);
            consumer.close();
            session.close();
            connection.close();
        }