[ 
https://issues.apache.org/jira/browse/SYNAPSE-434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689880#action_12689880
 ] 

Asankha C. Perera commented on SYNAPSE-434:
-------------------------------------------

I've fixed WSCOMMONS-454 for the Mail transport. We could use the same concept 
and make sure that one file is processed only once (i.e. using the file path) 
for VFS. Of course, one would need to pin VFS services to an Active/Passive 
configuration to ensure that multiple nodes on a cluster would not conflict

> Concurrency level provided by the mail and VFS transports listeners is 
> insufficient
> -----------------------------------------------------------------------------------
>
>                 Key: SYNAPSE-434
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-434
>             Project: Synapse
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 1.2
>            Reporter: Andreas Veithen
>            Assignee: Andreas Veithen
>            Priority: Minor
>
> Scenario:
> * Two services are configured to use the (mail or VFS) transport.
> * Two messages are sent two each of these services.
> In this case, one would expect that the transport listener will be able to 
> process at least 2 (better 4) messages concurrently. However the listener 
> currently only processes one message at a time, i.e. the listener behaves as 
> if it was single-threaded.
> There are two reasons for this:
> 1. AbstractPollingTransportListener contains the following code:
> workerPool.execute(new Runnable() {
>     public void run() {
>         synchronized (pollLock) {
>             pollInProgress = true;
>             try {
>                 onPoll();
>             } finally {
>                 pollInProgress = false;
>             }
>         }
>     }
> });
> Since pollLock is a member of AbstractPollingTransportListener, there can 
> only be one poll in progress at a time, even if several services are 
> configured to use the transport (in which case nothing would prevent the 
> transport from executing the polls for the different services in parallel).
> 2. Both MailTransportListener and VFSTransportListener process incoming 
> messages sequentially. Here again, the transport could process several 
> messages in parallel during the execution of the onPoll method.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to