[ 
https://issues.apache.org/jira/browse/HTTPCORE-127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12546011
 ] 

Oleg Kalnichevski commented on HTTPCORE-127:
--------------------------------------------

Asankha,

It is a very common problem people usually have with NIO. One cannot register 
new channels with the selector when it is busy selecting I/O events. The usual 
way of going about the problem is to queue new channels [1] using a queuing 
mechanism of some sort and then to register channels with the selector when it 
unblocks from selecting I/O events [2]

[1] 
http://jakarta.apache.org/httpcomponents/httpcomponents-core/httpcore-nio/xref/org/apache/http/impl/nio/reactor/AbstractIOReactor.html#100
[2] 
http://jakarta.apache.org/httpcomponents/httpcomponents-core/httpcore-nio/xref/org/apache/http/impl/nio/reactor/AbstractIOReactor.html#147

The fact that DefaultListeningIOReactor does not employ a queuing mechanism for 
new channels is likely to be a bug, which we need to fix.

Oleg

> Expose improved API for lifecycle management
> --------------------------------------------
>
>                 Key: HTTPCORE-127
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-127
>             Project: HttpComponents Core
>          Issue Type: Improvement
>          Components: HttpCore NIO
>    Affects Versions: 4.0-alpha6
>            Reporter: Asankha C. Perera
>             Fix For: 4.0-beta1
>
>
> Apache Synapse uses HttpCore and we would like to stop accepting new 
> connections to put our servers into a "maintenance" mode. In this mode any 
> in-flight requests already being served will continue as normal (i.e. 
> reading, writing etc) but new connections should be rejected, so that a load 
> balancer could direct new connections to another instance in the cluster. The 
> requirement is to then update configuration, apply patches or cleanly 
> shutdown etc. for maintenance without effecting any in-flight requests.
> Implementation wise I think this would be fairly straightforward as we can 
> remove OP_ACCEPT from the interested ops.
> On the mailing list Odi suggested that we tackle this at a broader level by 
> exposing lifecycle management APIs
> "I suggest create, start, stop, destroy methods in some classes/APIs 
> (semantics of JBoss Service MBeans)"

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