[ https://issues.apache.org/jira/browse/WSCOMMONS-454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689878#action_12689878 ]
Amila Chinthaka Suriarachchi commented on WSCOMMONS-454: -------------------------------------------------------- yes we can not guarantee the message ordering at the transport level. But I think this means RMS client should not send the message#2 until it receives acknowledgement for message #1. > 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.