QBO Queue Serivce Configuration

posted Dec 13, 2012, 2:06 PM by Greg Kent   [ updated Apr 10, 2013, 9:50 AM by Eric Patrick ]
Queue Service can run side by side with Event Service MSMQ. 

The following items / steps need to be confirmed as part of setting up Queue Service in a new QBO 3 environment:

Ensure Message Queue Services are installed on Machine

  • Windows 2008 - Server Manager-> Features -> Message Queueing -> Message Queue Services (check) -> Install
Install Queue Service

  • Download latest qbo.QueueService.msi from {SourceRoot}qbo v3/Installation. As of the blog post date, this is 1.04
  • Install MSI. Ensure during install that "Everyone" option is selected
  • Modify C:\Program Files (x86)\Quandis\Qbo Queue Service\QueueService.exe.config:
    • QueueSource ConfigFile must point to QBO v3 web.config

Retrofit QBO v3 install if necessary

  • Ensure latest modules are installed:
    • qbo.Application / qbo.AppliationWeb
    • qbo.Logging / qbo.LoggingWeb
    • qbo.Queue.MSMQ - MessageQueue
    • qbo.Queue.ObjectQueue - ObjectQueue based Queues
    • qbo.Queue.MSSQL (Optional) - MSSQL Service Broker
  • Ensure ObjectQueue.sql, QueueLog.sql tables scripts have been run in target database. They can be obtained from qbo v2 Core/qbo.Database.Application/Tables
  • web.config / config entries (web.config has working version of config that can be code compared)
    • Ensure section references to Queuing, ObjectQueue, QueueLog, QueueScheduling exist in web.config
    • Ensure membership section has fully qualified providers for type attribute: type="qbo.Security.Providers.QboMembershipProvider, qbo.Security" in web.config
    • Ensure logging categorySources exists for QueueLogging:
<add switchValue="All" name="QueueSuccess">
        <listeners>
          <add name="QueueLog" />
        </listeners>
      </add>
      <add switchValue="All" name="QueueFailure">
        <listeners>
          <add name="QueueLog" />
        </listeners>
      </add>
      <add switchValue="All" name="QueueRetry">
        <listeners>
          <add name="QueueLog" />
        </listeners>
      </add>
      <add switchValue="All" name="QueueDebug">
        <listeners>
          <add name="QueueLog" />
        </listeners>
      </add>

    • Ensure logging listener exists for QueueLog
<add name="QueueLog" type="qbo.Logging.QueueLogTraceListener, qbo.Logging" listenerDataType="qbo.Logging.QueueLogTraceListenerData, qbo.Logging" formatter="Text Formatter" />
    • Ensure latest Queuing.config is deployed

Initial Testing of Queuing/QueueService
  • Navigate to /Application/Queue.ashx (there should be no errors)
  • All queues should be selected which brings up an edit panel. Ensure drop downs in edit panels contain values. If this does not work, begin troubleshooting
  • In a new tab, navigate to another module (eg. /LoanSelect.ashx/Summary?LoanID=1). Queue this operation: manually navigate to /LoanSelect.ashx/Queue/Summary?LoanID=1 . Operation doesn't really do much but proves wiring works.
  • "Default Queue" on /Application/Queue.ashx should now reflect newly queued item
  • Start Queue Service
  • Queue another item manually
  • Check /Logging/QueueLog.ashx
  • If item is not successfully logged, stop service and begin troubleshooting

Comments