This article provides some troubleshooting advice for common problems encountered with the Best Practice Messaging Service.
The Best Practice Messaging Service is used by Bp Comms and eOrdering to manage communications between Bp Premier and external gateways.
In this article:
Enable firewall access
Most of the configuration for this service is automatically set up when you install the upgrade. However, you may need to engage your practice's IT support to ensure that any network firewalls at your practice allow incoming and outgoing connections to and from the Best Practice Messaging Service.
The Best Practice Messaging Service is visible in the Windows Services screen.
If this service appears in the list, and you have enabled Bp Comms in Bp Premier Configuration, but messages are not being forwarded, you may need to check that your network firewall is allowing the Best Practice Message Service to communicate through TCP/IP ports.
If the firewall on the database server is set to block all incoming connections, see this Microsoft Support article on Network Ports Used by Message Queuing for guidance on setting Message Queue exceptions.
Warn users if the Message Queue cannot be contacted
When a user logs into Bp Premier, an automatic check is performed to ensure that the machine can contact the Message Queue. If the Message Queue cannot be contacted, an internal message is created and sent to the nominated users informing them that the machine Failed to Contact the Message Queue Processor.
In Orchid SP2, the Message Queue Contact Failure internal message notification has been improved to include the name/IP address of the affected machine.
- From the main screen of Bp Premier, select Setup > Configuration > Msg Queue tab.
- Tick Send a message to these users....
- Tick the users that you want to receive an internal Bp Premier message if the message service cannot be contacted.
- Click Save to save your configuration.
Delay the automatic check for Message Queue connectivity
In Orchid SP2, a new option in Setup > Configuration > General has been added to allow Practices to delay the automatic check for Message Queue connectivity that occurs after logging in to Bp Premier.
- From the main screen of Bp Premier, select Setup > Configuration > General tab.
- The Message Queue Check Delay is set at 10 seconds by default. If your Practice is experiencing issues with the automatic check for Message Queue connectivity completing too soon after logging into Bp Premier, resulting in erroneous Message Queue Contact Failure notifications, you can increase the Message Queue Check Delay value.
- Click Save.
Message Queues: Machine Name vs. IP Address
The Best Practice Messaging Service is deployed by default on your Bp Premier database server machine. When the Messaging Service starts for the first time, the location of the Messaging Service is updated to the server machine name, so clients will know where to send messages.
Best Practice Software recommends using the database server's machine name (hostname) rather than the IP address when configuring the Message Queue in Setup > Configuration > Msg Queue. Because the Message Queue requires the database server and all workstations to be able to resolve DNS addresses for some background traffic, using the IP address may mask any connectivity issues.
NOTE The database server's machine name cannot be more than 15 characters. When a machine name exceeds 15 characters, the Message Queue may fail to function correctly. It is advised that the machine name be reduced to less than 15 characters before scheduling a database server restart.
How do I locate the Database Server's Machine Name or IP Address?
Windows 10 users can locate the IP address and machine name of the Bp Premier server by following the instructions provided below; however, this information can also be obtained from your IT service provider.
Machine Name:
- From the Windows desktop Search bar in the bottom left, type 'system' and select the System Information App. Under System Summary, inspect the System Name field to obtain the Machine Name.
IP Address:
- From the Windows desktop Search bar in the bottom left, type 'cmd' and press enter to open a command prompt. Type 'ipconfig' to see details about the IP and network configuration for the computer. The machine's IP address is shown under the IPv4 Address.
Configure the Message Service Machine Name
If for some reason Bp Premier can not connect to your database server via machine name (for example, DNS issues on your network, or the machine name did not update correctly), you can manually configure the messaging service machine.
NOTE If your practice uses a DNS server, any machine connected to it must be able to resolve HOSTNAMES back to IP addresses for the queue to function.
- From the main screen of Bp Premier, select Setup > Configuration > Msg Queue tab.
- From the top list, select a queue.
- Click the Edit Machine Name button.
- Enter the machine name of the machine in which the messaging service is location.
- Click OK.
- Repeat step 2 to 5 for each queue in the list.
- Click Save.
NOTE Contact your IT technician if you are unsure how to obtain the machine name or IP address of your database server.
Can the Message Queues be contacted?
- From the Bp database server navigate to Setup > Configuration > Msg Queue and check that the queues can be contacted.
If the queues cannot be contacted:
- Is the Machine name for all queues the correct server name or IP address?
- If any queue displays a value in the Machine column that does not match the server machine name, select the queue from the list and click Edit Machine Name.
- In the pop-up that appears, enter the machine name or IP address of the Bp Premier server.
- Click OK and then Save.
Your IT service provider can assist you in identifying the machine name and IP address of the Bp Premier server; however, click here for information on how to find these properties on Windows 10.
Is the 'Best Practice Messaging Service' started on the server?
- From the Windows Desktop search bar, search for Services.
- Click the Services Desktop App.
- Find Best Practice Messaging Service in the list of services.
- Right-click Best Practice Messaging Service and click Start. If the Start option is not available, it is possible that the service has already started. For further troubleshooting information, refer to Unable to start the Best Practice Messaging Service on the Bp Premier server.
If the queues cannot be contacted from a client/terminal server:
-
Check that Message Queueing is enabled on the computer and Bp server (See Installing Message Queuing (MSMQ) - WCF | Microsoft Docs)
- MSMQ HTTP Support
- MSMQ Triggers
- Multicasting Support
- MSMQ DCOM Proxy
- MSMQ Active Directory Domain Services Integration
- Check that you can ping the server name which has been set in Setup > Configuration > Msg Queue. If this is set as a hostname, make sure that it resolves as the correct IP address in the ping results.
- Select the Windows flag in the bottom left, click the down arrow to view applications, and open the Command Prompt under Windows System. The Windows command prompt will appear.
- In the black command prompt box, type:
- ping <Bp server name>
- Press Enter.
- If the client\terminal server has been cloned from a generic image, the Queue Manager ID (QMId) will be the same between different clients. The QMId needs to be unique. This will cause only one client to work at a time and will randomly change which one works.
- Check if there’s a firewall in place on the Bp server or a hardware firewall. TCP port 1801 will need to be allowed through to the Bp server.
Note: When installing manually, do not enable the following components:
This should return your server's IP address. If your server's IP address is not returned, it could indicate a DNS issue. Contact your IT provider to resolve this.
The QMId can be found in the registry:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters\Machine Cache
A fix for the QMId is available through this Microsoft article.
If the queues can be contacted:
- Check the 'MessageQueue.log' file on the server for any errors
- If the following message is present, you’ll need to update the logon credentials for the 'Best Practice Messaging Service' on the server to an account that has access to the paths set for eOrdering:
<Server Name> 2022-07-20 09:10:08,059 [41] ERROR - Error in process of eOrderingMessageHandler System.Exception: Failed to create directory \\SharedComputer\Pathology\eOrders when saving eOrderLog record 100 to file ---> System.UnauthorizedAccessException: Access to the path '\\SharedComputer\Pathology\eOrders' is denied.
Unable to start the Best Practice Messaging Service on the Bp Premier server
- Check that the correct server name or IP address is entered into Bp Premier in Setup > Configuration > Msg Queue.
- Check the security permissions on the Bp Premier server against each of the relevant Bp queues.
- Open Computer Management from the Windows Start menu
- Expand Services and Applications and select Message Queuing > Private Queues
- Right-click each of the queues starting with either BHC or Bp and select Properties
- In the Properties window, select the Security tab
- Check that security permissions have been set to allow access for all the queues.
NOTE If you’ve changed the log on account for the Best Practice Messaging Service, you’ll need to ensure that the account that is in use for the Service also has access to the messaging queues.
Does the practice have a Domain Controller on your network?
During the Message Queue troubleshooting process, Bp Premier Support observed that if the Domain Controller administrator user does not have control over the private queues, the Message Queue service cannot always be contacted by Domain users.
Perform the following steps on the database server to provide the Domain Controller User full control over each Message queuing private queue:
- Right-click on the Start button on the taskbar. Alternatively, press Windows + X keys from the keyboard.
- In the menu that appears, select Computer Management.
- Expand Services and Applications and select Message Queuing > Private Queues
- Right-click each of the queues starting with either BHC or Bp and select Properties
- In the Properties window, select the Security tab
- Click Add.
- In the Enter the object names to select textbox, enter the name of the user or group (e.g., Domain Controller User) that will have access to the folder. Click OK.
- In the Group or user name section, select the user name or group for whom you want to set permissions.
- In the Permissions section, tick the Full Control check box to set the permission level.
- Click Apply
- Click Okay
- The new permissions will be applied to the folder.
- Complete steps 4 to 11 for each of the folders listed in Private Queues.
NOTE The user group Everyone does not include any Domain users.
Has there been any network changes, or do you use a VPN?
If there is a network change, such as connecting to a VPN or changing the connection method on the database server, the Message Queuing must be restarted before the changes take effect.
- From the Windows Desktop search bar, search for Services.
- Click the Services Desktop App.
- Scroll down the list of services until you see services prefixed with Message Queuing.
- Right-click Message Queuing and click Restart.
Is DTC running on all client machines and the database server?
In the event of system, process, or communication problems, the Distributed Transaction Coordinator (DTC) service ensures that transactions are completed successfully.
The Distributed Transaction Coordinator (DTC) service must be running on all client machines and the database server.
- From the Windows Desktop search bar, search for Services.
- Click the Services Desktop App.
- Scroll down the list of services until you see services prefixed with Distributed Transaction Coordinator.
- Right-click Message Queuing and click Start.
DTC must be allowed to work through any internal firewalls. Visit this Microsoft Support article Configure Microsoft Distributed Transaction Coordinator (DTC) to operate through a firewall for more information.
Related topics
Last updated: 8 November 2023.