Package org.apache.sandesha2.storage.beans

Examples of org.apache.sandesha2.storage.beans.SenderBean


  private synchronized ArrayList findBeansWithMsgNo(ArrayList list, long msgNo) {
    ArrayList beans = new ArrayList();

    Iterator it = list.iterator();
    while (it.hasNext()) {
      SenderBean bean = (SenderBean) it.next();
      if (bean.getMessageNumber() == msgNo)
        beans.add(bean);
    }

    return beans;
  }
View Full Code Here


  public synchronized SenderBean retrieveFromMessageRefKey(String messageContextRefKey) {
   
    Iterator iter = table.keySet().iterator();
    while (iter.hasNext()) {
      Object key = iter.next();
      SenderBean bean = (SenderBean) table.get(key);
      if (bean.getMessageContextRefKey().equals(messageContextRefKey)) {
        return bean;
      }
    }
   
    return null;
View Full Code Here

      throw new SandeshaException(e.getMessage());
    }

    String key = SandeshaUtil.getUUID();
   
    SenderBean terminateBean = new SenderBean();
    terminateBean.setMessageContextRefKey(key);

   
    storageManager.storeMessageContext(key,msgContext);

   
    //Set a retransmitter lastSentTime so that terminate will be send with
    // some delay.
    //Otherwise this get send before return of the current request (ack).
    //TODO: refine the terminate delay.
    terminateBean.setTimeToSend(System.currentTimeMillis()
        + Sandesha2Constants.TERMINATE_DELAY);

    terminateBean.setMessageID(msgContext.getMessageID());
   
    //this will be set to true at the sender.
    terminateBean.setSend(true);
   
    msgContext.setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING,
        Sandesha2Constants.VALUE_FALSE);
   
    terminateBean.setReSend(false);

    SenderBeanMgr retramsmitterMgr = storageManager
        .getRetransmitterBeanMgr();

    retramsmitterMgr.insert(terminateBean);
View Full Code Here

   
    //removing retransmitterMgr entries
    Collection collection = retransmitterBeanMgr.find(internalSequenceID);
    Iterator iterator = collection.iterator();
    while (iterator.hasNext()) {
      SenderBean retransmitterBean = (SenderBean) iterator.next();
      retransmitterBeanMgr.delete(retransmitterBean.getMessageID());
    }
   
    //removing the createSeqMgrEntry
    CreateSeqBean findCreateSequenceBean = new CreateSeqBean ();
    findCreateSequenceBean.setInternalSequenceID(internalSequenceID);
View Full Code Here

      throw new SandeshaException(e.getMessage());
    }

    String key = SandeshaUtil.getUUID();
   
    SenderBean terminateBean = new SenderBean();
    terminateBean.setMessageContextRefKey(key);

   
    storageManager.storeMessageContext(key,terminateRMMessage.getMessageContext());

   
    //Set a retransmitter lastSentTime so that terminate will be send with
    // some delay.
    //Otherwise this get send before return of the current request (ack).
    //TODO: refine the terminate delay.
    terminateBean.setTimeToSend(System.currentTimeMillis()
        + Sandesha2Constants.TERMINATE_DELAY);

    terminateBean.setMessageID(terminateRMMessage.getMessageId());
   
    //this will be set to true at the sender.
    terminateBean.setSend(true);
   
    terminateRMMessage.getMessageContext().setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING,
        Sandesha2Constants.VALUE_FALSE);
   
    terminateBean.setReSend(false);

    SenderBeanMgr retramsmitterMgr = storageManager
        .getRetransmitterBeanMgr();

    retramsmitterMgr.insert(terminateBean);
View Full Code Here

    if (createSeqMsg.getReplyTo() == null)
      createSeqMsg.setReplyTo(new EndpointReference(anonymousURI));

    String key = SandeshaUtil.getUUID();   //the key used to store the create sequence message.

    SenderBean createSeqEntry = new SenderBean();
    createSeqEntry.setMessageContextRefKey(key);
    createSeqEntry.setTimeToSend(System.currentTimeMillis());
    createSeqEntry.setMessageID(createSeqRMMessage.getMessageId());
    createSeqEntry.setInternalSequenceID(internalSequenceId);
    // this will be set to true in the sender
    createSeqEntry.setSend(true);

    createSeqMsg.setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING,Sandesha2Constants.VALUE_FALSE);
    createSeqEntry.setMessageType(Sandesha2Constants.MessageTypes.CREATE_SEQ);
    retransmitterMgr.insert(createSeqEntry);
   
    storageManager.storeMessageContext(key,createSeqMsg);   //storing the message.
   
View Full Code Here

    } catch (AxisFault e1) {
      throw new SandeshaException(e1.getMessage());
    }

    //Retransmitter bean entry for the application message
    SenderBean appMsgEntry = new SenderBean();
   
    appMsgEntry.setMessageContextRefKey(storageKey);

    appMsgEntry.setTimeToSend(System.currentTimeMillis());
    appMsgEntry.setMessageID(rmMsg.getMessageId());
    appMsgEntry.setMessageNumber(messageNumber);
    appMsgEntry.setMessageType(Sandesha2Constants.MessageTypes.APPLICATION);
    if (outSequenceBean == null || outSequenceBean.getValue() == null) {
      appMsgEntry.setSend(false);
    } else {
      appMsgEntry.setSend(true);
      // Send will be set to true at the sender.
      msg.setProperty(Sandesha2Constants.SET_SEND_TO_TRUE,
          Sandesha2Constants.VALUE_TRUE);
    }

    appMsgEntry.setInternalSequenceID(internalSequenceId);
    storageManager.storeMessageContext(storageKey,msg);
    retransmitterMgr.insert(appMsgEntry);
    msg.setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING,Sandesha2Constants.VALUE_FALSE);

    // changing the sender. This will set send to true.
View Full Code Here

      String key = SandeshaUtil.getUUID();
     
      //dumping to the storage will be done be Sandesha2 Transport Sender
      //storageManager.storeMessageContext(key,ackMsgCtx);
     
      SenderBean ackBean = new SenderBean();
      ackBean.setMessageContextRefKey(key);
      ackBean.setMessageID(ackMsgCtx.getMessageID());
      ackBean.setReSend(false);
      ackBean.setSequenceID(sequenceID);
     
      //this will be set to true in the sender.
      ackBean.setSend(true);
     
      ackMsgCtx.setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING,
          Sandesha2Constants.VALUE_FALSE);
     
      ackBean.setMessageType(Sandesha2Constants.MessageTypes.ACK);
     
      //the internalSequenceId value of the retransmitter Table for the
      // messages related to an incoming
      //sequence is the actual sequence ID

      //operation is the lowest level, Sandesha2 can be engaged.
      SandeshaPropertyBean propertyBean = SandeshaUtil.getPropertyBean(msgContext.getAxisOperation());
     
     
      long ackInterval = propertyBean.getAcknowledgementInaterval();
     
      //Ack will be sent as stand alone, only after the retransmitter
      // interval.
      long timeToSend = System.currentTimeMillis() + ackInterval;

      //removing old acks.
      SenderBean findBean = new SenderBean();
      findBean.setMessageType(Sandesha2Constants.MessageTypes.ACK);
     
      //this will be set to true in the sandesha2TransportSender.
      findBean.setSend(true);
      findBean.setReSend(false);
      Collection coll = retransmitterBeanMgr.find(findBean);
      Iterator it = coll.iterator();

      if (it.hasNext()) {
        SenderBean oldAckBean = (SenderBean) it.next();
        timeToSend = oldAckBean.getTimeToSend();    //If there is an old ack. This ack will be sent in the old timeToSend.
        retransmitterBeanMgr.delete(oldAckBean.getMessageID());
      }
     
      ackBean.setTimeToSend(timeToSend);

      storageManager.storeMessageContext(key,ackMsgCtx);
View Full Code Here

    //Because of this dispatching may go wrong. So we set relatesTo value to null for ackMessages.
    //(this happens in the SandeshaGlobal handler). Do this only if this is a standalone ACK.
//    if (rmMsgCtx.getMessageType() == Sandesha2Constants.MessageTypes.ACK)
//      rmMsgCtx.setRelatesTo(null);

    SenderBean input = new SenderBean();
    input.setSend(true);
    input.setReSend(true);
    Collection retransmitterEntriesOfSequence = retransmitterMgr
        .find(input);

    ArrayList ackedMessagesList = new ArrayList ();
    while (ackRangeIterator.hasNext()) {
      AcknowledgementRange ackRange = (AcknowledgementRange) ackRangeIterator
          .next();
      long lower = ackRange.getLowerValue();
      long upper = ackRange.getUpperValue();

      for (long messageNo = lower; messageNo <= upper; messageNo++) {
        SenderBean retransmitterBean = getRetransmitterEntry(
            retransmitterEntriesOfSequence, messageNo);
        if (retransmitterBean != null)
          retransmitterMgr.delete(retransmitterBean.getMessageID());
       
        ackedMessagesList.add(new Long (messageNo));
      }
    }
View Full Code Here

  private SenderBean getRetransmitterEntry(Collection collection,
      long msgNo) {
    Iterator it = collection.iterator();
    while (it.hasNext()) {
      SenderBean bean = (SenderBean) it.next();
      if (bean.getMessageNumber() == msgNo)
        return bean;
    }

    return null;
  }
View Full Code Here

TOP

Related Classes of org.apache.sandesha2.storage.beans.SenderBean

Copyright © 2018 www.massapicom. 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.