1 22 package org.jboss.test.jbossmq.test; 23 24 import javax.jms.DeliveryMode ; 25 26 import org.jboss.mq.AcknowledgementRequest; 27 import org.jboss.mq.ConnectionToken; 28 import org.jboss.mq.SpyMessage; 29 import org.jboss.mq.SpyQueue; 30 import org.jboss.mq.Subscription; 31 import org.jboss.mq.TransactionRequest; 32 import org.jboss.mq.server.JMSDestinationManager; 33 import org.jboss.test.jbossmq.JBossMQMicrocontainerTest; 34 import org.jboss.test.jbossmq.support.MockClientIL; 35 36 42 public class NackWithRollbackUnitTestCase extends JBossMQMicrocontainerTest 43 { 44 public NackWithRollbackUnitTestCase(String name) 45 { 46 super(name); 47 } 48 49 public void testNackWithRollback() throws Exception 50 { 51 SpyQueue queue = createQueue("testQueue"); 52 53 JMSDestinationManager server = getJMSServer(); 54 MockClientIL client = new MockClientIL(); 55 ConnectionToken dc = new ConnectionToken("test", client, "session"); 56 server.setEnabled(dc, true); 57 58 SpyMessage send = new SpyMessage(); 60 send.setJMSDestination(queue); 61 send.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT); 62 long ts = System.currentTimeMillis(); 63 send.setJMSTimestamp(ts); 64 send.setJMSPriority(5); 65 send.setJMSMessageID("Message1"); 66 server.addMessage(dc, send); 67 68 Subscription sub = new Subscription(); 70 sub.connectionToken = dc; 71 sub.subscriptionId = 1; 72 sub.destination = queue; 73 sub.noLocal = false; 74 server.subscribe(dc, sub); 75 76 SpyMessage received = server.receive(dc, sub.subscriptionId, -1); 78 assertNotNull(received); 79 80 TransactionRequest t = new TransactionRequest(); 82 t.xid = new Long (1); 83 t.requestType = TransactionRequest.TWO_PHASE_COMMIT_PREPARE_REQUEST; 84 received.createAcknowledgementRequest(sub.subscriptionId); 85 AcknowledgementRequest nack = received.getAcknowledgementRequest(false); 86 t.acks = new AcknowledgementRequest[] { nack }; 87 server.transact(dc, t); 88 89 t = new TransactionRequest(); 91 t.xid = new Long (1); 92 t.requestType = TransactionRequest.TWO_PHASE_COMMIT_ROLLBACK_REQUEST; 93 server.transact(dc, t); 94 95 received = server.receive(dc, sub.subscriptionId, -1); 97 assertNotNull(received); 98 } 99 } 100 | Popular Tags |