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:
- On the Store, open a web browser and try to connect to the Prism on the POA, ie. Http://Rpro-server.
- 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.
- Try to turn off the firewall on the POA and the Store
- 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.).
- 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.
- 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. Or
|
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.
|
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:
Then restart Prism MQ.
*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
Below Watermark
High Watermark reached * lowered watermark for demo.
|
Logged when the user selects "Execute" |