Author: buildbot
Date: Wed Mar 15 12:22:59 2017
New Revision: 1008372
Log:
Production update by buildbot for activemq
Modified:
websites/production/activemq/content/cache/main.pageCache
websites/production/activemq/content/configurable-ioexception-handling.html
Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified:
websites/production/activemq/content/configurable-ioexception-handling.html
==============================================================================
--- websites/production/activemq/content/configurable-ioexception-handling.html
(original)
+++ websites/production/activemq/content/configurable-ioexception-handling.html
Wed Mar 15 12:22:59 2017
@@ -90,7 +90,7 @@
...
</broker>
</pre>
-</div></div><p>Handler configuration properties:</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1"
rowspan="1" class="confluenceTh">Since</th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>ignoreAllErrors</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd">5.4</td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>When <code>true</code> all errors are
ignored and the broker remains running.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>ignoreNoSpaceErrors</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd">5.4</td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>true</code></p><
/td><td colspan="1" rowspan="1" class="confluenceTd"><p>When
<code>false</code> 'no disk space' errors are treated the same as other errors
causing the broker to be stopped.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>noSpaceMessage</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.4</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>space</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The string used to match against the exception's
message. When matched a 'no disk space' error results.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="color:
rgb(0,0,0);"><code>ignoreSQLExceptions</code></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.5</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If <code>true</code> all SQLExceptions are ignored by
the handler allowing them to be han
dled by the persistence adapter's locker. When <code>false</code> the
exception handler processes the exception.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><span style="color:
rgb(0,0,0);"><code>sqlExceptionMessage</code></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.5</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>""</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The SQLException phrase to match when ignoring
SQLExceptions. Only matched exceptions are ignored. All SQLExceptions match the
default empty string.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="color:
rgb(0,0,0);"><code>stopStartConnectors</code></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.5</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>When <code>true</code> transport connectors are stopped
(clien
t connections are refused), however, the broker will remain running. The
transport connectors will be restarted following a successful persistence
adapter checkpoint. All exceptions are ignored whilst the transport connectors
are stopped. This option ensures that the broker does not need to be manually
restarted in the event of a DB restart, for example.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="color:
rgb(0,0,0);"><code>resumeCheckSleepPeriod</code></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.5</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>5sec</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The interval between persistence adapter checkpoints.
Typically used in conjunction with
<code>stopStartConnectors</code>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="color:
rgb(0,0,0);">systemExitOnShutdown</span></p></td><td colspan="1" rowspan="1"
class="conf
luenceTd">5.13</td><td colspan="1" rowspan="1"
class="confluenceTd">false</td><td colspan="1" rowspan="1"
class="confluenceTd"><span style="color: rgb(0,0,0);">before stopping the
broker, set the broker attribute <span style="line-height:
1.42857;">systemExitOnShutdown to this value to potentially force a jvm exit.
</span></span></td></tr></tbody></table></div><p><span style="color:
rgb(0,0,0);">The default configuration will try to find a specified string in
the exception message to determine whether it is a 'no disk space' error. On
most platforms (at least those we have tested), you'll find the word 'space' in
it. Of course, you can customize this to your platform by using <code
style="line-height: 1.42857;">noSpaceMessage</code>
property.</span></p><p>Note: as of ActiveMQ 5.11 the
<code>JDBCIOExceptionHandler</code> has been deprecated. It has been replaced
by the <code>org.apache.activemq.util.LeaseLockerIOExceptionHandler</code> that
will work with any persistence adapter that
supports pluggable storage lockers whether or not a locker is in
use.</p><p>Note: as of ActiveMQ 5.15 there is a kahaDBIOExceptionHandler that
will re-enable kahadb for write operations if the broker needs to stay up;
ignoreAllErrors|ignoreNoSpace=true. For auto recovery on restart kahaDB can
only deal with one partial write to the index and to sync partial writes to the
journal. If the broker stays active, the in memory state can be consistent but
auto recovery may be compromised. For auto recovery having an abortive shutdown
similar to a kill -9 process termination is best.e data on disk is
best. </p><h2
id="ConfigurableIOExceptionHandling-Writingyourownhandler">Writing your own
handler</h2><p>In case this handler doesn't work for you, you can write your
own. For example you might want to change the way how you detect full disk and
execute some external command, like <code>df</code> on Linux to be
sure.</p><p>All you have to do is implement the <code>org.apache.activemq.util
.IOExceptionHandler</code> interface then configure the broker to use
it:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+</div></div><p>Handler configuration properties:</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1"
rowspan="1" class="confluenceTh">Since</th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>ignoreAllErrors</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd">5.4</td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>When <code>true</code> all errors are
ignored and the broker remains running.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>ignoreNoSpaceErrors</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd">5.4</td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>true</code></p><
/td><td colspan="1" rowspan="1" class="confluenceTd"><p>When
<code>false</code> 'no disk space' errors are treated the same as other errors
causing the broker to be stopped.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>noSpaceMessage</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.4</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>space</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The string used to match against the exception's
message. When matched a 'no disk space' error results.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="color:
rgb(0,0,0);"><code>ignoreSQLExceptions</code></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.5</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If <code>true</code> all SQLExceptions are ignored by
the handler allowing them to be han
dled by the persistence adapter's locker. When <code>false</code> the
exception handler processes the exception.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><span style="color:
rgb(0,0,0);"><code>sqlExceptionMessage</code></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.5</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>""</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The SQLException phrase to match when ignoring
SQLExceptions. Only matched exceptions are ignored. All SQLExceptions match the
default empty string.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="color:
rgb(0,0,0);"><code>stopStartConnectors</code></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.5</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>When <code>true</code> transport connectors are stopped
(clien
t connections are refused), however, the broker will remain running. The
transport connectors will be restarted following a successful persistence
adapter checkpoint. All exceptions are ignored whilst the transport connectors
are stopped. This option ensures that the broker does not need to be manually
restarted in the event of a DB restart, for example.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="color:
rgb(0,0,0);"><code>resumeCheckSleepPeriod</code></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd">5.5</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>5sec</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The interval between persistence adapter checkpoints.
Typically used in conjunction with
<code>stopStartConnectors</code>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="color:
rgb(0,0,0);">systemExitOnShutdown</span></p></td><td colspan="1" rowspan="1"
class="conf
luenceTd">5.13</td><td colspan="1" rowspan="1"
class="confluenceTd">false</td><td colspan="1" rowspan="1"
class="confluenceTd"><span style="color: rgb(0,0,0);">before stopping the
broker, set the broker attribute <span style="line-height:
1.42857;">systemExitOnShutdown to this value to potentially force a jvm exit.
</span></span></td></tr></tbody></table></div><p><span style="color:
rgb(0,0,0);">The default configuration will try to find a specified string in
the exception message to determine whether it is a 'no disk space' error. On
most platforms (at least those we have tested), you'll find the word 'space' in
it. Of course, you can customize this to your platform by using <code
style="line-height: 1.42857;">noSpaceMessage</code>
property.</span></p><p>Note: as of ActiveMQ 5.11 the
<code>JDBCIOExceptionHandler</code> has been deprecated. It has been replaced
by the <code>org.apache.activemq.util.LeaseLockerIOExceptionHandler</code> that
will work with any persistence adapter that
supports pluggable storage lockers whether or not a locker is in
use.</p><p>Note: as of ActiveMQ 5.15 there is a
<code>kahaDBIOExceptionHandler</code> that will re-enable kahaDB for write
operations if the broker needs to stay up;
<code>ignoreAllErrors|ignoreNoSpace|stopStartConnectors=true</code>. For auto
recovery on restart kahaDB can only deal with one partial write to the index
and to sync partial writes to the journal. If the broker stays active, the in
memory state can be consistent but auto recovery may be compromised. For auto
recovery having an abortive shutdown similar to a kill -9 process termination,
is best.</p><h2
id="ConfigurableIOExceptionHandling-Writingyourownhandler">Writing your own
handler</h2><p>In case this handler doesn't work for you, you can write your
own. For example you might want to change the way how you detect full disk and
execute some external command, like <code>df</code> on Linux to be
sure.</p><p>All you have to do is implement the <code>org.ap
ache.activemq.util.IOExceptionHandler</code> interface then configure the
broker to use it:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"> <bean id="ioExceptionHandler"
class="com.mycompany.MyIOExceptionHandler">
<property
name="ignoreAllErrors"><value>true</value></property>
</bean>