Search in sources :

Example 21 with AMQPMessage

use of com.swiftmq.amqp.v100.messaging.AMQPMessage in project swiftmq-ce by iitsoftware.

the class Receiver method receive.

public void receive() {
    try {
        int txSize = 0;
        boolean rollback = false;
        TxnIdIF txnIdIF = txc.createTxnId();
        consumer.acquire(txRcvSize, txnIdIF);
        int i = 0;
        while (i < nMsgs) {
            AMQPMessage msg = consumer.receive();
            if (msg != null) {
                messageFactory.verify(msg);
                if (!msg.isSettled())
                    msg.accept();
                txSize++;
                if (txSize == txRcvSize) {
                    if (rollback)
                        txc.rollback(txnIdIF);
                    else {
                        txc.commit(txnIdIF);
                        i += txSize;
                    }
                    rollback = !rollback;
                    txnIdIF = txc.createTxnId();
                    consumer.acquire(txRcvSize, txnIdIF);
                    txSize = 0;
                }
            } else
                throw new Exception("Msg == null at i=" + i);
        }
        if (txSize > 0) {
            if (rollback)
                txc.rollback(txnIdIF);
            else
                txc.commit(txnIdIF);
            rollback = !rollback;
            txSize = 0;
        }
    } catch (Exception e) {
        fail("test failed: " + e);
    }
}
Also used : TxnIdIF(com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF) AMQPMessage(com.swiftmq.amqp.v100.messaging.AMQPMessage)

Example 22 with AMQPMessage

use of com.swiftmq.amqp.v100.messaging.AMQPMessage in project swiftmq-ce by iitsoftware.

the class Requestor method sendRequests.

public void sendRequests() {
    try {
        AddressIF tempDest = consumer.getRemoteAddress();
        for (int i = 0; i < nMsgs; i++) {
            TxnIdIF txnIdIF = txc.createTxnId();
            AMQPMessage request = messageFactory.create(i);
            request.setTxnIdIF(txnIdIF);
            Properties prop = new Properties();
            prop.setReplyTo(tempDest);
            request.setProperties(prop);
            producer.send(request, persistent, 5, -1);
            txc.commit(txnIdIF);
            txnIdIF = txc.createTxnId();
            consumer.acquire(1, txnIdIF);
            AMQPMessage reply = consumer.receive();
            if (reply == null)
                throw new Exception("Reply is null");
            if (!reply.isSettled())
                reply.accept();
            txc.commit(txnIdIF);
        }
    } catch (Exception e) {
        fail("test failed: " + e);
    }
}
Also used : AddressIF(com.swiftmq.amqp.v100.generated.messaging.message_format.AddressIF) TxnIdIF(com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF) Properties(com.swiftmq.amqp.v100.generated.messaging.message_format.Properties) AMQPMessage(com.swiftmq.amqp.v100.messaging.AMQPMessage)

Example 23 with AMQPMessage

use of com.swiftmq.amqp.v100.messaging.AMQPMessage in project swiftmq-ce by iitsoftware.

the class Receiver method receive.

public void receive() {
    try {
        int txSize = 0;
        TxnIdIF txnIdIF = txc.createTxnId();
        for (int i = 0; i < nMsgs; i++) {
            AMQPMessage msg = consumer.receive();
            if (msg != null) {
                messageFactory.verify(msg);
                msg.setTxnIdIF(txnIdIF);
                if (!msg.isSettled())
                    msg.accept();
                txSize++;
                if (txSize == txRcvSize) {
                    txc.commit(txnIdIF);
                    txnIdIF = txc.createTxnId();
                    txSize = 0;
                }
            } else
                throw new Exception("Msg == null at i=" + i);
        }
        if (txSize > 0) {
            txc.commit(txnIdIF);
            txSize = 0;
        }
    } catch (Exception e) {
        fail("test failed: " + e);
    }
}
Also used : TxnIdIF(com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF) AMQPMessage(com.swiftmq.amqp.v100.messaging.AMQPMessage)

Example 24 with AMQPMessage

use of com.swiftmq.amqp.v100.messaging.AMQPMessage in project swiftmq-ce by iitsoftware.

the class Sender method send.

public void send() {
    try {
        int txSize = 0;
        TxnIdIF txnIdIF = txc.createTxnId();
        for (int i = 0; i < nMsgs; i++) {
            AMQPMessage msg = messageFactory.create(i);
            msg.setTxnIdIF(txnIdIF);
            producer.send(msg, persistent, 5, -1);
            txSize++;
            if (txSize == txSendSize) {
                txc.commit(txnIdIF);
                txnIdIF = txc.createTxnId();
                txSize = 0;
            }
        }
        if (txSize > 0) {
            txc.commit(txnIdIF);
            txSize = 0;
        }
    } catch (Exception e) {
        fail("test failed: " + e);
    }
}
Also used : TxnIdIF(com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF) AMQPMessage(com.swiftmq.amqp.v100.messaging.AMQPMessage)

Example 25 with AMQPMessage

use of com.swiftmq.amqp.v100.messaging.AMQPMessage in project swiftmq-ce by iitsoftware.

the class Replier method serviceRequests.

public void serviceRequests() {
    try {
        boolean rollback = false;
        int i = 0;
        while (i < nMsgs) {
            TxnIdIF txnIdIF = txc.createTxnId();
            AMQPMessage request = consumer.receive();
            request.setTxnIdIF(txnIdIF);
            if (request != null) {
                messageFactory.verify(request);
                if (!request.isSettled())
                    request.accept();
                Properties prop = request.getProperties();
                if (prop == null)
                    throw new Exception("Properties not set in request: " + request);
                AddressIF replyTo = prop.getReplyTo();
                if (replyTo == null)
                    throw new Exception("replyTo not set in request: " + request);
                Producer p = getSession().createProducer(replyTo.getValueString(), qos);
                AMQPMessage reply = messageFactory.createReplyMessage(request);
                reply.setTxnIdIF(txnIdIF);
                Properties prop2 = new Properties();
                prop2.setTo(replyTo);
                prop2.setCorrelationId(prop.getMessageId());
                reply.setProperties(prop2);
                p.send(reply);
                p.close();
            } else
                throw new Exception("Msg == null at i=" + i);
            if (rollback) {
                txc.rollback(txnIdIF);
                TxnIdIF tx2 = txc.createTxnId();
                request.setTxnIdIF(tx2);
                request.reject();
                txc.commit(tx2);
            } else {
                txc.commit(txnIdIF);
                i++;
            }
            rollback = !rollback;
        }
    } catch (Exception e) {
        fail("test failed: " + e);
    }
}
Also used : TxnIdIF(com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF) AddressIF(com.swiftmq.amqp.v100.generated.messaging.message_format.AddressIF) Producer(com.swiftmq.amqp.v100.client.Producer) Properties(com.swiftmq.amqp.v100.generated.messaging.message_format.Properties) AMQPMessage(com.swiftmq.amqp.v100.messaging.AMQPMessage)

Aggregations

AMQPMessage (com.swiftmq.amqp.v100.messaging.AMQPMessage)56 AMQPString (com.swiftmq.amqp.v100.types.AMQPString)24 AmqpValue (com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpValue)23 TxnIdIF (com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF)20 Properties (com.swiftmq.amqp.v100.generated.messaging.message_format.Properties)19 Map (java.util.Map)13 AddressIF (com.swiftmq.amqp.v100.generated.messaging.message_format.AddressIF)12 HashMap (java.util.HashMap)10 AMQPContext (com.swiftmq.amqp.AMQPContext)9 Data (com.swiftmq.amqp.v100.generated.messaging.message_format.Data)8 AMQPMap (com.swiftmq.amqp.v100.types.AMQPMap)8 JSSESocketFactory (com.swiftmq.net.JSSESocketFactory)8 IOException (java.io.IOException)8 Producer (com.swiftmq.amqp.v100.client.Producer)6 ApplicationProperties (com.swiftmq.amqp.v100.generated.messaging.message_format.ApplicationProperties)6 AMQPBoolean (com.swiftmq.amqp.v100.types.AMQPBoolean)5 List (java.util.List)4 AMQPException (com.swiftmq.amqp.v100.client.AMQPException)3 Connection (com.swiftmq.amqp.v100.client.Connection)3 Session (com.swiftmq.amqp.v100.client.Session)3