| <?xml version="1.0"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| |
| <section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="Java-Broker-Runtime-Flow-To-Disk"> |
| <title>Flow to Disk</title> |
| <para>Flow to disk limits the amount of <link linkend="Java-Broker-Runtime-Memory">direct and heap memory</link> |
| that can be occupied by messages. Once this |
| limit is reached any new transient messages and all existing transient messages will be |
| transferred to disk. Newly arriving transient messages will continue to go to the disk until the |
| cumulative size of all messages falls below the limit once again.</para> |
| <para>By default the Broker makes 40% of the max direct available memory for messages. This memory is |
| divided between all the queues across all virtual hosts defined on the Broker with a percentage |
| calculated according to their current queue size. These calculations are refreshed periodically |
| by the housekeeping cycle.</para> |
| <para>For example if there are two queues, one containing 75MB and the second 100MB messages |
| respectively and the Broker has 1GB direct memory with the default of 40% available for messages. |
| The first queue will have a target size of 170MB and the second 230MB. Once 400MB is taken by |
| messages, messages will begin to flow to disk. New messages will cease to flow to disk when |
| their cumulative size falls beneath 400MB.</para> |
| <para>Flow to disk is configured by Broker context variable |
| <literal>broker.flowToDiskThreshold</literal>. It is expressed as a size in bytes and defaults |
| to 40% of the JVM maximum heap size.</para> |
| <para>Log message <link linkend="Java-Broker-Appendix-Operation-Logging-Message-BRK-1014">BRK-1014</link> is written when the feature activates. Once the total space of all messages |
| decreases below the threshold, the message <link linkend="Java-Broker-Appendix-Operation-Logging-Message-BRK-1015">BRK-1015</link> is written |
| to show that the feature is no longer active.</para> |
| </section> |