Commit 8b91a78e authored by Greg Thomas's avatar Greg Thomas

OF-1475: Update to Hazelcast 3.9.2.

parent f961503d
...@@ -14,10 +14,10 @@ ...@@ -14,10 +14,10 @@
~ See the License for the specific language governing permissions and ~ See the License for the specific language governing permissions and
~ limitations under the License. ~ limitations under the License.
--> -->
<hazelcast xmlns="http://www.hazelcast.com/schema/config"
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.hazelcast.com/schema/config" xsi:schemaLocation="http://www.hazelcast.com/schema/config
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> http://www.hazelcast.com/schema/config/hazelcast-config-3.9.xsd">
<group> <group>
<name>openfire</name> <name>openfire</name>
<password>openfire</password> <password>openfire</password>
...@@ -190,10 +190,9 @@ ...@@ -190,10 +190,9 @@
penalty due to invalidations on the other cluster members. penalty due to invalidations on the other cluster members.
--> -->
<near-cache> <near-cache>
<max-size>1000</max-size> <eviction eviction-policy="LRU" max-size-policy="ENTRY_COUNT" size="1000"/>
<time-to-live-seconds>0</time-to-live-seconds> <time-to-live-seconds>0</time-to-live-seconds>
<max-idle-seconds>600</max-idle-seconds> <max-idle-seconds>600</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<invalidate-on-change>true</invalidate-on-change> <invalidate-on-change>true</invalidate-on-change>
</near-cache> </near-cache>
</map> </map>
...@@ -457,9 +456,8 @@ ...@@ -457,9 +456,8 @@
<time-to-live-seconds>21600</time-to-live-seconds> <time-to-live-seconds>21600</time-to-live-seconds>
<eviction-policy>LRU</eviction-policy> <eviction-policy>LRU</eviction-policy>
<near-cache> <near-cache>
<max-size>10000</max-size> <eviction eviction-policy="LRU" max-size-policy="ENTRY_COUNT" size="10000"/>
<max-idle-seconds>1800</max-idle-seconds> <max-idle-seconds>1800</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<invalidate-on-change>true</invalidate-on-change> <invalidate-on-change>true</invalidate-on-change>
</near-cache> </near-cache>
</map> </map>
...@@ -470,9 +468,8 @@ ...@@ -470,9 +468,8 @@
<time-to-live-seconds>900</time-to-live-seconds> <time-to-live-seconds>900</time-to-live-seconds>
<eviction-policy>LRU</eviction-policy> <eviction-policy>LRU</eviction-policy>
<near-cache> <near-cache>
<max-size>10000</max-size> <eviction eviction-policy="LRU" max-size-policy="ENTRY_COUNT" size="10000"/>
<max-idle-seconds>60</max-idle-seconds> <max-idle-seconds>60</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<invalidate-on-change>true</invalidate-on-change> <invalidate-on-change>true</invalidate-on-change>
</near-cache> </near-cache>
</map> </map>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<name>Hazelcast plugin</name> <name>Hazelcast plugin</name>
<description>Adds clustering support</description> <description>Adds clustering support</description>
<author>Tom Evans</author> <author>Tom Evans</author>
<version>2.2.4</version> <version>2.3.0-SNAPSHOT</version>
<date>10/26/2017</date> <date>mm/dd/2018</date>
<minServerVersion>4.2.0</minServerVersion> <minServerVersion>4.0.0</minServerVersion>
</plugin> </plugin>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<parent> <parent>
<artifactId>plugins</artifactId> <artifactId>plugins</artifactId>
<groupId>org.igniterealtime.openfire</groupId> <groupId>org.igniterealtime.openfire</groupId>
<version>4.3.0-SNAPSHOT</version> <version>4.2.0</version>
</parent> </parent>
<groupId>org.igniterealtime.openfire.plugins</groupId> <groupId>org.igniterealtime.openfire.plugins</groupId>
<artifactId>hazelcast</artifactId> <artifactId>hazelcast</artifactId>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<dependency> <dependency>
<groupId>com.hazelcast</groupId> <groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId> <artifactId>hazelcast</artifactId>
<version>3.5.1</version> <version>3.9.2</version>
</dependency> </dependency>
</dependencies> </dependencies>
......
...@@ -31,12 +31,12 @@ ...@@ -31,12 +31,12 @@
} }
TT { TT {
font-family : courier new; font-family : courier new, monospaced, sans-serif;
font-weight : bold; font-weight : bold;
color : #060; color : #060;
} }
PRE { PRE {
font-family : courier new; font-family : courier new, monospaced, sans-serif;
font-size : 100%; font-size : 100%;
} }
#datatable TH { #datatable TH {
...@@ -47,9 +47,6 @@ ...@@ -47,9 +47,6 @@
#datatable TD { #datatable TD {
background-color : #FAF6EF; background-color : #FAF6EF;
} }
#datatable .name {
background-color : #DCE2F5;
}
</style> </style>
</head> </head>
<body> <body>
...@@ -61,11 +58,11 @@ servers together in a cluster. By running Openfire as a cluster, you can ...@@ -61,11 +58,11 @@ servers together in a cluster. By running Openfire as a cluster, you can
distribute the connection load among several servers, while also providing distribute the connection load among several servers, while also providing
failover in the event that one of your servers fails. This plugin is a failover in the event that one of your servers fails. This plugin is a
drop-in replacement for the original Openfire clustering plugin, using the drop-in replacement for the original Openfire clustering plugin, using the
open source <a href="http://www.hazelcast.org">Hazelcast</a> data distribution open source <a href="http://www.hazelcast.org">Hazelcast In-Memory Data Grid</a> data distribution
framework in lieu of an expensive proprietary third-party product. framework in lieu of an expensive proprietary third-party product.
</p> </p>
<p> <p>
The current Hazelcast release is version 3.5.1. The current Hazelcast release is version 3.9.2.
</p> </p>
<h3>Clustering vs. Federation</h3> <h3>Clustering vs. Federation</h3>
<p>XMPP is designed to scale in ways that are similar to email. Each Openfire <p>XMPP is designed to scale in ways that are similar to email. Each Openfire
...@@ -146,31 +143,32 @@ cluster. Practically speaking, all the members of the cluster need to be running ...@@ -146,31 +143,32 @@ cluster. Practically speaking, all the members of the cluster need to be running
same version of the plugin to prevent various errors and data synchronization issues. same version of the plugin to prevent various errors and data synchronization issues.
</p> </p>
<h3>Option 1: Offline</h3> <h3>Option 1: Offline</h3>
<p><b>NOTE:</b> This upgrade procedure is neat and tidy, but will incur a brief service outage. <p><strong>NOTE:</strong> This upgrade procedure is neat and tidy, but will incur a brief service outage.
</p> </p>
<ol> <ol>
<li>Shut down Openfire on all servers in the cluster.</li> <li>Shut down Openfire on all servers in the cluster.</li>
<li>For the first server in the cluster, perform the following steps:</li> <li>For the first server in the cluster, perform the following steps:
<ol type="a"> <ol type="a">
<li>Remove the existing <code>plugins/hazelcast.jar</code></li> <li>Remove the existing <code>plugins/hazelcast.jar</code></li>
<li>Remove (recursively) the <code>plugins/hazelcast</code> directory</li> <li>Remove (recursively) the <code>plugins/hazelcast</code> directory</li>
<li>Copy the updated <code>hazelcast.jar</code> into the <code>plugins</code> directory</li> <li>Copy the updated <code>hazelcast.jar</code> into the <code>plugins</code> directory</li>
<li>Restart Openfire to unpack and install the updated plugin</li> <li>Restart Openfire to unpack and install the updated plugin</li>
</ol> </ol>
</li>
<li>Repeat these steps for the remaining servers in the cluster.</li> <li>Repeat these steps for the remaining servers in the cluster.</li>
</ol> </ol>
<h3>Option 2: Online</h3> <h3>Option 2: Online</h3>
<p><b>NOTE:</b> Using this approach you should be able to continue servicing <p><strong>NOTE:</strong> Using this approach you should be able to continue servicing
XMPP connections during the upgrade. XMPP connections during the upgrade.
</p> </p>
<ol> <ol>
<li>Shut down Openfire on all servers <b>except one</b>.</li> <li>Shut down Openfire on all servers <strong>except one</strong>.</li>
<li>Using the Plugins page from the online server, remove the existing Hazelcast plugin.</li> <li>Using the Plugins page from the online server, remove the existing Hazelcast plugin.</li>
<li>Upload the new Hazelcast plugin and confirm it is installed (refresh the page if necessary)</li> <li>Upload the new Hazelcast plugin and confirm it is installed (refresh the page if necessary)</li>
<li>Use the "Offline" steps above to upgrade and restart the remaining servers.</li> <li>Use the "Offline" steps above to upgrade and restart the remaining servers.</li>
</ol> </ol>
<h3>Option 3: Split-Brain</h3> <h3>Option 3: Split-Brain</h3>
<p><b>NOTE:</b> Use this approach if you only have access to the Openfire console. <p><strong>NOTE:</strong> Use this approach if you only have access to the Openfire console.
Note however that users may not be able to communicate with each other during the upgrade Note however that users may not be able to communicate with each other during the upgrade
(if they are connected to different servers). (if they are connected to different servers).
</p> </p>
...@@ -181,35 +179,32 @@ clustering for all members of the cluster.</li> ...@@ -181,35 +179,32 @@ clustering for all members of the cluster.</li>
<li>After upgrading the plugin on all servers, use the Clustering page to enable clustering. <li>After upgrading the plugin on all servers, use the Clustering page to enable clustering.
This will activate clustering for all members of the cluster.</li> This will activate clustering for all members of the cluster.</li>
</ol> </ol>
<a name="config" /> <a name="config"></a>
<h2>Configuration</h2> <h2>Configuration</h2>
<p>There are several configuration options built into the Hazelcast plugin <p>There are several configuration options built into the Hazelcast plugin
as Openfire system properties: as Openfire system properties:
</p> </p>
<ol> <ol>
<li><i>hazelcast.startup.delay.seconds</i> (5): Number of seconds <li><em>hazelcast.startup.retry.count</em> (1): Number of times to retry
to wait before launching the Hazelcast plugin. This allows Openfire to
deploy any other plugins before initializing the cluster caches, etc.</li>
<li><i>hazelcast.startup.retry.count</i> (1): Number of times to retry
initialization if the cluster fails to start on the first attempt.</li> initialization if the cluster fails to start on the first attempt.</li>
<li><i>hazelcast.startup.retry.seconds</i> (10): Number of seconds to wait <li><em>hazelcast.startup.retry.seconds</em> (10): Number of seconds to wait
between subsequent attempts to start the cluster.</li> between subsequent attempts to start the cluster.</li>
<li><i>hazelcast.max.execution.seconds</i> (30): Maximum time to wait <li><em>hazelcast.max.execution.seconds</em> (30): Maximum time to wait
when running a synchronous task across members of the cluster.</li> when running a synchronous task across members of the cluster.</li>
<li><i>hazelcast.config.xml.filename</i> (hazelcast-cache-config.xml): Name <li><em>hazelcast.config.xml.filename</em> (hazelcast-cache-config.xml): Name
of the Hazelcast configuration file. By overriding this value you can easily of the Hazelcast configuration file. By overriding this value you can easily
install a custom cache configuration file in the Hazelcast plugin /classes/ install a custom cache configuration file in the Hazelcast plugin /classes/
directory, in the directory named via the <i>hazelcast.config.xml.directory</i> directory, in the directory named via the <em>hazelcast.config.xml.directory</em>
property (described below), or in the classpath of your own custom plugin.</li> property (described below), or in the classpath of your own custom plugin.</li>
<li><i>hazelcast.config.xml.directory</i> ({OPENFIRE_HOME}/conf): Directory <li><em>hazelcast.config.xml.directory</em> ({OPENFIRE_HOME}/conf): Directory
that will be added to the plugin's classpath. This allows a custom Hazelcast that will be added to the plugin's classpath. This allows a custom Hazelcast
configuration file to be located outside the Openfire home directory.</li> configuration file to be located outside the Openfire home directory.</li>
<li><i>hazelcast.config.jmx.enabled</i> (false): Enables JMX support for <li><em>hazelcast.config.jmx.enabled</em> (false): Enables JMX support for
the Hazelcast cluster if JMX has been enabled via the Openfire admin console. the Hazelcast cluster if JMX has been enabled via the Openfire admin console.
Refer to the <a href="http://docs.hazelcast.org/docs/3.5/manual/html/monitoringwithjmx.html"> Refer to the <a href="http://docs.hazelcast.org/docs/3.9.2/manual/html-single/index.html#monitoring-with-jmx">
Hazelcast JMX docs</a> for additional information.</li> Hazelcast JMX docs</a> for additional information.</li>
</ol> </ol>
<p>The Hazelcast plugin uses the <a href="http://docs.hazelcast.org/docs/3.5/manual/html/configurationoverview.html"> <p>The Hazelcast plugin uses the <a href="http://docs.hazelcast.org/docs/3.9.2/manual/html-single/index.html#configuring-declaratively">
XML configuration builder</a> to initialize the cluster from the XML file described above. XML configuration builder</a> to initialize the cluster from the XML file described above.
By default the cluster members will attempt to discover each other via multicast at the By default the cluster members will attempt to discover each other via multicast at the
following location: following location:
...@@ -235,7 +230,7 @@ following alternative: ...@@ -235,7 +230,7 @@ following alternative:
&lt;/join&gt; &lt;/join&gt;
... ...
</pre> </pre>
<p>Please refer to the <a href="http://docs.hazelcast.org/docs/3.5/manual/html-single/"> <p>Please refer to the <a href="http://docs.hazelcast.org/docs/3.9.2/manual/html-single/index.html">
Hazelcast reference manual</a> for more information. Hazelcast reference manual</a> for more information.
</p> </p>
<h3>A Word About Garbage Collection</h3> <h3>A Word About Garbage Collection</h3>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment