[ 
https://issues.apache.org/jira/browse/WSCOMMONS-454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689861#action_12689861
 ] 

Andreas Veithen commented on WSCOMMONS-454:
-------------------------------------------

The fact that the client transmits messages in Sequence message order doesn't 
imply that the service will receive them in the right order. That actually 
depends on the transport protocols used between the client and the service, 
i.e. SMTP and POP3/IMAP in this case. I don't think that these protocols 
provide any guarantee on message order.

> SMTP transport can receive more than one message at same time
> -------------------------------------------------------------
>
>                 Key: WSCOMMONS-454
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-454
>             Project: WS-Commons
>          Issue Type: Bug
>            Reporter: Amila Chinthaka Suriarachchi
>            Assignee: Asankha C. Perera
>            Priority: Blocker
>
> hi all,
> recently I started some RM tests with the commons mail transport.
> Mail transport listener runs in a timer task.
> TimerTask timerTask = new TimerTask() {
>             @Override
>             public void run() {
>                  workerPool.execute(new Runnable() {
>                     public void run() {
>                          if (state == BaseConstants.PAUSED) {
>                             if (log.isDebugEnabled()) {
>                                 log.debug("Transport " + getTransportName() +
>                                         " poll trigger : Transport is 
> currently paused..");
>                             }
>                         } else {
>                             poll(entry);
>                         }
>                         synchronized (entry) {
>                             if (!entry.canceled) {
>                                 schedulePoll(entry, pollInterval);
>                             }
>                         }
>                     }
>                 });
>             }
>         };
>         entry.timerTask = timerTask;
>         timer.schedule(timerTask, pollInterval)
> As I saw timer task only  re activates only after  earlier invocation finish. 
> i.e  after completing the message.
> In RM inorder delivery case lets say we receive message number 2 before 1. 
> then the initial thread does not return and
> it can not receive the message number 1.
> I tested this this the following sample.
> TimerTask timerTask = new TimerTask(){
>             public void run() {
>                 System.out.println("In the timer task");
>                 try {
>                     Thread.sleep(60000);
>                 } catch (InterruptedException e) {
>                     e.printStackTrace();  //To change body of catch statement 
> use File | Settings | File Templates.
>                 }
>                 System.out.println("Going out of timer task");
>             }
>         };
>         Timer timer = new Timer("Testtimer");
>         timer.schedule(timerTask,0, 1000);
> And I saw timer task does not run until it finishes the first task.
> Can we start a new thread to each new message? That is how earlier SMTP 
> transport had done that.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to