[ 
https://issues.apache.org/jira/browse/QPID-1980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12734643#action_12734643
 ] 

Keith Chow commented on QPID-1980:
----------------------------------

Hi Martin,

We are using ProtectIO, but not without customization for our usecase. We need 
to protect the broker against misbehaving / broken consumer clients, but don't 
wish to slow down other healthy producers and consumers.

The default WriteBufferLimitFilterBuilder only offers two options when the send 
limit is reached:

i) throw WriteBufferFullExeception (but we don't really want exceptions to be 
thrown continuously)
ii) block the processor until the buffer goes below threshold (this causes 
events to be kept in Qpid's job queue instead of the WriteRequestQueue, but 
leads to the same problem, i.e., the queue can grow without bound causing OOM 
eventually)

So we ended up changing the filter to return immediately to stop the I/O chain 
whenever the write threshold is reached. This allows other consumers of the 
same topic to receive messages from the producer and keeps an upperbound of 
broker memory consumed by each client.

We are still using M3 java broker, so these observation may not apply directly 
with the 0.5 release anymore.

Regards,

Keith

> Java broker does not parse protection I/O configuration with expected XML 
> structure
> -----------------------------------------------------------------------------------
>
>                 Key: QPID-1980
>                 URL: https://issues.apache.org/jira/browse/QPID-1980
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.5
>            Reporter: Keith Chow
>            Assignee: Aidan Skinner
>            Priority: Minor
>         Attachments: ServerConfiguration.java.diff
>
>
> The following is the default 0.5 java broker config.xml structure for 
> protection I/O related configuration.
> <broker>
>     <connector>
>         <qpidnio>false</qpidnio>
>         <protectio>
>             <enabled>false</enabled>
>       </protectio>
>     </connector>
> </broker>
> But ServerConfiguration expects a config value with key 
> "broker.connector.protectio.enabled", which makes the "broker." prefix 
> appears to be extraneous if the default config's XML structure is correct.

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


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to