JBoss hornetq SVN: r8780 - in trunk/examples/jms: application-layer-failover and 7 other directories.
by do-not-reply@jboss.org
Author: ataylor
Date: 2010-01-08 09:44:04 -0500 (Fri, 08 Jan 2010)
New Revision: 8780
Modified:
trunk/examples/jms/applet/readme.html
trunk/examples/jms/application-layer-failover/readme.html
trunk/examples/jms/client-kickoff/readme.html
trunk/examples/jms/client-side-load-balancing/readme.html
trunk/examples/jms/clustered-grouping/readme.html
trunk/examples/jms/clustered-standalone/readme.html
trunk/examples/jms/dead-letter/readme.html
trunk/examples/jms/delayed-redelivery/readme.html
trunk/examples/jms/durable-subscription/readme.html
Log:
example read me updates part 1
Modified: trunk/examples/jms/applet/readme.html
===================================================================
--- trunk/examples/jms/applet/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/applet/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -12,7 +12,7 @@
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i> to start
- HornetQ server and a HTTP server.</p>
+ the HornetQ server and an HTTP server.</p>
<p>Then, go to <a href="http://127.0.0.1:8088/applet.html">http://127.0.0.1:8088/applet.html</a> to load
and use the applet.</p>
Modified: trunk/examples/jms/application-layer-failover/readme.html
===================================================================
--- trunk/examples/jms/application-layer-failover/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/application-layer-failover/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -8,13 +8,12 @@
<body onload="prettyPrint()">
<h1>Application-Layer Failover Example</h1>
- <p>HornetQ implements fully transparent <b>automatic</b> failover of connections from a live to backup node, this requires
- no special coding for failover, and is described in a different example. Automatic failover requires server replication.</p>
- <p>However, HornetQ also supports <b>Application-Layer</b> failover, useful in the case that replication is not enabled
- on the server side.</p>
- <p>With Application-Layer failover, it's up to the application to register a JMS ExceptionListener with HornetQ which will be
- called by HornetQ in the event that connection failure is detected.</p>
- <p>The code in the ExceptionListener then recreates the JMS Connection, Session, etc on another node and the application
+ <p>HornetQ implements fully transparent <b>automatic</b> failover of connections from a live node to a backup node which requires
+ no special coding. This is described in a different example and requires server replication.</p>
+ <p>However, HornetQ also supports <b>Application-Layer</b> failover which is useful in the case where replication is not enabled.</p>
+ <p>With Application-Layer failover, it's up to the application to register a JMS ExceptionListener with HornetQ.
+ This listener will then be called by HornetQ in the event that connection failure is detected.</p>
+ <p>User code in the ExceptionListener can then recreate any JMS Connection, Session, etc on another node and the application
can continue.</p>
<p>Application-Layer failover is an alternative approach to High Availabilty (HA).</p>
<p>Application-Layer failover differs from automatic failover in that some client side coding is required in order
Modified: trunk/examples/jms/client-kickoff/readme.html
===================================================================
--- trunk/examples/jms/client-kickoff/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/client-kickoff/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -12,7 +12,7 @@
using <a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/">JMX</a></p>
<p>The example will connect to HornetQ. Using JMX, we will list the remote addresses connected to the
- server and close the corresponding connections. The client will be kicked off from HornetQ and receives
+ server and close the corresponding connections. The client will be kicked off from HornetQ receiving
an exception that its JMS connection was interrupted.</p>
<h2>Example configuration</h2>
@@ -26,7 +26,7 @@
-Dcom.sun.management.jmxremote.authenticate=false</code>
</pre>
<p>These properties are explained in the Java 5 <a href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#remote">Management guide</a>
- (please note that for this example, we will disable user authentication for simplicity sake).</p>
+ (please note that for this example, we will disable user authentication for simplicity).</p>
<p>With these properties, HornetQ server will be manageable remotely using standard JMX URL on port <code>3000</code>.</p>
</p>
Modified: trunk/examples/jms/client-side-load-balancing/readme.html
===================================================================
--- trunk/examples/jms/client-side-load-balancing/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/client-side-load-balancing/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -15,7 +15,7 @@
guide for more details of how to configure the specific load-balancing policy. In this example we will use
the default round-robin load balancing policy.</p>
<p>The list of servers over which HornetQ will round-robin the connections can either be specified explicitly
- in the connection factory when creating it, or deploying it on the server, or the factory can be configured
+ in the connection factory when instantiating it directly, when configuring it on the server or configured
to use UDP discovery to discover the list of servers over which to round-robin. This example will use UDP
discovery to obtain the list.</p>
<p>This example starts three servers which all broadcast their location using UDP discovery. The UDP broadcast configuration
@@ -31,9 +31,7 @@
<ol>
<li> Get an initial context for looking up JNDI from server 0.</li>
<pre class="prettyprint">>
- <code>
- initialContext = getContext(0);
- </code>
+ <code>initialContext = getContext(0);</code>
</pre>
<li>Look-up the JMS Queue object from JNDI</li>
Modified: trunk/examples/jms/clustered-grouping/readme.html
===================================================================
--- trunk/examples/jms/clustered-grouping/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/clustered-grouping/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -8,7 +8,8 @@
<p>This example demonstrates how to ensure strict ordering across a cluster using clustered message grouping</p>
<p>We create 3 nodes each with a grouping message handler, one with a Local handler and 2 with a Remote handler.</p>
- <p>The local handler acts as an arbitrator for the 2 remote handlers, holding the information on routes and communicating that with the remote handlers</p>
+ <p>The local handler acts as an arbitrator for the 2 remote handlers, holding the information on routes and communicating
+ the routing info with the remote handlers on the other 2 nodes</p>
<p>We then send some messages to each node with the same group id set and ensure the same consumer receives all of them</p>
<p>Here's the relevant snippet from the server configuration that has the local handler</p>
<pre>
Modified: trunk/examples/jms/clustered-standalone/readme.html
===================================================================
--- trunk/examples/jms/clustered-standalone/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/clustered-standalone/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -10,7 +10,7 @@
<p>This example demonstrates a JMS Topic deployed on three different nodes.
The three nodes are configured to form a cluster.</p>
- <p>Subscriber for the topic are created on each node, and a producer is created on only one of the nodes.</p>
+ <p>Subscribers for the topic are created on each node, and a producer is created on only one of the nodes.</p>
<p>Some messages are sent by the producer, and we verify that <strong>all</strong> subscribers receive all the
sent messages.</p>
<p>This example uses HornetQ's default stand-alone clustered configuration.
Modified: trunk/examples/jms/dead-letter/readme.html
===================================================================
--- trunk/examples/jms/dead-letter/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/dead-letter/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -13,9 +13,9 @@
Such a message goes back to the JMS destination ready to be redelivered.
However, this means it is possible for a message to be delivered again and again without any success and remain in the destination, clogging the system.</p>
<p>To prevent this, messaging systems define dead letter messages: after a specified unsuccessful delivery attempts, the message is removed from the destination
- and put instead in a <em>dead letter address</em> where they can be consumed for further investigation.
+ and instead routed to a <em>dead letter address</em> where they can be consumed for further investigation.
<p>
- The example will show how to configure HornetQ to send a message to a dead letter destination after 3 unsuccessful delivery attempts.<br />
+ The example will show how to configure HornetQ to route a message to a dead letter address after 3 unsuccessful delivery attempts.<br />
The example will send 1 message to a queue. We will deliver the message 3 times and rollback the session every time.<br />
On the 4th attempt, there won't be any message to consume: it will have been moved to a <em>dead letter address</em>.<br />
We will then consume this dead letter message.
Modified: trunk/examples/jms/delayed-redelivery/readme.html
===================================================================
--- trunk/examples/jms/delayed-redelivery/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/delayed-redelivery/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -9,7 +9,7 @@
<h1>Delayed Redelivery Example</h1>
<p>This example demonstrates how HornetQ can be configured to provide a delayed redelivery in the case
- a message needs to be redelivered.</p>
+ where a message needs to be redelivered.</p>
<p>Delaying redelivery can often be useful in the case that clients regularly fail or roll-back. Without a delayed
redelivery, the system can get into a "thrashing" state, with delivery being attempted, the client rolling back, and
delivery being re-attempted ad infinitum in quick succession, using up valuable CPU and network resources.</p>
Modified: trunk/examples/jms/durable-subscription/readme.html
===================================================================
--- trunk/examples/jms/durable-subscription/readme.html 2010-01-08 14:20:38 UTC (rev 8779)
+++ trunk/examples/jms/durable-subscription/readme.html 2010-01-08 14:44:04 UTC (rev 8780)
@@ -8,9 +8,12 @@
<body onload="prettyPrint()">
<h1>JMS Durable Subscription Example</h1>
- <p>This example shows you how to use a durable subscription with HornetQ.</p>
+ <p>This example demonstrates how to use a durable subscription with HornetQ.</p>
<p>Durable subscriptions are a standard part of JMS, please consult the JMS 1.1 specification for full details.</p>
- <p>Unlike non durable subscriptions, the key function of durable subscriptions is that the messages contained in them persist longer than the lifetime of the subscriber - i.e. they will accumulate messages sent to the topic even if there is no active subscriber on them. They will also survive server restarts. Note that for the messages to be persisted, the messages sent to them must be marked as persistent messages.</p>
+ <p>Unlike non durable subscriptions, the key function of durable subscriptions is that the messages contained in them
+ persist longer than the lifetime of the subscriber - i.e. they will accumulate messages sent to the topic even
+ if the subscriber is not currently connected. They will also survive server restarts. Note that for the messages to
+ be persisted, the messages sent to them must be marked as persistent messages.</p>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
14 years, 11 months
JBoss hornetq SVN: r8779 - trunk/examples/core/embedded-remote/src/org/hornetq/core/example.
by do-not-reply@jboss.org
Author: jmesnil
Date: 2010-01-08 09:20:38 -0500 (Fri, 08 Jan 2010)
New Revision: 8779
Modified:
trunk/examples/core/embedded-remote/src/org/hornetq/core/example/EmbeddedRemoteExample.java
Log:
fixed typo
Modified: trunk/examples/core/embedded-remote/src/org/hornetq/core/example/EmbeddedRemoteExample.java
===================================================================
--- trunk/examples/core/embedded-remote/src/org/hornetq/core/example/EmbeddedRemoteExample.java 2010-01-08 13:44:27 UTC (rev 8778)
+++ trunk/examples/core/embedded-remote/src/org/hornetq/core/example/EmbeddedRemoteExample.java 2010-01-08 14:20:38 UTC (rev 8779)
@@ -21,7 +21,7 @@
/**
*
- * This exammple shows how to run a HornetQ core client and server embedded in your
+ * This example shows how to run a HornetQ core client and server embedded in your
* own application
*
* @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a>
14 years, 11 months
JBoss hornetq SVN: r8778 - in trunk/examples: core/embedded-remote and 66 other directories.
by do-not-reply@jboss.org
Author: jmesnil
Date: 2010-01-08 08:44:27 -0500 (Fri, 08 Jan 2010)
New Revision: 8778
Modified:
trunk/examples/core/embedded-remote/readme.html
trunk/examples/core/embedded/readme.html
trunk/examples/javaee/ejb-jms-transaction/readme.html
trunk/examples/javaee/hajndi/readme.html
trunk/examples/javaee/jca-config/readme.html
trunk/examples/javaee/jms-bridge/readme.html
trunk/examples/javaee/mdb-bmt/readme.html
trunk/examples/javaee/mdb-cmt-setrollbackonly/readme.html
trunk/examples/javaee/mdb-cmt-tx-local/readme.html
trunk/examples/javaee/mdb-cmt-tx-not-supported/readme.html
trunk/examples/javaee/mdb-cmt-tx-required/readme.html
trunk/examples/javaee/mdb-message-selector/readme.html
trunk/examples/javaee/mdb-tx-send/readme.html
trunk/examples/javaee/servlet-ssl/readme.html
trunk/examples/javaee/servlet-transport/readme.html
trunk/examples/jms/applet/readme.html
trunk/examples/jms/application-layer-failover/readme.html
trunk/examples/jms/bridge/readme.html
trunk/examples/jms/browser/readme.html
trunk/examples/jms/client-side-load-balancing/readme.html
trunk/examples/jms/clustered-durable-subscription/readme.html
trunk/examples/jms/clustered-grouping/readme.html
trunk/examples/jms/clustered-queue/readme.html
trunk/examples/jms/clustered-standalone/readme.html
trunk/examples/jms/clustered-topic/readme.html
trunk/examples/jms/consumer-rate-limit/readme.html
trunk/examples/jms/delayed-redelivery/readme.html
trunk/examples/jms/divert/readme.html
trunk/examples/jms/durable-subscription/readme.html
trunk/examples/jms/http-transport/readme.html
trunk/examples/jms/instantiate-connection-factory/readme.html
trunk/examples/jms/interceptor/readme.html
trunk/examples/jms/jmx/readme.html
trunk/examples/jms/large-message/readme.html
trunk/examples/jms/last-value-queue/readme.html
trunk/examples/jms/management/readme.html
trunk/examples/jms/message-group/readme.html
trunk/examples/jms/message-group2/readme.html
trunk/examples/jms/message-priority/readme.html
trunk/examples/jms/no-consumer-buffering/readme.html
trunk/examples/jms/non-transaction-failover/readme.html
trunk/examples/jms/paging/readme.html
trunk/examples/jms/pre-acknowledge/readme.html
trunk/examples/jms/producer-rate-limit/readme.html
trunk/examples/jms/queue-message-redistribution/readme.html
trunk/examples/jms/queue-requestor/readme.html
trunk/examples/jms/queue-selector/readme.html
trunk/examples/jms/queue/readme.html
trunk/examples/jms/reattach-node/readme.html
trunk/examples/jms/request-reply/readme.html
trunk/examples/jms/scheduled-message/readme.html
trunk/examples/jms/security/readme.html
trunk/examples/jms/send-acknowledgements/readme.html
trunk/examples/jms/ssl-enabled/readme.html
trunk/examples/jms/static-selector-jms/readme.html
trunk/examples/jms/static-selector/readme.html
trunk/examples/jms/symmetric-cluster/readme.html
trunk/examples/jms/temp-queue/readme.html
trunk/examples/jms/topic-hierarchies/readme.html
trunk/examples/jms/topic-selector-example1/readme.html
trunk/examples/jms/topic-selector-example2/readme.html
trunk/examples/jms/topic/readme.html
trunk/examples/jms/transaction-failover/readme.html
trunk/examples/jms/transactional/readme.html
trunk/examples/jms/xa-heuristic/readme.html
trunk/examples/jms/xa-receive/readme.html
trunk/examples/jms/xa-send/readme.html
trunk/examples/jms/xa-with-jta/readme.html
Log:
fixed examples' readmes
Modified: trunk/examples/core/embedded/readme.html
===================================================================
--- trunk/examples/core/embedded/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/core/embedded/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -8,9 +8,14 @@
<body onload="prettyPrint()">
<h1>Embedded Example</h1>
- <p>This examples shows how to setup and run HornetQ embedded.</p>
+ <p>This example shows how to setup and run HornetQ embedded.</p>
<p>HornetQ was designed to use POJOs (Plain Old Java Objects), what makes embedding HornetQ as simple as instantiating a few objects.</p>
- <p>On this example, we are only using one jar (hornetq-core.jar).</p>
+ <p>On this example, we are using three jars:</p>
+ <ul>
+ <li>hornetq-core.jar</li>
+ <li>hornetq-transports.jar</li>
+ <li>netty.jar</li>
+ </ul>
<p>HornetQ Embedded could be used from very simple use cases with only InVM support to very complex cases with clustering, persistence and fail over.</p>
Modified: trunk/examples/core/embedded-remote/readme.html
===================================================================
--- trunk/examples/core/embedded-remote/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/core/embedded-remote/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Embedded Example</h1>
- <p>This examples shows how to setup and run HornetQ embedded with remote clients connecting.</p>
+ <p>This example shows how to setup and run HornetQ embedded with remote clients connecting.</p>
<p>HornetQ was designed to use POJOs (Plain Old Java Objects), what makes embedding HornetQ as simple as instantiating a few objects.</p>
<p>We have limited the server classpath on this example:</p>
Modified: trunk/examples/javaee/ejb-jms-transaction/readme.html
===================================================================
--- trunk/examples/javaee/ejb-jms-transaction/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/ejb-jms-transaction/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -10,9 +10,12 @@
<p>This example will show how to run HornetQ in JBoss AS (Application Server).</p>
- <p>The example application will invoke an EJB which will (1) send a JMS message, (2) update a database from
- the same transaction.<br />
- The example application will then receive the message sent by the EJB.<br />
+ <p>The example application will invoke an EJB which will:</p>
+ <ol>
+ <li>send a JMS message</li>
+ <li>update a database from the same transaction</li>
+ </ol>
+ <p>The example application will then receive the message sent by the EJB.<br />
We will also check that the database has been updated as expected.</p>
<h2>Example configuration</h2>
Modified: trunk/examples/javaee/hajndi/readme.html
===================================================================
--- trunk/examples/javaee/hajndi/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/hajndi/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -1,14 +1,14 @@
<html>
<head>
- <title>HornetQ Java EE HAJNDI Example</title>
+ <title>HornetQ Java EE HA-JNDI Example</title>
<link rel="stylesheet" type="text/css" href="../../common/common.css" />
<link rel="stylesheet" type="text/css" href="../../common/prettify.css" />
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>Java EE HAJNDI Example</h1>
+ <h1>Java EE HA-JNDI Example</h1>
- <p>This example demonstrates the use of High Availability JNDI (HA-JNDI) to look-up HornetQ
+ <p>This example demonstrates the use of High Availability JNDI (HA-JNDI) to lookup HornetQ
JMS Connection Factories, Queues and Topics.</p>
<p>With normal JNDI you need to configure the client with the specific connection parameters
(i.e. host and port) of the JNDI server from which you want to perform look-ups.</p>
Modified: trunk/examples/javaee/jca-config/readme.html
===================================================================
--- trunk/examples/javaee/jca-config/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/jca-config/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -8,13 +8,13 @@
<body onload="prettyPrint()">
<h1>Java EE Resource Adapter Configuration Example</h1>
<p>This example demonstrates how to configure several properties on the HornetQ Resource Adapter. We setup two JBoss Servers. The enterprise application is being deployed in one application server while the MDBs and JMS Connections are pointing to a remote server</p>
- <p>This example is composed by two MDBs (MDBQueueA and MDBQueueB) and a StatlessSessionBean (StatelessSender). The main class (MDBRemoteClientExample) will call a method on StatelessSender and send a Message to Queue B.<p>
- <p>StatelessSender will send a message to Queue A and it is getting the connection out of the JavaConnectionArchitecture (JCA) ConnectionFactory, and sending a message to QueueA which will be received on MDBQueueA.</p>
+ <p>This example is composed by two message-driven beans (MDB), MDBQueueA and MDBQueueB, and a stateless session bean StatelessSender. The main class, MDBRemoteClientExample, will call a method on StatelessSender and send a Message to Queue B.<p>
+ <p>StatelessSender will send a message to Queue A and it is getting the connection out of the Java Connection Architecture (JCA) ConnectionFactory, and sending a message to QueueA which will be received on MDBQueueA.</p>
<p>MDBQueueB is connected to a different HornetQ resource-adapter, and it will receive the message sent by the main Class.</p>
<p>All the MDBs and JMS Connections are referring to the remote server</p>
<p>A Resource Adapter is a way to connect any system provider to an application server, and is integral part of the Java Connectors Architecture specification.</p>
<p>HornetQ provides its own adapter and this example will provide you a quick tutorial on how to configure some of the default properties, and how to change the default values on MDB Inbound Properties, or on ConnectionFactory Outbound Properties.</p>
- <p>This ResourceAdapter is what provides integration for Message Drive Beans (MDBs) or DataSource integration on the application server.</p>
+ <p>This ResourceAdapter is what provides integration for Message-Driven Beans or DataSource integration on the application server.</p>
<h2>MDB Properties</h2>
<p>You can configure the adapter through ActivactionConfigProperties on the MDB. Example:</p>
<pre class="prettyprint">
@@ -137,7 +137,7 @@
<p><i>To run the example, simply type <code>./build.sh run</code> (or <code>build.bat run</code> on windows) from the example directory</i></p>
<p><i>To undeploy the example, simply type <code>./build.sh undeploy undeploy2</code> (or <code>build.bat undeploy undeploy2</code> on windows) from the example directory</i></p>
<p><i> ** make sure that JBOSS_HOME is set to the JBoss installation directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the EJB on the second server from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/jms-bridge/readme.html
===================================================================
--- trunk/examples/javaee/jms-bridge/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/jms-bridge/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -32,7 +32,7 @@
<h3>JMS Bridge configuration</h3>
- <p>The JMS Bridge is configured using JBoss microcontainer (<a href="config/jms-bridge-jboss-beans.xml">jms-bridge-jboss-beans.xml</a> contains comments about the various parameters
+ <p>The JMS Bridge is configured using JBoss microcontainer (<a href="server/jms-bridge-jboss-beans.xml">jms-bridge-jboss-beans.xml</a> contains comments about the various parameters
used to configure the bridge).<br />
<p>The Bridge is deployed in the application server when you simply type <code>./build.sh deploy</code> (or <code>build.bat deploy</code> on windows) (it is copied to <code>${JBOSS_HOME}/server/default-with-hornetq/deploy/</code>).</p>
@@ -43,7 +43,7 @@
<p>The example is simple: the application will send a message to the <em>source</em> queue and consume the same message
from the <em>target</em> queue.</p>
- <p>The bridge was configured in <a href="config/jms-bridge-jboss-beans.xml">jms-bridge-jboss-beans.xml</a> to bridge these two queues.</p>
+ <p>The bridge was configured in <a href="server/jms-bridge-jboss-beans.xml">jms-bridge-jboss-beans.xml</a> to bridge these two queues.</p>
<ol>
<li>First we need to get an initial context so we can look up the JMS resources
Modified: trunk/examples/javaee/mdb-bmt/readme.html
===================================================================
--- trunk/examples/javaee/mdb-bmt/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/mdb-bmt/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE MDB Bean Managed Transaction Example</h1>
- <br>
+
<p>This example shows you how to send a message to an MDB configured to use Bean Managed Transactions</p>
<p>
The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it
@@ -21,8 +21,8 @@
<p><i>To deploy and start the server, simply type <code>./build.sh deploy</code> (or <code>build.bat deploy</code> on windows) from the example directory</i></p>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from the example directory</i></p>
<p><i>To remove the example profile, simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows) from the example directory</i></p>
- <p><i> ** make sure that JBOSS_HOME is set to the Jboss installation directory</i></p>
- <br>
+ <p><i> ** make sure that JBOSS_HOME is set to the JBoss installation directory</i></p>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/mdb-cmt-setrollbackonly/readme.html
===================================================================
--- trunk/examples/javaee/mdb-cmt-setrollbackonly/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/mdb-cmt-setrollbackonly/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE MDB SetRollbackOnly Example</h1>
- <br>
+
<p>This example shows you how to send a message to an MDB and then roll back the transaction forcing re delivery</p>
<p>
The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it
@@ -21,8 +21,8 @@
<p><i>To deploy and start the server, simply type <code>./build.sh deploy</code> (or <code>build.bat deploy</code> on windows) from the example directory</i></p>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from the example directory</i></p>
<p><i>To remove the example profile, simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows) from the example directory</i></p>
- <p><i> ** make sure that JBOSS_HOME is set to the Jboss installation directory</i></p>
- <br>
+ <p><i> ** make sure that JBOSS_HOME is set to the JBoss installation directory</i></p>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/mdb-cmt-tx-local/readme.html
===================================================================
--- trunk/examples/javaee/mdb-cmt-tx-local/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/mdb-cmt-tx-local/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE MDB using a local transaction Example</h1>
- <br>
+
<p>This example shows you how to send a message to an MDB and deliver it within a local transaction</p>
<p>
The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it, throwing an exception and the message being re delivered.
@@ -21,8 +21,8 @@
<p><i>To deploy and start the server, simply type <code>./build.sh deploy</code> (or <code>build.bat deploy</code> on windows) from the example directory</i></p>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from the example directory</i></p>
<p><i>To remove the example profile, simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows) from the example directory</i></p>
- <p><i> ** make sure that JBOSS_HOME is set to the Jboss installation directory</i></p>
- <br>
+ <p><i> ** make sure that JBOSS_HOME is set to the JBoss installation directory</i></p>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/mdb-cmt-tx-not-supported/readme.html
===================================================================
--- trunk/examples/javaee/mdb-cmt-tx-not-supported/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/mdb-cmt-tx-not-supported/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE MDB Container Managed Transaction with NOT_SUPPORTED transaction Example</h1>
- <br>
+
<p>This example shows you how to send a message to an MDB</p>
<p>
The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it but with a transaction as this MDB does not support one.
@@ -21,8 +21,8 @@
<p><i>To deploy and start the server, simply type <code>./build.sh deploy</code> (or <code>build.bat deploy</code> on windows) from the example directory</i></p>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from the example directory</i></p>
<p><i>To remove the example profile, simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows) from the example directory</i></p>
- <p><i> ** make sure that JBOSS_HOME is set to the Jboss installation directory</i></p>
- <br>
+ <p><i> ** make sure that JBOSS_HOME is set to the JBoss installation directory</i></p>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/mdb-cmt-tx-required/readme.html
===================================================================
--- trunk/examples/javaee/mdb-cmt-tx-required/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/mdb-cmt-tx-required/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE MDB Container Managed Transactions Example</h1>
- <br>
+
<p>This example shows you how to send a message to an MDB that is delivered within a transaction controlled by the container</p>
<p>
The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it
@@ -21,8 +21,8 @@
<p><i>To deploy and start the server, simply type <code>./build.sh deploy</code> (or <code>build.bat deploy</code> on windows) from the example directory</i></p>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from the example directory</i></p>
<p><i>To remove the example profile, simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows) from the example directory</i></p>
- <p><i> ** make sure that JBOSS_HOME is set to the Jboss installation directory</i></p>
- <br>
+ <p><i> ** make sure that JBOSS_HOME is set to the JBoss installation directory</i></p>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/mdb-message-selector/readme.html
===================================================================
--- trunk/examples/javaee/mdb-message-selector/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/mdb-message-selector/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE MDB Message Selector Example</h1>
- <br>
+
<p>This example shows you how to send a message to an MDB that is configured to use a message selector</p>
<p>
The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming only the message that matches the message selector.
@@ -21,8 +21,8 @@
<p><i>To deploy and start the server, simply type <code>./build.sh deploy</code> (or <code>build.bat deploy</code> on windows) from the example directory</i></p>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from the example directory</i></p>
<p><i>To remove the example profile, simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows) from the example directory</i></p>
- <p><i> ** make sure that JBOSS_HOME is set to the Jboss installation directory</i></p>
- <br>
+ <p><i> ** make sure that JBOSS_HOME is set to the JBoss installation directory</i></p>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/mdb-tx-send/readme.html
===================================================================
--- trunk/examples/javaee/mdb-tx-send/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/mdb-tx-send/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE MDB Send Example</h1>
- <br>
+
<p>This example shows you how to send a message to an MDB that returns a reply using the same XA transaction</p>
<p>
The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it
@@ -21,8 +21,8 @@
<p><i>To deploy and start the server, simply type <code>./build.sh deploy</code> (or <code>build.bat deploy</code> on windows) from the example directory</i></p>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from the example directory</i></p>
<p><i>To remove the example profile, simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows) from the example directory</i></p>
- <p><i> ** make sure that JBOSS_HOME is set to the Jboss installation directory</i></p>
- <br>
+ <p><i> ** make sure that JBOSS_HOME is set to the JBoss installation directory</i></p>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/servlet-ssl/readme.html
===================================================================
--- trunk/examples/javaee/servlet-ssl/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/servlet-ssl/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE SSL Servlet Example</h1>
- <br>
+
<p>This example shows you how to configure and use servlet transport over SSL with HornetQ.</p>
<h2>JBoss AS configuration</h2>
@@ -25,7 +25,7 @@
Once the server has started type simply type <code>./build.sh run</code> (or <code>build.bat run</code> on windows) to run the example.<br />
To remove the new profile type simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows).</em></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/javaee/servlet-transport/readme.html
===================================================================
--- trunk/examples/javaee/servlet-transport/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/javaee/servlet-transport/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Java EE Servlet Example</h1>
- <br>
+
<p>This example shows you how to configure and use servlet transport with HornetQ.</p>
<h2>JBoss AS configuration</h2>
@@ -23,7 +23,7 @@
Once the server has started simply type <code>./build.sh run</code> (or <code>build.bat run</code> on windows) to run the example.<br />
To remove the new profile type simply type <code>./build.sh undeploy</code> (or <code>build.bat undeploy</code> on windows).</em></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/applet/readme.html
===================================================================
--- trunk/examples/jms/applet/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/applet/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,6 @@
</head>
<body onload="prettyPrint()">
<h1>Applet Example</h1>
- <br>
<p>This example shows you how to send and receive JMS messages from an Applet.</p>
<h2>Example step-by-step</h2>
Modified: trunk/examples/jms/application-layer-failover/readme.html
===================================================================
--- trunk/examples/jms/application-layer-failover/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/application-layer-failover/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ Application-Layer Failover Example</h1>
- <br>
+ <h1>Application-Layer Failover Example</h1>
+
<p>HornetQ implements fully transparent <b>automatic</b> failover of connections from a live to backup node, this requires
no special coding for failover, and is described in a different example. Automatic failover requires server replication.</p>
<p>However, HornetQ also supports <b>Application-Layer</b> failover, useful in the case that replication is not enabled
@@ -22,13 +22,14 @@
work in the old Session will be lost, and any unacknowledged messages might be redelivered.</p>
<p>For more information on HornetQ failover and HA, and clustering in general, please see the clustering
section of the user manual.</p>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
<p>In this example, the live server is server 1, which will failover onto server 0.</p>
<p>The connection will initially be created to server1, server 1 will crash, and the client will carry on
on server 0, the new server. With Application-Layer failover the node that is failed over onto, does not need to
be specially configured as a backup server, it can be any node.</p>
- <br>
+
<ol>
<li> We create our JMS Connection, Session, MessageProducer and MessageConsumer on server 1</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/bridge/readme.html
===================================================================
--- trunk/examples/jms/bridge/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/bridge/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,7 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ Core Bridge Example</h1>
- <br>
+ <h1>Core Bridge Example</h1>
<p>This example demonstrates a core bridge deployed on one server, which consumes messages from a
local queue and forwards them to an address on a second server.</p>
@@ -25,7 +24,7 @@
between HornetQ instances, but may provide better performance than the JMS bridge. The JMS bridge is covered in
a separate example.</p>
<p>For more information on bridges, please see the HornetQ user manual.</p>
- <br>
+
<p>In this example we will demonstrate a simple sausage factory for aardvarks.</p>
<p>We have a JMS queue on server 0 named <code>sausage-factory</code>, and we have a
JMS queue on server 1 named <code>mincing-machine</code></p>
@@ -51,7 +50,7 @@
</pre>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>We create an initial context for looking up JNDI on node 0</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/browser/readme.html
===================================================================
--- trunk/examples/jms/browser/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/browser/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>JMS Queue Example</h1>
- <br>
+ <h1>JMS QueueBrowser Example</h1>
+
<p>This example shows you how to use a JMS <a href="http://java.sun.com/javaee/5/docs/api/javax/jms/QueueBrowser.html">QueueBrowser</a> with HornetQ.<br />
Queues are a standard part of JMS, please consult the JMS 1.1 specification for full details.<br />
A QueueBrowser is used to look at messages on the queue without removing them.
@@ -18,7 +18,7 @@
</p>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/client-side-load-balancing/readme.html
===================================================================
--- trunk/examples/jms/client-side-load-balancing/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/client-side-load-balancing/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -1,13 +1,13 @@
<html>
<head>
- <title>HornetQ JMS Client Side Load-Balancing Example</title>
+ <title>HornetQ JMS Client-Side Load-Balancing Example</title>
<link rel="stylesheet" type="text/css" href="../../common/common.css" />
<link rel="stylesheet" type="text/css" href="../../common/prettify.css" />
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ JMS Client Side Load-Balancing Example</h1>
- <br>
+ <h1>JMS Client-Side Load-Balancing Example</h1>
+
<p>This example demonstrates how subsequent connections created from a JMS Connection Factory can be created
to different nodes of the cluster. In other words it demonstrates how HornetQ does <b>client side load balancing</b> of
connections across the cluster.</p>
@@ -24,9 +24,10 @@
connection factory.</p>
<p>For more information on HornetQ load balancing, and clustering in general, please see the clustering
section of the user manual.</p>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li> Get an initial context for looking up JNDI from server 0.</li>
<pre class="prettyprint">>
Modified: trunk/examples/jms/clustered-durable-subscription/readme.html
===================================================================
--- trunk/examples/jms/clustered-durable-subscription/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/clustered-durable-subscription/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ JMS Durable Subscription Example</h1>
- <br>
+ <h1>JMS Durable Subscription Example</h1>
+
<p>This example demonstrates a clustered JMS durable subscription.
Normally durable subscriptions exist on a single node and can only have one subscriber at any one time,
however, with HornetQ it's possible to create durable subscription instances with the same name and client-id
@@ -38,10 +38,11 @@
</code>
</pre>
<p>For more information on HornetQ load balancing, and clustering in general, please see the clustering
- section of the user manual.</p>
+ section of the user manual.</p>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li> Get an initial context for looking up JNDI from server 0.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/clustered-grouping/readme.html
===================================================================
--- trunk/examples/jms/clustered-grouping/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/clustered-grouping/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -4,8 +4,8 @@
<link rel="stylesheet" type="text/css" href="../../common/common.css">
</head>
<body>
- <h1>HornetQ JMS Clustered Grouping Example</h1>
- <br>
+ <h1>JMS Clustered Grouping Example</h1>
+
<p>This example demonstrates how to ensure strict ordering across a cluster using clustered message grouping</p>
<p>We create 3 nodes each with a grouping message handler, one with a Local handler and 2 with a Remote handler.</p>
<p>The local handler acts as an arbitrator for the 2 remote handlers, holding the information on routes and communicating that with the remote handlers</p>
@@ -57,7 +57,7 @@
section of the user manual.</p>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li> Get an initial context for looking up JNDI from server 0.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/clustered-queue/readme.html
===================================================================
--- trunk/examples/jms/clustered-queue/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/clustered-queue/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -1,13 +1,13 @@
<html>
<head>
- <title>HornetQ JMS Load Balanced Queue Example</title>
+ <title>HornetQ JMS Load Balanced Clustered Queue Example</title>
<link rel="stylesheet" type="text/css" href="../../common/common.css" />
<link rel="stylesheet" type="text/css" href="../../common/prettify.css" />
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ JMS Load Balanced Clustered Queue Example</h1>
- <br>
+ <h1>JMS Load Balanced Clustered Queue Example</h1>
+
<p>This example demonstrates a JMS queue deployed on two different nodes. The two nodes are configured to form a cluster.</p>
<p>We then create a consumer on the queue on each node, and we create a producer on only one of the nodes.</p>
<p>We then send some messages via the producer, and we verify that <b>both</b> consumers receive the sent messages
@@ -32,7 +32,7 @@
section of the user manual.</p>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li> Get an initial context for looking up JNDI from server 0.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/clustered-standalone/readme.html
===================================================================
--- trunk/examples/jms/clustered-standalone/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/clustered-standalone/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Clustered Stand-alone Example</h1>
- <br>
+
<p>This example demonstrates a JMS Topic deployed on three different nodes.
The three nodes are configured to form a cluster.</p>
<p>Subscriber for the topic are created on each node, and a producer is created on only one of the nodes.</p>
Modified: trunk/examples/jms/clustered-topic/readme.html
===================================================================
--- trunk/examples/jms/clustered-topic/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/clustered-topic/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ JMS Clustered Topic Example</h1>
- <br>
+ <h1>JMS Clustered Topic Example</h1>
+
<p>This example demonstrates a JMS Topic deployed on two different nodes. The two nodes are configured to form a cluster.</p>
<p>We then create a subscriber on the topic on each node, and we create a producer on only one of the nodes.</p>
<p>We then send some messages via the producer, and we verify that <b>both</b> subscribers receive all the
@@ -33,7 +33,7 @@
section of the user manual.</p>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li> Get an initial context for looking up JNDI from server 0.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/consumer-rate-limit/readme.html
===================================================================
--- trunk/examples/jms/consumer-rate-limit/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/consumer-rate-limit/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ <br>JMS Message Consumer Rate Limiting</h1>
- <br><br>
+ <h1>JMS Message Consumer Rate Limiting</h1>
+
<p>With HornetQ you can specify a maximum consume rate at which a JMS MessageConsumer will consume messages.
This can be specified when creating or deploying the connection factory. See <code>hornetq-jms.xml</code></p>
<p>If this value is specified then HornetQ will ensure that messages are never consumed at a rate higher than
@@ -32,9 +32,9 @@
</pre>
<p>We then simply consume as many messages as we can in 10 seconds and note how many messages are actually consumed.</p>
<p>We note that the number of messages consumed per second never exceeds the specified value of <code>10</code> messages per second.</p>
- <br>
+
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>Create an initial context to perform the JNDI lookup.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/delayed-redelivery/readme.html
===================================================================
--- trunk/examples/jms/delayed-redelivery/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/delayed-redelivery/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,7 +6,7 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ Delayed Redelivery Example</h1>
+ <h1>Delayed Redelivery Example</h1>
<p>This example demonstrates how HornetQ can be configured to provide a delayed redelivery in the case
a message needs to be redelivered.</p>
Modified: trunk/examples/jms/divert/readme.html
===================================================================
--- trunk/examples/jms/divert/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/divert/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ Divert Example</h1>
- <br>
+ <h1>Divert Example</h1>
+
<p>HornetQ diverts allow messages to be transparently "diverted" from one address to another
with just some simple configuration defined on the server side.</p>
<p>Diverts can be defined to be <b>exclusive</b> or <b>non-exclusive</b>.</p>
@@ -95,7 +95,7 @@
</pre>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>Create an initial context to perform the JNDI lookup on the London server</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/durable-subscription/readme.html
===================================================================
--- trunk/examples/jms/durable-subscription/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/durable-subscription/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,14 +7,14 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Durable Subscription Example</h1>
- <br>
+
<p>This example shows you how to use a durable subscription with HornetQ.</p>
<p>Durable subscriptions are a standard part of JMS, please consult the JMS 1.1 specification for full details.</p>
<p>Unlike non durable subscriptions, the key function of durable subscriptions is that the messages contained in them persist longer than the lifetime of the subscriber - i.e. they will accumulate messages sent to the topic even if there is no active subscriber on them. They will also survive server restarts. Note that for the messages to be persisted, the messages sent to them must be marked as persistent messages.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
@@ -78,10 +78,10 @@
</pre>
<li>We create and send another text message, message 2, to the same topic</li>
- <pre class="prettyprint">
- <code>TextMessage message2 = session.createTextMessage("This is a text message 2");</code>
- <br>
- <code>messageProducer.send(message2);</code>
+ <pre class="prettyprint">
+ <code>TextMessage message2 = session.createTextMessage("This is a text message 2");
+
+ messageProducer.send(message2);</code>
</pre>
<li>Now we close the subscriber. Since the subscription is durable it will continue to survive even though there is no subscriber attached to it. At this point you could even stop and restart the server and the subscription would survive!</li>
Modified: trunk/examples/jms/http-transport/readme.html
===================================================================
--- trunk/examples/jms/http-transport/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/http-transport/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS HTTP Example</h1>
- <br>
+
<p>This example shows you how to configure HornetQ to use HTTP protocol as its transport layer.</p>
<p>HornetQ supports a variety of network protocols to be its underlying transport without any specific code change.</p>
@@ -34,10 +34,9 @@
</code>
</pre>
- <br>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/instantiate-connection-factory/readme.html
===================================================================
--- trunk/examples/jms/instantiate-connection-factory/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/instantiate-connection-factory/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,7 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ JMS Instantiate Connection Factory Example</h1>
- <br>
+ <h1>JMS Instantiate Connection Factory Example</h1>
<p>Usually, JMS Objects such as ConnectionFactory, Queue and Topic instances are looked up from JNDI
before being used by the client code. This objects are called "administered objects" in JMS specification
@@ -28,7 +27,7 @@
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>Instead of looking it up from JNDI we directly instantiate the JMS Queue object. We
pass in the name of the JMS Queue in the constructor. The actual JMS Queue must already be deployed on
Modified: trunk/examples/jms/interceptor/readme.html
===================================================================
--- trunk/examples/jms/interceptor/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/interceptor/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Interceptor Example</h1>
- <br>
+
<p>This example shows you how to implement and configure a simple interceptor with HornetQ.</p>
<p>HornetQ allows an application to use an interceptor to hook into the messaging system. All that needs to do is to implement the
@@ -41,10 +41,9 @@
to return <code>false</code> that signifies that no more interceptors are to run or the target
is not to be called. Return <code>false</code> to abort processing of the packet.</p>
- <br>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/jmx/readme.html
===================================================================
--- trunk/examples/jms/jmx/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/jmx/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMX Management Example</h1>
- <br>
+
<p>This example shows how to manage HornetQ using <a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/">JMX</a></p>
<h2>Example configuration</h2>
Modified: trunk/examples/jms/large-message/readme.html
===================================================================
--- trunk/examples/jms/large-message/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/large-message/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Large Message Example</h1>
- <br>
+
<p>This example shows you how to send and receive very large messages with HornetQ.</p>
<p>HornetQ supports the sending and receiving of huge messages, much larger than can fit in available RAM
on the client or server. Effectively the only limit to message size is the amount of disk space you have on the server.</p>
@@ -15,7 +15,7 @@
do a simple socket stream from the sender to the consumer.</p>
<p>In order to do this HornetQ provides an extension to JMS where you can use an InputStream or OutputStream as the source and destination for your messages. You can send messages as large as it would fit in your disk.</p>
<p>You may also choose to read LargeMessages using the regular ByteStream or ByteMessage methods, but using the InputStream and OutputStream will provide you a much better performance</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
<p>In this example we limit both the server and the client to be running in a maximum of 50MB of RAM,
@@ -26,7 +26,7 @@
a FileInputStream on that file and set that InputStream as the body of the message before sending.</p>
<p>The message is sent, then we stop the server, and restart it. This demonstrates the large message will survive a restart of the server.</p>
<p>Once the server is restarted we receive the message and stream it's body to another file on disk.</p>
- <br>
+
<ol>
<li>Create an initial context to perform the JNDI lookup.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/last-value-queue/readme.html
===================================================================
--- trunk/examples/jms/last-value-queue/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/last-value-queue/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,7 +6,7 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>Last Value Queue Example</h1>
+ <h1>Last-Value Queue Example</h1>
<p>This example shows you how to define and deal with last-value queues.</p>
<p>Last-Value queues are special queues which discard any messages when a newer message with the same value for a well-defined <em>Last-Value</em> property is put in the queue.
Modified: trunk/examples/jms/management/readme.html
===================================================================
--- trunk/examples/jms/management/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/management/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,7 +6,7 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1> Management Example</h1>
+ <h1>Management Example</h1>
<p>This example shows how to manage HornetQ using JMS Messages to invoke management operations on the server.</a></p>
<p>To manage HornetQ using JMX, see the <a href="../jmx/readme.html">JMX</a> example.</p>
Modified: trunk/examples/jms/message-group/readme.html
===================================================================
--- trunk/examples/jms/message-group/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/message-group/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Message Group Example</h1>
- <br>
+
<p>This example shows you how to configure and use message groups with HornetQ.</p>
<p>Message groups are sets of messages that has the following characteristics: </p>
@@ -25,10 +25,9 @@
will be picked to create a message group. <em>Every messages</em> sent by a producer created from this connection factory will automatically
be part of this message group.</p>
- <br>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/message-group2/readme.html
===================================================================
--- trunk/examples/jms/message-group2/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/message-group2/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Message Group Example</h1>
- <br>
+
<p>This example shows you how to configure and use message groups via a connection factory with HornetQ.</p>
<p>Message groups are sets of messages that has the following characteristics: </p>
@@ -23,10 +23,8 @@
will be picked to create a message group. <em>Every messages</em> sent by a producer created from this connection factory will automatically
be part of this message group.</p>
- <br>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/message-priority/readme.html
===================================================================
--- trunk/examples/jms/message-priority/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/message-priority/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Message Priority Example</h1>
- <br>
+
<p>This example shows how messages with priorities are delivered.</p>
<p>Message Priority carries the delivery preference of messages. It can be retrieved by the message's
@@ -24,10 +24,9 @@
is also received ahead of the message first sent, but behind the third message. The first message, regardless
of its being sent first, arrives last.</p>
- <br>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/no-consumer-buffering/readme.html
===================================================================
--- trunk/examples/jms/no-consumer-buffering/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/no-consumer-buffering/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ <br>No Consumer Buffering Example</h1>
- <br><br>
+ <h1>No Consumer Buffering Example</h1>
+
<p>By default, HornetQ consumers buffer messages from the server in a client side buffer
before you actually receive them on the client side.</p>
<p>This improves performance since otherwise every time you called receive() or had processed the last
@@ -50,9 +50,9 @@
are consumed in the order they were sent.</p>
<p>If the messages had been buffered in each consumer they would not be available to be consumed
in an order determined afer delivery.</p>
- <br>
+
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>Create an initial context to perform the JNDI lookup.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/non-transaction-failover/readme.html
===================================================================
--- trunk/examples/jms/non-transaction-failover/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/non-transaction-failover/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -23,7 +23,6 @@
<p>In this example, the live server is server 1, and the backup server is server 0</p>
<p>The connection will initially be created to server1, server 1 will crash, and the client will carry on
seamlessly on server 0, the backup server.</p>
- <br>
<ol>
<li>Get an initial context for looking up JNDI from server #1.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/paging/readme.html
===================================================================
--- trunk/examples/jms/paging/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/paging/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,17 +7,17 @@
</head>
<body onload="prettyPrint()">
<h1>Paging Example</h1>
- <br>
+
<p>This example shows how HornetQ would avoid running out of resources by paging messages.</p>
<p>A maxSize could be specified per Destination on the destinations settings (hornetq-configuration.xml).</p>
<p>When the buffered messages are consuming too much memory, HornetQ starts writing messages on the file-system, and as the memory is released by message acknowledgement or transaction commits those messages are recovered from disk and placed in memory</p>
<p>Acknowledgement plays an important factor on paging as messages will stay on the file system until the memory is released</p>
<p>A Queue is used to send messages point to point, from a producer to a consumer. The queue guarantees message ordering between these 2 points.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/pre-acknowledge/readme.html
===================================================================
--- trunk/examples/jms/pre-acknowledge/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/pre-acknowledge/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ JMS Pre-Acknowledge Example</h1>
- <br>
+ <h1>JMS Pre-Acknowledge Example</h1>
+
<p>Standard JMS supports three acknowledgement modes: AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, and
DUPS_OK_ACKNOWLEDGE. For a full description on these modes please consult the JMS specification, or any
JMS tutorial.</p>
@@ -28,7 +28,7 @@
<code>HornetQSession.PRE_ACKNOWLEDGE</code>.
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>Create an initial context to perform the JNDI lookup.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/producer-rate-limit/readme.html
===================================================================
--- trunk/examples/jms/producer-rate-limit/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/producer-rate-limit/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ JMS Message Producer Rate Limiting</h1>
- <br>
+ <h1>JMS Message Producer Rate Limiting</h1>
+
<p>With HornetQ you can specify a maximum send rate at which a JMS MessageProducer will send messages.
This can be specified when creating or deploying the connection factory. See <code>hornetq-jms.xml</code></p>
<p>If this value is specified then HornetQ will ensure that messages are never produced at a rate higher than
@@ -32,9 +32,9 @@
</pre>
<p>We then simply send as many messages as we can in 10 seconds and note how many messages are actually sent.</p>
<p>We note that the number of messages sent per second never exceeds the specified value of <code>50</code> messages per second.</p>
- <br>
+
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>Create an initial context to perform the JNDI lookup.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/queue/readme.html
===================================================================
--- trunk/examples/jms/queue/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/queue/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,14 +7,14 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Queue Example</h1>
- <br>
+
<p>This example shows you how to send and receive a message to a JMS Queue with HornetQ.</p>
<p>Queues are a standard part of JMS, please consult the JMS 1.1 specification for full details.</p>
<p>A Queue is used to send messages point to point, from a producer to a consumer. The queue guarantees message ordering between these 2 points.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/queue-message-redistribution/readme.html
===================================================================
--- trunk/examples/jms/queue-message-redistribution/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/queue-message-redistribution/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ Message Redistribution Example</h1>
- <br>
+ <h1>Message Redistribution Example</h1>
+
<p>This example demonstrates message redistribution between queues with the same name deployed in different
nodes of a cluster.</p>
<p>As demontrated in the clustered queue example, if queues with the same name are deployed on different nodes of
@@ -37,7 +37,6 @@
section of the user manual.</p>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
<ol>
<li>Get an initial context for looking up JNDI from server 0</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/queue-requestor/readme.html
===================================================================
--- trunk/examples/jms/queue-requestor/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/queue-requestor/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS QueueRequestor Example</h1>
- <br>
+
<p>This example shows you how to use a <a href="http://java.sun.com/javaee/5/docs/api/javax/jms/QueueRequestor.html">QueueRequestor</a> with HornetQ.</p>
<p>JMS is mainly used to send messages asynchronously so that the producer of a message is not waiting for the result of the message consumption.
However, there are cases where it is necessary to have a synchronous behavior: the code sending a message requires a reply for this message
@@ -20,11 +20,11 @@
<dt><code>QueueRequestorExample</code></dt>
<dd>A JMS Client which uses a QueueRequestor to send text requests to a queue and receive replies with the reversed text in a synchronous fashion</dd>
</dl>
+
-
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/queue-selector/readme.html
===================================================================
--- trunk/examples/jms/queue-selector/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/queue-selector/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Queue Selector Example</h1>
- <br>
+
<p>This example shows you how to selectively consume messages using message selectors with queue consumers.</p>
<p>Message selectors are strings with special syntax that can be used in creating consumers. Message consumers
@@ -28,10 +28,10 @@
consume the first message delivered, therefore there is no chance for the next consumer to get the message, even if it
matches the selector.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/reattach-node/readme.html
===================================================================
--- trunk/examples/jms/reattach-node/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/reattach-node/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ JMS Reattach Example</h1>
- <br>
+ <h1>JMS Reattach Example</h1>
+
<p>This example demonstrates how HornetQ connections can be configured to be resilient to
temporary network failures.</p>
<p>In the case of a network failure being detected, either as a result of a failure to read/write to the connection,
@@ -30,10 +30,9 @@
<p>For more details on how to configure this and for clustering in general
please consult the HornetQ user manual.</p>
- <br>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>Create an initial context to perform the JNDI lookup.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/request-reply/readme.html
===================================================================
--- trunk/examples/jms/request-reply/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/request-reply/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,17 +7,17 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Request-Reply Example</h1>
- <br>
+
<p>This example shows you how to handle a request message and receive a reply. To get a reply message, the requesting client creates a temporary queue. Then it sends out the request message with JMSReplyTo set to the temporary queue. The request message is handled by a SimpleRequestServer, who is listening to the request queue for incoming requests. If a request message has arrived, it extracts the reply queue from the request message by JMSReplyTo header, and sends back a reply message. To let the client know to which request message a reply message is related, the server also set the JMSCorrelationID with the request message's JMSMessageID header to the reply message.</p>
<p>Of course, in a real world example you would re-use the session, producer, consumer and temporary queue and not create a new one for each message!
Or better still use the correlation id, and just store the requests in a map, then you don't need a temporary queue at all
<p>Request/Reply style messaging is supported through standard JMS message headers JMSReplyTo and JMSCorrelationID. This is often used in request-reply style communications between applications.
Whenever a client sends a message that expects a response, it can use this mechanism to implement. please consult the JMS 1.1 specification for full details.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>We start the request server</li>
Modified: trunk/examples/jms/scheduled-message/readme.html
===================================================================
--- trunk/examples/jms/scheduled-message/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/scheduled-message/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Scheduled Message Example</h1>
- <br>
+
<p>This example shows you how to send a scheduled message to a JMS Queue with HornetQ.</p>
<p>A Scheduled Message is a message that will be delivered at a time specified by the sender. To do this,
simply set a HDR_SCHEDULED_DELIVERY_TIME header property. The value of the property should be the time of
@@ -15,10 +15,10 @@
<p>In this example, a message is created with the scheduled delivery time set to 5 seconds after.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/security/readme.html
===================================================================
--- trunk/examples/jms/security/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/security/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Security Example</h1>
- <br>
+
<p>This example shows you how configure and use security with HornetQ.</p>
<p>With security properly configured, HornetQ can restrict client access to its resouces, including
@@ -111,10 +111,10 @@
check out the hornetq-beans.xml for how to do. In this example we just use the basic HornetQSecurityManagerImpl which reads users/roles/passwords from the xml
file <code>hornetq-users.xml</code>.
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/send-acknowledgements/readme.html
===================================================================
--- trunk/examples/jms/send-acknowledgements/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/send-acknowledgements/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,18 +7,18 @@
</head>
<body onload="prettyPrint()">
<h1>Asynchronous Send Acknowledgements Example</h1>
- <br>
+
<p>Asynchronous Send Acknowledgements are an advanced feature of HornetQ which allow you to
receive acknowledgements that messages were successfully received at the server in a separate stream
to the stream of messages being sent to the server.<p/>
<p>In this example we create a normal JMS session, then set a SendAcknowledgementHandler on the JMS
session's underlying core session. We send many messages to the server without blocking, and asynchronously
the server calls the handler when it has successfully received each message.
- <br>
+
<p>For more information on Asynchronous Send Acknowledgements please see the user manual</p>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/ssl-enabled/readme.html
===================================================================
--- trunk/examples/jms/ssl-enabled/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/ssl-enabled/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS SSL Example</h1>
- <br>
+
<p>This example shows you how to configure SSL with HornetQ to send and receive message. </p>
<p>Using SSL can make your messaging applications interact with HornetQ service securely. An application can
@@ -47,10 +47,10 @@
<p>In the configuration, the hornetq.example.keystore is the key store file holding client certificate. The hornetq.example.truststore
is the file for server to hold trusted client certificates. They are pre-generated for illustration purpose<a id="fnr1" href="#fn1"><sup>1</sup></a>.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/static-selector/readme.html
===================================================================
--- trunk/examples/jms/static-selector/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/static-selector/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Static Message Selector Example</h1>
- <br>
+
<p>This example shows you how to configure a HornetQ queue with static message selectors (filters)
(to configure a static selector directly on a <em>JMS</em> queue, please see the
<a href="../static-selector-jms/readme.html">static-selector-jms example</a>).</p>
@@ -34,10 +34,10 @@
is created to receive messages from the queue. Of the five sent messages, two are of 'red' color properties, one is 'blue',
one is 'green' and one has not the 'color' propery at all. The result is that the consumer only gets the two 'red' messages.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/static-selector-jms/readme.html
===================================================================
--- trunk/examples/jms/static-selector-jms/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/static-selector-jms/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>Static Message Selector Example</h1>
- <br>
+
<p>This example shows you how to configure a JMS queue with static message selectors (filters).</p>
<p>Static message selectors are HornetQ's extension to message selectors as defined in JMS spec 1.1.
@@ -32,10 +32,10 @@
and one has not the <code>color</code> property at all. The result is that the consumer only gets the two messages
with the <code>'red'</code> color.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/symmetric-cluster/readme.html
===================================================================
--- trunk/examples/jms/symmetric-cluster/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/symmetric-cluster/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ Symmetric Cluster Example</h1>
- <br>
+ <h1>JMS Symmetric Cluster Example</h1>
+
<p>This examples demonstrates a <b>symmetric cluster</b> set-up with HornetQ.</p>
<p>HornetQ has extremely flexible clustering which allows you to set-up servers in
many different topologies.</p>
@@ -49,7 +49,7 @@
section of the user manual.</p>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>We instantiate a connection factory directly, specifying the UDP address and port for discovering
the list of servers in the cluster.
Modified: trunk/examples/jms/temp-queue/readme.html
===================================================================
--- trunk/examples/jms/temp-queue/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/temp-queue/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,13 +7,13 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Temporary Queue Example</h1>
- <br>
+
<p>This example shows you how to use a TemporaryQueue object with HornetQ. First it creates a temporary queue to send and receive a message, then delete it. Then it creates another temporary queue and tries to use it after its connection is closed -- to illustrate its scope.</p>
<p>TemporaryQueue is a JMS queue that lives within lifetime of its connection. It is often used in request-reply type messaging where the reply is sent through a temporary destination. The temporary queue is often created as a server resource, so after using, the user should call delete() method to release the resources. Please consult the JMS 1.1 specification for full details.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/topic/readme.html
===================================================================
--- trunk/examples/jms/topic/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/topic/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,14 +7,14 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Topic Example</h1>
- <br>
+
<p>This example shows you how to send and receive a message to a JMS Topic with HornetQ.</p>
<p>Topics are a standard part of JMS, please consult the JMS 1.1 specification for full details.</p>
<p>A Topic is used to send messages using the publish-subscribe model, from a producer to 1 or more consumers.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/topic-hierarchies/readme.html
===================================================================
--- trunk/examples/jms/topic-hierarchies/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/topic-hierarchies/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -6,8 +6,8 @@
<script type="text/javascript" src="../../common/prettify.js"></script>
</head>
<body onload="prettyPrint()">
- <h1>HornetQ Topic Hierarchy Example</h1>
- <br>
+ <h1>Topic Hierarchy Example</h1>
+
<p>HornetQ supports topic hierarchies. With a topic hierarchy you can register a subscriber with a wild-card
and that subscriber will receive any messages sent to an address that matches the wildcard.</p>
<p>HornetQ wild-cards can use the character '#' which means "match any number of words", and
@@ -51,7 +51,7 @@
and one to the address news.europe.entertainment.</p>
<p>We will verify that the message sent to news.usa.wrestling does not get received since it does not match,
but the messages sent to the other two addresses do get received since they match.</p>
- <br>
+
<ol>
<li>Create an initial context to perform the JNDI lookup.</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/topic-selector-example1/readme.html
===================================================================
--- trunk/examples/jms/topic-selector-example1/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/topic-selector-example1/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,14 +7,14 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Topic Selector Example 1</h1>
- <br>
+
<p>This example shows you how to send message to a JMS Topic, and subscribe them using selectors with HornetQ, also creating 3 non durable subscribers. 2 subscriptions using selectors, and a third one that should receive the complete set of messages.</p>
<p>Topics and selectors are a standard part of JMS, please consult the JMS 1.1 specification for full details.</p>
<p>A regular subscriber would receive every message sent to the topic, but when you use a selector you would limit the messages you receive by the logic expression you choose only getting the messages that will matter to your processing.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/topic-selector-example2/readme.html
===================================================================
--- trunk/examples/jms/topic-selector-example2/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/topic-selector-example2/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Topic Selector Example 2</h1>
- <br>
+
<p>This example shows you how to selectively consume messages using message selectors with topic consumers.</p>
<p>Message selectors are strings with special syntax that can be used in creating consumers. Message consumers
@@ -21,10 +21,10 @@
only receives messages who have a 'color' string property of
'green' value; and the thrid without a selector, which means it receives all messages. To illustrate, three messages
with different 'color' property values are created and sent.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/transaction-failover/readme.html
===================================================================
--- trunk/examples/jms/transaction-failover/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/transaction-failover/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -26,7 +26,7 @@
<p>In this example, the live server is server 1, and the backup server is server 0</p>
<p>The connection will initially be created to server1, server 1 will crash, and the client will carry on
seamlessly on server 0, the backup server.</p>
- <br>
+
<ol>
<li>Get an initial context for looking up JNDI from server #1.</li>
<pre class="prettyprint">
Modified: trunk/examples/jms/transactional/readme.html
===================================================================
--- trunk/examples/jms/transactional/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/transactional/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,15 +7,15 @@
</head>
<body onload="prettyPrint()">
<h1>JMS Transactional Session Example</h1>
- <br>
+
<p>This example shows you how to use a transactional Session with HornetQ. It creates a transactional session. At first it sends out two messages and tries to receive without session commit. Then it commits the sending session and receives only one messages before it rolls back the receiving session. It then receives all the messages and commits the session.</p>
<p>Messages can be sent and received over transactional sessions. Messages in a transactional session will not be sent or acknowledged until the session is committed. It a session is rolled back, the produced messages will be destroyed and consumed messages will be recovered. Please consult the JMS 1.1 specification for full details.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/xa-heuristic/readme.html
===================================================================
--- trunk/examples/jms/xa-heuristic/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/xa-heuristic/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,6 @@
</head>
<body onload="prettyPrint()">
<h1>JMS XA Heuristic Example</h1>
- <br>
<p>This example shows you how to make an XA heuristic decision through HornetQ Management Interface.</p>
<p>A heuristic decision is a unilateral decision to commit or rollback an XA transaction branch after it has
@@ -24,10 +23,8 @@
<p>This example uses JMX to manipulate transactions in a HornetQ Server. For details on JMX facilities with HornetQ,
please look at the JMX Example.</p>
- <br>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/xa-receive/readme.html
===================================================================
--- trunk/examples/jms/xa-receive/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/xa-receive/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,6 @@
</head>
<body onload="prettyPrint()">
<h1>JMS XA Receive Example</h1>
- <br>
<p>This example shows you how message receiving behaves in an XA transaction in HornetQ. In an XA
Transaction, only if the associated XAResource are commited, will the messages be removed from the queue.
Otherwise, the messages maybe redelivered after rollback or during the XA recovery.</p>
@@ -22,10 +21,9 @@
transaction roll back. The received messages are cancelled back to the queue. Next we start
a new transaction with the same XAResource enlisted, but this time we commit the transaction after receiving the
messages. Then we check that no more messages are to be received.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/xa-send/readme.html
===================================================================
--- trunk/examples/jms/xa-send/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/xa-send/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,6 @@
</head>
<body onload="prettyPrint()">
<h1>JMS XA Send Example</h1>
- <br>
<p>This example shows you how message sending behaves in an XA transaction in HornetQ. In an XA
Transaction, only if the associated XAResource are commited, will the messages be sent to the queue.
Otherwise, the messages to be sent will be discarded.</p>
@@ -20,10 +19,10 @@
and enlist it in a transaction through its XAResource. We then send two words, 'hello' and 'world', with
the session, let the transaction roll back. The messages are discarded and never be received. Next we start
a new transaction with the same XAResource, but this time we commit the transaction. Both messages are received.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
Modified: trunk/examples/jms/xa-with-jta/readme.html
===================================================================
--- trunk/examples/jms/xa-with-jta/readme.html 2010-01-08 11:02:17 UTC (rev 8777)
+++ trunk/examples/jms/xa-with-jta/readme.html 2010-01-08 13:44:27 UTC (rev 8778)
@@ -7,7 +7,7 @@
</head>
<body onload="prettyPrint()">
<h1>JMS XA with JTA Example</h1>
- <br>
+
<p>This example shows you how to use JTA interfaces to control transactions with HornetQ. JTA provides
facilities to start and stop a transaction, enlist XA resources into a transaction.</p>
@@ -22,11 +22,11 @@
a new transaction with the same XAResource enlisted, but this time we commit the transaction after receiving the
messages. Then we check that no more messages are to be received. In each transaction a dummy XAResource is also
enlisted to show the transaction processing information.</p>
- <br>
+
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>./build.sh</code> (or <code>build.bat</code> on windows) from this directory. It will download the JBoss JTA jars before
it launches the example.</i></p>
- <br>
+
<ol>
<li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
<pre class="prettyprint">
14 years, 11 months
JBoss hornetq SVN: r8777 - in trunk/src/main/org/hornetq/api: core/client and 4 other directories.
by do-not-reply@jboss.org
Author: jmesnil
Date: 2010-01-08 06:02:17 -0500 (Fri, 08 Jan 2010)
New Revision: 8777
Modified:
trunk/src/main/org/hornetq/api/core/FilterConstants.java
trunk/src/main/org/hornetq/api/core/HornetQBuffers.java
trunk/src/main/org/hornetq/api/core/client/HornetQClient.java
trunk/src/main/org/hornetq/api/core/client/loadbalance/RoundRobinConnectionLoadBalancingPolicy.java
trunk/src/main/org/hornetq/api/core/management/HornetQComponentControl.java
trunk/src/main/org/hornetq/api/core/management/ManagementHelper.java
trunk/src/main/org/hornetq/api/core/management/NotificationType.java
trunk/src/main/org/hornetq/api/core/management/Operation.java
trunk/src/main/org/hornetq/api/core/management/Parameter.java
trunk/src/main/org/hornetq/api/core/management/ResourceNames.java
trunk/src/main/org/hornetq/api/jms/HornetQJMSClient.java
trunk/src/main/org/hornetq/api/jms/HornetQJMSConstants.java
trunk/src/main/org/hornetq/api/jms/management/JMSManagementHelper.java
trunk/src/main/org/hornetq/api/jms/management/SubscriptionInfo.java
Log:
javadoc fixes
Modified: trunk/src/main/org/hornetq/api/core/FilterConstants.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/FilterConstants.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/FilterConstants.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -15,7 +15,7 @@
/**
* Constants representing pre-defined message attributes that can be referenced in HornetQ core
- * filter expressions
+ * filter expressions.
*
* @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a>
*
@@ -23,19 +23,47 @@
*/
public class FilterConstants
{
+ /**
+ * Name of the HornetQ Message expiration header.
+ */
public static final SimpleString HORNETQ_EXPIRATION = new SimpleString("HQExpiration");
+ /**
+ * Name of the HornetQ Message durable header.
+ */
public static final SimpleString HORNETQ_DURABLE = new SimpleString("HQDurable");
+ /**
+ * Value for the Durable header when the message is non-durable.
+ */
public static final SimpleString NON_DURABLE = new SimpleString("NON_DURABLE");
+ /**
+ * Value for the Durable header when the message is durable.
+ */
public static final SimpleString DURABLE = new SimpleString("DURABLE");
+ /**
+ * Name of the HornetQ Message timestamp header.
+ */
public static final SimpleString HORNETQ_TIMESTAMP = new SimpleString("HQTimestamp");
+ /**
+ * Name of the HornetQ Message priority header.
+ */
public static final SimpleString HORNETQ_PRIORITY = new SimpleString("HQPriority");
+ /**
+ * Name of the HornetQ Message size header.
+ */
public static final SimpleString HORNETQ_SIZE = new SimpleString("HQSize");
+ /**
+ * All HornetQ headers are prepended by this prefix.
+ */
public static final SimpleString HORNETQ_PREFIX = new SimpleString("HQ");
+
+ private FilterConstants()
+ {
+ }
}
Modified: trunk/src/main/org/hornetq/api/core/HornetQBuffers.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/HornetQBuffers.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/HornetQBuffers.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -90,4 +90,8 @@
{
return new ChannelBufferWrapper(ChannelBuffers.buffer(size));
}
+
+ private HornetQBuffers()
+ {
+ }
}
Modified: trunk/src/main/org/hornetq/api/core/client/HornetQClient.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/client/HornetQClient.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/client/HornetQClient.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -138,7 +138,7 @@
* Creates a ClientConnectionFactory using a TransportConfiguration of the server and a backup if needed.
*
* @param connectorConfig The TransportConfiguration of the server to connect to.
- * @param backupConnectorConfig The TransportConfiguration of the backup server to connect to (or {@code null}�if there is no backup)
+ * @param backupConnectorConfig The TransportConfiguration of the backup server to connect to (or {@code null} if there is no backup)
* @return The ClientSessionFactory.
*/
public static ClientSessionFactory createClientSessionFactory(final TransportConfiguration connectorConfig,
@@ -158,5 +158,7 @@
return new ClientSessionFactoryImpl(connectorConfig);
}
-
+ private HornetQClient()
+ {
+ }
}
Modified: trunk/src/main/org/hornetq/api/core/client/loadbalance/RoundRobinConnectionLoadBalancingPolicy.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/client/loadbalance/RoundRobinConnectionLoadBalancingPolicy.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/client/loadbalance/RoundRobinConnectionLoadBalancingPolicy.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -19,7 +19,7 @@
* RoundRobinConnectionLoadBalancingPolicy corresponds to a round-robin load-balancing policy.
*
* <br>
- * The first call to {@link #select(int)} will return a random integer between {@code 0} (inclusive) and {@code max}�(exclusive).
+ * The first call to {@link #select(int)} will return a random integer between {@code 0} (inclusive) and {@code max} (exclusive).
* Subsequent calls will then return an integer in a round-robin fashion.
*
* @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a>
Modified: trunk/src/main/org/hornetq/api/core/management/HornetQComponentControl.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/HornetQComponentControl.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/management/HornetQComponentControl.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -14,7 +14,7 @@
package org.hornetq.api.core.management;
/**
- * A HornetQComponentControl is used to manage the lifecycle of a HornetQ components.
+ * A HornetQComponentControl is used to manage the life cycle of a HornetQ component.
*
* @author <a href="mailto:jmesnil@redhat.com">Jeff Mesnil</a>
*/
Modified: trunk/src/main/org/hornetq/api/core/management/ManagementHelper.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/ManagementHelper.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/management/ManagementHelper.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -24,10 +24,9 @@
import org.hornetq.utils.json.JSONArray;
import org.hornetq.utils.json.JSONObject;
-/*
+/**
+ * Helper class to use HornetQ Core messages to manage server resources.
*
- * Operation params and results are encoded as JSON arrays
- *
* @author <a href="mailto:jmesnil@redhat.com">Jeff Mesnil</a>
* @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a>
*
@@ -359,7 +358,7 @@
/**
* Returns the result of an operation invocation or an attribute value.
- *
+ * <br>
* If an error occurred on the server, {@link #hasOperationSucceeded(Message)} will return {@code false}.
* and the result will be a String corresponding to the server exception.
*/
@@ -383,7 +382,7 @@
/**
* Returns the result of an operation invocation or an attribute value.
- *
+ * <br>
* If an error occurred on the server, {@link #hasOperationSucceeded(Message)} will return {@code false}.
* and the result will be a String corresponding to the server exception.
*/
@@ -456,6 +455,10 @@
// Constructors --------------------------------------------------
+ private ManagementHelper()
+ {
+ }
+
// Public --------------------------------------------------------
// Package protected ---------------------------------------------
Modified: trunk/src/main/org/hornetq/api/core/management/NotificationType.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/NotificationType.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/management/NotificationType.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -14,8 +14,9 @@
package org.hornetq.api.core.management;
/**
+ * Types of notification emmitted by HornetQ servers.
+ *
* @author <a href="mailto:jmesnil@redhat.com">Jeff Mesnil</a>
- *
*/
public enum NotificationType
{
Modified: trunk/src/main/org/hornetq/api/core/management/Operation.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/Operation.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/management/Operation.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -23,14 +23,11 @@
/**
* Info for a MBean Operation.
- *
+ * <b>
* This annotation is used only for methods which can be invoked
* through a GUI.
*
* @author <a href="mailto:jmesnil@redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
Modified: trunk/src/main/org/hornetq/api/core/management/Parameter.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/Parameter.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/management/Parameter.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -20,11 +20,11 @@
/**
* Info for a MBean Operation Parameter.
+ * <b>
+ * This annotation is used only for methods which can be invoked
+ * through a GUI.
*
* @author <a href="mailto:jmesnil@redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
Modified: trunk/src/main/org/hornetq/api/core/management/ResourceNames.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/ResourceNames.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/core/management/ResourceNames.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -15,7 +15,7 @@
/**
* Helper class used to build resource names used by management messages.
- *
+ * <br>
* Resource's name is build by appending its <em>name</em> to its corresponding type.
* For example, the resource name of the "foo" queue is {@code CORE_QUEUE + "foo"}.
*
@@ -58,6 +58,10 @@
// Constructors --------------------------------------------------
+ private ResourceNames()
+ {
+ }
+
// Public --------------------------------------------------------
// Package protected ---------------------------------------------
Modified: trunk/src/main/org/hornetq/api/jms/HornetQJMSClient.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/HornetQJMSClient.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/jms/HornetQJMSClient.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -27,10 +27,9 @@
import org.hornetq.jms.client.HornetQTopic;
/**
- * A utility class for creating HornetQ Client Side JMS Objects.
+ * A utility class for creating HornetQ client-side JMS managed resources.
*
* @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
- * Created Jan 5, 2010
*/
public class HornetQJMSClient
{
@@ -72,7 +71,7 @@
/**
* Creates a ClientSessionFactory using a List of TransportConfigurations and backups.
*
- * @param staticConnectors The list of TransportConfiguration's to use.
+ * @param staticConnectors The list of TransportConfiguration to use.
* @return The ConnectionFactory.
*/
public static ConnectionFactory createConnectionFactory(final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors)
@@ -81,7 +80,7 @@
}
/**
- * Creates a ConnectionFactory using a List of TransportConfigurations and backups.
+ * Creates a ConnectionFactory using a single pair of live-backup TransportConfiguration.
*
* @param connectorConfig The TransportConfiguration of the server to connect to.
* @param backupConnectorConfig The TransportConfiguration of the backup server to connect to. can be null.
@@ -94,7 +93,7 @@
}
/**
- * Create a ConnectionFactory using the TransportConfiguration of the server to connect to.
+ * Creates a ConnectionFactory to connect to a single live server.
*
* @param connectorConfig The TransportConfiguration of the server.
* @return The ConnectionFactory.
@@ -105,7 +104,7 @@
}
/**
- * Create a client side representation of a JMS Topic.
+ * Creates a client-side representation of a JMS Topic.
*
* @param name the name of the topic
* @return The Topic
@@ -116,7 +115,7 @@
}
/**
- * Create a client side representation of a JMS Queue.
+ * Creates a client-side representation of a JMS Queue.
*
* @param name the name of the queue
* @return The Queue
@@ -126,4 +125,7 @@
return new HornetQQueue(name);
}
+ private HornetQJMSClient()
+ {
+ }
}
Modified: trunk/src/main/org/hornetq/api/jms/HornetQJMSConstants.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/HornetQJMSConstants.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/jms/HornetQJMSConstants.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -14,7 +14,7 @@
package org.hornetq.api.jms;
/**
- * Constants for HornetQ for property keys used for HornetQ specific extensions to JMS
+ * Constants for HornetQ for property keys used for HornetQ specific extensions to JMS.
*
* @author Tim Fox
*
Modified: trunk/src/main/org/hornetq/api/jms/management/JMSManagementHelper.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/management/JMSManagementHelper.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/jms/management/JMSManagementHelper.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -152,7 +152,7 @@
/**
* Returns the result of an operation invocation or an attribute value.
- *
+ * <br>
* If an error occurred on the server, {@link #hasOperationSucceeded(Message)} will return {@code false}.
* and the result will be a String corresponding to the server exception.
*/
@@ -163,7 +163,7 @@
/**
* Returns the result of an operation invocation or an attribute value.
- *
+ * <br>
* If an error occurred on the server, {@link #hasOperationSucceeded(Message)} will return {@code false}.
* and the result will be a String corresponding to the server exception.
*/
@@ -174,6 +174,10 @@
// Constructors --------------------------------------------------
+ private JMSManagementHelper()
+ {
+ }
+
// Public --------------------------------------------------------
// Package protected ---------------------------------------------
Modified: trunk/src/main/org/hornetq/api/jms/management/SubscriptionInfo.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/management/SubscriptionInfo.java 2010-01-08 09:40:20 UTC (rev 8776)
+++ trunk/src/main/org/hornetq/api/jms/management/SubscriptionInfo.java 2010-01-08 11:02:17 UTC (rev 8777)
@@ -13,7 +13,6 @@
package org.hornetq.api.jms.management;
-import org.hornetq.api.core.management.AddressControl;
import org.hornetq.utils.json.JSONArray;
import org.hornetq.utils.json.JSONObject;
14 years, 11 months
JBoss hornetq SVN: r8776 - trunk/docs/user-manual/en.
by do-not-reply@jboss.org
Author: ataylor
Date: 2010-01-08 04:40:20 -0500 (Fri, 08 Jan 2010)
New Revision: 8776
Modified:
trunk/docs/user-manual/en/examples.xml
Log:
doc fix
Modified: trunk/docs/user-manual/en/examples.xml
===================================================================
--- trunk/docs/user-manual/en/examples.xml 2010-01-07 22:43:11 UTC (rev 8775)
+++ trunk/docs/user-manual/en/examples.xml 2010-01-08 09:40:20 UTC (rev 8776)
@@ -48,16 +48,15 @@
uncommitted work in the old session will be lost, and any unacknowledged messages
might be redelivered.</para>
</section>
- <section>
- <title>Automatic Reconnect</title>
- <para>The <literal>reconnect-same-node</literal> example demonstrates how HornetQ
- connections can be configured to be resilient to temporary network failures.</para>
- <para> In the case of a network failure being detected, either as a result of a failure
- to read/write to the connection, or the failure of a pong to arrive back from the
- server in good time after a ping is sent, instead of failing the connection
- immediately and notifying any user <literal>ExceptionListener</literal> objects,
- HornetQ can be configured to automatically retry the connection, and reconnect to
- the server when it becomes available again across the network.</para>
+ <section id="examples.bridge">
+ <title>Core Bridge Example</title>
+ <para>The <literal>bridge</literal> example demonstrates a core bridge deployed on one
+ server, which consumes messages from a local queue and forwards them to an address
+ on a second server.</para>
+ <para>Core bridges are used to create message flows between any two HornetQ servers
+ which are remotely separated. Core bridges are resilient and will cope with
+ temporary connection failure allowing them to be an ideal choice for forwarding over
+ unreliable connections, e.g. a WAN.</para>
</section>
<section id="examples.browsers">
<title>Browser</title>
@@ -69,16 +68,6 @@
without removing them. It can scan the entire content of a queue or only messages
matching a message selector.</para>
</section>
- <section id="examples.bridge">
- <title>Core Bridge Example</title>
- <para>The <literal>bridge</literal> example demonstrates a core bridge deployed on one
- server, which consumes messages from a local queue and forwards them to an address
- on a second server.</para>
- <para>Core bridges are used to create message flows between any two HornetQ servers
- which are remotely separated. Core bridges are resilient and will cope with
- temporary connection failure allowing them to be an ideal choice for forwarding over
- unreliable connections, e.g. a WAN.</para>
- </section>
<section>
<title>Client Kickoff</title>
<para>The <literal>client-kickoff</literal> example shows how to terminate client
@@ -121,6 +110,15 @@
of the nodes. We then send some messages via the producer, and we verify that both
subscribers receive all the sent messages.</para>
</section>
+ <section id="examples.consumer-rate-limit">
+ <title>Message Consumer Rate Limiting</title>
+ <para>With HornetQ you can specify a maximum consume rate at which a JMS MessageConsumer
+ will consume messages. This can be specified when creating or deploying the
+ connection factory.</para>
+ <para>If this value is specified then HornetQ will ensure that messages are never
+ consumed at a rate higher than the specified rate. This is a form of consumer
+ throttling.</para>
+ </section>
<section id="examples.dead-letter">
<title>Dead Letter</title>
<para>The <literal>dead-letter</literal> example shows you how to define and deal with
@@ -247,15 +245,6 @@
closed, addresses are created or deleted, security authentication fails,
etc.).</para>
</section>
- <section id="examples.consumer-rate-limit">
- <title>Message Consumer Rate Limiting</title>
- <para>With HornetQ you can specify a maximum consume rate at which a JMS MessageConsumer
- will consume messages. This can be specified when creating or deploying the
- connection factory.</para>
- <para>If this value is specified then HornetQ will ensure that messages are never
- consumed at a rate higher than the specified rate. This is a form of consumer
- throttling.</para>
- </section>
<section id="examples.message-counters">
<title>Message Counter</title>
<para>The <literal>message-counters</literal> example shows you how to use message
@@ -297,12 +286,6 @@
<para>The <literal>message-group2</literal> example shows you how to configure and use
message groups with HornetQ via a connection factory.</para>
</section>
- <section id="producer-rate-limiting-example">
- <title>Message Producer Rate Limiting</title>
- <para>The <literal>producer-rte-limit</literal> example demonstrates how, with HornetQ,
- you can specify a maximum send rate at which a JMS message producer will send
- messages.</para>
- </section>
<section id="examples.message-priority">
<title>Message Priority</title>
<para>Message Priority can be used to influence the delivery order for messages.</para>
@@ -316,12 +299,6 @@
at their destinations. Please consult the JMS 1.1 specification for full
details.</para>
</section>
- <section>
- <title>Message Redistribution</title>
- <para>The <literal>queue-message-redistribution</literal> example demonstrates message
- redistribution between queues with the same name deployed in different nodes of a
- cluster.</para>
- </section>
<section id="examples.no-consumer-buffering">
<title>No Consumer Buffering</title>
<para>By default, HornetQ consumers buffer messages from the server in a client side
@@ -368,11 +345,23 @@
delivering it to the client. This example demonstrates how HornetQ allows this with
an extra acknowledgement mode.</para>
</section>
+ <section id="producer-rate-limiting-example">
+ <title>Message Producer Rate Limiting</title>
+ <para>The <literal>producer-rte-limit</literal> example demonstrates how, with HornetQ,
+ you can specify a maximum send rate at which a JMS message producer will send
+ messages.</para>
+ </section>
<section>
<title>Queue</title>
<para>A simple example demonstrating a JMS queue.</para>
</section>
<section>
+ <title>Message Redistribution</title>
+ <para>The <literal>queue-message-redistribution</literal> example demonstrates message
+ redistribution between queues with the same name deployed in different nodes of a
+ cluster.</para>
+ </section>
+ <section>
<title>Queue Requestor</title>
<para>A simple example demonstrating a JMS queue requestor.</para>
</section>
@@ -382,7 +371,15 @@
messages using message selectors with queue consumers.</para>
</section>
<section>
- <title>Request-Response</title>
+ <title>Reattach Node example</title>
+ <para>The <literal>Reattach Node</literal> example shows how a client can try to reconnect to
+ the same server instead of failing the connection immediately and
+ notifying any user ExceptionListener objects. HornetQ can be configured to automatically
+ retry the connection, and reattach to the server when it becomes available again across
+ the network.</para>
+ </section>
+ <section>
+ <title>Request-Reply example</title>
<para>A simple example showing the JMS request-response pattern.</para>
</section>
<section id="examples.scheduled-message">
@@ -404,6 +401,11 @@
processed in a separate stream to the sent messages. </para>
</section>
<section>
+ <title>SSL Transport</title>
+ <para>The <literal>ssl-enabled</literal> shows you how to configure SSL with HornetQ to
+ send and receive message.</para>
+ </section>
+ <section>
<title>Static Message Selector</title>
<para>The <literal>static-selector</literal> example shows you how to configure a
HornetQ core queue with static message selectors (filters).</para>
@@ -414,11 +416,6 @@
HornetQ queue with static message selectors (filters) using JMS.</para>
</section>
<section>
- <title>SSL Transport</title>
- <para>The <literal>ssl-enabled</literal> shows you how to configure SSL with HornetQ to
- send and receive message.</para>
- </section>
- <section>
<title>Symmetric Cluster</title>
<para>The <literal>symmetric-cluster</literal> example demonstrates a symmetric cluster
set-up with HornetQ.</para>
14 years, 11 months
JBoss hornetq SVN: r8775 - in trunk: src/config/common/schema and 5 other directories.
by do-not-reply@jboss.org
Author: timfox
Date: 2010-01-07 17:43:11 -0500 (Thu, 07 Jan 2010)
New Revision: 8775
Modified:
trunk/docs/user-manual/en/core-bridges.xml
trunk/src/config/common/schema/hornetq-configuration.xsd
trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java
trunk/src/main/org/hornetq/core/server/cluster/BridgeConfiguration.java
trunk/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java
trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeReconnectTest.java
trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeStartTest.java
trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java
trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlTest.java
trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlUsingCoreTest.java
Log:
add username/password to bridge
Modified: trunk/docs/user-manual/en/core-bridges.xml
===================================================================
--- trunk/docs/user-manual/en/core-bridges.xml 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/docs/user-manual/en/core-bridges.xml 2010-01-07 22:43:11 UTC (rev 8775)
@@ -61,7 +61,9 @@
<use-duplicate-detection>true</use-duplicate-detection>
<confirmation-window-size>10000000</confirmation-window-size>
<connector-ref connector-name="remote-connector"
- backup-connector-name="backup-remote-connector"/>
+ backup-connector-name="backup-remote-connector"/>
+ <user>foouser</user>
+ <password>foopassword</password>
</bridge>
</programlisting>
<para>In the above example we have shown all the parameters its possible to configure for a
@@ -168,15 +170,16 @@
<para>The default value for this parameter is <literal>true</literal>.</para>
</listitem>
<listitem>
- <para><literal>confirmation-window-size</literal>. This optional parameter determines
- the <literal>confirmation-window-size</literal> to use for the connection used to forward messages to the target node.
- This attribute is described in section <xref linkend="client-reconnection"/></para>
+ <para><literal>confirmation-window-size</literal>. This optional parameter
+ determines the <literal>confirmation-window-size</literal> to use for the
+ connection used to forward messages to the target node. This attribute is
+ described in section <xref linkend="client-reconnection"/></para>
<para>
- <warning>When using the bridge to forward messages from a queue which has a max-size-bytes set it's important
- that confirmation-window-size is less than or equal to <literal>max-size-bytes</literal> to prevent the flow of messages from ceasing.
- </warning>
+ <warning>When using the bridge to forward messages from a queue which has a
+ max-size-bytes set it's important that confirmation-window-size is less than
+ or equal to <literal>max-size-bytes</literal> to prevent the flow of
+ messages from ceasing. </warning>
</para>
-
</listitem>
<listitem>
<para><literal>connector-ref</literal>. This mandatory parameter determines which
@@ -208,6 +211,17 @@
</listitem>
</itemizedlist>
</listitem>
+ <listitem>
+ <para><literal>user</literal>. This optional parameter determines the user name to
+ use when creating the bridge connection to the remote server. If it is not
+ specified the default cluster user specified by <literal>cluster-user</literal>
+ in <literal>hornetq-configuration.xml</literal> will be used. </para>
+ <para><literal>password</literal>. This optional parameter determines the password
+ to use when creating the bridge connection to the remote server. If it is not
+ specified the default cluster password specified by <literal
+ >cluster-password</literal> in <literal>hornetq-configuration.xml</literal>
+ will be used. </para>
+ </listitem>
</itemizedlist>
</section>
</chapter>
Modified: trunk/src/config/common/schema/hornetq-configuration.xsd
===================================================================
--- trunk/src/config/common/schema/hornetq-configuration.xsd 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/src/config/common/schema/hornetq-configuration.xsd 2010-01-07 22:43:11 UTC (rev 8775)
@@ -312,6 +312,10 @@
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="confirmation-window-size" type="xsd:int">
</xsd:element>
+ <xsd:element maxOccurs="1" minOccurs="0" name="user" type="xsd:string">
+ </xsd:element>
+ <xsd:element maxOccurs="1" minOccurs="0" name="password" type="xsd:string">
+ </xsd:element>
<xsd:choice>
<xsd:element maxOccurs="1" minOccurs="1" name="connector-ref" type="connector-refType">
</xsd:element>
Modified: trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -173,12 +173,12 @@
clusterPassword = XMLConfigurationUtil.getString(e,
"cluster-password",
clusterPassword,
- Validators.NOT_NULL_OR_EMPTY);
+ Validators.NO_CHECK);
clusterUser = XMLConfigurationUtil.getString(e,
"cluster-user",
clusterUser,
- Validators.NOT_NULL_OR_EMPTY);
+ Validators.NO_CHECK);
logDelegateFactoryClassName = XMLConfigurationUtil.getString(e,
"log-delegate-factory-class-name",
@@ -684,7 +684,7 @@
{
String name = brNode.getAttribute("name");
- String queueName = XMLConfigurationUtil.getString(brNode, "queue-name", null, Validators.NOT_NULL_OR_EMPTY);
+ String queueName = XMLConfigurationUtil.getString(brNode, "queue-name", null, Validators.NOT_NULL_OR_EMPTY);
String forwardingAddress = XMLConfigurationUtil.getString(brNode,
"forwarding-address",
@@ -725,6 +725,10 @@
"use-duplicate-detection",
ConfigurationImpl.DEFAULT_BRIDGE_DUPLICATE_DETECTION);
+ String user = XMLConfigurationUtil.getString(brNode, "user", ConfigurationImpl.DEFAULT_CLUSTER_USER, Validators.NO_CHECK);
+
+ String password = XMLConfigurationUtil.getString(brNode, "password", ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD, Validators.NO_CHECK);
+
String filterString = null;
Pair<String, String> connectorPair = null;
@@ -778,7 +782,9 @@
useDuplicateDetection,
confirmationWindowSize,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ user,
+ password);
}
else
{
@@ -794,7 +800,9 @@
useDuplicateDetection,
confirmationWindowSize,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- discoveryGroupName);
+ discoveryGroupName,
+ user,
+ password);
}
bridgeConfigurations.add(config);
Modified: trunk/src/main/org/hornetq/core/server/cluster/BridgeConfiguration.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/BridgeConfiguration.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/src/main/org/hornetq/core/server/cluster/BridgeConfiguration.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -57,6 +57,10 @@
private int confirmationWindowSize;
private final long clientFailureCheckPeriod;
+
+ private String user;
+
+ private String password;
public BridgeConfiguration(final String name,
final String queueName,
@@ -70,7 +74,9 @@
final boolean useDuplicateDetection,
final int confirmationWindowSize,
final long clientFailureCheckPeriod,
- final Pair<String, String> connectorPair)
+ final Pair<String, String> connectorPair,
+ final String user,
+ final String password)
{
this.name = name;
this.queueName = queueName;
@@ -85,6 +91,8 @@
this.confirmationWindowSize = confirmationWindowSize;
this.clientFailureCheckPeriod = clientFailureCheckPeriod;
this.connectorPair = connectorPair;
+ this.user = user;
+ this.password = password;
discoveryGroupName = null;
}
@@ -100,7 +108,9 @@
final boolean useDuplicateDetection,
final int confirmationWindowSize,
final long clientFailureCheckPeriod,
- final String discoveryGroupName)
+ final String discoveryGroupName,
+ final String user,
+ final String password)
{
this.name = name;
this.queueName = queueName;
@@ -116,6 +126,8 @@
this.clientFailureCheckPeriod = clientFailureCheckPeriod;
connectorPair = null;
this.discoveryGroupName = discoveryGroupName;
+ this.user = user;
+ this.password = password;
}
public String getName()
@@ -291,4 +303,24 @@
{
this.confirmationWindowSize = confirmationWindowSize;
}
+
+ public String getUser()
+ {
+ return user;
+ }
+
+ public String getPassword()
+ {
+ return password;
+ }
+
+ public void setUser(String user)
+ {
+ this.user = user;
+ }
+
+ public void setPassword(String password)
+ {
+ this.password = password;
+ }
}
Modified: trunk/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -121,9 +121,9 @@
private final SimpleString managementNotificationAddress;
- private final String clusterUser;
+ private final String user;
- private final String clusterPassword;
+ private final String password;
private boolean activated;
@@ -161,8 +161,8 @@
final int confirmationWindowSize,
final SimpleString managementAddress,
final SimpleString managementNotificationAddress,
- final String clusterUser,
- final String clusterPassword,
+ final String user,
+ final String password,
final MessageFlowRecord flowRecord,
final boolean activated,
final StorageManager storageManager) throws Exception
@@ -210,9 +210,9 @@
this.managementNotificationAddress = managementNotificationAddress;
- this.clusterUser = clusterUser;
+ this.user = user;
- this.clusterPassword = clusterPassword;
+ this.password = password;
this.flowRecord = flowRecord;
@@ -663,7 +663,7 @@
csf.setConfirmationWindowSize(confirmationWindowSize);
// Session is pre-acknowledge
- session = (ClientSessionInternal)csf.createSession(clusterUser, clusterPassword, false, true, true, true, 1);
+ session = (ClientSessionInternal)csf.createSession(user, password, false, true, true, true, 1);
if (session == null)
{
Modified: trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -425,8 +425,8 @@
config.getConfirmationWindowSize(),
managementService.getManagementAddress(),
managementService.getManagementNotificationAddress(),
- server.getConfiguration().getClusterUser(),
- server.getConfiguration().getClusterPassword(),
+ config.getUser(),
+ config.getPassword(),
null,
!backup,
server.getStorageManager());
Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeReconnectTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeReconnectTest.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeReconnectTest.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -25,6 +25,7 @@
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.core.client.*;
+import org.hornetq.core.config.impl.ConfigurationImpl;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.remoting.RemotingConnection;
import org.hornetq.core.remoting.impl.invm.InVMConnector;
@@ -122,7 +123,9 @@
false,
confirmationWindowSize,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -245,7 +248,9 @@
false,
confirmationWindowSize,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -363,7 +368,9 @@
false,
confirmationWindowSize,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -489,7 +496,9 @@
false,
confirmationWindowSize,
clientFailureCheckPeriod,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -608,7 +617,9 @@
false,
confirmationWindowSize,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeStartTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeStartTest.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeStartTest.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -24,6 +24,7 @@
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.core.client.*;
+import org.hornetq.core.config.impl.ConfigurationImpl;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.remoting.impl.invm.TransportConstants;
import org.hornetq.core.server.HornetQServer;
@@ -107,7 +108,9 @@
true,
1024,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -257,7 +260,9 @@
true,
1024,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -454,7 +459,9 @@
false,
1024,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -589,7 +596,9 @@
true,
1024,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -24,6 +24,7 @@
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.core.client.*;
+import org.hornetq.core.config.impl.ConfigurationImpl;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.remoting.impl.invm.TransportConstants;
import org.hornetq.core.server.HornetQServer;
@@ -130,7 +131,9 @@
// are sent
numMessages * messageSize / 2,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -322,7 +325,9 @@
false,
1024,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -489,7 +494,9 @@
false,
1024,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
@@ -616,7 +623,9 @@
false,
1024,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -24,6 +24,7 @@
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.core.client.*;
+import org.hornetq.core.config.impl.ConfigurationImpl;
import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
import org.hornetq.core.server.HornetQServer;
import org.hornetq.core.server.cluster.Bridge;
@@ -113,7 +114,9 @@
true,
1024,
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- "dg1");
+ "dg1",
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
bridgeConfigs.add(bridgeConfiguration);
Modified: trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlTest.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlTest.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -172,7 +172,9 @@
RandomUtil.randomBoolean(),
RandomUtil.randomPositiveInt(),
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
Configuration conf_1 = new ConfigurationImpl();
conf_1.setSecurityEnabled(false);
Modified: trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlUsingCoreTest.java 2010-01-07 20:57:02 UTC (rev 8774)
+++ trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlUsingCoreTest.java 2010-01-07 22:43:11 UTC (rev 8775)
@@ -150,7 +150,9 @@
RandomUtil.randomBoolean(),
RandomUtil.randomPositiveInt(),
HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- connectorPair);
+ connectorPair,
+ ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
Configuration conf_1 = new ConfigurationImpl();
conf_1.setSecurityEnabled(false);
14 years, 11 months
JBoss hornetq SVN: r8774 - in trunk: src/config/common/schema and 10 other directories.
by do-not-reply@jboss.org
Author: timfox
Date: 2010-01-07 15:57:02 -0500 (Thu, 07 Jan 2010)
New Revision: 8774
Modified:
trunk/docs/user-manual/en/clusters.xml
trunk/docs/user-manual/en/configuration-index.xml
trunk/docs/user-manual/en/management.xml
trunk/src/config/common/schema/hornetq-configuration.xsd
trunk/src/main/org/hornetq/core/config/Configuration.java
trunk/src/main/org/hornetq/core/config/impl/ConfigurationImpl.java
trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java
trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterConnectionImpl.java
trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
trunk/src/main/org/hornetq/core/server/management/ManagementService.java
trunk/src/main/org/hornetq/core/server/management/impl/ManagementServiceImpl.java
trunk/tests/config/ConfigurationTest-full-config.xml
trunk/tests/joram-tests/src/org/hornetq/jms/HornetQAdmin.java
trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithConfiguredAdminUserTest.java
trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithDefaultConfigurationTest.java
trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithModifiedConfigurationTest.java
trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationImplTest.java
trunk/tests/src/org/hornetq/tests/unit/core/config/impl/DefaultsFileConfigurationTest.java
trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java
Log:
moved cluster admin password out of management
Modified: trunk/docs/user-manual/en/clusters.xml
===================================================================
--- trunk/docs/user-manual/en/clusters.xml 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/docs/user-manual/en/clusters.xml 2010-01-07 20:57:02 UTC (rev 8774)
@@ -417,6 +417,20 @@
</listitem>
</itemizedlist>
</section>
+ <section id="clusters.clusteruser">
+ <title>Cluster User Credentials</title>
+
+ <para>When creating connections between nodes of a cluster to form a cluster connection,
+ HornetQ uses a cluster user and cluster password which is defined in <literal>hornetq-configuration.xml</literal>:</para>
+ <programlisting>
+ <management-cluster-user>HORNETQ.CLUSTER.ADMIN.USER</management-cluster-user>
+ <management-cluster-password>CHANGE ME!!</management-cluster-password>
+ </programlisting>
+ <para>It is imperative that these values are changed from their default, or remote clients will be able to make connections
+ to the server using the default values. If they are not
+ changed from the default, HornetQ will detect this and pester you with a warning on every
+ start-up.</para>
+ </section>
</section>
<section id="clusters.client.loadbalancing">
<title>Client-Side Load balancing</title>
Modified: trunk/docs/user-manual/en/configuration-index.xml
===================================================================
--- trunk/docs/user-manual/en/configuration-index.xml 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/docs/user-manual/en/configuration-index.xml 2010-01-07 20:57:02 UTC (rev 8774)
@@ -227,15 +227,15 @@
</row>
<row>
<entry><link linkend="management.replication"
- >management-cluster-user</link></entry>
+ >cluster-user</link></entry>
<entry>String</entry>
<entry>the user used to for replicating management operations between
clustered nodes</entry>
- <entry>HORNETQ.MANAGEMENT.ADMIN.USER</entry>
+ <entry>HORNETQ.CLUSTER.ADMIN.USER</entry>
</row>
<row>
<entry><link linkend="management.replication"
- >management-cluster-password</link></entry>
+ >cluster-password</link></entry>
<entry>String</entry>
<entry>the password used to for replicating management operations
between clustered nodes</entry>
Modified: trunk/docs/user-manual/en/management.xml
===================================================================
--- trunk/docs/user-manual/en/management.xml 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/docs/user-manual/en/management.xml 2010-01-07 20:57:02 UTC (rev 8774)
@@ -216,7 +216,7 @@
<para>Retrieving the queue attributes</para>
<para>The <literal>QueueControl</literal> exposes Core queue settings through its
attributes (e.g. <literal>getFilter()</literal> to retrieve the queue's filter
- if it was created with one, <literal>isDurable()</literal> to know wether the
+ if it was created with one, <literal>isDurable()</literal> to know whether the
queue is durable or not, etc.)</para>
</listitem>
<listitem>
@@ -376,9 +376,9 @@
<para>The <literal>ConnectionFactoryControl</literal> exposes JMS
ConnectionFactory configuration through its attributes (e.g. <literal
>getConsumerWindowSize()</literal> to retrieve the consumer window size for
- flow control, <literal>isBlockOnNonDurableSend()</literal> to know wether
- the producers created from the connection factory will block or not when
- sending non-durable messages, etc.)</para>
+ flow control, <literal>isBlockOnNonDurableSend()</literal> to know wether the
+ producers created from the connection factory will block or not when sending
+ non-durable messages, etc.)</para>
</listitem>
</itemizedlist>
</section>
@@ -587,9 +587,8 @@
<para>A <literal>ClientConsumer</literal> can be used to consume the management reply and
retrieve the result of the operation (if any) stored in the reply's body. For portability,
results are returned as a <ulink url="http://json.org">JSON</ulink> String rather than Java
- Serialization (the <literal
- >org.hornetq.api.core.management.ManagementHelper</literal> can be used to
- convert the JSON string to Java objects).</para>
+ Serialization (the <literal>org.hornetq.api.core.management.ManagementHelper</literal> can
+ be used to convert the JSON string to Java objects).</para>
<para>These steps can be simplified to make it easier to invoke management operations using
Core messages:</para>
<orderedlist>
@@ -602,16 +601,16 @@
</listitem>
<listitem>
<para>Use the helper class <literal
- >org.hornetq.api.core.management.ManagementHelper</literal> to fill the
- message with the management properties</para>
+ >org.hornetq.api.core.management.ManagementHelper</literal> to fill the message
+ with the management properties</para>
</listitem>
<listitem>
<para>Send the message using the <literal>ClientRequestor</literal></para>
</listitem>
<listitem>
<para>Use the helper class <literal
- >org.hornetq.api.core.management.ManagementHelper</literal> to retrieve
- the operation result from the management reply</para>
+ >org.hornetq.api.core.management.ManagementHelper</literal> to retrieve the
+ operation result from the management reply</para>
</listitem>
</orderedlist>
<para>For example, to find out the number of messages in the core queue <literal
@@ -628,10 +627,10 @@
<para>Management operation name and parameters must conform to the Java interfaces defined in
the <literal>management</literal> packages.</para>
<para>Names of the resources are built using the helper class <literal
- >org.hornetq.api.core.management.ResourceNames</literal> and are straightforward (<literal
- >core.queue.exampleQueue</literal> for the Core Queue <literal>exampleQueue</literal>,
- <literal>jms.topic.exampleTopic</literal> for the JMS Topic <literal
- >exampleTopic</literal>, etc.).</para>
+ >org.hornetq.api.core.management.ResourceNames</literal> and are straightforward
+ (<literal>core.queue.exampleQueue</literal> for the Core Queue <literal
+ >exampleQueue</literal>, <literal>jms.topic.exampleTopic</literal> for the JMS Topic
+ <literal>exampleTopic</literal>, etc.).</para>
<section id="management.core.configuration">
<title>Configuring Core Management</title>
<para>The management address to send management messages is configured in <literal
@@ -639,8 +638,8 @@
<programlisting>
<management-address>jms.queue.hornetq.management</management-address>
</programlisting>
- <para>By default, the address is <literal>jms.queue.hornetq.management</literal>
- (it is prepended by "jms.queue" so that JMS clients can also send management messages).</para>
+ <para>By default, the address is <literal>jms.queue.hornetq.management</literal> (it is
+ prepended by "jms.queue" so that JMS clients can also send management messages).</para>
<para>The management address requires a <emphasis>special</emphasis> user permission
<literal>manage</literal> to be able to receive and handle management messages. This
is also configured in hornetq-configuration.xml:</para>
@@ -675,16 +674,16 @@
</listitem>
<listitem>
<para>use the helper class <literal
- >org.hornetq.api.jms.management.JMSManagementHelper</literal> to fill the
- message with the management properties</para>
+ >org.hornetq.api.jms.management.JMSManagementHelper</literal> to fill the message
+ with the management properties</para>
</listitem>
<listitem>
<para>send the message using the <literal>QueueRequestor</literal></para>
</listitem>
<listitem>
<para>use the helper class <literal
- >org.hornetq.api.jms.management.JMSManagementHelper</literal> to retrieve
- the operation result from the management reply</para>
+ >org.hornetq.api.jms.management.JMSManagementHelper</literal> to retrieve the
+ operation result from the management reply</para>
</listitem>
</orderedlist>
<para>For example, to know the number of messages in the JMS queue <literal
@@ -712,33 +711,7 @@
messages to manage HornetQ server.</para>
</section>
</section>
- <section id="management.replication">
- <title>Management Cluster Credentials</title>
- <para>HornetQ allows <emphasis>replication</emphasis> of a live server to a backup server.
- This impacts management as resources created on the live server (e.g. a core address) must
- also be created on the backup server. Otherwise, when failover occurs, the backup server
- will not be able to handle messages sent to this address since its resources will have been
- created on the live server only and not on the backup.</para>
- <para>HornetQ <emphasis>replicates management operations</emphasis> regardless of the
- management API used (JMX, Core messages, JMS messages). Any management operation invoked on
- a live server will also be invoked on its backup server to ensure a proper replication of
- resources and state. For example, you only need to manage the live server: if a queue is
- created on the live server, HornetQ will ensure that the same resource will also be created
- on the backup server.</para>
- <para>If core or JMS messages are used to invoke management operations, replication is handled
- automatically by HornetQ.</para>
- <para>To allow this management replication with JMX, HornetQ defines <emphasis>management
- cluster credentials</emphasis>: this special user/password <emphasis>must be shared by
- all nodes</emphasis>. To configure it, change the value in <literal
- >hornetq-configuration.xml</literal>:</para>
- <programlisting>
- <management-cluster-user>HORNETQ.MANAGEMENT.ADMIN.USER</management-cluster-user>
- <management-cluster-password>CHANGE ME!!</management-cluster-password>
- </programlisting>
- <para>It is strongly suggested to change these values from their default. If they are not
- changed from the default, HornetQ will detect this and pester you with a warning on every
- start-up.</para>
- </section>
+
<section id="management.notifications">
<title>Management Notifications</title>
<para>HornetQ emits <emphasis>notifications</emphasis> to inform listeners of potentially
Modified: trunk/src/config/common/schema/hornetq-configuration.xsd
===================================================================
--- trunk/src/config/common/schema/hornetq-configuration.xsd 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/config/common/schema/hornetq-configuration.xsd 2010-01-07 20:57:02 UTC (rev 8774)
@@ -31,9 +31,9 @@
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="management-notification-address" type="xsd:string">
</xsd:element>
- <xsd:element maxOccurs="1" minOccurs="0" name="management-cluster-user" type="xsd:string">
+ <xsd:element maxOccurs="1" minOccurs="0" name="cluster-user" type="xsd:string">
</xsd:element>
- <xsd:element maxOccurs="1" minOccurs="0" name="management-cluster-password" type="xsd:string">
+ <xsd:element maxOccurs="1" minOccurs="0" name="cluster-password" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="log-delegate-factory-class-name" type="xsd:string">
</xsd:element>
Modified: trunk/src/main/org/hornetq/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/hornetq/core/config/Configuration.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/main/org/hornetq/core/config/Configuration.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -373,28 +373,28 @@
void setManagementNotificationAddress(SimpleString address);
/**
- * Returns the management cluster user for this server.
+ * Returns the cluster user for this server.
* <br>
- * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MANAGEMENT_CLUSTER_USER}.
+ * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_CLUSTER_USER}.
*/
- String getManagementClusterUser();
+ String getClusterUser();
/**
- * Sets the management cluster user for this server.
+ * Sets the cluster user for this server.
*/
- void setManagementClusterUser(String user);
+ void setClusterUser(String user);
/**
- * Returns the management cluster password for this server.
+ * Returns the cluster password for this server.
* <br>
- * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MANAGEMENT_CLUSTER_PASSWORD}.
+ * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_CLUSTER_PASSWORD}.
*/
- String getManagementClusterPassword();
+ String getClusterPassword();
/**
- * Sets the management cluster password for this server.
+ * Sets the cluster password for this server.
*/
- void setManagementClusterPassword(String password);
+ void setClusterPassword(String password);
/**
* Returns the size of the cache for pre-creating message IDs.
Modified: trunk/src/main/org/hornetq/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/config/impl/ConfigurationImpl.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/main/org/hornetq/core/config/impl/ConfigurationImpl.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -137,9 +137,9 @@
public static final SimpleString DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS = new SimpleString("hornetq.notifications");
- public static final String DEFAULT_MANAGEMENT_CLUSTER_USER = "HORNETQ.MANAGEMENT.ADMIN.USER";
+ public static final String DEFAULT_CLUSTER_USER = "HORNETQ.CLUSTER.ADMIN.USER";
- public static final String DEFAULT_MANAGEMENT_CLUSTER_PASSWORD = "CHANGE ME!!";
+ public static final String DEFAULT_CLUSTER_PASSWORD = "CHANGE ME!!";
public static final long DEFAULT_BROADCAST_PERIOD = 1000;
@@ -303,9 +303,9 @@
protected SimpleString managementNotificationAddress = ConfigurationImpl.DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS;
- protected String managementClusterUser = ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER;
+ protected String clusterUser = ConfigurationImpl.DEFAULT_CLUSTER_USER;
- protected String managementClusterPassword = ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD;
+ protected String clusterPassword = ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD;
protected long serverDumpInterval = ConfigurationImpl.DEFAULT_SERVER_DUMP_INTERVAL;
@@ -841,24 +841,24 @@
managementNotificationAddress = address;
}
- public String getManagementClusterUser()
+ public String getClusterUser()
{
- return managementClusterUser;
+ return clusterUser;
}
- public void setManagementClusterUser(final String user)
+ public void setClusterUser(final String user)
{
- managementClusterUser = user;
+ clusterUser = user;
}
- public String getManagementClusterPassword()
+ public String getClusterPassword()
{
- return managementClusterPassword;
+ return clusterPassword;
}
- public void setManagementClusterPassword(final String clusterPassword)
+ public void setClusterPassword(final String theclusterPassword)
{
- managementClusterPassword = clusterPassword;
+ clusterPassword = theclusterPassword;
}
public int getJournalCompactMinFiles()
@@ -1166,25 +1166,25 @@
{
return false;
}
- if (managementClusterPassword == null)
+ if (clusterPassword == null)
{
- if (other.managementClusterPassword != null)
+ if (other.clusterPassword != null)
{
return false;
}
}
- else if (!managementClusterPassword.equals(other.managementClusterPassword))
+ else if (!clusterPassword.equals(other.clusterPassword))
{
return false;
}
- if (managementClusterUser == null)
+ if (clusterUser == null)
{
- if (other.managementClusterUser != null)
+ if (other.clusterUser != null)
{
return false;
}
}
- else if (!managementClusterUser.equals(other.managementClusterUser))
+ else if (!clusterUser.equals(other.clusterUser))
{
return false;
}
Modified: trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -25,7 +25,6 @@
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.core.client.HornetQClient;
-import org.hornetq.core.client.impl.ClientSessionFactoryImpl;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.server.JournalType;
import org.hornetq.core.server.cluster.BridgeConfiguration;
@@ -171,15 +170,15 @@
managementNotificationAddress.toString(),
Validators.NOT_NULL_OR_EMPTY));
- managementClusterPassword = XMLConfigurationUtil.getString(e,
- "management-cluster-password",
- managementClusterPassword,
- Validators.NOT_NULL_OR_EMPTY);
+ clusterPassword = XMLConfigurationUtil.getString(e,
+ "cluster-password",
+ clusterPassword,
+ Validators.NOT_NULL_OR_EMPTY);
- managementClusterUser = XMLConfigurationUtil.getString(e,
- "management-cluster-user",
- managementClusterUser,
- Validators.NOT_NULL_OR_EMPTY);
+ clusterUser = XMLConfigurationUtil.getString(e,
+ "cluster-user",
+ clusterUser,
+ Validators.NOT_NULL_OR_EMPTY);
logDelegateFactoryClassName = XMLConfigurationUtil.getString(e,
"log-delegate-factory-class-name",
Modified: trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterConnectionImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterConnectionImpl.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterConnectionImpl.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -101,6 +101,10 @@
private boolean backup;
private volatile boolean started;
+
+ private final String clusterUser;
+
+ private final String clusterPassword;
/*
* Constructor using static list of connectors
@@ -119,7 +123,9 @@
final List<Pair<TransportConfiguration, TransportConfiguration>> connectors,
final int maxHops,
final UUID nodeUUID,
- final boolean backup) throws Exception
+ final boolean backup,
+ final String clusterUser,
+ final String clusterPassword) throws Exception
{
this.name = name;
@@ -157,6 +163,10 @@
this.backup = backup;
staticConnectors = connectors;
+
+ this.clusterUser = clusterUser;
+
+ this.clusterPassword = clusterPassword;
if (!backup)
{
@@ -181,7 +191,9 @@
final DiscoveryGroup discoveryGroup,
final int maxHops,
final UUID nodeUUID,
- final boolean backup) throws Exception
+ final boolean backup,
+ final String clusterUser,
+ final String clusterPassword) throws Exception
{
this.name = name;
@@ -212,6 +224,10 @@
this.nodeUUID = nodeUUID;
this.backup = backup;
+
+ this.clusterUser = clusterUser;
+
+ this.clusterPassword = clusterPassword;
staticConnectors = null;
}
@@ -443,8 +459,8 @@
confirmationWindowSize,
managementService.getManagementAddress(),
managementService.getManagementNotificationAddress(),
- managementService.getClusterUser(),
- managementService.getClusterPassword(),
+ clusterUser,
+ clusterPassword,
record,
!backup,
server.getStorageManager());
Modified: trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -425,8 +425,8 @@
config.getConfirmationWindowSize(),
managementService.getManagementAddress(),
managementService.getManagementNotificationAddress(),
- managementService.getClusterUser(),
- managementService.getClusterPassword(),
+ server.getConfiguration().getClusterUser(),
+ server.getConfiguration().getClusterPassword(),
null,
!backup,
server.getStorageManager());
@@ -479,8 +479,8 @@
config.getConfirmationWindowSize(),
managementService.getManagementAddress(),
managementService.getManagementNotificationAddress(),
- managementService.getClusterUser(),
- managementService.getClusterPassword(),
+ server.getConfiguration().getClusterUser(),
+ server.getConfiguration().getClusterPassword(),
null,
!backup,
server.getStorageManager());
@@ -562,7 +562,9 @@
connectors,
config.getMaxHops(),
nodeUUID,
- backup);
+ backup,
+ server.getConfiguration().getClusterUser(),
+ server.getConfiguration().getClusterPassword());
}
else
{
@@ -588,7 +590,9 @@
dg,
config.getMaxHops(),
nodeUUID,
- backup);
+ backup,
+ server.getConfiguration().getClusterUser(),
+ server.getConfiguration().getClusterPassword());
}
managementService.registerCluster(clusterConnection, config);
Modified: trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -1037,12 +1037,18 @@
securityRepository = new HierarchicalObjectRepository<Set<Role>>();
securityRepository.setDefault(new HashSet<Role>());
+ if (ConfigurationImpl.DEFAULT_CLUSTER_USER.equals(configuration.getClusterUser()) && ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD.equals(configuration.getClusterPassword()))
+ {
+ log.warn("It has been detected that the cluster admin user and password which are used to " + "replicate management operation from one node to the other have not been changed from the installation default. "
+ + "Please see the HornetQ user guide for instructions on how to do this.");
+ }
+
securityStore = new SecurityStoreImpl(securityRepository,
securityManager,
configuration.getSecurityInvalidationInterval(),
configuration.isSecurityEnabled(),
- configuration.getManagementClusterUser(),
- configuration.getManagementClusterPassword(),
+ configuration.getClusterUser(),
+ configuration.getClusterPassword(),
managementService);
queueFactory = new QueueFactoryImpl(executorFactory, scheduledPool, addressSettingsRepository, storageManager);
Modified: trunk/src/main/org/hornetq/core/server/management/ManagementService.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/management/ManagementService.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/main/org/hornetq/core/server/management/ManagementService.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -61,10 +61,6 @@
MessageCounterManager getMessageCounterManager();
- String getClusterUser();
-
- String getClusterPassword();
-
SimpleString getManagementAddress();
SimpleString getManagementNotificationAddress();
Modified: trunk/src/main/org/hornetq/core/server/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/management/impl/ManagementServiceImpl.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/src/main/org/hornetq/core/server/management/impl/ManagementServiceImpl.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -41,7 +41,6 @@
import org.hornetq.api.core.management.ResourceNames;
import org.hornetq.core.cluster.DiscoveryGroup;
import org.hornetq.core.config.Configuration;
-import org.hornetq.core.config.impl.ConfigurationImpl;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.management.impl.AcceptorControlImpl;
import org.hornetq.core.management.impl.AddressControlImpl;
@@ -123,10 +122,6 @@
private final SimpleString managementAddress;
- private final String managementClusterUser;
-
- private final String managementClusterPassword;
-
private boolean started = false;
private final boolean messageCounterEnabled;
@@ -139,15 +134,6 @@
// Static --------------------------------------------------------
- private static void checkDefaultManagementClusterCredentials(final String user, final String password)
- {
- if (ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER.equals(user) && ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD.equals(password))
- {
- ManagementServiceImpl.log.warn("It has been detected that the cluster admin user and password which are used to " + "replicate management operation from one node to the other have not been changed from the installation default. "
- + "Please see the HornetQ user guide for instructions on how to do this.");
- }
- }
-
// Constructor ----------------------------------------------------
public ManagementServiceImpl(final MBeanServer mbeanServer, final Configuration configuration)
@@ -157,11 +143,7 @@
messageCounterEnabled = configuration.isMessageCounterEnabled();
managementAddress = configuration.getManagementAddress();
managementNotificationAddress = configuration.getManagementNotificationAddress();
- managementClusterUser = configuration.getManagementClusterUser();
- managementClusterPassword = configuration.getManagementClusterPassword();
- ManagementServiceImpl.checkDefaultManagementClusterCredentials(managementClusterUser, managementClusterPassword);
-
registry = new HashMap<String, Object>();
broadcaster = new NotificationBroadcasterSupport();
notificationsEnabled = true;
@@ -593,16 +575,6 @@
return managementNotificationAddress;
}
- public String getClusterUser()
- {
- return managementClusterUser;
- }
-
- public String getClusterPassword()
- {
- return managementClusterPassword;
- }
-
// HornetQComponent implementation -----------------------------
public void start() throws Exception
Modified: trunk/tests/config/ConfigurationTest-full-config.xml
===================================================================
--- trunk/tests/config/ConfigurationTest-full-config.xml 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/tests/config/ConfigurationTest-full-config.xml 2010-01-07 20:57:02 UTC (rev 8774)
@@ -12,8 +12,8 @@
<wild-card-routing-enabled>true</wild-card-routing-enabled>
<management-address>Giraffe</management-address>
<management-notification-address>Whatever</management-notification-address>
- <management-cluster-user>Frog</management-cluster-user>
- <management-cluster-password>Wombat</management-cluster-password>
+ <cluster-user>Frog</cluster-user>
+ <cluster-password>Wombat</cluster-password>
<jmx-management-enabled>false</jmx-management-enabled>
<jmx-domain>gro.qtenroh</jmx-domain>
<log-delegate-factory-class-name>ocelot</log-delegate-factory-class-name>
Modified: trunk/tests/joram-tests/src/org/hornetq/jms/HornetQAdmin.java
===================================================================
--- trunk/tests/joram-tests/src/org/hornetq/jms/HornetQAdmin.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/tests/joram-tests/src/org/hornetq/jms/HornetQAdmin.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -74,8 +74,8 @@
public void start() throws Exception
{
ClientSessionFactoryImpl sf = (ClientSessionFactoryImpl) HornetQClient.createClientSessionFactory(new TransportConfiguration(NettyConnectorFactory.class.getName()));
- clientSession = sf.createSession(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER,
- ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD,
+ clientSession = sf.createSession(ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD,
false,
true,
true,
Modified: trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithConfiguredAdminUserTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithConfiguredAdminUserTest.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithConfiguredAdminUserTest.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -58,8 +58,8 @@
*/
public void testSendManagementMessageWithClusterAdminUser() throws Exception
{
- doSendManagementMessage(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER,
- ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD,
+ doSendManagementMessage(ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD,
true);
}
Modified: trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithDefaultConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithDefaultConfigurationTest.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithDefaultConfigurationTest.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -40,8 +40,8 @@
public void testSendManagementMessageWithDefaultClusterAdminUser() throws Exception
{
- doSendManagementMessage(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER,
- ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD,
+ doSendManagementMessage(ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD,
true);
}
Modified: trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithModifiedConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithModifiedConfigurationTest.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithModifiedConfigurationTest.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -41,13 +41,13 @@
public void testSendManagementMessageWithModifiedClusterAdminUser() throws Exception
{
- doSendManagementMessage(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER, configuredClusterPassword, true);
+ doSendManagementMessage(ConfigurationImpl.DEFAULT_CLUSTER_USER, configuredClusterPassword, true);
}
public void testSendManagementMessageWithDefaultClusterAdminUser() throws Exception
{
- doSendManagementMessage(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER,
- ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD,
+ doSendManagementMessage(ConfigurationImpl.DEFAULT_CLUSTER_USER,
+ ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD,
false);
}
@@ -70,7 +70,7 @@
{
ConfigurationImpl conf = new ConfigurationImpl();
conf.setSecurityEnabled(true);
- conf.setManagementClusterPassword(configuredClusterPassword);
+ conf.setClusterPassword(configuredClusterPassword);
conf.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
HornetQServer server = HornetQServers.newHornetQServer(conf, false);
server.start();
Modified: trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationImplTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationImplTest.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationImplTest.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -72,8 +72,8 @@
Assert.assertEquals(ConfigurationImpl.DEFAULT_MANAGEMENT_ADDRESS, conf.getManagementAddress()); // OK
Assert.assertEquals(ConfigurationImpl.DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS,
conf.getManagementNotificationAddress()); // OK
- Assert.assertEquals(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER, conf.getManagementClusterUser()); // OK
- Assert.assertEquals(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD, conf.getManagementClusterPassword()); // OK
+ Assert.assertEquals(ConfigurationImpl.DEFAULT_CLUSTER_USER, conf.getClusterUser()); // OK
+ Assert.assertEquals(ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD, conf.getClusterPassword()); // OK
Assert.assertEquals(ConfigurationImpl.DEFAULT_PERSISTENCE_ENABLED, conf.isPersistenceEnabled());
Assert.assertEquals(ConfigurationImpl.DEFAULT_FILE_DEPLOYMENT_ENABLED, conf.isFileDeploymentEnabled());
Assert.assertEquals(ConfigurationImpl.DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY,
@@ -230,8 +230,8 @@
Assert.assertEquals(ss, conf.getManagementNotificationAddress());
s = RandomUtil.randomString();
- conf.setManagementClusterUser(s);
- Assert.assertEquals(s, conf.getManagementClusterUser());
+ conf.setClusterUser(s);
+ Assert.assertEquals(s, conf.getClusterUser());
i = RandomUtil.randomInt();
conf.setIDCacheSize(i);
@@ -310,8 +310,8 @@
Assert.assertEquals(l, conf.getTransactionTimeoutScanPeriod());
s = RandomUtil.randomString();
- conf.setManagementClusterPassword(s);
- Assert.assertEquals(s, conf.getManagementClusterPassword());
+ conf.setClusterPassword(s);
+ Assert.assertEquals(s, conf.getClusterPassword());
}
}
@@ -451,8 +451,8 @@
Assert.assertEquals(ss, conf.getManagementNotificationAddress());
s = RandomUtil.randomString();
- conf.setManagementClusterUser(s);
- Assert.assertEquals(s, conf.getManagementClusterUser());
+ conf.setClusterUser(s);
+ Assert.assertEquals(s, conf.getClusterUser());
i = RandomUtil.randomInt();
conf.setIDCacheSize(i);
@@ -531,8 +531,8 @@
Assert.assertEquals(l, conf.getTransactionTimeoutScanPeriod());
s = RandomUtil.randomString();
- conf.setManagementClusterPassword(s);
- Assert.assertEquals(s, conf.getManagementClusterPassword());
+ conf.setClusterPassword(s);
+ Assert.assertEquals(s, conf.getClusterPassword());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
Modified: trunk/tests/src/org/hornetq/tests/unit/core/config/impl/DefaultsFileConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/config/impl/DefaultsFileConfigurationTest.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/tests/src/org/hornetq/tests/unit/core/config/impl/DefaultsFileConfigurationTest.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -82,9 +82,9 @@
Assert.assertEquals(ConfigurationImpl.DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS,
conf.getManagementNotificationAddress());
- Assert.assertEquals(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER, conf.getManagementClusterUser());
+ Assert.assertEquals(ConfigurationImpl.DEFAULT_CLUSTER_USER, conf.getClusterUser());
- Assert.assertEquals(ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD, conf.getManagementClusterPassword());
+ Assert.assertEquals(ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD, conf.getClusterPassword());
Assert.assertEquals(ConfigurationImpl.DEFAULT_ID_CACHE_SIZE, conf.getIDCacheSize());
Modified: trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java 2010-01-07 17:56:22 UTC (rev 8773)
+++ trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java 2010-01-07 20:57:02 UTC (rev 8774)
@@ -47,8 +47,8 @@
Assert.assertEquals(true, conf.isWildcardRoutingEnabled());
Assert.assertEquals(new SimpleString("Giraffe"), conf.getManagementAddress());
Assert.assertEquals(new SimpleString("Whatever"), conf.getManagementNotificationAddress());
- Assert.assertEquals("Frog", conf.getManagementClusterUser());
- Assert.assertEquals("Wombat", conf.getManagementClusterPassword());
+ Assert.assertEquals("Frog", conf.getClusterUser());
+ Assert.assertEquals("Wombat", conf.getClusterPassword());
Assert.assertEquals(false, conf.isJMXManagementEnabled());
Assert.assertEquals("gro.qtenroh", conf.getJMXDomain());
Assert.assertEquals(true, conf.isMessageCounterEnabled());
14 years, 11 months
JBoss hornetq SVN: r8773 - in trunk: examples/core/microcontainer/server0 and 29 other directories.
by do-not-reply@jboss.org
Author: timfox
Date: 2010-01-07 12:56:22 -0500 (Thu, 07 Jan 2010)
New Revision: 8773
Modified:
trunk/docs/user-manual/en/appserver-integration.xml
trunk/docs/user-manual/en/configuring-transports.xml
trunk/docs/user-manual/en/perf-tuning.xml
trunk/examples/core/microcontainer/server0/hornetq-configuration.xml
trunk/examples/core/perf/server0/hornetq-configuration-messaging-lab.xml
trunk/examples/core/perf/server0/hornetq-configuration.xml
trunk/examples/javaee/ejb-jms-transaction/server/hornetq-configuration.xml
trunk/examples/javaee/jca-config/readme.html
trunk/examples/javaee/jca-config/server/hornetq-configuration.xml
trunk/examples/javaee/jca-config/server2/hornetq-configuration.xml
trunk/examples/javaee/jms-bridge/server/hornetq-configuration.xml
trunk/examples/javaee/mdb-bmt/server/hornetq-configuration.xml
trunk/examples/javaee/mdb-cmt-setrollbackonly/server/hornetq-configuration.xml
trunk/examples/javaee/mdb-cmt-tx-local/server/hornetq-configuration.xml
trunk/examples/javaee/mdb-cmt-tx-not-supported/server/hornetq-configuration.xml
trunk/examples/javaee/mdb-cmt-tx-required/server/hornetq-configuration.xml
trunk/examples/javaee/mdb-message-selector/server/hornetq-configuration.xml
trunk/examples/javaee/mdb-tx-send/server/hornetq-configuration.xml
trunk/examples/javaee/servlet-ssl/server/hornetq-configuration.xml
trunk/examples/javaee/servlet-transport/server/hornetq-configuration.xml
trunk/examples/javaee/xarecovery/server/hornetq-configuration.xml
trunk/examples/jms/http-transport/readme.html
trunk/examples/jms/http-transport/server0/hornetq-configuration.xml
trunk/examples/jms/perf/server0/hornetq-configuration-messaging-lab.xml
trunk/examples/jms/perf/server0/hornetq-configuration.xml
trunk/examples/jms/ssl-enabled/readme.html
trunk/examples/jms/ssl-enabled/server0/hornetq-configuration.xml
trunk/examples/soak/normal/server0/hornetq-configuration.xml
trunk/src/config/jboss-as/clustered/hornetq-configuration.xml
trunk/src/config/jboss-as/non-clustered/hornetq-configuration.xml
trunk/src/config/ra.xml
trunk/src/main/org/hornetq/core/remoting/impl/invm/TransportConstants.java
trunk/src/main/org/hornetq/integration/transports/netty/TransportConstants.java
trunk/tests/jms-tests/config/hornetq-configuration.xml
trunk/tests/src/org/hornetq/tests/unit/jms/server/recovery/HornetQXAResourceRecoveryTest.java
Log:
made remoting constant names less ugly
Modified: trunk/docs/user-manual/en/appserver-integration.xml
===================================================================
--- trunk/docs/user-manual/en/appserver-integration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/docs/user-manual/en/appserver-integration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -299,7 +299,7 @@
<description>The transport configuration. These values must be in the form of key=val;key=val;</description>
<config-property-name>ConnectionParameters</config-property-name>
<config-property-type>java.lang.String</config-property-type>
- <config-property-value>serverid=0</config-property-value>
+ <config-property-value>server-id=0</config-property-value>
</config-property>
<outbound-resourceadapter>
Modified: trunk/docs/user-manual/en/configuring-transports.xml
===================================================================
--- trunk/docs/user-manual/en/configuring-transports.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/docs/user-manual/en/configuring-transports.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -193,7 +193,7 @@
can be used to configure Netty for simple TCP:</para>
<itemizedlist>
<listitem>
- <para><literal>usenio</literal>. If this is <literal>true</literal> then Java
+ <para><literal>use-nio</literal>. If this is <literal>true</literal> then Java
non blocking NIO will be used. If set to <literal>false</literal> than old
blocking Java IO will be used.</para>
<para>We highly recommend that you use non blocking Java NIO. Java NIO does not
@@ -227,13 +227,13 @@
default value for this property is <literal>5445</literal>.</para>
</listitem>
<listitem>
- <para><literal>tcpnodelay</literal>. If this is <literal>true</literal> then
+ <para><literal>tcp-no-delay</literal>. If this is <literal>true</literal> then
<ulink url="http://en.wikipedia.org/wiki/Nagle's_algorithm">Nagle's
algorithm</ulink> will be enabled. The default value for this property
is <literal>true</literal>.</para>
</listitem>
<listitem>
- <para><literal>tcpsendbuffersize</literal>. This parameter determines the size
+ <para><literal>tcp-send-buffer-size</literal>. This parameter determines the size
of the TCP send buffer in bytes. The default value for this property is
<literal>32768</literal> bytes (32KiB).</para>
<para>TCP buffer sizes should be tuned according to the bandwidth and latency of
@@ -250,7 +250,7 @@
defaults.</para>
</listitem>
<listitem>
- <para><literal>tcpreceivebuffersize</literal>. This parameter determines the
+ <para><literal>tcp-receive-buffer-size</literal>. This parameter determines the
size of the TCP receive buffer in bytes. The default value for this property
is <literal>32768</literal> bytes (32KiB).</para>
</listitem>
@@ -265,23 +265,23 @@
additional properties:</para>
<itemizedlist>
<listitem>
- <para><literal>sslenabled</literal>. Must be <literal>true</literal> to enable
+ <para><literal>ssl-enabled</literal>. Must be <literal>true</literal> to enable
SSL.</para>
</listitem>
<listitem>
- <para><literal>keystorepath</literal>. This is the path to the SSL key store on
+ <para><literal>key-store-path</literal>. This is the path to the SSL key store on
the client which holds the client certificates.</para>
</listitem>
<listitem>
- <para><literal>keystorepassword</literal>. This is the password for the client
+ <para><literal>key-store-password</literal>. This is the password for the client
certificate key store on the client.</para>
</listitem>
<listitem>
- <para><literal>truststorepath</literal>. This is the path to the trusted client
+ <para><literal>trust-store-path</literal>. This is the path to the trusted client
certificate store on the server.</para>
</listitem>
<listitem>
- <para><literal>truststorepassword</literal>. This is the password to the trusted
+ <para><literal>trust-store-password</literal>. This is the password to the trusted
client certificate store on the server.</para>
</listitem>
</itemizedlist>
@@ -295,27 +295,27 @@
properties:</para>
<itemizedlist>
<listitem>
- <para><literal>httpenabled</literal>. Must be <literal>true</literal> to enable
+ <para><literal>http-enabled</literal>. Must be <literal>true</literal> to enable
HTTP.</para>
</listitem>
<listitem>
- <para><literal>httpclientidletime</literal>. How long a client can be idle
+ <para><literal>http-client-idle-time</literal>. How long a client can be idle
before sending an empty http request to keep the connection alive</para>
</listitem>
<listitem>
- <para><literal>httpclientidlescanperiod</literal>. How often, in milliseconds,
+ <para><literal>http-client-idle-scan-period</literal>. How often, in milliseconds,
to scan for idle clients</para>
</listitem>
<listitem>
- <para><literal>httpresponsetime</literal>. How long the server can wait before
+ <para><literal>http-response-time</literal>. How long the server can wait before
sending an empty http response to keep the connection alive</para>
</listitem>
<listitem>
- <para><literal>httpserverscanperiod</literal>. How often, in milliseconds, to
+ <para><literal>http-server-scan-period</literal>. How often, in milliseconds, to
scan for clients needing responses</para>
</listitem>
<listitem>
- <para><literal>httprequiressessionid</literal>. If true the client will wait
+ <para><literal>http-requires-session-id</literal>. If true the client will wait
after the first call to receive a session id. Used the http connector is
connecting to servlet acceptor (not recommended) </para>
</listitem>
@@ -375,7 +375,7 @@
<factory-class>
org.hornetq.integration.transports.netty.NettyAcceptorFactory
</factory-class>
- <param key="useinvm" value="true"/>
+ <param key="use-invm" value="true"/>
<param key="host" value="org.hornetq"/>
</acceptor>
@@ -393,8 +393,8 @@
</factory-class>
<param key="host" value="localhost"/>
<param key="port" value="8080"/>
- <param key="useservlet" value="true"/>
- <param key="servletpath" value="/messaging/HornetQServlet"/>
+ <param key="use-servlet" value="true"/>
+ <param key="servlet-path" value="/messaging/HornetQServlet"/>
</connector>
</connectors></programlisting>
@@ -409,7 +409,7 @@
</listitem>
</itemizedlist>
<para>The servlet pattern configured in the <literal>web.xml</literal> is the path of
- the URL that is used. The connector param <literal>servletpath</literal> on the
+ the URL that is used. The connector param <literal>servlet-path</literal> on the
connector config must match this using the application context of the web app if
there is one.</para>
<para>Its also possible to use the servlet transport over SSL. simply add the following
@@ -418,11 +418,11 @@
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
<param key="host" value="localhost"/>
<param key="port" value="8443"/>
- <param key="useservlet" value="true"/>
- <param key="servletpath" value="/messaging/HornetQServlet"/>
- <param key="sslenabled" value="true"/>
- <param key="keystorepath" value="path to a keystoree"/>
- <param key="keystorepassword" value="keystore password"/>
+ <param key="use-servlet" value="true"/>
+ <param key="servlet-path" value="/messaging/HornetQServlet"/>
+ <param key="ssl-enabled" value="true"/>
+ <param key="key-store-path" value="path to a keystoree"/>
+ <param key="key-store-password" value="keystore password"/>
</connector>
</programlisting></para>
<para>You will also have to configure the Application server to use a KeyStore. Edit the
Modified: trunk/docs/user-manual/en/perf-tuning.xml
===================================================================
--- trunk/docs/user-manual/en/perf-tuning.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/docs/user-manual/en/perf-tuning.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -182,7 +182,7 @@
<para>Enable <ulink url="http://en.wikipedia.org/wiki/Nagle's_algorithm">Nagle's
algorithm</ulink>. If you are sending many small messages, such that more
than one can fit in a single IP packet thus providing better performance. This
- is done by setting <literal>tcpnodelay</literal> to false with the Netty
+ is done by setting <literal>tcp-no-delay</literal> to false with the Netty
transports. See <xref linkend="configuring-transports"/> for more information on
this. </para>
<para>Enabling Nagle's algorithm can make a very big difference in performance and
Modified: trunk/examples/core/microcontainer/server0/hornetq-configuration.xml
===================================================================
--- trunk/examples/core/microcontainer/server0/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/core/microcontainer/server0/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -7,9 +7,9 @@
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="tcpnodelay" value="false"/>
- <param key="tcpsendbuffersize" value="1048576"/>
- <param key="tcpreceivebuffersize" value="1048576"/>
+ <param key="tcp-no-delay" value="false"/>
+ <param key="tcp-send-buffer-size" value="1048576"/>
+ <param key="tcp-receive-buffer-size" value="1048576"/>
</acceptor>
</acceptors>
Modified: trunk/examples/core/perf/server0/hornetq-configuration-messaging-lab.xml
===================================================================
--- trunk/examples/core/perf/server0/hornetq-configuration-messaging-lab.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/core/perf/server0/hornetq-configuration-messaging-lab.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -7,9 +7,9 @@
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="tcpnodelay" value="false"/>
- <param key="tcpsendbuffersize" value="1048576"/>
- <param key="tcpreceivebuffersize" value="1048576"/>
+ <param key="tcp-no-delay" value="false"/>
+ <param key="tcp-send-buffer-size" value="1048576"/>
+ <param key="tcp-receive-buffer-size" value="1048576"/>
<param key="host" value="172.16.8.10"/>
</acceptor>
</acceptors>
Modified: trunk/examples/core/perf/server0/hornetq-configuration.xml
===================================================================
--- trunk/examples/core/perf/server0/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/core/perf/server0/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -7,9 +7,9 @@
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="tcpnodelay" value="false"/>
- <param key="tcpsendbuffersize" value="1048576"/>
- <param key="tcpreceivebuffersize" value="1048576"/>
+ <param key="tcp-no-delay" value="false"/>
+ <param key="tcp-send-buffer-size" value="1048576"/>
+ <param key="tcp-receive-buffer-size" value="1048576"/>
</acceptor>
</acceptors>
Modified: trunk/examples/javaee/ejb-jms-transaction/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/ejb-jms-transaction/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/ejb-jms-transaction/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -27,7 +27,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/jca-config/readme.html
===================================================================
--- trunk/examples/javaee/jca-config/readme.html 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/jca-config/readme.html 2010-01-07 17:56:22 UTC (rev 8773)
@@ -105,7 +105,7 @@
<description>The transport configuration. These values must be in the form of key=val;key=val;</description>
<config-property-name>ConnectionParameters</config-property-name>
<config-property-type>java.lang.String</config-property-type>
- <config-property-value>serverid=0</config-property-value>
+ <config-property-value>server-id=0</config-property-value>
</config-property>
<config-property>
<description>Use XA methods to obtain connections?</description>
Modified: trunk/examples/javaee/jca-config/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/jca-config/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/jca-config/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -27,7 +27,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/jca-config/server2/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/jca-config/server2/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/jca-config/server2/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -35,7 +35,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/jms-bridge/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/jms-bridge/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/jms-bridge/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -19,7 +19,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/mdb-bmt/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/mdb-bmt/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/mdb-bmt/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -29,7 +29,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/mdb-cmt-setrollbackonly/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/mdb-cmt-setrollbackonly/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/mdb-cmt-setrollbackonly/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -29,7 +29,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/mdb-cmt-tx-local/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/mdb-cmt-tx-local/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/mdb-cmt-tx-local/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -29,7 +29,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/mdb-cmt-tx-not-supported/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/mdb-cmt-tx-not-supported/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/mdb-cmt-tx-not-supported/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -29,7 +29,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/mdb-cmt-tx-required/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/mdb-cmt-tx-required/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/mdb-cmt-tx-required/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -29,7 +29,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/mdb-message-selector/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/mdb-message-selector/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/mdb-message-selector/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -29,7 +29,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/mdb-tx-send/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/mdb-tx-send/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/mdb-tx-send/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -29,7 +29,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/javaee/servlet-ssl/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/servlet-ssl/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/servlet-ssl/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -16,11 +16,11 @@
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
<param key="host" value="localhost"/>
<param key="port" value="8443"/>
- <param key="useservlet" value="true"/>
- <param key="servletpath" value="/hornetq/HornetQServlet"/>
- <param key="sslenabled" value="true"/>
- <param key="keystorepath" value="server/hornetq.example.keystore"/>
- <param key="keystorepassword" value="hornetqexample"/>
+ <param key="use-servlet" value="true"/>
+ <param key="servlet-path" value="/hornetq/HornetQServlet"/>
+ <param key="ssl-enabled" value="true"/>
+ <param key="key-store-path" value="server/hornetq.example.keystore"/>
+ <param key="key-store-password" value="hornetqexample"/>
</connector>
</connectors>
@@ -29,13 +29,13 @@
<acceptor name="netty-servlet">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="useinvm" value="true"/>
+ <param key="use-invm" value="true"/>
<param key="host" value="org.hornetq"/>
</acceptor>
<acceptor name="netty-invm">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="useinvm" value="true"/>
+ <param key="use-invm" value="true"/>
<param key="host" value="org.hornetq"/>
</acceptor>
Modified: trunk/examples/javaee/servlet-transport/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/servlet-transport/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/servlet-transport/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -16,8 +16,8 @@
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
<param key="host" value="localhost"/>
<param key="port" value="8080"/>
- <param key="useservlet" value="true"/>
- <param key="servletpath" value="/messaging/HornetQServlet"/>
+ <param key="use-servlet" value="true"/>
+ <param key="servlet-path" value="/messaging/HornetQServlet"/>
</connector>
</connectors>
@@ -26,13 +26,13 @@
<acceptor name="netty-servlet">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="useinvm" value="true"/>
+ <param key="use-invm" value="true"/>
<param key="host" value="org.hornetq"/>
</acceptor>
<acceptor name="netty-invm">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="useinvm" value="true"/>
+ <param key="use-invm" value="true"/>
<param key="host" value="org.hornetq"/>
</acceptor>
Modified: trunk/examples/javaee/xarecovery/server/hornetq-configuration.xml
===================================================================
--- trunk/examples/javaee/xarecovery/server/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/javaee/xarecovery/server/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -27,7 +27,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/examples/jms/http-transport/readme.html
===================================================================
--- trunk/examples/jms/http-transport/readme.html 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/jms/http-transport/readme.html 2010-01-07 17:56:22 UTC (rev 8773)
@@ -20,7 +20,7 @@
<code>
<connector name="netty-connector">
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
- <param key="hornetq.remoting.netty.httpenabled" value="true" type="Boolean"/>
+ <param key="hornetq.remoting.netty.http-enabled" value="true" type="Boolean"/>
<param key="hornetq.remoting.netty.port" value="8080" type="Integer"/>
</connector>
@@ -28,7 +28,7 @@
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="hornetq.remoting.netty.httpenabled" value="true" type="Boolean"/>
+ <param key="hornetq.remoting.netty.http-enabled" value="true" type="Boolean"/>
<param key="hornetq.remoting.netty.port" value="8080" type="Integer"/>
</acceptor>
</code>
Modified: trunk/examples/jms/http-transport/server0/hornetq-configuration.xml
===================================================================
--- trunk/examples/jms/http-transport/server0/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/jms/http-transport/server0/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -6,7 +6,7 @@
<connectors>
<connector name="netty-connector">
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
- <param key="httpenabled" value="true"/>
+ <param key="http-enabled" value="true"/>
<param key="port" value="8080"/>
</connector>
</connectors>
@@ -16,7 +16,7 @@
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="httpenabled" value="true"/>
+ <param key="http-enabled" value="true"/>
<param key="port" value="8080"/>
</acceptor>
</acceptors>
Modified: trunk/examples/jms/perf/server0/hornetq-configuration-messaging-lab.xml
===================================================================
--- trunk/examples/jms/perf/server0/hornetq-configuration-messaging-lab.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/jms/perf/server0/hornetq-configuration-messaging-lab.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -7,9 +7,9 @@
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="tcpnodelay" value="false"/>
- <param key="tcpsendbuffersize" value="1048576"/>
- <param key="tcpreceivebuffersize" value="1048576"/>
+ <param key="tcp-no-delay" value="false"/>
+ <param key="tcp-send-buffer-size" value="1048576"/>
+ <param key="tcp-receive-buffer-size" value="1048576"/>
<param key="host" value="172.16.8.10"/>
</acceptor>
</acceptors>
Modified: trunk/examples/jms/perf/server0/hornetq-configuration.xml
===================================================================
--- trunk/examples/jms/perf/server0/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/jms/perf/server0/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -5,9 +5,9 @@
<connectors>
<connector name="netty-connector">
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
- <param key="tcpnodelay" value="false"/>
- <param key="tcpsendbuffersize" value="1048576"/>
- <param key="tcpreceivebuffersize" value="1048576"/>
+ <param key="tcp-no-delay" value="false"/>
+ <param key="tcp-send-buffer-size" value="1048576"/>
+ <param key="tcp-receive-buffer-size" value="1048576"/>
</connector>
</connectors>
@@ -15,9 +15,9 @@
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="tcpnodelay" value="false"/>
- <param key="tcpsendbuffersize" value="1048576"/>
- <param key="tcpreceivebuffersize" value="1048576"/>
+ <param key="tcp-no-delay" value="false"/>
+ <param key="tcp-send-buffer-size" value="1048576"/>
+ <param key="tcp-receive-buffer-size" value="1048576"/>
</acceptor>
</acceptors>
Modified: trunk/examples/jms/ssl-enabled/readme.html
===================================================================
--- trunk/examples/jms/ssl-enabled/readme.html 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/jms/ssl-enabled/readme.html 2010-01-07 17:56:22 UTC (rev 8773)
@@ -22,9 +22,9 @@
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
<param key="hornetq.remoting.netty.host" value="localhost" type="String"/>
<param key="hornetq.remoting.netty.port" value="5500" type="Integer"/>
- <param key="hornetq.remoting.netty.sslenabled" value="true" type="Boolean"/>
- <param key="hornetq.remoting.netty.keystorepath" value="server0/hornetq.example.keystore" type="String"/>
- <param key="hornetq.remoting.netty.keystorepassword" value="hornetqexample" type="String"/>
+ <param key="hornetq.remoting.netty.ssl-enabled" value="true" type="Boolean"/>
+ <param key="hornetq.remoting.netty.key-store-path" value="server0/hornetq.example.keystore" type="String"/>
+ <param key="hornetq.remoting.netty.key-store-password" value="hornetqexample" type="String"/>
</connector>
<!-- Acceptor -->
@@ -33,11 +33,11 @@
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
<param key="hornetq.remoting.netty.host" value="localhost" type="String"/>
<param key="hornetq.remoting.netty.port" value="5500" type="Integer"/>
- <param key="hornetq.remoting.netty.sslenabled" value="true" type="Boolean"/>
- <param key="hornetq.remoting.netty.keystorepath" value="hornetq.example.keystore" type="String"/>
- <param key="hornetq.remoting.netty.keystorepassword" value="hornetqexample" type="String"/>
- <param key="hornetq.remoting.netty.truststorepath" value="hornetq.example.truststore" type="String"/>
- <param key="hornetq.remoting.netty.truststorepassword" value="hornetqexample" type="String"/>
+ <param key="hornetq.remoting.netty.ssl-enabled" value="true" type="Boolean"/>
+ <param key="hornetq.remoting.netty.key-store-path" value="hornetq.example.keystore" type="String"/>
+ <param key="hornetq.remoting.netty.key-store-password" value="hornetqexample" type="String"/>
+ <param key="hornetq.remoting.netty.trust-store-path" value="hornetq.example.truststore" type="String"/>
+ <param key="hornetq.remoting.netty.trust-store-password" value="hornetqexample" type="String"/>
</acceptor>
</code>
Modified: trunk/examples/jms/ssl-enabled/server0/hornetq-configuration.xml
===================================================================
--- trunk/examples/jms/ssl-enabled/server0/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/jms/ssl-enabled/server0/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -9,9 +9,9 @@
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
<param key="host" value="localhost"/>
<param key="port" value="5500"/>
- <param key="sslenabled" value="true"/>
- <param key="keystorepath" value="server0/hornetq.example.keystore"/>
- <param key="keystorepassword" value="hornetqexample"/>
+ <param key="ssl-enabled" value="true"/>
+ <param key="key-store-path" value="server0/hornetq.example.keystore"/>
+ <param key="key-store-password" value="hornetqexample"/>
</connector>
</connectors>
@@ -21,11 +21,11 @@
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
<param key="host" value="localhost"/>
<param key="port" value="5500"/>
- <param key="sslenabled" value="true"/>
- <param key="keystorepath" value="hornetq.example.keystore"/>
- <param key="keystorepassword" value="hornetqexample"/>
- <param key="truststorepath" value="hornetq.example.truststore"/>
- <param key="truststorepassword" value="hornetqexample"/>
+ <param key="ssl-enabled" value="true"/>
+ <param key="key-store-path" value="hornetq.example.keystore"/>
+ <param key="key-store-password" value="hornetqexample"/>
+ <param key="trust-store-path" value="hornetq.example.truststore"/>
+ <param key="trust-store-password" value="hornetqexample"/>
</acceptor>
</acceptors>
Modified: trunk/examples/soak/normal/server0/hornetq-configuration.xml
===================================================================
--- trunk/examples/soak/normal/server0/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/examples/soak/normal/server0/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -5,9 +5,9 @@
<connectors>
<connector name="netty-connector">
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
- <param key="tcpnodelay" value="false"/>
- <param key="tcpsendbuffersize" value="1048576"/>
- <param key="tcpreceivebuffersize" value="1048576"/>
+ <param key="tcp-no-delay" value="false"/>
+ <param key="tcp-send-buffer-size" value="1048576"/>
+ <param key="tcp-receive-buffer-size" value="1048576"/>
<param key="host" value="localhost"/>
</connector>
</connectors>
@@ -16,9 +16,9 @@
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
- <param key="tcpnodelay" value="false"/>
- <param key="tcpsendbuffersize" value="1048576"/>
- <param key="tcpreceivebuffersize" value="1048576"/>
+ <param key="tcp-no-delay" value="false"/>
+ <param key="tcp-send-buffer-size" value="1048576"/>
+ <param key="tcp-receive-buffer-size" value="1048576"/>
<param key="host" value="localhost"/>
</acceptor>
</acceptors>
Modified: trunk/src/config/jboss-as/clustered/hornetq-configuration.xml
===================================================================
--- trunk/src/config/jboss-as/clustered/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/src/config/jboss-as/clustered/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -36,7 +36,7 @@
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
</acceptors>
Modified: trunk/src/config/jboss-as/non-clustered/hornetq-configuration.xml
===================================================================
--- trunk/src/config/jboss-as/non-clustered/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/src/config/jboss-as/non-clustered/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -34,7 +34,7 @@
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
</acceptors>
Modified: trunk/src/config/ra.xml
===================================================================
--- trunk/src/config/ra.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/src/config/ra.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -43,7 +43,7 @@
<description>The transport configuration. These values must be in the form of key=val;key=val;</description>
<config-property-name>ConnectionParameters</config-property-name>
<config-property-type>java.lang.String</config-property-type>
- <config-property-value>serverid=0</config-property-value>
+ <config-property-value>server-id=0</config-property-value>
</config-property>
<config-property>
<description>Use XA?</description>
Modified: trunk/src/main/org/hornetq/core/remoting/impl/invm/TransportConstants.java
===================================================================
--- trunk/src/main/org/hornetq/core/remoting/impl/invm/TransportConstants.java 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/src/main/org/hornetq/core/remoting/impl/invm/TransportConstants.java 2010-01-07 17:56:22 UTC (rev 8773)
@@ -24,7 +24,7 @@
*/
public class TransportConstants
{
- public static final String SERVER_ID_PROP_NAME = "serverid";
+ public static final String SERVER_ID_PROP_NAME = "server-id";
public static final Set<String> ALLOWABLE_CONNECTOR_KEYS;
Modified: trunk/src/main/org/hornetq/integration/transports/netty/TransportConstants.java
===================================================================
--- trunk/src/main/org/hornetq/integration/transports/netty/TransportConstants.java 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/src/main/org/hornetq/integration/transports/netty/TransportConstants.java 2010-01-07 17:56:22 UTC (rev 8773)
@@ -24,45 +24,45 @@
*/
public class TransportConstants
{
- public static final String SSL_ENABLED_PROP_NAME = "sslenabled";
+ public static final String SSL_ENABLED_PROP_NAME = "ssl-enabled";
- public static final String HTTP_ENABLED_PROP_NAME = "httpenabled";
+ public static final String HTTP_ENABLED_PROP_NAME = "http-enabled";
- public static final String HTTP_CLIENT_IDLE_PROP_NAME = "httpclientidletime";
+ public static final String HTTP_CLIENT_IDLE_PROP_NAME = "http-client-idle-time";
- public static final String HTTP_CLIENT_IDLE_SCAN_PERIOD = "httpclientidlescanperiod";
+ public static final String HTTP_CLIENT_IDLE_SCAN_PERIOD = "http-client-idle-scan-period";
- public static final String HTTP_RESPONSE_TIME_PROP_NAME = "httpresponsetime";
+ public static final String HTTP_RESPONSE_TIME_PROP_NAME = "http-response-time";
- public static final String HTTP_SERVER_SCAN_PERIOD_PROP_NAME = "httpserverscanperiod";
+ public static final String HTTP_SERVER_SCAN_PERIOD_PROP_NAME = "http-server-scan-period";
- public static final String HTTP_REQUIRES_SESSION_ID = "httprequiressessionid";
+ public static final String HTTP_REQUIRES_SESSION_ID = "http-requires-session-id";
- public static final String USE_SERVLET_PROP_NAME = "useservlet";
+ public static final String USE_SERVLET_PROP_NAME = "use-servlet";
- public static final String SERVLET_PATH = "servletpath";
+ public static final String SERVLET_PATH = "servlet-path";
- public static final String USE_NIO_PROP_NAME = "usenio";
+ public static final String USE_NIO_PROP_NAME = "use-nio";
- public static final String USE_INVM_PROP_NAME = "useinvm";
+ public static final String USE_INVM_PROP_NAME = "use-invm";
public static final String HOST_PROP_NAME = "host";
public static final String PORT_PROP_NAME = "port";
- public static final String KEYSTORE_PATH_PROP_NAME = "keystorepath";
+ public static final String KEYSTORE_PATH_PROP_NAME = "key-store-path";
- public static final String KEYSTORE_PASSWORD_PROP_NAME = "keystorepassword";
+ public static final String KEYSTORE_PASSWORD_PROP_NAME = "key-store-password";
- public static final String TRUSTSTORE_PATH_PROP_NAME = "truststorepath";
+ public static final String TRUSTSTORE_PATH_PROP_NAME = "trust-store-path";
- public static final String TRUSTSTORE_PASSWORD_PROP_NAME = "truststorepassword";
+ public static final String TRUSTSTORE_PASSWORD_PROP_NAME = "trust-store-password";
- public static final String TCP_NODELAY_PROPNAME = "tcpnodelay";
+ public static final String TCP_NODELAY_PROPNAME = "tcp-no-delay";
- public static final String TCP_SENDBUFFER_SIZE_PROPNAME = "tcpsendbuffersize";
+ public static final String TCP_SENDBUFFER_SIZE_PROPNAME = "tcp-send-buffer-size";
- public static final String TCP_RECEIVEBUFFER_SIZE_PROPNAME = "tcpreceivebuffersize";
+ public static final String TCP_RECEIVEBUFFER_SIZE_PROPNAME = "tcp-receive-buffer-size";
public static final boolean DEFAULT_SSL_ENABLED = false;
Modified: trunk/tests/jms-tests/config/hornetq-configuration.xml
===================================================================
--- trunk/tests/jms-tests/config/hornetq-configuration.xml 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/tests/jms-tests/config/hornetq-configuration.xml 2010-01-07 17:56:22 UTC (rev 8773)
@@ -21,7 +21,7 @@
<!-- In VM acceptor -->
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
- <param key="serverid" value="0"/>
+ <param key="server-id" value="0"/>
</acceptor>
<!-- Netty TCP Acceptor -->
Modified: trunk/tests/src/org/hornetq/tests/unit/jms/server/recovery/HornetQXAResourceRecoveryTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/jms/server/recovery/HornetQXAResourceRecoveryTest.java 2010-01-07 17:32:07 UTC (rev 8772)
+++ trunk/tests/src/org/hornetq/tests/unit/jms/server/recovery/HornetQXAResourceRecoveryTest.java 2010-01-07 17:56:22 UTC (rev 8773)
@@ -53,7 +53,7 @@
public void testConfigWithConnectorFactoryClassNameAndParamsWithoutUserCredentials() throws Exception
{
- String config = "org.hornetq.core.remoting.impl.invm.InVMConnectorFactory, , , serverid=99";
+ String config = "org.hornetq.core.remoting.impl.invm.InVMConnectorFactory, , , server-id=99";
HornetQXAResourceRecovery.ConfigParser parser = new HornetQXAResourceRecovery.ConfigParser(config);
Assert.assertEquals(InVMConnectorFactory.class.getName(), parser.getConnectorFactoryClassName());
@@ -65,7 +65,7 @@
public void testConfigWithConnectorFactoryClassNameAndParamsAndUserCredentials() throws Exception
{
- String config = "org.hornetq.core.remoting.impl.invm.InVMConnectorFactory, foo, bar, serverid=99, key=val";
+ String config = "org.hornetq.core.remoting.impl.invm.InVMConnectorFactory, foo, bar, server-id=99, key=val";
HornetQXAResourceRecovery.ConfigParser parser = new HornetQXAResourceRecovery.ConfigParser(config);
Assert.assertEquals(InVMConnectorFactory.class.getName(), parser.getConnectorFactoryClassName());
14 years, 11 months
JBoss hornetq SVN: r8772 - in trunk: examples/jms/pre-acknowledge/src/org/hornetq/jms/example and 8 other directories.
by do-not-reply@jboss.org
Author: timfox
Date: 2010-01-07 12:32:07 -0500 (Thu, 07 Jan 2010)
New Revision: 8772
Added:
trunk/src/main/org/hornetq/api/jms/HornetQJMSConstants.java
Removed:
trunk/src/main/org/hornetq/api/jms/HornetQMessageConstants.java
Modified:
trunk/docs/user-manual/en/last-value-queues.xml
trunk/docs/user-manual/en/message-grouping.xml
trunk/docs/user-manual/en/pre-acknowledge.xml
trunk/docs/user-manual/en/scheduled-messages.xml
trunk/examples/jms/pre-acknowledge/src/org/hornetq/jms/example/PreacknowledgeExample.java
trunk/src/main/org/hornetq/api/core/HornetQBuffers.java
trunk/src/main/org/hornetq/core/transaction/impl/ResourceManagerImpl.java
trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java
trunk/src/main/org/hornetq/jms/client/HornetQConnection.java
trunk/src/main/org/hornetq/jms/client/HornetQMessage.java
trunk/src/main/org/hornetq/jms/client/HornetQSession.java
trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java
trunk/tests/src/org/hornetq/tests/integration/jms/client/ReSendLargeMessageTest.java
trunk/tests/src/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java
Log:
more docs edits plus moved pre-ack constant into api
Modified: trunk/docs/user-manual/en/last-value-queues.xml
===================================================================
--- trunk/docs/user-manual/en/last-value-queues.xml 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/docs/user-manual/en/last-value-queues.xml 2010-01-07 17:32:07 UTC (rev 8772)
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<!-- ============================================================================= -->
<!-- Copyright © 2009 Red Hat, Inc. and others. -->
<!-- -->
@@ -17,7 +16,6 @@
<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent -->
<!-- permitted by applicable law. -->
<!-- ============================================================================= -->
-
<chapter id="last-value-queues">
<title>Last-Value Queues</title>
<para>Last-Value queues are special queues which discard any messages when a newer message with
@@ -40,8 +38,7 @@
<section>
<title>Using Last-Value Property</title>
<para>The property name used to identify the last value is <literal>"_HQ_LVQ_NAME"</literal>
- (or the constant <literal>MessageImpl.HDR_LAST_VALUE_NAME</literal> from the Core
- API).</para>
+ (or the constant <literal>Message.HDR_LAST_VALUE_NAME</literal> from the Core API).</para>
<para>For example, if two messages with the same value for the Last-Value property are sent to
a Last-Value queue, only the latest message will be kept in the queue:</para>
<programlisting>
@@ -67,7 +64,7 @@
</section>
<section>
<title>Example</title>
- <para>See <xref linkend="examples.last-value-queue" /> for an example which
- shows how last value queues are configured and used with JMS.</para>
+ <para>See <xref linkend="examples.last-value-queue"/> for an example which shows how last
+ value queues are configured and used with JMS.</para>
</section>
</chapter>
Modified: trunk/docs/user-manual/en/message-grouping.xml
===================================================================
--- trunk/docs/user-manual/en/message-grouping.xml 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/docs/user-manual/en/message-grouping.xml 2010-01-07 17:32:07 UTC (rev 8772)
@@ -18,7 +18,7 @@
<!-- ============================================================================= -->
<chapter id="message-grouping">
<title>Message Grouping</title>
- <para>Message groups are sets of messages that has the following characteristics:</para>
+ <para>Message groups are sets of messages that have the following characteristics:</para>
<itemizedlist>
<listitem>
<para>Messages in a message group share the same group id, i.e. they have same group
@@ -32,6 +32,14 @@
messages with the same group id.</para>
</listitem>
</itemizedlist>
+ <para>Message groups are useful when you want all messages for a certain value of the property to
+ be processed serially by the same consumer.</para>
+ <para>An example might be orders for a certain stock. You may want orders for any particular
+ stock to be processed serially by the same consumer. To do this you can create a pool of
+ consumers (perhaps one for each stock, but less will work too), then set the stock name as the
+ value of the _HQ_GROUP_ID property.</para>
+ <para>This will ensure that all messages for a particular stock will always be processed by the
+ same consumer.</para>
<section>
<title>Using Core API</title>
<para>The property name used to identify the message group is <literal
@@ -67,11 +75,12 @@
</entries>
<autogroup>true</autogroup>
</connection-factory></programlisting>
- <para>Alternatively you can set the group id via the connection factory. All messages sent with producers created
- via this connection factory will set the <literal>JMSXGroupID</literal> to the specified value on all messages
- sent. To configure the group id set it on the connection factory in the <literal>hornetq-jms.xml</literal>
- config file as follows
- <programlisting>
+ <para>Alternatively you can set the group id via the connection factory. All messages sent
+ with producers created via this connection factory will set the <literal
+ >JMSXGroupID</literal> to the specified value on all messages sent. To configure the
+ group id set it on the connection factory in the <literal>hornetq-jms.xml</literal> config
+ file as follows
+ <programlisting>
<connection-factory name="ConnectionFactory">
<connectors>
<connector-ref connector-name="netty-connector"/>
@@ -81,8 +90,7 @@
</entries>
<group-id>Group-0</group-id>
</connection-factory>
- </programlisting>
- </para>
+ </programlisting></para>
</section>
<section>
<title>Example</title>
@@ -96,16 +104,19 @@
</section>
<section>
<title> Clustered Grouping</title>
- <para>Using the Grouping function in a cluster is a bit more complex. This is because messages
- with a particular group id can arrive on any node so each node needs to know about which
- group id's are bound to which consumer on which node. To solve this there is the notion of
- a grouping handler. Each node will have its own grouping handler and when a messages is
- sent with a group id assigned, the handlers will decide between them which route the
- message should take. There are 2 types of handlers, Local and Remote. Each cluster should
- assign 1 node to have a local grouping handler and all the other nodes should have remote
- handlers, Its the local handler that actually makes the decsion as to what route should be
- used, all the other remote handler converse with this. Here is a sample config for both
- types of handler, this should be configured in the <emphasis role="italic"
+ <para>Using message groups in a cluster is a bit more complex. This is because messages with a
+ particular group id can arrive on any node so each node needs to know about which group
+ id's are bound to which consumer on which node. The consumer handling messages for a
+ particular group id may be on a different node of the cluster, so each node needs to know
+ this information so it can route the message correctly to the node which has that consumer. </para>
+ <para>To solve this there is the notion of a grouping handler. Each node will have its own
+ grouping handler and when a messages is sent with a group id assigned, the handlers will
+ decide between them which route the message should take.</para>
+ <para>There are 2 types of handlers; Local and Remote. Each cluster should choose 1 node to
+ have a local grouping handler and all the other nodes should have remote handlers- it's the
+ local handler that actually makes the decsion as to what route should be used, all the
+ other remote handlers converse with this. Here is a sample config for both types of
+ handler, this should be configured in the <emphasis role="italic"
>hornetq-configuration.xml</emphasis>
file.<programlisting> <grouping-handler name="my-grouping-handler">
<type>LOCAL</type>
@@ -118,7 +129,7 @@
<address>jms</address>
<timeout>5000</timeout>
</grouping-handler></programlisting></para>
- <para>The <emphasis role="italic">address</emphasis> attribute referes to a cluster connection
+ <para>The <emphasis role="italic">address</emphasis> attribute refers to a cluster connection
and the address it uses, refer to the clustering section on how to configure clusters. The
<emphasis role="italic">timeout</emphasis> attribute referes to how long to wait for a
decision to be made, an exception will be thrown during the send if this timeout is
@@ -128,9 +139,9 @@
routing conditions, i.e. round robin available queues, use a local queue first and choose a
queue that has a consumer. If the proposal is excepted by the grouping handlers the node
will route messages to this queue from that point on, if rejected an alternative route will
- be offered and the node will again route to that queue indefinately. All other nodes will
+ be offered and the node will again route to that queue indefinitely. All other nodes will
also route to the queue chosen at proposal time. Once the message arrives at the queue then
- normal single server message group semantics take over and the message ispinned to a
+ normal single server message group semantics take over and the message is pinned to a
consumer on that queue.</para>
<para>You may have noticed that there is a single point of failure with the single local
handler. If this node crashes then no decisions will be able to be made. Any messages sent
@@ -140,24 +151,30 @@
<para/>
<section>
<title>Clustered Grouping Best Practices</title>
- <para>Some best practices should be followed when using clustered grouping, these
- are<orderedlist><listitem><para>Make sure your consumers are distributed evenly
- across the different nodes if possible. This is only an issue if you are
- creating and closing consumers regularly. Since messages are always routed to
- the same queue once pinned, removing a consumer from this queue may leave it
- with no consumers meaning the queue will just keep receiving the messages.
- Avoid closing consumers or make sure that you always have plenty of consumers,
- i.e., if you have 3 nodes have 3
- consumers.</para></listitem><listitem><para>Use durable queues if possible. If
- queues are removed once a group is bound to it, then it is possible that other
- nodes may still try to route messages to it. This can be avoided by making sure
- that the queue is deleted by the session that is sending the messages. This
- means that when the next message is sent it is sent to the node where the queue
- was deleted meaning a new proposal can succesfully take place. Alternatively
- you could just start using a different group
- id.</para></listitem><listitem><para>Always make sure that the node that has
- the Local Grouping Handler is replicated. These means that on failover grouping
- will still occur.</para></listitem></orderedlist></para>
+ <para>Some best practices should be followed when using clustered grouping:<orderedlist>
+ <listitem>
+ <para>Make sure your consumers are distributed evenly across the different nodes
+ if possible. This is only an issue if you are creating and closing consumers
+ regularly. Since messages are always routed to the same queue once pinned,
+ removing a consumer from this queue may leave it with no consumers meaning the
+ queue will just keep receiving the messages. Avoid closing consumers or make
+ sure that you always have plenty of consumers, i.e., if you have 3 nodes have 3
+ consumers.</para>
+ </listitem>
+ <listitem>
+ <para>Use durable queues if possible. If queues are removed once a group is bound
+ to it, then it is possible that other nodes may still try to route messages to
+ it. This can be avoided by making sure that the queue is deleted by the session
+ that is sending the messages. This means that when the next message is sent it
+ is sent to the node where the queue was deleted meaning a new proposal can
+ succesfully take place. Alternatively you could just start using a different
+ group id.</para>
+ </listitem>
+ <listitem>
+ <para>Always make sure that the node that has the Local Grouping Handler is
+ replicated. These means that on failover grouping will still occur.</para>
+ </listitem>
+ </orderedlist></para>
</section>
<section>
<title>Clustered Grouping Example</title>
Modified: trunk/docs/user-manual/en/pre-acknowledge.xml
===================================================================
--- trunk/docs/user-manual/en/pre-acknowledge.xml 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/docs/user-manual/en/pre-acknowledge.xml 2010-01-07 17:32:07 UTC (rev 8772)
@@ -30,16 +30,11 @@
<para><literal>DUPS_OK_ACKNOWLEDGE</literal></para>
</listitem>
</itemizedlist>
- <para>The acknowledgement modes all involve sending acknowledgements from the client to the
- server. However, in the case where you can afford to lose messages in event of failure, it
- would make sense to acknowledge the message on the server <emphasis>before</emphasis>
- delivering it to the client.</para>
- <note>
- <para>Please note, that if you use pre-acknowledge mode, then you will lose transactional
- semantics for messages being consumed, since clearly they are being acknowledged first on
- the server, not when you commit the transaction. This may be stating the obvious but we
- like to be clear on these things to avoid confusion!</para>
- </note>
+ <para>However there is another case which is not supported by JMS: In some cases you can afford
+ to lose messages in event of failure, so it would make sense to acknowledge the message on the
+ server <emphasis>before</emphasis> delivering it to the client.</para>
+ <para>This extra mode is supported by HornetQ and will call it
+ <emphasis>pre-acknowledge</emphasis> mode.</para>
<para>The disadvantage of acknowledging on the server before delivery is that the message will be
lost if the system crashes <emphasis>after</emphasis> acknowledging the message on the server
but <emphasis>before</emphasis> it is delivered to the client. In that case, the message is
@@ -49,6 +44,12 @@
<para>An example of a use case for pre-acknowledgement is for stock price update messages. With
these messages it might be reasonable to lose a message in event of crash, since the next
price update message will arrive soon, overriding the previous price. </para>
+ <note>
+ <para>Please note, that if you use pre-acknowledge mode, then you will lose transactional
+ semantics for messages being consumed, since clearly they are being acknowledged first on
+ the server, not when you commit the transaction. This may be stating the obvious but we
+ like to be clear on these things to avoid confusion!</para>
+ </note>
<section id="pre-acknowledge.configure">
<title>Using PRE_ACKNOWLEDGE</title>
<para>This can be configured in the <literal>hornetq-jms.xml</literal> file on the <literal
@@ -62,8 +63,8 @@
</entries>
<pre-acknowledge>true</pre-acknowledge>
</connection-factory></programlisting>
- <para>Alternatively use pre-acknowledgement mode using the JMS API, create a JMS Session with
- the <literal>HornetQSession.PRE_ACKNOWLEDGE</literal> constant.</para>
+ <para>Alternatively, to use pre-acknowledgement mode using the JMS API, create a JMS Session
+ with the <literal>HornetQSession.PRE_ACKNOWLEDGE</literal> constant.</para>
<programlisting>
// messages will be acknowledge on the server *before* being delivered to the client
Session session = connection.createSession(false, HornetQSession.PRE_ACKNOWLEDGE);
Modified: trunk/docs/user-manual/en/scheduled-messages.xml
===================================================================
--- trunk/docs/user-manual/en/scheduled-messages.xml 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/docs/user-manual/en/scheduled-messages.xml 2010-01-07 17:32:07 UTC (rev 8772)
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<!-- ============================================================================= -->
<!-- Copyright © 2009 Red Hat, Inc. and others. -->
<!-- -->
@@ -17,7 +16,6 @@
<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent -->
<!-- permitted by applicable law. -->
<!-- ============================================================================= -->
-
<chapter id="scheduled-messages">
<title>Scheduled Messages</title>
<para>Scheduled messages differ from normal messages in that they won't be delivered until a
@@ -27,7 +25,7 @@
<title>Scheduled Delivery Property</title>
<para>The property name used to identify a scheduled message is <literal
>"_HQ_SCHED_DELIVERY"</literal> (or the constant <literal
- >MessageImpl.HDR_SCHEDULED_DELIVERY_TIME</literal>).</para>
+ >Message.HDR_SCHEDULED_DELIVERY_TIME</literal>).</para>
<para>The specified value must be a <literal>long</literal> corresponding to the time the
message must be delivered (in milliseconds). An example of sending a scheduled message
using the JMS API is as follows.</para>
@@ -43,11 +41,12 @@
// message will not be received immediately but 5 seconds later
TextMessage messageReceived = (TextMessage) consumer.receive();
</programlisting>
- <para>Scheduled messages can also be sent using the core API, by setting the same property on the core message before sending.</para>
+ <para>Scheduled messages can also be sent using the core API, by setting the same property on
+ the core message before sending.</para>
</section>
<section>
<title>Example</title>
- <para>See <xref linkend="examples.scheduled-message" /> for an example which
- shows how scheduled messages can be used with JMS.</para>
+ <para>See <xref linkend="examples.scheduled-message"/> for an example which shows how
+ scheduled messages can be used with JMS.</para>
</section>
</chapter>
Modified: trunk/examples/jms/pre-acknowledge/src/org/hornetq/jms/example/PreacknowledgeExample.java
===================================================================
--- trunk/examples/jms/pre-acknowledge/src/org/hornetq/jms/example/PreacknowledgeExample.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/examples/jms/pre-acknowledge/src/org/hornetq/jms/example/PreacknowledgeExample.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -26,9 +26,9 @@
import javax.naming.InitialContext;
import org.hornetq.api.jms.HornetQJMSClient;
+import org.hornetq.api.jms.HornetQJMSConstants;
import org.hornetq.api.jms.management.JMSManagementHelper;
import org.hornetq.common.example.HornetQExample;
-import org.hornetq.jms.client.HornetQSession;
/**
*
@@ -66,7 +66,7 @@
// Step 3. Create a the JMS objects
connection = cf.createConnection();
- Session session = connection.createSession(false, HornetQSession.PRE_ACKNOWLEDGE);
+ Session session = connection.createSession(false, HornetQJMSConstants.PRE_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(queue);
Modified: trunk/src/main/org/hornetq/api/core/HornetQBuffers.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/HornetQBuffers.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/src/main/org/hornetq/api/core/HornetQBuffers.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -53,7 +53,7 @@
}
/**
- * Creates a HornetQBuffer wrapping the underlying NIO ByteBuffer
+ * Creates a HornetQBuffer wrapping an underlying NIO ByteBuffer
*
* The position on this buffer won't affect the position on the inner buffer
*
@@ -70,7 +70,7 @@
}
/**
- * Creates a HornetQBuffer wrapping the underlying byte array
+ * Creates a HornetQBuffer wrapping an underlying byte array
*
* @param underlying the underlying byte array
* @return a HornetQBuffer wrapping the underlying byte array
Copied: trunk/src/main/org/hornetq/api/jms/HornetQJMSConstants.java (from rev 8760, trunk/src/main/org/hornetq/api/jms/HornetQMessageConstants.java)
===================================================================
--- trunk/src/main/org/hornetq/api/jms/HornetQJMSConstants.java (rev 0)
+++ trunk/src/main/org/hornetq/api/jms/HornetQJMSConstants.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat 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.
+ */
+
+package org.hornetq.api.jms;
+
+/**
+ * Constants for HornetQ for property keys used for HornetQ specific extensions to JMS
+ *
+ * @author Tim Fox
+ *
+ *
+ */
+public class HornetQJMSConstants
+{
+ public static final String JMS_HORNETQ_INPUT_STREAM = "JMS_HQ_InputStream";
+
+ public static final String JMS_HORNETQ_OUTPUT_STREAM = "JMS_HQ_OutputStream";
+
+ public static final String JMS_HORNETQ_SAVE_STREAM = "JMS_HQ_SaveStream";
+
+ public static final String JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST = "HQ_BRIDGE_MSG_ID_LIST";
+
+ public static final int PRE_ACKNOWLEDGE = 100;
+}
Deleted: trunk/src/main/org/hornetq/api/jms/HornetQMessageConstants.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/HornetQMessageConstants.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/src/main/org/hornetq/api/jms/HornetQMessageConstants.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -1,32 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat 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.
- */
-
-package org.hornetq.api.jms;
-
-/**
- * Constants for HornetQ for property keys used for HornetQ specific extensions to JMS
- *
- * @author Tim Fox
- *
- *
- */
-public class HornetQMessageConstants
-{
- public static final String JMS_HORNETQ_INPUT_STREAM = "JMS_HQ_InputStream";
-
- public static final String JMS_HORNETQ_OUTPUT_STREAM = "JMS_HQ_OutputStream";
-
- public static final String JMS_HORNETQ_SAVE_STREAM = "JMS_HQ_SaveStream";
-
- public static final String JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST = "HQ_BRIDGE_MSG_ID_LIST";
-}
Modified: trunk/src/main/org/hornetq/core/transaction/impl/ResourceManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/transaction/impl/ResourceManagerImpl.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/src/main/org/hornetq/core/transaction/impl/ResourceManagerImpl.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -212,7 +212,7 @@
return xids;
}
- class TxTimeoutHandler implements Runnable
+ private class TxTimeoutHandler implements Runnable
{
private boolean closed = false;
Modified: trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -41,7 +41,7 @@
import javax.transaction.xa.XAResource;
import org.hornetq.api.core.client.ClientSession;
-import org.hornetq.api.jms.HornetQMessageConstants;
+import org.hornetq.api.jms.HornetQJMSConstants;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.server.HornetQComponent;
import org.hornetq.jms.bridge.ConnectionFactoryFactory;
@@ -1639,7 +1639,7 @@
String val = null;
- val = msg.getStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
+ val = msg.getStringProperty(HornetQJMSConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
if (val == null)
{
@@ -1654,7 +1654,7 @@
val = sb.toString();
}
- msg.setStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST, val);
+ msg.setStringProperty(HornetQJMSConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST, val);
}
/*
Modified: trunk/src/main/org/hornetq/jms/client/HornetQConnection.java
===================================================================
--- trunk/src/main/org/hornetq/jms/client/HornetQConnection.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/src/main/org/hornetq/jms/client/HornetQConnection.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -44,6 +44,7 @@
import org.hornetq.api.core.client.ClientSession;
import org.hornetq.api.core.client.ClientSessionFactory;
import org.hornetq.api.core.client.SessionFailureListener;
+import org.hornetq.api.jms.HornetQJMSConstants;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.version.Version;
import org.hornetq.utils.UUIDGenerator;
@@ -508,7 +509,7 @@
sessionFactory.isPreAcknowledge(),
transactionBatchSize);
}
- else if (acknowledgeMode == HornetQSession.PRE_ACKNOWLEDGE)
+ else if (acknowledgeMode == HornetQJMSConstants.PRE_ACKNOWLEDGE)
{
session = sessionFactory.createSession(username, password, isXA, true, false, true, transactionBatchSize);
}
Modified: trunk/src/main/org/hornetq/jms/client/HornetQMessage.java
===================================================================
--- trunk/src/main/org/hornetq/jms/client/HornetQMessage.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/src/main/org/hornetq/jms/client/HornetQMessage.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -39,7 +39,7 @@
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.client.ClientMessage;
import org.hornetq.api.core.client.ClientSession;
-import org.hornetq.api.jms.HornetQMessageConstants;
+import org.hornetq.api.jms.HornetQJMSConstants;
import org.hornetq.core.client.impl.ClientMessageImpl;
import org.hornetq.core.logging.Logger;
@@ -788,13 +788,13 @@
public void setObjectProperty(final String name, final Object value) throws JMSException
{
- if (HornetQMessageConstants.JMS_HORNETQ_OUTPUT_STREAM.equals(name))
+ if (HornetQJMSConstants.JMS_HORNETQ_OUTPUT_STREAM.equals(name))
{
setOutputStream((OutputStream)value);
return;
}
- else if (HornetQMessageConstants.JMS_HORNETQ_SAVE_STREAM.equals(name))
+ else if (HornetQJMSConstants.JMS_HORNETQ_SAVE_STREAM.equals(name))
{
saveToOutputStream((OutputStream)value);
@@ -809,7 +809,7 @@
return;
}
- if (HornetQMessageConstants.JMS_HORNETQ_INPUT_STREAM.equals(name))
+ if (HornetQJMSConstants.JMS_HORNETQ_INPUT_STREAM.equals(name))
{
setInputStream((InputStream)value);
@@ -977,11 +977,11 @@
{
if (propertiesReadOnly)
{
- if (name.equals(HornetQMessageConstants.JMS_HORNETQ_INPUT_STREAM))
+ if (name.equals(HornetQJMSConstants.JMS_HORNETQ_INPUT_STREAM))
{
- throw new MessageNotWriteableException("You cannot set the Input Stream on received messages. Did you mean " + HornetQMessageConstants.JMS_HORNETQ_OUTPUT_STREAM +
+ throw new MessageNotWriteableException("You cannot set the Input Stream on received messages. Did you mean " + HornetQJMSConstants.JMS_HORNETQ_OUTPUT_STREAM +
" or " +
- HornetQMessageConstants.JMS_HORNETQ_SAVE_STREAM +
+ HornetQJMSConstants.JMS_HORNETQ_SAVE_STREAM +
"?");
}
else
Modified: trunk/src/main/org/hornetq/jms/client/HornetQSession.java
===================================================================
--- trunk/src/main/org/hornetq/jms/client/HornetQSession.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/src/main/org/hornetq/jms/client/HornetQSession.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -86,8 +86,6 @@
public static final int TYPE_TOPIC_SESSION = 2;
- public static final int PRE_ACKNOWLEDGE = 100;
-
private static SimpleString REJECTING_FILTER = new SimpleString("_HQX=-1");
// Static --------------------------------------------------------
Modified: trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -31,7 +31,7 @@
import junit.framework.Assert;
-import org.hornetq.api.jms.HornetQMessageConstants;
+import org.hornetq.api.jms.HornetQJMSConstants;
import org.hornetq.core.logging.Logger;
import org.hornetq.jms.bridge.QualityOfServiceMode;
import org.hornetq.jms.bridge.impl.JMSBridgeImpl;
@@ -959,7 +959,7 @@
if (on)
{
- String header = tm.getStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
+ String header = tm.getStringProperty(HornetQJMSConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
Assert.assertNotNull(header);
@@ -1002,7 +1002,7 @@
Assert.assertEquals("mygroup543", tm.getStringProperty("JMSXGroupID"));
- String header = tm.getStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
+ String header = tm.getStringProperty(HornetQJMSConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
Assert.assertNotNull(header);
@@ -1299,7 +1299,7 @@
Assert.assertTrue(tm.getBooleanProperty("cheese"));
Assert.assertEquals(23, tm.getIntProperty("Sausages"));
- String header = tm.getStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
+ String header = tm.getStringProperty(HornetQJMSConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
Assert.assertNull(header);
}
Modified: trunk/tests/src/org/hornetq/tests/integration/jms/client/ReSendLargeMessageTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/client/ReSendLargeMessageTest.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/client/ReSendLargeMessageTest.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -33,7 +33,7 @@
import org.hornetq.api.core.Pair;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.core.client.HornetQClient;
-import org.hornetq.api.jms.HornetQMessageConstants;
+import org.hornetq.api.jms.HornetQJMSConstants;
import org.hornetq.tests.util.JMSTestBase;
import org.hornetq.tests.util.UnitTestCase;
@@ -72,7 +72,7 @@
for (int i = 0; i < 10; i++)
{
BytesMessage bm = sess.createBytesMessage();
- bm.setObjectProperty(HornetQMessageConstants.JMS_HORNETQ_INPUT_STREAM,
+ bm.setObjectProperty(HornetQJMSConstants.JMS_HORNETQ_INPUT_STREAM,
UnitTestCase.createFakeLargeStream(2 * HornetQClient.DEFAULT_MIN_LARGE_MESSAGE_SIZE));
msgs.add(bm);
Modified: trunk/tests/src/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java 2010-01-07 17:07:05 UTC (rev 8771)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java 2010-01-07 17:32:07 UTC (rev 8772)
@@ -26,11 +26,11 @@
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.jms.HornetQJMSClient;
+import org.hornetq.api.jms.HornetQJMSConstants;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.server.Queue;
import org.hornetq.jms.client.HornetQConnectionFactory;
import org.hornetq.jms.client.HornetQQueue;
-import org.hornetq.jms.client.HornetQSession;
import org.hornetq.tests.util.JMSTestBase;
/**
@@ -64,7 +64,7 @@
public void testPreCommitAcks() throws Exception
{
Connection conn = cf.createConnection();
- Session session = conn.createSession(false, HornetQSession.PRE_ACKNOWLEDGE);
+ Session session = conn.createSession(false, HornetQJMSConstants.PRE_ACKNOWLEDGE);
jBossQueue = (HornetQQueue) HornetQJMSClient.createQueue(ConsumerTest.Q_NAME);
MessageProducer producer = session.createProducer(jBossQueue);
MessageConsumer consumer = session.createConsumer(jBossQueue);
@@ -121,7 +121,7 @@
ConsumerTest.log.info("starting test");
Connection conn = cf.createConnection();
- Session session = conn.createSession(false, HornetQSession.PRE_ACKNOWLEDGE);
+ Session session = conn.createSession(false, HornetQJMSConstants.PRE_ACKNOWLEDGE);
jBossQueue = (HornetQQueue) HornetQJMSClient.createQueue(ConsumerTest.Q_NAME);
MessageProducer producer = session.createProducer(jBossQueue);
MessageConsumer consumer = session.createConsumer(jBossQueue);
14 years, 11 months
JBoss hornetq SVN: r8771 - trunk/docs/user-manual/en.
by do-not-reply@jboss.org
Author: timfox
Date: 2010-01-07 12:07:05 -0500 (Thu, 07 Jan 2010)
New Revision: 8771
Modified:
trunk/docs/user-manual/en/paging.xml
Log:
docs edits part 4
Modified: trunk/docs/user-manual/en/paging.xml
===================================================================
--- trunk/docs/user-manual/en/paging.xml 2010-01-07 16:24:23 UTC (rev 8770)
+++ trunk/docs/user-manual/en/paging.xml 2010-01-07 17:07:05 UTC (rev 8771)
@@ -25,6 +25,8 @@
they are needed, thus allowing massive queues with a low memory footprint.</para>
<para>HornetQ will start paging messages to disk, when the size of all messages in memory for an
address exceeds a configured maximum size.</para>
+ <para>By default, HornetQ does not page messages - this must be explicitly configured to
+ activate it.</para>
<section>
<title>Page Files</title>
<para>Messages are stored per address on the file system. Each address has an individual
@@ -73,6 +75,7 @@
</table>
</para>
</section>
+
<section id="paging.mode">
<title>Paging Mode</title>
<para>As soon as messages delivered to an address exceed the configured size, that address
@@ -118,9 +121,11 @@
</row>
<row>
<entry><literal>address-full-message-policy</literal></entry>
- <entry>This must be set to PAGE for paging to enable. If the value is PAGE then further messages will be paged to disk.
- If the value is DROP then further messages will be silently dropped.
- If the value is BLOCK then client message producers will block when they try and send further messages.</entry>
+ <entry>This must be set to PAGE for paging to enable. If the value
+ is PAGE then further messages will be paged to disk. If the
+ value is DROP then further messages will be silently dropped. If
+ the value is BLOCK then client message producers will block when
+ they try and send further messages.</entry>
<entry>PAGE</entry>
</row>
</tbody>
@@ -130,6 +135,19 @@
</section>
</section>
<section>
+ <title>Dropping messages</title>
+ <para>Instead of paging messages when the max size is reached, an address can also be configured to just drop messages when the address
+ is full.</para>
+ <para>To do this just set the <literal>address-full-policy</literal> to <literal>DROP</literal> in the address settings</para>
+ </section>
+ <section>
+ <title>Blocking producers</title>
+ <para>Instead of paging messages when the max size is reached, an address can also be configured to block producers from sending further
+ messages when the address is full, thus preventing the memory being exhausted on the server.</para>
+ <para>When memory is freed up on the server, producers will automatically unblock and be able to continue sending.</para>
+ <para>To do this just set the <literal>address-full-policy</literal> to <literal>BLOCK</literal> in the address settings</para>
+ </section>
+ <section>
<title>Caution with Addresses with Multiple Queues</title>
<para>When a message is routed to an address that has multiple queues bound to it, e.g. a
JMS subscription, there is only 1 copy of the message in memory. Each queue only deals
@@ -157,6 +175,37 @@
messages.</para>
</section>
<section>
+ <title>Paging and message selectors</title>
+ <note><para>Please note that message selectors will only operate on messages in memory. If you have a large amount of messages paged to disk and
+ a selector that only matches some of the paged messages, then those messages won't be consumed until the messages in memory have been consumed.
+ HornetQ does not scan through page files on disk to locate matching messages. To do this efficiently would mean implementing and managing indexes amongst other things.
+ Effectively we would be writing a relational database! This is not the primary role of a messaging system. If you find yourself using selectors which only
+ select small subsets of messages in very large queues which are too large to fit in memory at any one time, then you probably want a relational database
+ not a messaging system - you're effectively executing queries over tables.</para></note>
+ </section>
+ <section>
+ <title>Paging and browsers</title>
+ <note><para>Please note that message browsers only operate over messages in memory. They do not operate over messages paged to disk.
+ Messages are paged to disk <emphasis>before</emphasis> they are routed to any queues, so when they are paged, they are not in any queues, so
+ will not appear when browsing any queues.
+
+
+ </para></note>
+ </section>
+ <section>
+ <title>Paging and unacknowledged messages</title>
+ <note><para>
+ Please note that until messages are acknowledged they are still in memory on the server, so they contribute to the size of messages on
+ a particular address. If messages are paged to disk for an address, and are being consumed, they will be depaged from disk when enough
+ memory has been freed up in that address after messages have been consumed and acknowledged. However if messages are not acknowledged
+ then more messages will not be depaged since there is no free space in memory. In this case message consumption can appear to hang.
+ If not acknowledging explictly messages are acknowledged according to the <literal>ack-batch-size</literal> setting. Be careful not to set your paging
+ max size to a figure lower than ack-batch-size or your system may appear to hang!
+ </para></note>
+ </section>
+
+
+ <section>
<title>Example</title>
<para>See <xref linkend="examples.paging"/> for an example which shows how to use paging
with HornetQ.</para>
14 years, 11 months