我一直負責評估JMS客戶端的activemq-artemis。我有RabbmitMQ經驗,但沒有任何與activemq-artemis/JMS。如何解決新的activemq-artemis安裝阻止問題?
我在我的本地機器上安裝了artemis,按照說明創建了一個新代理,並將其設置爲Windows服務。 Windows服務啓動和停止就好了。我沒有更改broker.xml文件。
對於我的第一個測試,我試圖從一個獨立的java程序執行一個JMS隊列產生/消耗。我使用的是從Artemis的用戶手冊中的使用JMS部分中的代碼,(不使用JNDI):
TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getName());
ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF,transportConfiguration);
Queue orderQueue = ActiveMQJMSClient.createQueue("OrderQueue");
Connection connection = cf.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(orderQueue);
MessageConsumer consumer = session.createConsumer(orderQueue);
connection.start();
TextMessage message = session.createTextMessage("This is an order");
producer.send(message);
TextMessage receivedMessage = (TextMessage)consumer.receive();
System.out.println("Got order: " + receivedMessage.getText());
當我運行這段代碼,我得到以下錯誤:
警告:AMQ212054:目標地址= jms.queue.OrderQueue被阻止。如果系統配置爲阻止,請確保您使用此配置上的消息。
我的研究還沒有確定,如果這是一個服務器端設置,或讓生產者發送沒有阻塞。我一直無法找到一個生產者發送方法,它具有阻塞布爾值,只有持久性。任何關於何處關注的想法?謝謝。
編輯:新的地址設定元件加入到broker.xml奉獻給這個隊列:
<address-setting match="jms.queue.OrderQueue">
<max-size-bytes>104857600</max-size-bytes>
<page-size-bytes>10485760</page-size-bytes>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
感謝這一點,我檢查了這一點,並且兩個地址設置條目都設置爲地址完整策略的PAGE。我做了一些進一步的搜索,並遇到了這個頁面:https://communities.ca.com/thread/241725820我的broker.xml缺少最大字節和頁面大小字節的條目,所以我添加了這些。但現在經紀人不會啓動這些添加,我得到一個Windows服務啓動錯誤。 – user640118
任何錯誤信息? – Varsha
這是一個通用服務不會啓動的消息。不過,我在你提供的鏈接上做了一些調查。我添加了一個專用於此隊列的地址設置元素(請參閱新元素的原始帖子) 代理現在可以正常啓動,但我仍然收到阻止消息。 – user640118