Message Router Configuration

Each Responder service has its own internal message router. To run message routing as an external process, you can disable the internal message router on a service and point it to the external message router. If you have a single business server with one set of message queues, the external message router service is not necessary. Before continuing, here are a few terms used when describing the scenarios below:

  • Primary Server: This is the Responder business server that hosts the message queues that are accessed by the client machines. Every Responder set-up must have a primary server. Responder Data Services must be running on the primary server as well as any secondary servers.

  • Secondary Server: In some cases, a single business server may not be enough. You may set up additional business servers that run the Responder business services (e.g., Data Services, etc.) to provide additional capacity. In the second scenario below, we'll refer to these additional business servers as secondary servers. Responder Server on a secondary server is configured in the same manner as on the primary server.

  • Internal Message Router: Each Responder service (Data Services, Archive Services, Line Display Services, Prediction Services) contains an internal message router that transmits client requests to the message queues for processing. A service on a separate server can access this internal message router to process messages.

  • External Message Router: A message router may be run externally from the Responder service. This allows the message queues on the primary server to forward messages to the message queues on the secondary server(s) to evenly distribute the workload.

When run externally, the message router is a business service hosted by the Responder Windows Service. It provides support for scaling out Responder by adding additional computers to run the Responder business services (i.e., Data Services, Prediction Services, Line Display Services, and Archive Services). The message router works around the limitations of transactional queues.

IMPORTANT: When using an external message router, make sure to start the Responder Windows Service that contains this external message router before starting the Responder Windows Service on any other Responder business server.

This page discusses two ways you can configure to use multiple instances of Data Services (or Prediction Services, Archive Services) on multiple machines. Implement the scenario that best suits your needs. In the first scenario, the external message router resides on a server of its own. In the second scenario, the secondary data services uses the message router on the primary server. This message router can be internal or external.

NOTE: These scenarios discuss Data Services, but the same concepts apply to Prediction Services, Line Display Services, and Archive Services.

Message Router on External Server

In this scenario, the message router is run as an external process on its own server. In this case the internal message router would need to be disabled on all Responder servers.

Follow these steps to install the external message router and configure Data Services on your Responder servers to use the external message router process. All machines, including the message router server, should have Responder Server installed.

  1. On the message router server, ensure that the Responder Windows Service is not running.
  2. Locate the batch script file. It is installed in the following location: Responder\Developer Resources\Implementation Scripts\Config\Optional Config\AddMessageRouter.bat.
  3. Double-click AddMessageRouter.bat to execute it.
  4. Start the Responder Windows Service.
  5. Open the Responder Service Configuration browser (link in the Start menu). The Message Router tab has been added to your Responder Windows Service.
  6. By default, the Arguments have been set so that the message router forwards messages for all Responder business services. You can modify the Arguments field if you're running only one business service. The example below has the Message Router forward messages only for Data Services.
       -service:rxserver
  7. Once you've set the Arguments, set the Count field to 3 and click Apply. This starts the message router.
    NOTE: We recommend three instances of the message router. A build-up of messages in the request queues indicates that you may need additional message router instances.
  8. Be sure to check the tabs for the other services to ensure the Arguments and Count properties are set correctly. When the batch script is executed to add the Message Router tab, the data on the other tabs may revert to the defaults. Because you are running only message router on this particular server, the Count field on all other tabs should be set to 0.

    The next steps disable the internal message router process on the primary and secondary servers and instruct these servers to use the external message router. Repeat these steps for the primary server and each secondary server.

  9. Ensure that the Responder Windows Service is not running.
  10. Browse to and open Miner.Responder.DataServices.exe.config. This file may be edited in a text editor application such as Notepad.
    IMPORTANT: Do not edit XML files using a word processing program such as WordPad or Microsoft Word as it may corrupt your configuration file.
  11. Look for the <wellknown> tags (within the <client> tags) and modify these so the Responder server knows where to find the external Message Router. By default, the url tag points to the localhost using a period (.). For example: "OS:.\private$\RxPrediction/PredictionServices.rem"

    Replace the period with the name of the Message Router server.

    <client>
    <wellknown type="Miner.Responder.Shared.IPredictionServices, Miner.Responder.Shared" url="msmq://FormatName:DIRECT=OS:PrimaryServerName\private$\RxPrediction/PredictionServices.rem" />
    <wellknown type="Miner.Responder.Shared.IArchiveServices, Miner.Responder.Shared" url="msmq://FormatName:DIRECT=OS:PrimaryServerName\private$\RxArchive/ArchiveServices.rem" />
    <wellknown type="Miner.Responder.Shared.ILineDisplayService, Miner.Responder.Shared" url="msmq://FormatName:DIRECT=OS:PrimaryServerName\private$\LineDisplayServices/LineDisplayServices.rem" />
    </client>
    
  12. Next, look for the <channel> tag. You will need to add a "router" attribute to the <channel> tag.

    This is how it appears by default:

         <channels>
              <channel ref="msmq" isServer="true" />
            </channels>
       
  13. Modify the XML to add the router attribute. Replace "MessageRouterServerName" with the name of your message router server.
    <channels>
    <channel ref="msmq" isServer="true" router="FormatName:DIRECT=OS:MessageRouterServerName" />
    </channels>
    
  14. Save and close Miner.Responder.DataServices.exe.config.
  15. Make the same changes to the appropriate configuration files if the Responder server is running Prediction, Line Display, and/or Archive Services.
    • Prediction: modify Miner.Responder.PredictionServices.exe.config

    • Line Display: modify Miner.Responder.LineDisplayService.exe.config

    • Archive Services: modify Miner.Responder.ArchiveServices.exe.config

  16. Start the Responder Windows Service.
  17. Open the Responder Service Configuration browser (link in the Start menu) and start the necessary business services (Data Services, Prediction, etc.).

Message Router as Internal Process

In this scenario, the primary server hosts the message router either as an internal or external process. While you may install the message router as an external process on the primary server, there's no real reason to do this. You can just as easily instruct the secondary servers to use the message router on the primary server when it's run as an internal process.

The steps below assume the message router is an internal process on the primary server. To run the message router as an external process, perform Steps 1-8 above on the primary server (instead of the message router server), then follow the steps below.

Repeat the following steps on all secondary servers.

  1. Ensure that the Responder Windows Service is not running on the secondary server.
  2. Browse to and open Miner.Responder.DataServices.exe.config. This file may be edited in an application such as Notepad.
  3. Look for the <wellknown> tags (within the <client> tags) and modify these so the secondary machine knows where to find the primary machine on which the Message Router functionality resides. By default, the url tag points to the localhost using a period (.). For example: "OS:.\private$\RxPrediction/PredictionServices.rem"

    Replace the period with the name of the primary server.

    <client>
    <wellknown type="Miner.Responder.Shared.IPredictionServices, Miner.Responder.Shared" url="msmq://FormatName:DIRECT=OS:PrimaryServerName\private$\RxPrediction/PredictionServices.rem"/>
    <wellknown type="Miner.Responder.Shared.IArchiveServices, Miner.Responder.Shared" url="msmq://FormatName:DIRECT=OS:PrimaryServerName\private$\RxArchive/ArchiveServices.rem"/>
    <wellknown type="Miner.Responder.Shared.ILineDisplayService, Miner.Responder.Shared" url="msmq://FormatName:DIRECT=OS:PrimaryServerName\private$\LineDisplayServices/LineDisplayServices.rem" />
    </client>
    
  4. Next, look for the <channel> tag. You will need to add a "router" attribute to the <channel> tag.

    This is how it appears by default:

         <channels>
              <channel ref="msmq" isServer="true" />
            </channels>
           
    

    Modify the XML to add the router attribute. Replace "PrimaryServerName" with the name of your Primary server.

    <channels>
    <channel ref="msmq" isServer="true" router="FormatName:DIRECT=OS:PrimaryServerName" />
    </channels>
    
  5. Save and close Miner.Responder.DataServices.exe.config.
  6. Make the same changes to the appropriate configuration files if the secondary server is running Prediction, Line Display, and/or Archive Services
    • Prediction: modify Miner.Responder.PredictionServices.exe.config

    • Line Display: modify Miner.Responder.LineDisplayService.exe.config

    • Archive Services: modify Miner.Responder.ArchiveServices.exe.config

  7. Start the Responder Windows Service on the Secondary server.
  8. Open the Responder Service Configuration browser (link in the Start menu) and start the necessary business services (Data Services, Prediction, etc.).
QR code for this page

Was this helpful?