Best Practices for Joining the Enterprise in Retail Pro Prism

Overview

Joining the enterprise in a Retail Pro Prism environment is necessary for replication. Doing so accomplishes the following:

  • Creates remote connections on and for the POA
  • Sets a unique identity for the new system
  • Allows other systems in the enterprise know that the new system exists

This guide is based on issues we have been sent or encountered ourselves and should be used as the best practice for joining the enterprise.

 

How to join the enterprise

 

1. Test the connection

To test the connection:

  1. On the Store, open a web browser and try to connect to the Prism on the POA, ie. Http://Rpro-server.
  2. On the POA, open a web browser and try to connect to the Prism on the Store, ie. http://Store-Prism.
    • If either of these connections fail, STOP and fix the remote connection first.
  3. Try to turn off the firewall on the POA and the Store
  4. Check to see if there is any antivirus or malware software that might be blocking the connection and disable it (i.e. Avast, Trendmicro, MacAfee, Norton, etc.).
  5. Can you ping the Store from the POA by IP? Can you ping the Store from the POA by Hostname? If you can ping by IP but not by Hostname, you need an entry into the POA Host file, but make sure the store is using a static IP and that you are using a DNS server. The preferred solution is to use a DNS server.

If you cannot connect to the Store from the POA or the POA from the Store, you will need to work with the customer's IT team to resolve this before moving forward.

 

2. Name the Connection

Open the Prism TTK on the Store. Select "Toolkit" --> "Connection Manager." Select "Add." Give the connection a Name like "Store Prism."

Make sure you enter the local hostname for the Store. This is NOT the POA address. Entering the POA address can cause problems and will potentially necessitate reinstalling the whole environment.

Under connection type, select Rest. Enter the sysadmin user information and test the connection. Select OK. Select OK to close Connection Manager.

From the "Current Connection" drop down in the top right, select the "Store Prism" connection you just made.

Select the Enterprise Manager Icon and log in with the sysadmin account if the information is not saved.

Fill out the store information. DO NOT CHANGE Client Code. It must be set to RPRO. Set the Controller_no for the store (Store number). Set the Controller Name for the store (store name). Do not worry about setting the default Sub or Store at this point. Make sure to save your changes.

 

3. Join the enterprise

Select "Join the enterprise."

In the POA Address Field, enter the POA address. A few very important notes on this:

  • The POA address must match the name used to install the POA originally. So, if you are accessing the POA though a FQDN like Http://Rpro-Server.Domain.Com, you must use Rpro-Server.Domain.Com. You can end up with replication problems or be unable to join the enterprise if you used just the Hostname of Rpro-Server.
  1. The same goes for the IP. If you installed the POA as Rpro-Server, DO NOT join the enterprise using the IP for the POA server. Doing so will created duplicate entries in RabbitMQ and replication WILL NOT WORK. While hostname, IP, and FQDN all point to the same address, RabbitMQ treats each entry as a separate record and it WILL lead to conflicts. Overall, using IP is a bad idea for installing, joining the enterprise, and replication.

 

4. Validate the connection

Once you have entered all your POA information, select "Test." This will validate your connection. If the connection fails, please confirm you have a connection to the POA from the Store, and to the Store from the POA.

 

5. Initialize and create connections

Once the test succeeds, select "Execute" to initialize core resources and create the Prism connections.

 

6. Potential errors

You may run into errors during this process, such as Duplicate SID or that the controller already exits.

If you are getting a Duplicate SID error, in RIL TTK check the RPS.Controller table on the POA and look up the SID for the store you are trying to connect. Does it already exist, and does it have the same controller_no you are trying to use? If the controller number is different, you will need to change the controller number to match. Make sure to select "Save" after you entered you changes and then select "Attempt to rejoin the enterprise."

If you are getting an error about transport or socket errors, please verify the connection. You will be unable to join the enterprise if an initiation is already going on. Please make sure there are no active initiations before joining the enterprise.

 

 

Troubleshooting

Each step of Joining The Enterprise (JTE) is logged in the TTK log found in C:\ProgramData\RetailPro\Tech Toolkit\Logs.

Below are the steps with known troubleshooting points.

TTK Log step

Action

Known troubleshooting fixes

Triggers when

Load Connections From: C:\ProgramData\RetailPro\Tech Toolkit\Preferences\Connections.ini

These are the connections which can be created in TTK. This will grab those connections as possible POA's.

"Argument out of range" error when launching TTK. Rename the C:\Programdata\RetailPro\Techtoolkit\Preferences\ folder and launch TTK to generate new ini files.

 

2. "Invalid controller data" when launching TTK. This is due to controller record in the local database marked as archived (archived=1). Change the archived flag from 1 to 0 to resolve.

Loads when user selects "Join the enterprise"

Loading 1 connections.

 

Not able to open file due to UAC. Run TTK as admin.

Loads when user selects "Join the enterprise"

Capturing local records

 

 

Loads when user selects "Join the enterprise"

Loading local records

 

 

Loads when user selects "Join the enterprise"

Loaded local records

 

 

Loads when user selects "Join the enterprise"

Testing POA candidate

Checks for connection to entered POA.

 

Runs when user selects "Test"

Checking for self-referencing condition.

Checks for your local System in the POA field.

 

Runs when user selects "Test"

Checking for circular reference condition.

Checks to see if your POA is pointed at the local system as its POA.

POA circular

Or

 

POA bidirectional

Look at the RPS.Controller table on the POA. Look for possible circular references.

 

Select c.sid,c.controller_name,c.address, c.poa_controller_sid from RPS.controller c

Runs when user selects "Test"

Checking to see if the POA is online

Pings POA for status. Does not verify RabbitMQ connections.

!! ERROR !!    Enterprise Management    Error:HTTP/1.1 400 Bad Request

 

Local system cannot reach RabbitMQ.

Runs when user selects "Test"

Authenticating to the POA

Logs into POA using entered credentials

!! ERROR !!    Enterprise Management    Error:Authentication Error: HTTP/1.1 401 Unauthorized

Entered Username/Password did not work.

 

Verify credentials and retry

Runs when user selects "Test"

Checking the POA Version

Checks the Prism version on the POA. It must match your local system.

Make sure both the POA and Local system are on the same prism version. If they are, then log into Rabbit MQ and verify version.

 

RabbitMQ

Runs when user selects "Test"

Sampling POA Data

 

 

Runs when user selects "Test"

Loading remote records

Header

 

Runs when user selects "Test"

Capturing POA Tenant

Copy's POA tenant and Populates local data

 

Runs when user selects "Test"

Capturing POA Active Controller

Copies POA's controller record and populates local data

 

Runs when user selects "Test"

Capturing Live POA Controllers

Copies POA active controller records and populates local data

 

Runs when user selects "Test"

Capturing All POA Controllers

Copies rest of controller records

 

Runs when user selects "Test"

Capturing POA SBS

Copies Subsidiaries from POA

 

Runs when user selects "Test"

Capturing POA Stores

Copies Store from POA

 

Runs when user selects "Test"

Loaded remote records

Footer

 

Runs when user selects "Test"

Checking for Controller identity conflicts

Verifies Controller name or number is not being used

 

Runs when user selects "Test"

Bidirectional Initialization: More than 1 SBS or 2 Stores

 

 

Runs when user selects "Test" or after the user selects to claim this controller

Checking for Controller conflicts

Verifies Controller address

 

Runs when user selects "Test" or after user selects ok if existing data is found

Checking for SBS conflicts

Compares local subsidiary(S) against POA's subsidiary(S)

 

Runs when user selects "Test" or after user selects ok if existing data is found

Checking for Store conflicts

Compare local store(S) against POA's store(S)

 

Runs when user selects "Test" or after user selects ok if existing data is found

Conflicts accepted by user

 

!! ERROR !!    Enterprise Management    Error:Aborting. User declined to claim duplicate controller address.

 

User selected No.

If the user selects "continue" to the conflict found dialog

All Test Status: Passed

 

 

If all tests pass, this is logged

Joining the Enterprise

 

 

Logged when the user selects "Execute"

Checking POA for running initializations

Checks to see if the POA is already running initializations and checks to see if the initializations are maxed.

On the POA:
Edit/Increase C:\ProgramData\RetailPro\Server\Conf\PrismMQService.conf.

 

Then restart Prism MQ.


[PRISM]
INITSENDTHREADCNT=5

 

*Recommend to not increase past 10

Logged when the user selects "Execute"

Checking local for running initializations

Checks to see if the local system is already running initializations and checks to see if the initializations are maxed.

Let current initialization complete or cancel

Logged when the user selects "Execute"

Saving POA controller to local system

Transfers all POA controller records to local system

 

Logged when the user selects "Execute"

Saving local controller to POA system

Transfers all local controller records to POA system

 

Logged when the user selects "Execute"

Looking for existing Remote Connection

Checks to see if the local system already has a record for the POA

This can happen when the system has left the enterprise 

Logged when the user selects "Execute"

Creating CoreResources Profile on POA

Creates the replication profile for core resources

This may fail if there was an orphaned record from a previously joined enterprise

Logged when the user selects "Execute"

Creating CoreResources Profile on local system

Creates the replication profile for core resources

 

Logged when the user selects "Execute"

Creating Day To Day Queue on POA

Creates POA Queue for replication D2D

 

Logged when the user selects "Execute"

Creating Day To Day Queue on Local system

Creates Local Queue for replication D2D

 

Logged when the user selects "Execute"

Initialize from POA to local system

Uses core resource profile to initialize local with data from POA. If there is more than 1 SBS or more than 2 stores on the local system, then those get sent to the POA.

This step can have multiple problems resulting with an "Unable to connect to RabbitMQ" error.

 

Check the Firewall on the POA and local system, and any router between the two systems.

 

Verify ports are open as described in the this Knowledgebase article: https://my.retailpro.com/Support/Knowledgebase/?a=701

Verify the High water mark is not reached in Rabbit MQ on the POA

 

 Below Watermark

Below watermark

 

High Watermark reached * lowered                       watermark for demo.

Reached watermark

Restart RabbitMQ on both local and POA systems.

Logged when the user selects "Execute"

 

Published on Oct 5, 2020 in Best Practices, RabbitMQ

 

Find Another Article