Author: buildbot
Date: Mon Sep 29 09:20:53 2014
New Revision: 924009
Log:
Production update by buildbot for activemq
Removed:
websites/production/activemq/content/test.html
Modified:
websites/production/activemq/content/cache/main.pageCache
websites/production/activemq/content/features.html
websites/production/activemq/content/shared-file-system-master-slave.html
Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/activemq/content/features.html
==============================================================================
--- websites/production/activemq/content/features.html (original)
+++ websites/production/activemq/content/features.html Mon Sep 29 09:20:53 2014
@@ -76,7 +76,7 @@
<p>Apache ActiveMQ is packed with features; to get an idea you might want to
look at the <a shape="rect" href="features-overview.html">Features Overview</a>
otherwise here is the list of all of the main features...</p>
-<ul class="childpages-macro"><li><a shape="rect"
href="active-groups.html">Active Groups</a></li><li><a shape="rect"
href="activemq-real-time.html">ActiveMQ Real Time</a><ul
class="childpages-macro"><li><a shape="rect"
href="broadcasting.html">Broadcasting</a></li><li><a shape="rect"
href="group-membership.html">Group Membership</a></li><li><a shape="rect"
href="life-cycle.html">Life Cycle</a></li><li><a shape="rect"
href="the-activeblaze-message-type.html">The ActiveBlaze Message
type</a></li></ul></li><li><a shape="rect"
href="broker-camel-component.html">Broker Camel Component</a></li><li><a
shape="rect" href="clustering.html">Clustering</a><ul
class="childpages-macro"><li><a shape="rect"
href="masterslave.html">MasterSlave</a><ul class="childpages-macro"><li><a
shape="rect" href="jdbc-master-slave.html">JDBC Master Slave</a></li><li><a
shape="rect" href="kahadb-replication-experimental.html">KahaDB Replication
(Experimental)</a></li><li><a shape="rect" href="pure-master-slave.ht
ml">Pure Master Slave</a></li><li><a shape="rect"
href="shared-file-system-master-slave.html">Shared File System Master
Slave</a></li></ul></li><li><a shape="rect"
href="networks-of-brokers.html">Networks of Brokers</a></li><li><a shape="rect"
href="replicated-message-store.html">Replicated Message
Store</a></li></ul></li><li><a shape="rect" href="command-agent.html">Command
Agent</a></li><li><a shape="rect" href="consumer-features.html">Consumer
Features</a><ul class="childpages-macro"><li><a shape="rect"
href="consumer-dispatch-async.html">Consumer Dispatch Async</a></li><li><a
shape="rect" href="consumer-priority.html">Consumer Priority</a></li><li><a
shape="rect" href="exclusive-consumer.html">Exclusive Consumer</a></li><li><a
shape="rect" href="manage-durable-subscribers.html">Manage Durable
Subscribers</a></li><li><a shape="rect" href="message-groups.html">Message
Groups</a></li><li><a shape="rect" href="redelivery-policy.html">Redelivery
Policy</a></li><li><a shape="rect" hre
f="retroactive-consumer.html">Retroactive Consumer</a></li><li><a shape="rect"
href="selectors.html">Selectors</a></li><li><a shape="rect"
href="slow-consumer-handling.html">Slow Consumer Handling</a></li><li><a
shape="rect" href="subscription-recovery-policy.html">Subscription Recovery
Policy</a></li></ul></li><li><a shape="rect"
href="destination-features.html">Destination Features</a><ul
class="childpages-macro"><li><a shape="rect"
href="composite-destinations.html">Composite Destinations</a></li><li><a
shape="rect" href="configure-startup-destinations.html">Configure Startup
Destinations</a></li><li><a shape="rect"
href="delete-inactive-destinations.html">Delete Inactive
Destinations</a></li><li><a shape="rect"
href="destination-options.html">Destination Options</a></li><li><a shape="rect"
href="mirrored-queues.html">Mirrored Queues</a></li><li><a shape="rect"
href="per-destination-policies.html">Per Destination Policies</a></li><li><a
shape="rect" href="virtual-destinations.htm
l">Virtual Destinations</a></li><li><a shape="rect"
href="wildcards.html">Wildcards</a></li></ul></li><li><a shape="rect"
href="discovery.html">Discovery</a></li><li><a shape="rect"
href="enterprise-integration-patterns.html">Enterprise Integration
Patterns</a></li><li><a shape="rect" href="features-overview.html">Features
Overview</a></li><li><a shape="rect" href="horizontal-scaling.html">Horizontal
Scaling</a><ul class="childpages-macro"><li><a shape="rect"
href="scaling-queues.html">Scaling Queues</a></li></ul></li><li><a shape="rect"
href="interceptors.html">Interceptors</a><ul class="childpages-macro"><li><a
shape="rect" href="destinations-plugin.html">Destinations Plugin</a></li><li><a
shape="rect" href="logging-interceptor.html">Logging Interceptor</a></li><li><a
shape="rect" href="statisticsplugin.html">StatisticsPlugin</a></li><li><a
shape="rect"
href="timestampplugin.html">TimeStampPlugin</a></li></ul></li><li><a
shape="rect" href="jmsxuserid.html">JMSXUserID</a></li><li><
a shape="rect" href="jmx.html">JMX</a><ul class="childpages-macro"><li><a
shape="rect" href="jmx-support.html">JMX Support</a></li></ul></li><li><a
shape="rect"
href="logging-a-warning-if-you-forget-to-start-a-connection.html">Logging a
warning if you forget to start a Connection</a></li><li><a shape="rect"
href="mdc-logging.html">MDC Logging</a></li><li><a shape="rect"
href="message-dispatching-features.html">Message Dispatching Features</a><ul
class="childpages-macro"><li><a shape="rect" href="async-sends.html">Async
Sends</a></li><li><a shape="rect" href="dispatch-policies.html">Dispatch
Policies</a></li><li><a shape="rect" href="message-cursors.html">Message
Cursors</a></li><li><a shape="rect"
href="optimized-acknowledgement.html">Optimized Acknowledgement</a></li><li><a
shape="rect" href="producer-flow-control.html">Producer Flow
Control</a></li><li><a shape="rect" href="total-ordering.html">Total
Ordering</a></li></ul></li><li><a shape="rect"
href="message-features.html">Messa
ge Features</a><ul class="childpages-macro"><li><a shape="rect"
href="activemq-message-properties.html">ActiveMQ Message
Properties</a></li><li><a shape="rect" href="advisory-message.html">Advisory
Message</a></li><li><a shape="rect" href="blob-messages.html">Blob
Messages</a></li><li><a shape="rect"
href="delay-and-schedule-message-delivery.html">Delay and Schedule Message
Delivery</a></li><li><a shape="rect" href="jms-streams.html">JMS
Streams</a></li><li><a shape="rect" href="message-transformation.html">Message
Transformation</a></li><li><a shape="rect"
href="structured-message-properties-and-mapmessages.html">Structured Message
Properties and MapMessages</a></li></ul></li><li><a shape="rect"
href="new-features.html">New Features</a><ul class="childpages-macro"><li><a
shape="rect" href="changes-in-40.html">Changes in 4.0</a></li><li><a
shape="rect" href="new-features-in-41.html">New Features in 4.1</a></li><li><a
shape="rect" href="new-features-in-50.html">New Features in 5.0</a
></li><li><a shape="rect" href="new-features-in-51.html">New Features in
>5.1</a></li><li><a shape="rect" href="new-features-in-52.html">New Features
>in 5.2</a></li><li><a shape="rect" href="new-features-in-53.html">New
>Features in 5.3</a></li><li><a shape="rect"
>href="new-features-in-54.html">New Features in 5.4</a></li><li><a
>shape="rect" href="new-features-in-55.html">New Features in
>5.5</a></li><li><a shape="rect" href="new-features-in-56.html">New Features
>in 5.6</a></li><li><a shape="rect" href="new-features-in-57.html">New
>Features in 5.7</a></li><li><a shape="rect"
>href="new-features-in-58.html">New Features in 5.8</a></li><li><a
>shape="rect" href="new-features-in-59.html">New Features in 5.9</a><ul
>class="childpages-macro"><li><a shape="rect"
>href="runtime-configuration.html">Runtime
>Configuration</a></li></ul></li><li><a shape="rect"
>href="new-features-in-511.html">New Features in 5.11</a></li><li><a
>shape="rect" href="new-features-in-60.html">New Features in 6.0</a></li></
ul></li><li><a shape="rect" href="performance.html">Performance</a><ul
class="childpages-macro"><li><a shape="rect"
href="activemq-performance-module-users-manual.html">ActiveMQ Performance
Module Users Manual</a><ul class="childpages-macro"><li><a shape="rect"
href="sample-report.html">sample report</a></li></ul></li><li><a shape="rect"
href="load-testing-with-camel.html">Load Testing with Camel</a></li><li><a
shape="rect" href="performance-report.html">Performance
report</a></li></ul></li><li><a shape="rect"
href="persistence.html">Persistence</a><ul class="childpages-macro"><li><a
shape="rect" href="amq-message-store.html">AMQ Message Store</a></li><li><a
shape="rect" href="configurable-ioexception-handling.html">Configurable
IOException Handling</a></li><li><a shape="rect" href="jdbc-support.html">JDBC
Support</a><ul class="childpages-macro"><li><a shape="rect"
href="sqlserver.html">SQLServer</a></li><li><a shape="rect"
href="sybase.html">Sybase</a></li></ul></li><li><a shape="r
ect" href="kahadb.html">KahaDB</a></li><li><a shape="rect"
href="kaha-persistence.html">Kaha Persistence</a><ul
class="childpages-macro"><li><a shape="rect"
href="test.html">TEST</a></li></ul></li><li><a shape="rect"
href="leveldb-store.html">LevelDB Store</a></li><li><a shape="rect"
href="pluggable-storage-lockers.html">Pluggable storage lockers</a></li><li><a
shape="rect" href="replicated-leveldb-store.html">Replicated LevelDB
Store</a></li></ul></li><li><a shape="rect"
href="scaling-the-depth-of-a-queue.html">Scaling the Depth of a
Queue</a></li><li><a shape="rect" href="security.html">Security</a><ul
class="childpages-macro"><li><a shape="rect" href="audit-logging.html">Audit
Logging</a></li><li><a shape="rect"
href="cached-ldap-authorization-module.html">Cached LDAP Authorization
Module</a></li><li><a shape="rect" href="encrypted-passwords.html">Encrypted
passwords</a></li><li><a shape="rect"
href="shiro.html">Shiro</a></li></ul></li><li><a shape="rect"
href="the-proxy-connecto
r.html">The Proxy Connector</a></li><li><a shape="rect"
href="unix.html">Unix</a><ul class="childpages-macro"><li><a shape="rect"
href="unix-service.html">Unix Service</a></li><li><a shape="rect"
href="unix-shell-script.html">Unix Shell Script</a></li></ul></li><li><a
shape="rect" href="uri-protocols.html">URI Protocols</a><ul
class="childpages-macro"><li><a shape="rect" href="vm-protocol.html">VM
Protocol</a></li></ul></li><li><a shape="rect"
href="visualisation.html">Visualisation</a><ul class="childpages-macro"><li><a
shape="rect" href="visualisation-wish-list.html">Visualisation Wish
List</a></li></ul></li></ul> </div>
+<ul class="childpages-macro"><li><a shape="rect"
href="active-groups.html">Active Groups</a></li><li><a shape="rect"
href="activemq-real-time.html">ActiveMQ Real Time</a><ul
class="childpages-macro"><li><a shape="rect"
href="broadcasting.html">Broadcasting</a></li><li><a shape="rect"
href="group-membership.html">Group Membership</a></li><li><a shape="rect"
href="life-cycle.html">Life Cycle</a></li><li><a shape="rect"
href="the-activeblaze-message-type.html">The ActiveBlaze Message
type</a></li></ul></li><li><a shape="rect"
href="broker-camel-component.html">Broker Camel Component</a></li><li><a
shape="rect" href="clustering.html">Clustering</a><ul
class="childpages-macro"><li><a shape="rect"
href="masterslave.html">MasterSlave</a><ul class="childpages-macro"><li><a
shape="rect" href="jdbc-master-slave.html">JDBC Master Slave</a></li><li><a
shape="rect" href="kahadb-replication-experimental.html">KahaDB Replication
(Experimental)</a></li><li><a shape="rect" href="pure-master-slave.ht
ml">Pure Master Slave</a></li><li><a shape="rect"
href="shared-file-system-master-slave.html">Shared File System Master
Slave</a></li></ul></li><li><a shape="rect"
href="networks-of-brokers.html">Networks of Brokers</a></li><li><a shape="rect"
href="replicated-message-store.html">Replicated Message
Store</a></li></ul></li><li><a shape="rect" href="command-agent.html">Command
Agent</a></li><li><a shape="rect" href="consumer-features.html">Consumer
Features</a><ul class="childpages-macro"><li><a shape="rect"
href="consumer-dispatch-async.html">Consumer Dispatch Async</a></li><li><a
shape="rect" href="consumer-priority.html">Consumer Priority</a></li><li><a
shape="rect" href="exclusive-consumer.html">Exclusive Consumer</a></li><li><a
shape="rect" href="manage-durable-subscribers.html">Manage Durable
Subscribers</a></li><li><a shape="rect" href="message-groups.html">Message
Groups</a></li><li><a shape="rect" href="redelivery-policy.html">Redelivery
Policy</a></li><li><a shape="rect" hre
f="retroactive-consumer.html">Retroactive Consumer</a></li><li><a shape="rect"
href="selectors.html">Selectors</a></li><li><a shape="rect"
href="slow-consumer-handling.html">Slow Consumer Handling</a></li><li><a
shape="rect" href="subscription-recovery-policy.html">Subscription Recovery
Policy</a></li></ul></li><li><a shape="rect"
href="destination-features.html">Destination Features</a><ul
class="childpages-macro"><li><a shape="rect"
href="composite-destinations.html">Composite Destinations</a></li><li><a
shape="rect" href="configure-startup-destinations.html">Configure Startup
Destinations</a></li><li><a shape="rect"
href="delete-inactive-destinations.html">Delete Inactive
Destinations</a></li><li><a shape="rect"
href="destination-options.html">Destination Options</a></li><li><a shape="rect"
href="mirrored-queues.html">Mirrored Queues</a></li><li><a shape="rect"
href="per-destination-policies.html">Per Destination Policies</a></li><li><a
shape="rect" href="virtual-destinations.htm
l">Virtual Destinations</a></li><li><a shape="rect"
href="wildcards.html">Wildcards</a></li></ul></li><li><a shape="rect"
href="discovery.html">Discovery</a></li><li><a shape="rect"
href="enterprise-integration-patterns.html">Enterprise Integration
Patterns</a></li><li><a shape="rect" href="features-overview.html">Features
Overview</a></li><li><a shape="rect" href="horizontal-scaling.html">Horizontal
Scaling</a><ul class="childpages-macro"><li><a shape="rect"
href="scaling-queues.html">Scaling Queues</a></li></ul></li><li><a shape="rect"
href="interceptors.html">Interceptors</a><ul class="childpages-macro"><li><a
shape="rect" href="destinations-plugin.html">Destinations Plugin</a></li><li><a
shape="rect" href="logging-interceptor.html">Logging Interceptor</a></li><li><a
shape="rect" href="statisticsplugin.html">StatisticsPlugin</a></li><li><a
shape="rect"
href="timestampplugin.html">TimeStampPlugin</a></li></ul></li><li><a
shape="rect" href="jmsxuserid.html">JMSXUserID</a></li><li><
a shape="rect" href="jmx.html">JMX</a><ul class="childpages-macro"><li><a
shape="rect" href="jmx-support.html">JMX Support</a></li></ul></li><li><a
shape="rect"
href="logging-a-warning-if-you-forget-to-start-a-connection.html">Logging a
warning if you forget to start a Connection</a></li><li><a shape="rect"
href="mdc-logging.html">MDC Logging</a></li><li><a shape="rect"
href="message-dispatching-features.html">Message Dispatching Features</a><ul
class="childpages-macro"><li><a shape="rect" href="async-sends.html">Async
Sends</a></li><li><a shape="rect" href="dispatch-policies.html">Dispatch
Policies</a></li><li><a shape="rect" href="message-cursors.html">Message
Cursors</a></li><li><a shape="rect"
href="optimized-acknowledgement.html">Optimized Acknowledgement</a></li><li><a
shape="rect" href="producer-flow-control.html">Producer Flow
Control</a></li><li><a shape="rect" href="total-ordering.html">Total
Ordering</a></li></ul></li><li><a shape="rect"
href="message-features.html">Messa
ge Features</a><ul class="childpages-macro"><li><a shape="rect"
href="activemq-message-properties.html">ActiveMQ Message
Properties</a></li><li><a shape="rect" href="advisory-message.html">Advisory
Message</a></li><li><a shape="rect" href="blob-messages.html">Blob
Messages</a></li><li><a shape="rect"
href="delay-and-schedule-message-delivery.html">Delay and Schedule Message
Delivery</a></li><li><a shape="rect" href="jms-streams.html">JMS
Streams</a></li><li><a shape="rect" href="message-transformation.html">Message
Transformation</a></li><li><a shape="rect"
href="structured-message-properties-and-mapmessages.html">Structured Message
Properties and MapMessages</a></li></ul></li><li><a shape="rect"
href="new-features.html">New Features</a><ul class="childpages-macro"><li><a
shape="rect" href="changes-in-40.html">Changes in 4.0</a></li><li><a
shape="rect" href="new-features-in-41.html">New Features in 4.1</a></li><li><a
shape="rect" href="new-features-in-50.html">New Features in 5.0</a
></li><li><a shape="rect" href="new-features-in-51.html">New Features in
>5.1</a></li><li><a shape="rect" href="new-features-in-52.html">New Features
>in 5.2</a></li><li><a shape="rect" href="new-features-in-53.html">New
>Features in 5.3</a></li><li><a shape="rect"
>href="new-features-in-54.html">New Features in 5.4</a></li><li><a
>shape="rect" href="new-features-in-55.html">New Features in
>5.5</a></li><li><a shape="rect" href="new-features-in-56.html">New Features
>in 5.6</a></li><li><a shape="rect" href="new-features-in-57.html">New
>Features in 5.7</a></li><li><a shape="rect"
>href="new-features-in-58.html">New Features in 5.8</a></li><li><a
>shape="rect" href="new-features-in-59.html">New Features in 5.9</a><ul
>class="childpages-macro"><li><a shape="rect"
>href="runtime-configuration.html">Runtime
>Configuration</a></li></ul></li><li><a shape="rect"
>href="new-features-in-511.html">New Features in 5.11</a></li><li><a
>shape="rect" href="new-features-in-60.html">New Features in 6.0</a></li></
ul></li><li><a shape="rect" href="performance.html">Performance</a><ul
class="childpages-macro"><li><a shape="rect"
href="activemq-performance-module-users-manual.html">ActiveMQ Performance
Module Users Manual</a><ul class="childpages-macro"><li><a shape="rect"
href="sample-report.html">sample report</a></li></ul></li><li><a shape="rect"
href="load-testing-with-camel.html">Load Testing with Camel</a></li><li><a
shape="rect" href="performance-report.html">Performance
report</a></li></ul></li><li><a shape="rect"
href="persistence.html">Persistence</a><ul class="childpages-macro"><li><a
shape="rect" href="amq-message-store.html">AMQ Message Store</a></li><li><a
shape="rect" href="configurable-ioexception-handling.html">Configurable
IOException Handling</a></li><li><a shape="rect" href="jdbc-support.html">JDBC
Support</a><ul class="childpages-macro"><li><a shape="rect"
href="sqlserver.html">SQLServer</a></li><li><a shape="rect"
href="sybase.html">Sybase</a></li></ul></li><li><a shape="r
ect" href="kahadb.html">KahaDB</a></li><li><a shape="rect"
href="kaha-persistence.html">Kaha Persistence</a></li><li><a shape="rect"
href="leveldb-store.html">LevelDB Store</a></li><li><a shape="rect"
href="pluggable-storage-lockers.html">Pluggable storage lockers</a></li><li><a
shape="rect" href="replicated-leveldb-store.html">Replicated LevelDB
Store</a></li></ul></li><li><a shape="rect"
href="scaling-the-depth-of-a-queue.html">Scaling the Depth of a
Queue</a></li><li><a shape="rect" href="security.html">Security</a><ul
class="childpages-macro"><li><a shape="rect" href="audit-logging.html">Audit
Logging</a></li><li><a shape="rect"
href="cached-ldap-authorization-module.html">Cached LDAP Authorization
Module</a></li><li><a shape="rect" href="encrypted-passwords.html">Encrypted
passwords</a></li><li><a shape="rect"
href="shiro.html">Shiro</a></li></ul></li><li><a shape="rect"
href="the-proxy-connector.html">The Proxy Connector</a></li><li><a shape="rect"
href="unix.html">Unix</a><ul
class="childpages-macro"><li><a shape="rect" href="unix-service.html">Unix
Service</a></li><li><a shape="rect" href="unix-shell-script.html">Unix Shell
Script</a></li></ul></li><li><a shape="rect" href="uri-protocols.html">URI
Protocols</a><ul class="childpages-macro"><li><a shape="rect"
href="vm-protocol.html">VM Protocol</a></li></ul></li><li><a shape="rect"
href="visualisation.html">Visualisation</a><ul class="childpages-macro"><li><a
shape="rect" href="visualisation-wish-list.html">Visualisation Wish
List</a></li></ul></li></ul> </div>
</td>
<td valign="top">
<div class="navigation">
Modified:
websites/production/activemq/content/shared-file-system-master-slave.html
==============================================================================
--- websites/production/activemq/content/shared-file-system-master-slave.html
(original)
+++ websites/production/activemq/content/shared-file-system-master-slave.html
Mon Sep 29 09:20:53 2014
@@ -36,6 +36,7 @@
<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,107 +82,52 @@
<tbody>
<tr>
<td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2
id="SharedFileSystemMasterSlave-SharedFileSystemMasterSlave">Shared File System
Master Slave</h2>
-
-<p>If you have a SAN or shared file system it can be used to provide <em>high
availability</em> such that if a broker is killed, another broker can take over
immediately.</p>
-
- <div class="aui-message problem shadowed information-macro">
+<div class="wiki-content maincontent"><h2
id="SharedFileSystemMasterSlave-SharedFileSystemMasterSlave">Shared File System
Master Slave</h2><p>If you have a SAN or shared file system it can be used to
provide <em>high availability</em> such that if a broker is killed, another
broker can take over immediately.</p> <div class="aui-message problem
shadowed information-macro">
<p class="title">Ensure your shared file locks work</p>
<span class="aui-icon icon-problem">Icon</span>
<div class="message-content">
-
-<p>Note that the requirements of this failover system are a distributed file
system like a SAN for which exclusive file locks work reliably. If you do not
have such a thing available then consider using <a shape="rect"
href="masterslave.html">MasterSlave</a> instead which implements something
similar but working on commodity hardware using local file systems which
ActiveMQ does the replication. </p>
-
- <div class="aui-message warning shadowed information-macro">
+ <p>Note that the requirements of this failover
system are a distributed file system like a SAN for which exclusive file locks
work reliably. If you do not have such a thing available then consider using <a
shape="rect" href="masterslave.html">MasterSlave</a> instead which implements
something similar but working on commodity hardware using local file systems
which ActiveMQ does the replication.</p> <div class="aui-message warning
shadowed information-macro">
<p class="title">OCFS2 Warning</p>
<span class="aui-icon icon-warning">Icon</span>
<div class="message-content">
-
-<p>Was testing using OCFS2 and both brokers thought they had the master lock -
this is because "OCFS2 only supports locking with 'fcntl' and not 'lockf and
flock', therefore mutex file locking from Java isn't supported."</p>
-
-<p>From <a shape="rect" class="external-link"
href="http://sources.redhat.com/cluster/faq.html#gfs_vs_ocfs2"
rel="nofollow">http://sources.redhat.com/cluster/faq.html#gfs_vs_ocfs2</a> :<br
clear="none">
-OCFS2: No cluster-aware flock or POSIX locks<br clear="none">
-GFS: fully supports Cluster-wide flocks and POSIX locks and is supported.<br
clear="none">
-See this JIRA for more discussion: <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/AMQ-4378">https://issues.apache.org/jira/browse/AMQ-4378</a></p>
+ <p>Was testing using OCFS2 and both brokers
thought they had the master lock - this is because "OCFS2 only supports locking
with 'fcntl' and not 'lockf and flock', therefore mutex file locking from Java
isn't supported."</p><p>From <a shape="rect" class="external-link"
href="http://sources.redhat.com/cluster/faq.html#gfs_vs_ocfs2"
rel="nofollow">http://sources.redhat.com/cluster/faq.html#gfs_vs_ocfs2</a> :<br
clear="none"> OCFS2: No cluster-aware flock or POSIX locks<br clear="none">
GFS: fully supports Cluster-wide flocks and POSIX locks and is supported.<br
clear="none"> See this JIRA for more discussion: <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/AMQ-4378">https://issues.apache.org/jira/browse/AMQ-4378</a></p>
</div>
</div>
-
-
<div class="aui-message warning shadowed information-macro">
<p class="title">NFSv3 Warning</p>
<span class="aui-icon icon-warning">Icon</span>
<div class="message-content">
-
-<p>In the event of an abnormal NFSv3 client termination (i.e., the ActiveMQ
master broker), the NFSv3 server will not timeout the lock that is held by that
client. This effectively renders the ActiveMQ data directory inaccessible
because the ActiveMQ slave broker can't acquire the lock and therefore cannot
start up. The only solution to this predicament with NFSv3 is to reboot all
ActiveMQ instances to reset everything. </p>
-
-<p>Use of NFSv4 is another solution because it's design includes timeouts for
locks. When using NFSv4 and the client holding the lock experiences an abnormal
termination, by design, the lock is released after 30 seconds, allowing another
client to grab the lock. For more information about this, see <a shape="rect"
class="external-link"
href="http://blogs.netapp.com/eislers_nfs_blog/2008/07/part-i-since-nf.html"
rel="nofollow">this blog entry</a>. </p>
+ <p>In the event of an abnormal NFSv3 client
termination (i.e., the ActiveMQ master broker), the NFSv3 server will not
timeout the lock that is held by that client. This effectively renders the
ActiveMQ data directory inaccessible because the ActiveMQ slave broker can't
acquire the lock and therefore cannot start up. The only solution to this
predicament with NFSv3 is to reboot all ActiveMQ instances to reset
everything.</p><p>Use of NFSv4 is another solution because it's design includes
timeouts for locks. When using NFSv4 and the client holding the lock
experiences an abnormal termination, by design, the lock is released after 30
seconds, allowing another client to grab the lock. For more information about
this, see <a shape="rect" class="external-link"
href="http://blogs.netapp.com/eislers_nfs_blog/2008/07/part-i-since-nf.html"
rel="nofollow">this blog entry</a>.</p>
</div>
</div>
-
</div>
</div>
-
-
-<p>Basically you can run as many brokers as you wish from the same shared file
system directory. The first broker to grab the exclusive lock on the file is
the master broker. If that broker dies and releases the lock then another
broker takes over. The slave brokers sit in a loop trying to grab the lock from
the master broker.</p>
-
-<p>The following example shows how to configure a broker for Shared File
System Master Slave where <strong>/sharedFileSystem</strong> is some directory
on a shared file system. It is just a case of configuring a file based store to
use a shared directory.</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[
- <persistenceAdapter>
+<p>Basically you can run as many brokers as you wish from the same shared file
system directory. The first broker to grab the exclusive lock on the file is
the master broker. If that broker dies and releases the lock then another
broker takes over. The slave brokers sit in a loop trying to grab the lock from
the master broker.</p><p>The following example shows how to configure a broker
for Shared File System Master Slave where <strong>/sharedFileSystem</strong> is
some directory on a shared file system. It is just a case of configuring a file
based store to use a shared directory.</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[ <persistenceAdapter>
<kahaDB directory="/sharedFileSystem/sharedBrokerData"/>
</persistenceAdapter>
]]></script>
-</div></div>
-<p>or:</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[
- <persistenceAdapter>
+</div></div><p>or:</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[ <persistenceAdapter>
<levelDB directory="/sharedFileSystem/sharedBrokerData"/>
</persistenceAdapter>
]]></script>
-</div></div>
-<p>or:</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[
- <persistenceAdapter>
+</div></div><p>or:</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[ <persistenceAdapter>
<amqPersistenceAdapter
directory="/sharedFileSystem/sharedBrokerData"/>
</persistenceAdapter>
]]></script>
-</div></div>
-
-<h3 id="SharedFileSystemMasterSlave-Startup">Startup</h3>
-
-<p>On startup one master grabs an exclusive lock on the broker file directory
- all other brokers are slaves and pause waiting for the exclusive lock.</p>
-
-<p><img class="confluence-embedded-image"
src="https://cwiki.apache.org/confluence/download/attachments/35958/Startup.png?version=1&modificationDate=1153806958000&api=v2"
data-image-src="/confluence/download/attachments/35958/Startup.png?version=1&modificationDate=1153806958000&api=v2"></p>
-
-<p>Clients should be using the <a shape="rect"
href="failover-transport-reference.html">Failover Transport</a> to connect to
the available brokers. e.g. using a URL something like the following</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[
-failover:(tcp://broker1:61616,tcp://broker2:61616,tcp://broker3:61616)
+</div></div><h3 id="SharedFileSystemMasterSlave-Startup">Startup</h3><p>On
startup one master grabs an exclusive lock on the broker file directory - all
other brokers are slaves and pause waiting for the exclusive lock.</p><p><img
class="confluence-embedded-image"
src="https://cwiki.apache.org/confluence/download/attachments/35958/Startup.png?version=1&modificationDate=1153806958000&api=v2"
data-image-src="/confluence/download/attachments/35958/Startup.png?version=1&modificationDate=1153806958000&api=v2"></p><p>Clients
should be using the <a shape="rect"
href="failover-transport-reference.html">Failover Transport</a> to connect to
the available brokers. e.g. using a URL something like the following</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[failover:(tcp://broker1:61616,tcp://broker2:61616,tcp://broker3:61616)
]]></script>
-</div></div>
-
-<p>Only the master broker starts up its transport connectors and so the
clients can only connect to the master.</p>
-
-<h3 id="SharedFileSystemMasterSlave-Masterfailure">Master failure</h3>
-
-<p>If the master looses the exclusive lock then it immediately shuts down. If
a master shuts down or fails, one of the other slaves will grab the lock and so
the topology switches to the following diagram</p>
-
-<p><img class="confluence-embedded-image"
src="https://cwiki.apache.org/confluence/download/attachments/35958/MasterFailed.png?version=1&modificationDate=1153806959000&api=v2"
data-image-src="/confluence/download/attachments/35958/MasterFailed.png?version=1&modificationDate=1153806959000&api=v2"></p>
-
-<p>One of the other other slaves immediately grabs the exclusive lock on the
file system to them commences becoming the master, starting all of its
transport connectors.</p>
-
-<p>Clients loose connection to the stopped master and then the failover
transport tries to connect to the available brokers - of which the only one
available is the new master.</p>
-
-<h3 id="SharedFileSystemMasterSlave-Masterrestart">Master restart</h3>
-
-<p>At any time you can restart other brokers which join the cluster and start
as slaves waiting to become a master if the master is shutdown or a failure
occurs. So the following topology is created after a restart of an old
master...</p>
-
-<p><img class="confluence-embedded-image"
src="https://cwiki.apache.org/confluence/download/attachments/35958/MasterRestarted.png?version=1&modificationDate=1153806958000&api=v2"
data-image-src="/confluence/download/attachments/35958/MasterRestarted.png?version=1&modificationDate=1153806958000&api=v2"></p></div>
+</div></div><p>Only the master broker starts up its transport connectors and
so the clients can only connect to the master.</p><h3
id="SharedFileSystemMasterSlave-Masterfailure">Master failure</h3><p>If the
master looses the exclusive lock then it immediately shuts down. If a master
shuts down or fails, one of the other slaves will grab the lock and so the
topology switches to the following diagram</p><p><img
class="confluence-embedded-image"
src="https://cwiki.apache.org/confluence/download/attachments/35958/MasterFailed.png?version=1&modificationDate=1153806959000&api=v2"
data-image-src="/confluence/download/attachments/35958/MasterFailed.png?version=1&modificationDate=1153806959000&api=v2"></p><p>One
of the other other slaves immediately grabs the exclusive lock on the file
system to them commences becoming the master, starting all of its transport
connectors.</p><p>Clients loose connection to the stopped master and then the
failover transport tries to connect to
the available brokers - of which the only one available is the new
master.</p><h3 id="SharedFileSystemMasterSlave-Masterrestart">Master
restart</h3><p>At any time you can restart other brokers which join the cluster
and start as slaves waiting to become a master if the master is shutdown or a
failure occurs. So the following topology is created after a restart of an old
master...</p><p><img class="confluence-embedded-image"
src="https://cwiki.apache.org/confluence/download/attachments/35958/MasterRestarted.png?version=1&modificationDate=1153806958000&api=v2"
data-image-src="/confluence/download/attachments/35958/MasterRestarted.png?version=1&modificationDate=1153806958000&api=v2"></p><h3
id="SharedFileSystemMasterSlave-SchedulerSupport">Scheduler
Support</h3><p>ActiveMQ maintains information about schedules independent to
the settings in the persistence adapter. With a shared file-system it is
therefore important to tell ActiveMQ expressly where to store scheduler in
formation. To do this, set the <code>dataDirectory</code> attribute on
the <code>broker</code>, for 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[<broker
xmlns="http://activemq.apache.org/schema/core"
+dataDirectory="/some/location"
+brokerName="mmuserb2" useJmx="true"
advisorySupport="false"
+persistent="true" deleteAllMessagesOnStartup="false"
+useShutdownHook="false"
schedulerSupport="true">]]></script>
+</div></div></div>
</td>
<td valign="top">
<div class="navigation">