Package org.apache.sandesha2.workers

Examples of org.apache.sandesha2.workers.SandeshaThread


 
  public void commit() {
    releaseLocks();
    if(sentMessages) manager.getSender().wakeThread();
    if(receivedMessages) {
      SandeshaThread invoker = manager.getInvoker();
      if(invoker != null) invoker.wakeThread();
    }
    active = false;
  }
View Full Code Here


      }
    }
   
    // If the storage manager has an invoker, then they may be implementing inOrder, or
    // transactional delivery. Either way, if they have one we should use it.
    SandeshaThread invoker = storageManager.getInvoker();
    if (invoker != null) {
      // Whatever the MEP, we stop processing here and the invoker will do the real work. We only
      // SUSPEND if we need to keep the backchannel open for the response... we may as well ABORT
      // to let other cases end more quickly.
      if(backchannelFree && ackBackChannel) {
View Full Code Here

      log.debug("Enter: SandeshaUtil::startWorkersForSequence, sequence " + sequence);
   
    StorageManager mgr = getSandeshaStorageManager(context, context.getAxisConfiguration());
    boolean polling = sequence.isPollingMode();
   
    SandeshaThread sender = mgr.getSender();
    SandeshaThread invoker = mgr.getInvoker();
    SandeshaThread pollMgr = mgr.getPollingManager();
   
    // Only start the polling manager if we are configured to use MakeConnection
    if(polling && pollMgr == null) {
      String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.makeConnectionDisabled);
      throw new SandeshaException(message);
    }

    if(sequence instanceof RMSBean) {
      // We pass in the internal sequence id for internal sequences.
      String sequenceId = ((RMSBean)sequence).getInternalSequenceID();
      sender.runThreadForSequence(context, sequenceId, true);
      if(polling) pollMgr.runThreadForSequence(context, sequenceId, true);
    } else {
      String sequenceId = sequence.getSequenceID();
      sender.runThreadForSequence(context, sequenceId, false);
      if(invoker != null) invoker.runThreadForSequence(context, sequenceId, false);
      if(polling) pollMgr.runThreadForSequence(context, sequenceId, false);
    }
   
    if (log.isDebugEnabled()) log.debug("Exit: SandeshaUtil::startWorkersForSequence");
  }
View Full Code Here

      log.debug("Enter: SandeshaUtil::startWorkersForSequence, sequence " + sequence);
   
    StorageManager mgr = getSandeshaStorageManager(context, context.getAxisConfiguration());
    boolean polling = sequence.isPollingMode();
   
    SandeshaThread sender = mgr.getSender();
    SandeshaThread invoker = mgr.getInvoker();
    SandeshaThread pollMgr = mgr.getPollingManager();
   
    // Only start the polling manager if we are configured to use MakeConnection
    if(polling && pollMgr == null) {
      String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.makeConnectionDisabled);
      throw new SandeshaException(message);
    }

    if(sequence instanceof RMSBean) {
      // We pass in the internal sequence id for internal sequences.
      String sequenceId = ((RMSBean)sequence).getInternalSequenceID();
      sender.runThreadForSequence(context, sequenceId, true);
      if(polling) pollMgr.runThreadForSequence(context, sequenceId, true);
    } else {
      String sequenceId = sequence.getSequenceID();
      sender.runThreadForSequence(context, sequenceId, false);
      if(invoker != null) invoker.runThreadForSequence(context, sequenceId, false);
      if(polling) pollMgr.runThreadForSequence(context, sequenceId, false);
    }
   
    if (LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled()) log.debug("Exit: SandeshaUtil::startWorkersForSequence");
  }
View Full Code Here

     
      if(appMsgProcTran != null && createSeqRMMessage.getMessageId() != null && !storageManager.hasUserTransaction(createSeqMsg)) {

        // Lock the sender bean before we insert it, if we are planning to send it ourselves
        String workId = createSeqEntry.getMessageID() + createSeqEntry.getTimeToSend();
        SandeshaThread sender = storageManager.getSender();

        ConfigurationContext context = createSeqMsg.getConfigurationContext();
        WorkerLock lock = sender.getWorkerLock();
   
        SenderWorker worker = new SenderWorker(context, createSeqEntry, rmsBean.getRMVersion());
        worker.setLock(lock);
        worker.setWorkId(workId);
        // Actually take the lock
View Full Code Here

    // Lock the sender bean before we insert it, if we are planning to send it ourselves
    SenderWorker worker = null;
    if(sendingNow) {
      String workId = appMsgEntry.getMessageID() + appMsgEntry.getTimeToSend();
      SandeshaThread sender = storageManager.getSender();
      ConfigurationContext context = msg.getConfigurationContext();
      WorkerLock lock = sender.getWorkerLock();
     
      worker = new SenderWorker(context, appMsgEntry, rmsBean.getRMVersion());
      worker.setLock(lock);
      worker.setWorkId(workId);
      // Actually take the lock
View Full Code Here

      // Commit the current transaction, so that the SenderWorker can do it's own locking
      // this transaction should be commited out before gettting the worker lock.
      // otherwise a dead lock can happen.
      if (transaction != null && transaction.isActive()) transaction.commit();

      SandeshaThread sender = storageManager.getSender();
      WorkerLock lock = sender.getWorkerLock();

      String workId = matchingMessage.getMessageID();
      SenderWorker worker = new SenderWorker(pollMessage.getConfigurationContext(), matchingMessage, pollMessage.getRMSpecVersion());
      worker.setLock(lock);
      worker.setWorkId(workId);
View Full Code Here

      log.debug("Enter: SandeshaUtil::startWorkersForSequence, sequence " + sequence);
   
    StorageManager mgr = getSandeshaStorageManager(context, context.getAxisConfiguration());
    boolean polling = sequence.isPollingMode();
   
    SandeshaThread sender = mgr.getSender();
    SandeshaThread invoker = mgr.getInvoker();
    SandeshaThread pollMgr = mgr.getPollingManager();
   
    // Only start the polling manager if we are configured to use MakeConnection
    if(polling && pollMgr == null) {
      String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.makeConnectionDisabled);
      throw new SandeshaException(message);
    }

    if(sequence instanceof RMSBean) {
      // We pass in the internal sequence id for internal sequences.
      String sequenceId = ((RMSBean)sequence).getInternalSequenceID();
      sender.runThreadForSequence(context, sequenceId, true);
      if(polling) pollMgr.runThreadForSequence(context, sequenceId, true);
    } else {
      String sequenceId = sequence.getSequenceID();
      sender.runThreadForSequence(context, sequenceId, false);
      if(invoker != null) invoker.runThreadForSequence(context, sequenceId, false);
      if(polling) pollMgr.runThreadForSequence(context, sequenceId, false);
    }
   
    if (LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled()) log.debug("Exit: SandeshaUtil::startWorkersForSequence");
  }
View Full Code Here

 
    if (sequenceExists && !storageManager.hasUserTransaction(msgContext)) {

      String workId = msgContext.getMessageID()
          + senderBean.getTimeToSend();
      SandeshaThread sender = storageManager.getSender();
      WorkerLock lock = sender.getWorkerLock();

      SenderWorker worker = new SenderWorker(configurationContext,
          senderBean, rmsBean.getRMVersion());
      worker.setLock(lock);
      worker.setWorkId(workId);
View Full Code Here

 
  public void shutdown(){
    //shutdown the running threads
    getSender().stopRunning();
   
    SandeshaThread thread = getInvoker();
    if(thread != null) thread.stopRunning();
   
    thread = getPollingManager();
    if(thread != null) thread.stopRunning();
   
    //removing the reference to the configuration context
    context=null;
  }
View Full Code Here

TOP

Related Classes of org.apache.sandesha2.workers.SandeshaThread

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.