[ https://issues.apache.org/jira/browse/WSCOMMONS-454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689072#action_12689072 ]
Asankha C. Perera commented on WSCOMMONS-454: --------------------------------------------- It seems like POP3 never allows you to download mail in parallel. The only Google result I came across was [1] "if you have thousands of messages sitting on the POP server which have never been downloaded on a given client, it will take quite a while to download them as well, even longer if your POP server is not capable of sending messages in parallel". Since POP3 is a simple protocol with one connection to port 110 etc, I do not see a way to provide parallel retrieval anyway.. usually POP3 servers does not even allow the same client to re-connect after a NW disconnect, until a timeout of a few minutes So I am going to provide a parameter in the MailTransportListener if parallel processing is to be allowed or not. Default will be to not process in parallel. If anyone knows a POP3 mail server that supports parallel retrieval let me know :) [1] http://wooga.drbacchus.com/pop-vs-imap#comment-980 > 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.