[ 
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.

Reply via email to