activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From andytay...@apache.org
Subject [3/9] activemq-artemis git commit: ARTEMIS-627 document details of Producer BLOCK in CORE
Date Wed, 20 Jul 2016 09:35:35 GMT
ARTEMIS-627 document details of Producer BLOCK in CORE


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/5695164b
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/5695164b
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/5695164b

Branch: refs/heads/master
Commit: 5695164b873d13c0909def0f0cf4569f6128b88c
Parents: fe27cd8
Author: Martyn Taylor <mtaylor@redhat.com>
Authored: Mon Jul 18 14:51:56 2016 +0100
Committer: Andy Taylor <andy.tayls67@gmail.com>
Committed: Wed Jul 20 10:33:44 2016 +0100

----------------------------------------------------------------------
 docs/user-manual/en/flow-control.md | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/5695164b/docs/user-manual/en/flow-control.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/flow-control.md b/docs/user-manual/en/flow-control.md
index 48d426e..054bcce 100644
--- a/docs/user-manual/en/flow-control.md
+++ b/docs/user-manual/en/flow-control.md
@@ -198,12 +198,19 @@ size can be set via the
 `ActiveMQConnectionFactory.setProducerWindowSize(int
                   producerWindowSize)` method.
 
-#### Blocking producer window based flow control
+#### Blocking producer window based flow control using CORE protocol
 
-Normally the server will always give the same number of credits as have
-been requested. However, it is also possible to set a maximum size on
-any address, and the server will never send more credits than could
-cause the address's upper memory limit to be exceeded.
+When using the CORE protocol (used by both the Artemis Core Client and Artemis JMS Client)
+the server will always aim give the same number of credits as have been requested.
+However, it is also possible to set a maximum size on any address, and the server
+will never send more credits to any one producer than what is available according to
+the address's upper memory limit.  Although a single producer will be issued more
+credits than available (at the time of issue) it is possible that more than 1
+producer be associated with the same address and so it is theoretically possible
+that more credits are allocated across total producers than what is available.
+It is therefore possible to go over the address limit by approximately:
+
+ '''total number of producers on address * producer window size'''
 
 For example, if I have a JMS queue called "myqueue", I could set the
 maximum memory size to 10MiB, and the the server will control the number
@@ -257,6 +264,15 @@ control.
 > want this behaviour increase the `max-size-bytes` parameter or change
 > the address full message policy.
 
+> **Note**
+>
+> Producer credits are allocated from the broker to the client.  Flow control
+> credit checking (i.e. checking a producer has enough credit) is done on the
+> client side only.  It is possible for the broker to over allocate credits, like
+> in the multiple producer scenario outlined above.  It is also possible for
+> a misbehaving client to ignore the flow control credits issued by the broker
+> and continue sending with out sufficient credit.
+
 ### Rate limited flow control
 
 Apache ActiveMQ Artemis also allows the rate a producer can emit message to be limited,


Mime
View raw message