@Override public void setJMSPriority(final int priority) throws JMSException { checkPriority(priority); message.setPriority((byte) priority); }
@Override public void setJMSPriority(final int priority) throws JMSException { checkPriority(priority); message.setPriority((byte) priority); }
@Override public void setJMSPriority(final int priority) throws JMSException { checkPriority(priority); message.setPriority((byte) priority); }
@Override public void setJMSPriority(final int priority) throws JMSException { checkPriority(priority); message.setPriority((byte) priority); }
@Override public void setJMSPriority(final int priority) throws JMSException { checkPriority(priority); message.setPriority((byte) priority); }
protected ClientMessage createActiveMQMessage(HttpHeaders headers, byte[] body, boolean durable, Long ttl, Long expiration, Integer priority, ClientSession session) throws Exception { ClientMessage message = session.createMessage(Message.BYTES_TYPE, durable); // HORNETQ-962 UUID uid = UUIDGenerator.getInstance().generateUUID(); message.setUserID(uid); if (expiration != null) { message.setExpiration(expiration.longValue()); } else if (ttl != null) { message.setExpiration(System.currentTimeMillis() + ttl.longValue()); } else if (producerTimeToLive > 0) { message.setExpiration(System.currentTimeMillis() + producerTimeToLive); } if (priority != null) { byte p = priority.byteValue(); if (p >= 0 && p <= 9) { message.setPriority(p); } } HttpMessageHelper.writeHttpMessage(headers, body, message); return message; } }
protected ClientMessage createActiveMQMessage(HttpHeaders headers, byte[] body, boolean durable, Long ttl, Long expiration, Integer priority, ClientSession session) throws Exception { ClientMessage message = session.createMessage(Message.BYTES_TYPE, durable); // HORNETQ-962 UUID uid = UUIDGenerator.getInstance().generateUUID(); message.setUserID(uid); if (expiration != null) { message.setExpiration(expiration.longValue()); } else if (ttl != null) { message.setExpiration(System.currentTimeMillis() + ttl.longValue()); } else if (producerTimeToLive > 0) { message.setExpiration(System.currentTimeMillis() + producerTimeToLive); } if (priority != null) { byte p = priority.byteValue(); if (p >= 0 && p <= 9) { message.setPriority(p); } } HttpMessageHelper.writeHttpMessage(headers, body, message); return message; } }
@Override public void run() { ClientProducer producer; byte[] body = new byte[128]; ByteBuffer bb = ByteBuffer.wrap(body); for (int j = 1; j <= 128; j++) { bb.put(getSamplebyte(j)); } try { producer = session1.createProducer(address); for (int i = 0; i < num; i++) { ClientMessage message = session1.createMessage(true); message.setPriority((byte) 1); ActiveMQBuffer buffer = message.getBodyBuffer(); buffer.writeBytes(body); producer.send(message); try { Thread.sleep(delay); } catch (InterruptedException e) { //ignore } } } catch (Exception e) { error = e; } }
messages[0].setPriority((byte) 0); messages[1] = createTextMessage(session, "b"); messages[1].setPriority((byte) 0); messages[2] = createTextMessage(session, "c"); messages[2].setPriority((byte) 0); messages[3].setPriority((byte) 7); messages[4] = createTextMessage(session, "e"); messages[4].setPriority((byte) 7); messages[5] = createTextMessage(session, "f"); messages[5].setPriority((byte) 7); messages[6].setPriority((byte) 3); messages[7] = createTextMessage(session, "h"); messages[7].setPriority((byte) 3); messages[8] = createTextMessage(session, "i"); messages[8].setPriority((byte) 3); messages[9].setPriority((byte) 9);
m.setPriority((byte) i); producer.send(m);
@Test public void testMessagePriority() throws Exception { SimpleString queue = RandomUtil.randomSimpleString(); SimpleString address = RandomUtil.randomSimpleString(); session.createQueue(address, queue, false); ClientProducer producer = session.createProducer(address); for (int i = 0; i < 10; i++) { ClientMessage m = createTextMessage(session, Integer.toString(i)); m.setPriority((byte) i); producer.send(m); } ClientConsumer consumer = session.createConsumer(queue); session.start(); // expect to consumer message with higher priority first for (int i = 9; i >= 0; i--) { ClientMessage m = consumer.receive(500); Assert.assertNotNull(m); Assert.assertEquals(i, m.getPriority()); } consumer.close(); session.deleteQueue(queue); }
@Test public void testChangeMessagePriority() throws Exception { byte originalPriority = (byte) 1; byte newPriority = (byte) 8; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, RoutingType.MULTICAST, queue, null, durable); ClientProducer producer = session.createProducer(address); ClientMessage message = session.createMessage(durable); message.setPriority(originalPriority); producer.send(message); QueueControl queueControl = createManagementControl(address, queue); Wait.assertEquals(1, () -> getMessageCount(queueControl)); // the message IDs are set on the server Map<String, Object>[] messages = queueControl.listMessages(null); Assert.assertEquals(1, messages.length); long messageID = (Long) messages[0].get("messageID"); boolean priorityChanged = queueControl.changeMessagePriority(messageID, newPriority); Assert.assertTrue(priorityChanged); ClientConsumer consumer = session.createConsumer(queue); ClientMessage m = consumer.receive(500); Assert.assertNotNull(m); Assert.assertEquals(newPriority, m.getPriority()); consumer.close(); session.deleteQueue(queue); }
msg.setPriority((byte) 0); msg.setTimestamp(Long.MAX_VALUE - 1); msg.setUserID(UUIDGenerator.getInstance().generateUUID());
m.setPriority((byte) i); producer.send(m);
msg.setPriority((byte) 5); msg.putBooleanProperty("fast", false); producer.send(msg); msg.setPriority((byte) 6); msg.putBooleanProperty("fast", true); producer.send(msg);