Author: buildbot
Date: Wed Jan 14 23:22:18 2015
New Revision: 936231

Log:
Production update by buildbot for activemq

Modified:
    websites/production/activemq/content/cache/main.pageCache
    websites/production/activemq/content/configurable-ioexception-handling.html
    websites/production/activemq/content/pluggable-storage-lockers.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 Jan 14 23:22:18 2015
@@ -35,7 +35,7 @@
           <link 
href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' 
rel='stylesheet' type='text/css' /> 
       <link 
href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' 
rel='stylesheet' type='text/css' /> 
       <script 
src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' 
type='text/javascript'></script> 
-              <script 
src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' 
type='text/javascript'></script> 
+              <script 
src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js' 
type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 
@@ -81,23 +81,8 @@
   <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><p>Starting with 5.3.1, ActiveMQ 
provides configurable IOException handling for its file-based message stores. 
From version 5.5 the handler is also invoked when the JDBC persistence adapter 
gets a failure on getConnection().</p>
-
-<h2 id="ConfigurableIOExceptionHandling-DefaultIOExceptionhandler">Default 
IOException handler</h2>
-
-<p>ActiveMQ comes with a default IOException handler, which does the 
following. When some of the file-based message stores encounter IOException it 
can be one of the two things: either the disk is unavailable of there's no more 
space on the disk.</p>
-
-<p>The first case is usually encountered when disk fails or network disk is 
disconnected. These errors are not "recoverable" and we usually want to 
shutdown the broker until problems with the disk are solved.</p>
-
-<p>When there's no more space on the disk, we usually want to wait that some 
space is reclaimed and continue what we have been doing before (exchanging 
messages). All file-based persistent stores are capable of surviving these kind 
of errors.</p>
-
-<h3 
id="ConfigurableIOExceptionHandling-ConfiguringDefaultIOExceptionhandler">Configuring
 Default IOException handler</h3>
-
-<p>There are a couple of properties you can use to tune the behavior of 
default IOException handler. But first you need to configure the broker to use 
customized handler. You can do that by instantiating a handler and setting it 
using <code>ioExceptionHandler</code> property.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-    &lt;bean id=&quot;ioExceptionHandler&quot; 
class=&quot;org.apache.activemq.util.DefaultIOExceptionHandler&quot;&gt;
+<div class="wiki-content maincontent"><p>Starting with 5.3.1, ActiveMQ 
provides configurable IOException handling for its file-based message stores. 
From version 5.5 the handler is also invoked when the JDBC persistence adapter 
gets a failure on <code>getConnection()</code>.</p><h2 
id="ConfigurableIOExceptionHandling-DefaultIOExceptionhandler">Default 
IOException handler</h2><p>ActiveMQ comes with a default IOException handler, 
which does the following. When some of the file-based message stores encounter 
IOException it can be one of the two things: either the disk is unavailable of 
there's no more space on the disk.</p><p>The first case is usually encountered 
when disk fails or network disk is disconnected. These errors are not 
"recoverable" and we usually want to shutdown the broker until problems with 
the disk are solved.</p><p>When there's no more space on the disk, we usually 
want to wait that some space is reclaimed and continue what we have been doing 
before (exchanging messa
 ges). All file-based persistent stores are capable of surviving these kind of 
errors.</p><h3 
id="ConfigurableIOExceptionHandling-ConfiguringDefaultIOExceptionhandler">Configuring
 Default IOException handler</h3><p>There are a couple of properties you can 
use to tune the behavior of the <code>DefaultIOExceptionHandler</code>. First, 
instantiate the exception handler as a bean. Then configure the broker to use 
the exception handler by setting the broker's <code>ioExceptionHandler</code> 
property.</p><p>Example:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[    &lt;bean 
id=&quot;ioExceptionHandler&quot; 
class=&quot;org.apache.activemq.util.DefaultIOExceptionHandler&quot;&gt;
         &lt;property 
name=&quot;ignoreAllErrors&quot;&gt;&lt;value&gt;true&lt;/value&gt;&lt;/property&gt;
     &lt;/bean&gt;
 
@@ -105,26 +90,8 @@
       ...
     &lt;/broker&gt;
 ]]></script>
-</div></div>
-
-<p>Here are the 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"><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> 
ignoreAllErrors </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
false </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ignore all 
errors and don't stop the broker </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> ignoreNoSpaceErrors </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> true </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> if set to false, 'no disk space' errors will not be 
treated separately and broker will be stopped </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> noSpaceMessage </p></td><td colspan="1" 
rowspan="1" class="confluence
 Td"><p> space </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
try to find this phrase in exception message to determine if it is 'no disk 
space' case </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <span style="color: red;">ignoreSQLExceptions</span> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> true </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> SLQExceptions that match 
(default all) will be ignored. This allows the existing database locker to take 
control of DB failures. When false the handler will process the exception 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <span 
style="color: red;">sqlExceptionMessage</span> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> "" </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The SQLException phrase to match when ignoring 
SQLExceptions. Only exceptions that match are ignored. Everything matches the 
default empty string </p>
 </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <span 
style="color: red;">stopStartConnectors</span> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> false </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Don't stop the broker, just stop and restart the 
transport connectors when a persistence adapter checkpoint succeeds again. 
While the handler is waiting to restart the connectors exceptions are ignored. 
Using this option ensures that the broker does not need to be manually 
restarted in the event of a DB restart </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <span style="color: 
red;">resumeCheckSleepPeriod</span> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> 5sec </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> the sleep period between checks for a successful 
persistence adapter checkpoint that allows transport connectors to resume. used 
in conjunction with stopStartConnectors </p></td>
 </tr></tbody></table></div>
-
-
-<p><em>Options in <span style="color: red;">red</span> are available in 
version 5.5</em><br clear="none">
-The default configuration will try to find a specified string in the exception 
message to determine whether it is a 'no disk space' kind of error. On most 
platforms (at least those we have tested), you'll find the 'space' word in it. 
Of course, you can customize this to your platform using 
<code>noSpaceMessage</code> property.</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 and 
configure the broker to use it</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-    &lt;bean id=&quot;ioExceptionHandler&quot; 
class=&quot;com.mycompany.MyIOExceptionHandler&quot;&gt;
+</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"><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"><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"><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"><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><code><span style="color: 
red;">ignoreSQLExceptions</span></code></p></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 handled 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><code><span style="color: 
red;">sqlExceptionMessage</span></code></p></td><td colspan="1" rowspan="1" 
class="con
 fluenceTd"><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><code><span style="color: 
red;">stopStartConnectors</span></code></p></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 
(client 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><code><span style="color: 
 >red;">resumeCheckSleepPeriod</span></code></p></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></tbody></table></div><p><em>Options
 > in <span style="color: red;">red</span> are available in version 
 >5.5</em></p><p>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>noSpaceMessage</code> property.</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><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">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[    &lt;bean 
id=&quot;ioExceptionHandler&quot; 
class=&quot;com.mycompany.MyIOExceptionHandler&quot;&gt;
         &lt;property 
name=&quot;ignoreAllErrors&quot;&gt;&lt;value&gt;true&lt;/value&gt;&lt;/property&gt;
     &lt;/bean&gt;
 

Modified: websites/production/activemq/content/pluggable-storage-lockers.html
==============================================================================
--- websites/production/activemq/content/pluggable-storage-lockers.html 
(original)
+++ websites/production/activemq/content/pluggable-storage-lockers.html Wed Jan 
14 23:22:18 2015
@@ -82,7 +82,7 @@
   <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><p>With the 5.7.0 release of ActiveMQ 
the storage locking mechanism used by a persistence adapter is pluggable. This 
feature only applies to brokers configured in a shared storage master/slave 
topology. Prior to release 5.7.0 the storage locking mechanism (and thus master 
election) was dictated by the choice of persistence adapter. With the KahaDB 
persistence adapter, for example, the storage locking mechanism was based on a 
shared file lock. Similarly, the JDBC persistence adapter used a database 
backed storage lock.</p><p>Now that the choice of storage lock is divorced from 
that of the persistence adapter one can mix and match. Storage locker 
pluggability is made possible because all lockers must implement the <a 
shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/Locker.java?hb=true";
 rel="nofollow">Locker</a> interface. This interface makes it e
 asy to implement your own storage locker when you have special requirements. 
Of course, every persistence adapter still has its own default locker which 
works as before.</p><h2 
id="Pluggablestoragelockers-Lockers">Lockers</h2><p>Every locker must implement 
the <a shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/Locker.java?hb=true";
 rel="nofollow">Locker</a> interface. The locker has the following configurable 
parameters:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property Name</p></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>lockAcquireSleepInterval</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>10000</p></td><td cols
 pan="1" rowspan="1" class="confluenceTd"><p>Delay interval in milliseconds 
between lock acquire attempts</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>failIfLocked</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Should the start fail immediately if lock cannot be 
obtained</p></td></tr></tbody></table></div><h2 
id="Pluggablestoragelockers-PersistenceAdapters">Persistence 
Adapters</h2><p>Every persistence adapter (or other broker service that wants 
to use locks) needs to implement the <a shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/Lockable.java?r=1383400";
 rel="nofollow">Lockable</a> interface. This adds the following configurable 
parameters:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Propert
 y Name</p></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>useLock</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>can be used to turn off locking if 
necessary</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>lockKeepAlivePeriod</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>If bigger than 0, time period (in 
milliseconds) to keep lock alive</p></td></tr></tbody></table></div><h2 
id="Pluggablestoragelockers-ExistingLockers">Existing Lockers</h2><h3 
id="Pluggablestoragelockers-SharedFileLocker">Shared File Locker</h3><p>The 
Shared File Locker is the default locker for the KahaDB persistence adapter. It 
locks a file to ensure that 
 only the broker holding the lock (the master) is granted access to the message 
store.</p><p>Example:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><p>With the 5.7.0 release of ActiveMQ 
the storage locking mechanism used by a persistence adapter is pluggable. This 
feature only applies to brokers configured in a shared storage master/slave 
topology. Prior to release 5.7.0 the storage locking mechanism (and thus master 
election) was dictated by the choice of persistence adapter. With the KahaDB 
persistence adapter, for example, the storage locking mechanism was based on a 
shared file lock. Similarly, the JDBC persistence adapter used a database 
backed storage lock.</p><p>Now that the choice of storage lock is divorced from 
that of the persistence adapter one can mix and match. Storage locker 
pluggability is made possible because all lockers must implement the <a 
shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/Locker.java?hb=true";
 rel="nofollow">Locker</a> interface. This interface makes it e
 asy to implement your own storage locker when you have special requirements. 
Of course, every persistence adapter still has its own default locker which 
works as before.</p><h2 
id="Pluggablestoragelockers-Lockers">Lockers</h2><p>Every locker must implement 
the <a shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/Locker.java?hb=true";
 rel="nofollow">Locker</a> interface. The locker has the following 
properties:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property Name</p></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>lockAcquireSleepInterval</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>10000</p></td><td colspan="1" 
rowsp
 an="1" class="confluenceTd"><p>Delay interval in milliseconds between lock 
acquire attempts</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>failIfLocked</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Should the start fail immediately if lock cannot be 
obtained</p></td></tr></tbody></table></div><h2 
id="Pluggablestoragelockers-PersistenceAdapters">Persistence 
Adapters</h2><p>Every persistence adapter (or other broker service that wants 
to use locks) needs to implement the <a shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/Lockable.java?r=1383400";
 rel="nofollow">Lockable</a> interface. This adds the following 
properties:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property Name</p></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>useLock</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>can be used to turn off locking if 
necessary</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>lockKeepAlivePeriod</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>If bigger than 0, time period (in 
milliseconds) to keep lock alive</p></td></tr></tbody></table></div><h2 
id="Pluggablestoragelockers-ExistingLockers">Existing Lockers</h2><h3 
id="Pluggablestoragelockers-SharedFileLocker">Shared File Locker</h3><p>The 
Shared File Locker is the default locker for the KahaDB persistence adapter. It 
locks a file to ensure that only the broker holding th
 e lock (the master) is granted access to the message 
store.</p><p>Example:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;persistenceAdapter&gt;
        &lt;kahaDB directory = &quot;target/activemq-data&quot;&gt;
                &lt;locker&gt;
@@ -127,7 +127,7 @@
                &lt;/locker&gt;
        &lt;/kahaDB&gt;
 &lt;/persistenceAdapter&gt;]]></script>
-</div></div><p>To see the complete list of attributes and SQL statements that 
can be overridden see the <a shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/Statements.java?hb=true";
 rel="nofollow">Statements</a> class. When the KahaDB persistence adapter is 
configured to use the <code>lease-database-locker</code> you must configure the 
broker to use your own IO exception handler as neither the 
<code>DefaultIOExceptionHandler</code> nor the 
<code>JDBCIOExceptionHandler</code> will work correctly with this combination. 
See <a shape="rect" href="configurable-ioexception-handling.html">Configurable 
IOException Handlers</a> for details on how to write a handler.</p><p>As of 
ActiveMQ 5.11, however, the <code>JDBCIOExceptionHandler</code> has been 
deprecated. It has been replaced by the 
<code>org.apache.activemq.util.LeaseLockerIOExceptionHandler</code> which will 
work with any pers
 istence adapter that supports pluggable storage 
lockers.</p><p>&#160;</p><p>&#160;</p></div>
+</div></div><p>To see the complete list of attributes and SQL statements that 
can be overridden see the <a shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/Statements.java?hb=true";
 rel="nofollow">Statements</a> class. When the KahaDB persistence adapter is 
configured to use the <code>lease-database-locker</code> you must configure the 
broker to use your own IO exception handler as neither the 
<code>DefaultIOExceptionHandler</code> nor the 
<code>JDBCIOExceptionHandler</code> will work correctly with this combination. 
See <a shape="rect" href="configurable-ioexception-handling.html">Configurable 
IOException Handlers</a> for details on how to write a handler.</p><p>As of 
ActiveMQ 5.11, however, 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 persi
 stence adapter that supports pluggable storage lockers (whether or not one is 
configured).</p><p>&#160;</p><p>&#160;</p></div>
         </td>
         <td valign="top">
           <div class="navigation">


Reply via email to