Examples of RMMessageContext


Examples of org.apache.sandesha.RMMessageContext

    public boolean hasMessageWithId(String msgId) {
        Iterator it = hash.keySet().iterator();
        boolean result = false;
        while (it.hasNext()) {
            RMMessageContext msg = (RMMessageContext) hash.get(it.next());
            if (msg.getMessageID().equals(msgId)) {
                result = true;
                break;
            }
        }
        return result;
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext

        List result = new ArrayList();
        Iterator it = hash.keySet().iterator();

        while (it.hasNext()) {
            Object key = it.next();
            RMMessageContext msg = (RMMessageContext) hash.get(key);
            long l = msg.getMsgNumber();
            result.add(new Long(l));
        }
        return result;
    }
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext

        }
        return result;
    }

    public void setAckReceived(long msgNo) {
        RMMessageContext msg = (RMMessageContext) hash.get(new Long(msgNo));
        if (msg != null) {
            msg.setAckReceived(true);
        } else {
            log.error("ERROR: MESSAGE IS NULL IN ResponseSeqHash");
        }

    }
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext

            }
        }

        it = hash.keySet().iterator();
        while (it.hasNext()) {
            RMMessageContext msg = (RMMessageContext) hash.get(it.next());
            if (!msg.isAckReceived()) {
                return false;
            }
        }
        return true;
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext

                throw new QueueException(Constants.Queue.SEQUENCE_ABSENT);

            if (!sh.hasProcessableMessages())
                return null;

            RMMessageContext msgCon = sh.getNextMessageToProcess();
            return msgCon;
        }
    }
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext

            return msgCon;
        }
    }

    public RMMessageContext nextOutgoingMessageToSend() throws QueueException {
        RMMessageContext msg = null;
        synchronized (outgoingMap) {
            Iterator it = outgoingMap.keySet().iterator();

            whileLoop: while (it.hasNext()) {
                RMMessageContext tempMsg;
                String tempKey = (String) it.next();
                OutgoingSequence rsh = (OutgoingSequence) outgoingMap.get(tempKey);
                if (rsh.isOutSeqApproved()) {
                    tempMsg = rsh.getNextMessageToSend();
                    if (tempMsg != null) {
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext


            if (highPriorityQueue.size() <= 0)
                return null;

            RMMessageContext msg = null;
            int size = highPriorityQueue.size();
            synchronized (highPriorityQueue) {
                forLoop: //Label
                for (int i = 0; i < size; i++) {
                    RMMessageContext tempMsg = (RMMessageContext) highPriorityQueue.get(i);
                    if (tempMsg != null) {
                        switch (tempMsg.getMessageType()) {
                            //Create seq messages will not be removed.
                            case Constants.MSG_TYPE_CREATE_SEQUENCE_REQUEST:
                                long lastSentTime = tempMsg.getLastSentTime();
                                Date d = new Date();
                                long currentTime = d.getTime();
                                if (currentTime >=
                                        lastSentTime + Constants.RETRANSMISSION_INTERVAL) {

                                    String newCreateSeqId = Constants.UUID + uuidGen.nextUUID();
                                    tempMsg.setMessageID(newCreateSeqId);

                                    tempMsg.setLastSentTime(currentTime);
                                    msg = tempMsg;
                                    break forLoop;


                                }
                                break;
                            case Constants.MSG_TYPE_ACKNOWLEDGEMENT:
                               
                                //acks are send in the folowing manner.
                                //If a ack the system has asked to send a ack (sequence.sendAck==true)
                                //then send it immediately.
                                //Also send a ack when a interval (ACKNOWLEDGEMENT_INTERVAL) has passed
                                //since last message arrived.
                               
                                String sequenceId = tempMsg.getSequenceID();
                                if (sequenceId == null)
                                    continue;

                                String key = getKeyFromIncomingSequenceId(sequenceId);
                                IncomingSequence sequence = (IncomingSequence) incomingMap.get(key);
                                if (sequence == null)
                                    continue;

                                d = new Date();
                                currentTime = d.getTime();

                                if (sequence.isSendAck()) {

                                    tempMsg.setLastSentTime(currentTime);
                                    msg = tempMsg;
                                    sequence.setSendAck(false);
                                    sequence.setFinalAckedTime(currentTime);
                                    break forLoop;

                                } else {
                                    long ackInterval = PolicyLoader.getInstance()
                                            .getAcknowledgementInterval();
                                    long finalAckedTime = sequence.getFinalAckedTime();
                                    long finalMsgArrivedTime = sequence.getFinalMsgArrivedTime();

                                    if ((finalMsgArrivedTime > finalAckedTime) &&
                                            (currentTime > finalMsgArrivedTime + ackInterval))
                                        sequence.setSendAck(true);
                                }

                                break;
                            default:
                                highPriorityQueue.remove(i);
                                queueBin.put(tempMsg.getMessageID(), tempMsg);
                                msg = tempMsg;
                                break forLoop;
                        }
                    }
                }
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext

        System.out.println("       DISPLAYING PRIORITY QUEUE");
        System.out.println("------------------------------------");

        Iterator it = highPriorityQueue.iterator();
        while (it.hasNext()) {
            RMMessageContext msg = (RMMessageContext) it.next();
            String id = msg.getMessageID();
            int type = msg.getMessageType();

            System.out.println("Message " + id + "  Type " + type);
        }
        System.out.println("\n");
    }
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext

    public void movePriorityMsgToBin(String messageId) {

        synchronized (highPriorityQueue) {
            int size = highPriorityQueue.size();
            for (int i = 0; i < size; i++) {
                RMMessageContext msg = (RMMessageContext) highPriorityQueue.get(i);

                String tempMsgId;
                try {
                    tempMsgId = (String) msg.getMessageIdList().get(0);
                } catch (Exception ex) {
                    tempMsgId = msg.getMessageID();
                }
                if (tempMsgId.equals(messageId)) {
                    highPriorityQueue.remove(i);
                    queueBin.put(messageId, msg);
                    return;
View Full Code Here

Examples of org.apache.sandesha.RMMessageContext

        IncomingSequence sh = (IncomingSequence) incomingMap.get(seqId);
        if (sh == null) {
            return null;
        }
        synchronized (sh) {
            RMMessageContext msg = sh.getMessageRelatingTo(requestId);
            return msg;
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.