Search in sources :

Example 31 with TxnIdIF

use of com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF in project swiftmq-client by iitsoftware.

the class TransactionController method discharge.

private synchronized void discharge(TxnIdIF txnId, boolean fail) throws AMQPException {
    AMQPMessage msg = new AMQPMessage();
    Discharge discharge = new Discharge();
    discharge.setTxnId(txnId);
    discharge.setFail(new AMQPBoolean(fail));
    msg.setAmqpValue(new AmqpValue(discharge));
    DeliveryStateIF deliveryState = producer.send(msg);
    if (deliveryState instanceof Rejected) {
        Rejected rejected = (Rejected) deliveryState;
        com.swiftmq.amqp.v100.generated.transport.definitions.Error error = rejected.getError();
        if (error != null)
            throw new AMQPException(error.getValueString());
        else
            throw new AMQPException(("Unknown transactiom error"));
    }
}
Also used : DeliveryStateIF(com.swiftmq.amqp.v100.generated.messaging.delivery_state.DeliveryStateIF) Rejected(com.swiftmq.amqp.v100.generated.messaging.delivery_state.Rejected) AMQPBoolean(com.swiftmq.amqp.v100.types.AMQPBoolean) AMQPMessage(com.swiftmq.amqp.v100.messaging.AMQPMessage) AmqpValue(com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpValue)

Example 32 with TxnIdIF

use of com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF 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();
            consumer.acquire(1, txnIdIF);
            AMQPMessage request = consumer.receive();
            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);
            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

TxnIdIF (com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF)22 AMQPMessage (com.swiftmq.amqp.v100.messaging.AMQPMessage)21 AddressIF (com.swiftmq.amqp.v100.generated.messaging.message_format.AddressIF)8 Properties (com.swiftmq.amqp.v100.generated.messaging.message_format.Properties)8 AMQPString (com.swiftmq.amqp.v100.types.AMQPString)8 DeliveryStateIF (com.swiftmq.amqp.v100.generated.messaging.delivery_state.DeliveryStateIF)5 AmqpValue (com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpValue)5 Producer (com.swiftmq.amqp.v100.client.Producer)4 TransactionalState (com.swiftmq.amqp.v100.generated.transactions.coordination.TransactionalState)4 QueueException (com.swiftmq.swiftlet.queue.QueueException)4 IOException (java.io.IOException)4 AMQPContext (com.swiftmq.amqp.AMQPContext)3 JSSESocketFactory (com.swiftmq.net.JSSESocketFactory)3 HashMap (java.util.HashMap)3 InvalidStateException (com.swiftmq.amqp.v100.client.InvalidStateException)2 Rejected (com.swiftmq.amqp.v100.generated.messaging.delivery_state.Rejected)2 QueuePushTransaction (com.swiftmq.swiftlet.queue.QueuePushTransaction)2 Accepted (com.swiftmq.amqp.v100.generated.messaging.delivery_state.Accepted)1 TransactionId (com.swiftmq.amqp.v100.generated.transactions.coordination.TransactionId)1 Packager (com.swiftmq.amqp.v100.transport.Packager)1