receiving messages, transacted and with auto-acknowledge-mode*/
s_rec = qc.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
/* start the connection */
qc.start();
/* Create some receivers, each with a different selector */
QueueReceiver qr_plain = s_rec.createReceiver(q);
QueueReceiver qr_aaa = s_rec.createReceiver(q, "myprop='aaa'");
QueueReceiver qr_bbb = s_rec.createReceiver(q, "myprop='bbb'");
/* Create a sender for sending messages */
QueueSender qsender = s_send.createSender(q);
/* send messages with priority */
int i = 0;
//send message 1
Message msg = s_send.createObjectMessage(new Integer(i++));
msg.setStringProperty("myprop", "aaa");
qsender.send(msg);
s_send.commit();
//consume message 1
msg = qr_bbb.receiveNoWait();
Assert.assertNull(msg);
s_rec.commit();
msg = qr_aaa.receiveNoWait();
Assert.assertNotNull(msg);
Assert.assertEquals("myprop", "aaa", msg.getStringProperty("myprop"));
s_rec.commit();
//send message 2
msg = s_send.createObjectMessage(new Integer(i++));
msg.setStringProperty("myprop", "bbb");
qsender.send(msg);
s_send.commit();
//consume message 2
msg = qr_aaa.receiveNoWait();
Assert.assertNull(msg);
s_rec.commit();
msg = qr_bbb.receiveNoWait();
Assert.assertNotNull(msg);
Assert.assertEquals("myprop", "bbb", msg.getStringProperty("myprop"));
s_rec.commit();
//send message 3
msg = s_send.createObjectMessage(new Integer(i++));
msg.setStringProperty("myprop", "ccc");
qsender.send(msg);
s_send.commit();
//consume message 3
msg = qr_aaa.receiveNoWait();
Assert.assertNull(msg);
msg = qr_bbb.receiveNoWait();
Assert.assertNull(msg);
s_rec.commit();
msg = qr_plain.receiveNoWait();
Assert.assertNotNull(msg);
Assert.assertEquals("myprop", "ccc", msg.getStringProperty("myprop"));
s_rec.commit();
//send message 4
msg = s_send.createObjectMessage(new Integer(i++));
qsender.send(msg);
s_send.commit();
//consume message 4
msg = qr_aaa.receiveNoWait();
Assert.assertNull(msg);
s_rec.commit();
msg = qr_bbb.receiveNoWait();
Assert.assertNull(msg);
s_rec.commit();
msg = qr_plain.receiveNoWait();
Assert.assertNotNull(msg);
Assert.assertNull("myprop", msg.getStringProperty("myprop"));
s_rec.commit();
//send message 5
msg = s_send.createObjectMessage(new Integer(i++));
msg.setStringProperty("myprop", "aaa");
qsender.send(msg);
s_send.commit();
//consume message 5
msg = qr_bbb.receiveNoWait();
Assert.assertNull(msg);
s_rec.commit();
msg = qr_aaa.receiveNoWait();
Assert.assertNotNull(msg);
Assert.assertEquals("myprop", "aaa", msg.getStringProperty("myprop"));
s_rec.commit();
//send message 6
msg = s_send.createObjectMessage(new Integer(i++));
msg.setStringProperty("myprop", "ccc");
qsender.send(msg);
s_send.commit();
//consume message 6
msg = qr_aaa.receiveNoWait();
Assert.assertNull(msg);
s_rec.commit();
msg = qr_bbb.receiveNoWait();
Assert.assertNull(msg);
s_rec.commit();
msg = qr_plain.receiveNoWait();
Assert.assertNotNull(msg);
Assert.assertEquals("myprop", "ccc", msg.getStringProperty("myprop"));