Search in sources :

Example 6 with SMQPBulkRequest

use of com.swiftmq.jms.smqp.v600.SMQPBulkRequest in project swiftmq-client by iitsoftware.

the class Connector method visit.

public void visit(PODataAvailable po) {
    if (debug)
        System.out.println(toString() + ", visit, po=" + po + " ...");
    try {
        if (po.getIoException() != null)
            throw po.getIoException();
        Dumpable obj = po.getDumpable();
        if (debug)
            System.out.println(toString() + ", dataAvailable, obj=" + obj);
        if (!recreateStarted) {
            if (obj.getDumpId() == SMQPFactory.DID_BULK_REQ) {
                SMQPBulkRequest bulkRequest = (SMQPBulkRequest) obj;
                for (int i = 0; i < bulkRequest.len; i++) {
                    Dumpable dumpable = (Dumpable) bulkRequest.dumpables[i];
                    if (dumpable.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ)
                        setReply(dumpable);
                }
            } else
                setReply(obj);
            current = null;
        } else if (obj.getDumpId() == SMQPFactory.DID_BULK_REQ) {
            SMQPBulkRequest bulkRequest = (SMQPBulkRequest) obj;
            for (int i = 0; i < bulkRequest.len; i++) {
                Dumpable dumpable = (Dumpable) bulkRequest.dumpables[i];
                if (dumpable.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ) {
                    currentRecreatePO.getRecreatable().setRecreateReply((Reply) dumpable);
                    currentRecreatePO.setSuccess(true);
                    if (currentRecreatePO.getSemaphore() != null)
                        currentRecreatePO.getSemaphore().notifySingleWaiter();
                }
            }
        } else {
            currentRecreatePO.getRecreatable().setRecreateReply((Reply) obj);
            currentRecreatePO.setSuccess(true);
            if (currentRecreatePO.getSemaphore() != null)
                currentRecreatePO.getSemaphore().notifySingleWaiter();
        }
        currentRecreatePO = null;
        requestTime = -1;
    } catch (Exception e) {
        if (debug)
            System.out.println(toString() + ", visit, po=" + po + ", exception=" + e + ", recreateStarted=" + recreateStarted);
        if (currentRecreatePO != null) {
            currentRecreatePO.setSuccess(false);
            currentRecreatePO.setException(e.toString());
            if (currentRecreatePO.getSemaphore() != null)
                currentRecreatePO.getSemaphore().notifySingleWaiter();
            currentRecreatePO = null;
            recreateStarted = false;
            if (debug)
                System.out.println(toString() + ", set recreateStarted to " + recreateStarted);
        }
        reconnector.invalidateConnection();
        connection = null;
        reconnectInProgress = false;
        currentRecreatePO = null;
        requestTime = -1;
        if (debug)
            System.out.println(toString() + ", ((e instanceof JMSSecurityException) || (e instanceof InvalidVersionException))?" + ((e instanceof JMSSecurityException) || (e instanceof InvalidVersionException)));
        if ((e instanceof JMSSecurityException) || (e instanceof InvalidVersionException)) {
            if (sem != null)
                sem.notifySingleWaiter();
        } else {
            if (debug)
                System.out.println(toString() + ", e is instanceof " + e.getClass().getName());
            dispatch(new POReconnect(sem, recreatableConnection, true));
        }
    }
    if (debug)
        System.out.println(toString() + ", visit, po=" + po + " done");
}
Also used : JMSSecurityException(javax.jms.JMSSecurityException) InvalidVersionException(com.swiftmq.jms.InvalidVersionException) SMQPBulkRequest(com.swiftmq.jms.smqp.v750.SMQPBulkRequest) Reply(com.swiftmq.tools.requestreply.Reply) InvalidVersionException(com.swiftmq.jms.InvalidVersionException) IOException(java.io.IOException) JMSSecurityException(javax.jms.JMSSecurityException) Dumpable(com.swiftmq.tools.dump.Dumpable)

Example 7 with SMQPBulkRequest

use of com.swiftmq.jms.smqp.v600.SMQPBulkRequest in project swiftmq-client by iitsoftware.

the class Connector method visit.

public void visit(PODataAvailable po) {
    if (debug)
        System.out.println(toString() + ", visit, po=" + po + " ...");
    DataInput in = po.getIn();
    try {
        Dumpable obj = Dumpalizer.construct(in, dumpableFactory);
        if (debug)
            System.out.println(toString() + ", dataAvailable, obj=" + obj);
        if (obj == null || obj.getDumpId() == SMQPFactory.DID_KEEPALIVE_REQ) {
            return;
        }
        if (!recreateStarted) {
            if (obj.getDumpId() == SMQPFactory.DID_BULK_REQ) {
                SMQPBulkRequest bulkRequest = (SMQPBulkRequest) obj;
                for (int i = 0; i < bulkRequest.len; i++) {
                    Dumpable dumpable = (Dumpable) bulkRequest.dumpables[i];
                    if (dumpable.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ)
                        setReply(dumpable);
                }
            } else
                setReply(obj);
            current = null;
        } else if (obj.getDumpId() == SMQPFactory.DID_BULK_REQ) {
            SMQPBulkRequest bulkRequest = (SMQPBulkRequest) obj;
            for (int i = 0; i < bulkRequest.len; i++) {
                Dumpable dumpable = (Dumpable) bulkRequest.dumpables[i];
                if (dumpable.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ) {
                    currentRecreatePO.getRecreatable().setRecreateReply((Reply) dumpable);
                    currentRecreatePO.setSuccess(true);
                    if (currentRecreatePO.getSemaphore() != null)
                        currentRecreatePO.getSemaphore().notifySingleWaiter();
                }
            }
        } else {
            currentRecreatePO.getRecreatable().setRecreateReply((Reply) obj);
            currentRecreatePO.setSuccess(true);
            if (currentRecreatePO.getSemaphore() != null)
                currentRecreatePO.getSemaphore().notifySingleWaiter();
        }
        currentRecreatePO = null;
        requestTime = -1;
    } catch (Exception e) {
        if (debug)
            System.out.println(toString() + ", visit, po=" + po + ", exception=" + e);
        if (currentRecreatePO != null) {
            currentRecreatePO.setSuccess(false);
            currentRecreatePO.setException(e.toString());
            if (currentRecreatePO.getSemaphore() != null)
                currentRecreatePO.getSemaphore().notifySingleWaiter();
            currentRecreatePO = null;
        }
        reconnector.invalidateConnection();
        connection = null;
        reconnectInProgress = false;
        currentRecreatePO = null;
        requestTime = -1;
        if (debug)
            System.out.println(toString() + ", ((e instanceof JMSSecurityException) || (e instanceof InvalidVersionException))?" + ((e instanceof JMSSecurityException) || (e instanceof InvalidVersionException)));
        if ((e instanceof JMSSecurityException) || (e instanceof InvalidVersionException)) {
            if (sem != null)
                sem.notifySingleWaiter();
        } else {
            if (debug)
                System.out.println(toString() + ", e is instanceof " + e.getClass().getName());
            dispatch(new POReconnect(sem, recreatableConnection, true));
        }
    }
    if (debug)
        System.out.println(toString() + ", visit, po=" + po + " done");
}
Also used : LengthCaptureDataInput(com.swiftmq.tools.util.LengthCaptureDataInput) DataInput(java.io.DataInput) JMSSecurityException(javax.jms.JMSSecurityException) InvalidVersionException(com.swiftmq.jms.InvalidVersionException) SMQPBulkRequest(com.swiftmq.jms.smqp.v630.SMQPBulkRequest) Reply(com.swiftmq.tools.requestreply.Reply) InvalidVersionException(com.swiftmq.jms.InvalidVersionException) IOException(java.io.IOException) JMSSecurityException(javax.jms.JMSSecurityException) Dumpable(com.swiftmq.tools.dump.Dumpable)

Example 8 with SMQPBulkRequest

use of com.swiftmq.jms.smqp.v600.SMQPBulkRequest in project swiftmq-ce by iitsoftware.

the class InboundReader method dataAvailable.

public void dataAvailable(Connection connection, InputStream inputStream) throws IOException {
    dis.setInputStream(inputStream);
    Dumpable obj = Dumpalizer.construct(dis, dumpableFactory);
    if (traceSpace.enabled)
        traceSpace.trace("smqp", "read object: " + obj);
    if (obj.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ) {
        if (obj.getDumpId() == SMQPFactory.DID_BULK_REQ) {
            SMQPBulkRequest bulkRequest = (SMQPBulkRequest) obj;
            for (int i = 0; i < bulkRequest.len; i++) {
                Request req = (Request) bulkRequest.dumpables[i];
                if (req.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ)
                    dispatch(req);
            }
        } else
            dispatch((Request) obj);
    }
}
Also used : SMQPBulkRequest(com.swiftmq.jms.smqp.v510.SMQPBulkRequest) Request(com.swiftmq.tools.requestreply.Request) SMQPBulkRequest(com.swiftmq.jms.smqp.v510.SMQPBulkRequest) Dumpable(com.swiftmq.tools.dump.Dumpable)

Example 9 with SMQPBulkRequest

use of com.swiftmq.jms.smqp.v600.SMQPBulkRequest in project swiftmq-ce by iitsoftware.

the class InboundReader method dataAvailable.

public void dataAvailable(Connection connection, InputStream inputStream) throws IOException {
    dis.setInputStream(inputStream);
    Dumpable obj = Dumpalizer.construct(dis, dumpableFactory);
    if (traceSpace.enabled)
        traceSpace.trace("smqp", "read object: " + obj);
    if (obj.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ) {
        if (obj.getDumpId() == SMQPFactory.DID_BULK_REQ) {
            SMQPBulkRequest bulkRequest = (SMQPBulkRequest) obj;
            for (int i = 0; i < bulkRequest.len; i++) {
                Request req = (Request) bulkRequest.dumpables[i];
                if (req.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ)
                    dispatch(req);
                else
                    resetKeepaliveCount();
            }
        } else
            dispatch((Request) obj);
    } else
        resetKeepaliveCount();
}
Also used : SMQPBulkRequest(com.swiftmq.jms.smqp.v600.SMQPBulkRequest) Request(com.swiftmq.tools.requestreply.Request) SMQPBulkRequest(com.swiftmq.jms.smqp.v600.SMQPBulkRequest) Dumpable(com.swiftmq.tools.dump.Dumpable)

Example 10 with SMQPBulkRequest

use of com.swiftmq.jms.smqp.v600.SMQPBulkRequest in project swiftmq-client by iitsoftware.

the class Connector method visit.

public void visit(PODataAvailable po) {
    if (debug)
        System.out.println(toString() + ", visit, po=" + po + " ...");
    DataInput in = po.getIn();
    try {
        Dumpable obj = Dumpalizer.construct(in, dumpableFactory);
        if (debug)
            System.out.println(toString() + ", dataAvailable, obj=" + obj);
        if (obj == null || obj.getDumpId() == SMQPFactory.DID_KEEPALIVE_REQ) {
            return;
        }
        if (!recreateStarted) {
            if (obj.getDumpId() == SMQPFactory.DID_BULK_REQ) {
                SMQPBulkRequest bulkRequest = (SMQPBulkRequest) obj;
                for (int i = 0; i < bulkRequest.len; i++) {
                    Dumpable dumpable = (Dumpable) bulkRequest.dumpables[i];
                    if (dumpable.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ)
                        setReply(dumpable);
                }
            } else
                setReply(obj);
            current = null;
        } else if (obj.getDumpId() == SMQPFactory.DID_BULK_REQ) {
            SMQPBulkRequest bulkRequest = (SMQPBulkRequest) obj;
            for (int i = 0; i < bulkRequest.len; i++) {
                Dumpable dumpable = (Dumpable) bulkRequest.dumpables[i];
                if (dumpable.getDumpId() != SMQPFactory.DID_KEEPALIVE_REQ) {
                    currentRecreatePO.getRecreatable().setRecreateReply((Reply) dumpable);
                    currentRecreatePO.setSuccess(true);
                    if (currentRecreatePO.getSemaphore() != null)
                        currentRecreatePO.getSemaphore().notifySingleWaiter();
                }
            }
        } else {
            currentRecreatePO.getRecreatable().setRecreateReply((Reply) obj);
            currentRecreatePO.setSuccess(true);
            if (currentRecreatePO.getSemaphore() != null)
                currentRecreatePO.getSemaphore().notifySingleWaiter();
        }
        currentRecreatePO = null;
        requestTime = -1;
    } catch (Exception e) {
        if (debug)
            System.out.println(toString() + ", visit, po=" + po + ", exception=" + e);
        if (currentRecreatePO != null) {
            currentRecreatePO.setSuccess(false);
            currentRecreatePO.setException(e.toString());
            if (currentRecreatePO.getSemaphore() != null)
                currentRecreatePO.getSemaphore().notifySingleWaiter();
            currentRecreatePO = null;
        }
        reconnector.invalidateConnection();
        connection = null;
        reconnectInProgress = false;
        currentRecreatePO = null;
        requestTime = -1;
        if (debug)
            System.out.println(toString() + ", (e instanceof JMSSecurityException)?" + (e instanceof JMSSecurityException));
        if (e instanceof JMSSecurityException) {
            if (sem != null)
                sem.notifySingleWaiter();
        } else {
            if (debug)
                System.out.println(toString() + ", e is instanceof " + e.getClass().getName());
            dispatch(new POReconnect(sem, recreatableConnection, true));
        }
    }
    if (debug)
        System.out.println(toString() + ", visit, po=" + po + " done");
}
Also used : LengthCaptureDataInput(com.swiftmq.tools.util.LengthCaptureDataInput) DataInput(java.io.DataInput) JMSSecurityException(javax.jms.JMSSecurityException) SMQPBulkRequest(com.swiftmq.jms.smqp.v610.SMQPBulkRequest) Reply(com.swiftmq.tools.requestreply.Reply) IOException(java.io.IOException) JMSSecurityException(javax.jms.JMSSecurityException) Dumpable(com.swiftmq.tools.dump.Dumpable)

Aggregations

Dumpable (com.swiftmq.tools.dump.Dumpable)11 Request (com.swiftmq.tools.requestreply.Request)7 Reply (com.swiftmq.tools.requestreply.Reply)4 IOException (java.io.IOException)4 LengthCaptureDataInput (com.swiftmq.tools.util.LengthCaptureDataInput)3 DataInput (java.io.DataInput)3 JMSSecurityException (javax.jms.JMSSecurityException)3 InvalidVersionException (com.swiftmq.jms.InvalidVersionException)2 SMQPBulkRequest (com.swiftmq.jms.smqp.v600.SMQPBulkRequest)2 SMQPBulkRequest (com.swiftmq.jms.smqp.v610.SMQPBulkRequest)2 SMQPBulkRequest (com.swiftmq.jms.smqp.v630.SMQPBulkRequest)2 SMQPBulkRequest (com.swiftmq.jms.smqp.v750.SMQPBulkRequest)2 SMQPBulkRequest (com.swiftmq.jms.smqp.v400.SMQPBulkRequest)1 SMQPBulkRequest (com.swiftmq.jms.smqp.v500.SMQPBulkRequest)1 SMQPBulkRequest (com.swiftmq.jms.smqp.v510.SMQPBulkRequest)1