make explicit reference to example directories for each quickstart.
This commit is contained in:
@@ -16,7 +16,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
-->
|
||||
<chapter xml:id="msmq-quickstart" xmlns="http://docbook.org/ns/docbook" version="5">
|
||||
<chapter version="5" xml:id="msmq-quickstart"
|
||||
xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:ns6="http://www.w3.org/1999/xlink"
|
||||
xmlns:ns5="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ns4="http://www.w3.org/2000/svg"
|
||||
xmlns:ns3="http://www.w3.org/1998/Math/MathML"
|
||||
xmlns:ns="http://docbook.org/ns/docbook">
|
||||
<title>MSMQ QuickStart</title>
|
||||
|
||||
<section>
|
||||
@@ -27,11 +33,17 @@
|
||||
follows the same basic approach as in the <link
|
||||
linkend="nms-quickstart">NMS QuickStart</link> but is adapted as need for
|
||||
use with MSMQ. Please read the introduction in that chapter to get an
|
||||
overview of the system. </para>
|
||||
overview of the system.</para>
|
||||
|
||||
<para>When there is direct overlap in functionality between the MSMQ and
|
||||
NMS quickstart a reference to the appropriate section in the NMS
|
||||
QuickStart documentation is given.</para>
|
||||
|
||||
<note>
|
||||
<para>To follow this MSMQ QuickStart load the solution file found in the
|
||||
directory
|
||||
<literal><spring-install-dir>\examples\Spring\Spring.MsmqQuickStart</literal></para>
|
||||
</note>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
@@ -39,20 +51,18 @@
|
||||
|
||||
<para>To communicate between th client and server a pair of queues will be
|
||||
used. Messages sent from the client to the server will use the
|
||||
transactional queue named
|
||||
<literal>.\Private$\request.txqueue</literal>. Messages sent from the
|
||||
server to the client will use the transactional queue
|
||||
<literal>.\Private$\response.joe.txqueue</literal>. The queue for
|
||||
transactional queue named <literal>.\Private$\request.txqueue</literal>.
|
||||
Messages sent from the server to the client will use the transactional
|
||||
queue <literal>.\Private$\response.joe.txqueue</literal>. The queue for
|
||||
messages that cannot be processed, so called 'poison messages' will be
|
||||
sent to the queue <literal>.\Private$\dead.queue</literal>. You can
|
||||
create these queues using the computer management administration console.
|
||||
Private queues are used to simplify the application setup
|
||||
requirements.</para>
|
||||
sent to the queue <literal>.\Private$\dead.queue</literal>. You can create
|
||||
these queues using the computer management administration console. Private
|
||||
queues are used to simplify the application setup requirements.</para>
|
||||
|
||||
<para>Since MSMQ does not natively support the publish-subscribe messaging
|
||||
style as in other messaging systems, Apache MQ, IBM Websphere MQ, TIBCO
|
||||
EMS, the market data information is sent on the same queue as the
|
||||
responses from the server to the client for trade requests.. </para>
|
||||
responses from the server to the client for trade requests..</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
@@ -112,10 +122,10 @@
|
||||
<title>Messaging Infrastructure</title>
|
||||
|
||||
<para>The implementations of the gateway interfaces inherit from Spring's
|
||||
helper class <literal>MessageQueueGatewaySupport</literal> in order to
|
||||
get easy access to a <literal>MessageQueueTemplate</literal> for
|
||||
sending. The implementation of the <literal>IStockService</literal>
|
||||
interface is shown below</para>
|
||||
helper class <literal>MessageQueueGatewaySupport</literal> in order to get
|
||||
easy access to a <literal>MessageQueueTemplate</literal> for sending. The
|
||||
implementation of the <literal>IStockService</literal> interface is shown
|
||||
below</para>
|
||||
|
||||
<programlisting language="csharp">public class <classname>MsmqStockServiceGateway</classname> : <classname>MessageQueueGatewaySupport</classname>, <classname>IStockService</classname>
|
||||
{
|
||||
@@ -145,17 +155,16 @@
|
||||
|
||||
}</programlisting>
|
||||
|
||||
<para>The <literal>Send</literal> method is using
|
||||
MessageQueueTemplate's <literal>ConvertAndSend(object obj,
|
||||
MessagePostProcessorDelegate messagePostProcessorDelegate)</literal>
|
||||
method. The anonymous delegate allows you to modify the message
|
||||
properties, such as ResponseQueue and AppSpecific after the message has
|
||||
been converted from an object but before it has been sent. The use of an
|
||||
anonymous delegate allows makes it very easy to apply any post processing
|
||||
logic to the converted message.</para>
|
||||
<para>The <literal>Send</literal> method is using MessageQueueTemplate's
|
||||
<literal>ConvertAndSend(object obj, MessagePostProcessorDelegate
|
||||
messagePostProcessorDelegate)</literal> method. The anonymous delegate
|
||||
allows you to modify the message properties, such as ResponseQueue and
|
||||
AppSpecific after the message has been converted from an object but before
|
||||
it has been sent. The use of an anonymous delegate allows makes it very
|
||||
easy to apply any post processing logic to the converted message.</para>
|
||||
|
||||
<para>The configuration for <literal>MsmqStockServiceGateway</literal>
|
||||
and all its dependencies is shown below, highlighting important dependency
|
||||
<para>The configuration for <literal>MsmqStockServiceGateway</literal> and
|
||||
all its dependencies is shown below, highlighting important dependency
|
||||
links.</para>
|
||||
|
||||
<programlisting language="myxml"><object name="stockServiceGateway" type="Spring.MsmqQuickStart.Client.Gateways.MsmqStockServiceGateway, Spring.MsmqQuickStart.Client">
|
||||
@@ -190,9 +199,9 @@
|
||||
|
||||
<para>Since the client also needs to listen to incoming messages on the
|
||||
responseTxQueue, a
|
||||
<literal>TransactionalMessageListenerContainer</literal> is
|
||||
configured. The configuration for the message listener container and all
|
||||
its dependencies is shown below, highlighting important dependency
|
||||
<literal>TransactionalMessageListenerContainer</literal> is configured.
|
||||
The configuration for the message listener container and all its
|
||||
dependencies is shown below, highlighting important dependency
|
||||
links.</para>
|
||||
|
||||
<programlisting language="myxml"><!-- MSMQ Transaction Manager -->
|
||||
@@ -203,7 +212,8 @@
|
||||
<property name="MessageQueueObjectName" value="responseTxQueue"/>
|
||||
<property name="PlatformTransactionManager" ref="messageQueueTransactionManager"/>
|
||||
<property name="MessageListener" ref="<emphasis role="bold">messageListenerAdapter</emphasis>"/>
|
||||
<property name="MessageTransactionExceptionHandler" ref="<emphasis role="bold">sendToQueueExceptionHandler</emphasis>"/>
|
||||
<property name="MessageTransactionExceptionHandler" ref="<emphasis
|
||||
role="bold">sendToQueueExceptionHandler</emphasis>"/>
|
||||
|
||||
</object>
|
||||
|
||||
@@ -226,12 +236,12 @@
|
||||
<para>A similar configuration is used on the server to configure the class
|
||||
<literal>Spring.MsmqQuickStart.Server.Gateways.MarketDataServiceGateway
|
||||
</literal>that implements the <literal>IMarketDataService</literal>
|
||||
interface and a
|
||||
<literal>TransactionalMessageListenerContainer</literal> to process
|
||||
messages on the requestTxQueue. You can increase the number of processing
|
||||
thread in the <literal>TransactionalMessageListenerContainer</literal>
|
||||
by setting the property <literal>MaxConcurrentListeners</literal>, the
|
||||
default value is 1.</para>
|
||||
interface and a <literal>TransactionalMessageListenerContainer</literal>
|
||||
to process messages on the requestTxQueue. You can increase the number of
|
||||
processing thread in the
|
||||
<literal>TransactionalMessageListenerContainer</literal> by setting the
|
||||
property <literal>MaxConcurrentListeners</literal>, the default value is
|
||||
1.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
@@ -247,10 +257,10 @@
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="images/nms-quickstart-gui.png" />
|
||||
<imagedata fileref="images/nms-quickstart-gui.png"></imagedata>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
<para></para>
|
||||
</section>
|
||||
</chapter>
|
||||
</chapter>
|
||||
|
||||
Reference in New Issue
Block a user