Updated: March 28, 2025 1:54pm

Services

Multiple Windows services are the core of Retail Pro Prism. The following sections list the various services used by Prism and the settings available for those settings. Each service has a configuration file with an .ini extension. Directly editing the .ini files is discouraged except in certain cases by advanced users and certified technicians. Instead, make any needed configuration changes in Tech Toolkit Service Manager. Most of the .ini files for the services are in the \ProgramData\RetailPro\Server\Conf\ folder. 
The following Prism Services can be stopped from Tech Toolkit: Back Office Service, Common Service, License Agent Service, POS v1 Service, Replication Service, Resiliency Service, Scheduling Service
The entire Prism Stack can be restarted but not stopped.
Sample Prism Service Architecture:
prism services architecture

When changes to config settings take effect:

1.    All config settings for Prism services that do not pertain to Log settings, require a service restart to take effect, except as noted.
2.    Config changes for PrismScheduling and PrismTechToolkit services, other than thread counts, timeouts, and reconnect delay, take effect within 60 seconds of making the change.
3.    Edits to log config settings take effect immediately, without a service restart, with the exception of "Alternate Log Folder". Log folder changes require a restart of all "Retail Pro Prism" services to take effect.

List of Prism Services:

Service Description
Apache Every application that sends data across the Internet requires a web server to make the HTTP/S calls. To use Prism, the Apache service must be running. You can verify whether the service is running by launching Apache Monitor from the taskbar. When making configuration changes, if you need to reboot the service, be sure to stop the service, wait for it to shut down, then use the Start button to restart the service. Do not use the Restart button to restart the Apache service.
RabbitMQ The RabbitMQ service handles tasks related to RabbitMQ messaging and message queues. This service is found in C:\Program Files (x86)\erl9.3\erts-9.3\bin\erlsrv.exe. This service cannot be configured; however, you can start/stop the service as needed.
PrismBackOffice PrismBackOffice.exe facilitates operations related to inventory, adjustments, physical inventory and other back-office tasks. You can make api calls via the /api/backoffice path.
PrismCommonService The PrismCommon service facilitates operations that are used in different areas. An example is the call to get committed quantities.
PrismPOSV1Service

This service handles POS-related tasks, Physical Inventory and a few other inventory-related tasks. The POSv1Service handles the RPC Methods and REST Resources that are listed in the RPSRESTSERVICEMODULE area of the Prism API Explorer. This service has settings related to thread counts and timeouts that you can fine-tune. The purpose of these entries is to control how much memory is allocated to a given RPS instance. Since Prism has a 32 bit architecture, each instance is limited to a max of 2GB of memory. 

PrismResiliencyService This service facilitates the continued operation of central credit and central gift cards when the connection to the Centrals server goes down.  The PrismResiliencyServer.exe facilitates offline processing and sending of those offline transactions to the processor when the connection is restored.
PrismLicenseAgent The PrismLicenseAgent service tracks site/seat counts and synchronizes licensing.
PrismMQService

This service plays an important role in the replication of data between servers. You can configure PrismMQ with various options, including max number of senders/receivers and compression thresholds.

PrismMQPublisher PrismMQPublisher.exe publishes the message and adds it to the PRODUCER_CACHE and PRODUCER_CACHE_DESTINATION tables. The PRODUCER_CACHE table stores the message and the PRODUCER_CACHE_DESTINATION table stores the relational link to each subscriber (destination). 
PrismMQProducer PrismMQProducer.exe monitors the PRODUCER_CACHE and PRODUCER_CACHE_DESTINATION tables, and sends records it finds to the appropriate subscribers, placing the message on the appropriate RabbitMQ queue. PrismMQProducer.exe deletes the entry from the PRODUCER_CACHE_DESTINATION table once the message is published on the RabbitMQ queue for that specific destination. Once the message is delivered to each of the subscribers, PrismMQProducer.exe will delete the message contents from the PRODUCER_CACHE table. 
PrismMQConsumer PrismMQConsumer.exe monitors RabbitMQ and saves all received messages to the CONSUMER_CACHE table
PrismSchedulingService The Scheduling Service facilitates the running of tasks that you have defined in Tech Toolkit, as well as Prism built-in tasks (e.g. building customer history and subsidiary modeling). At the scheduled time, the service makes the necessary API calls to run the task(s). Tsks handled by the PrismSchedulingService include:
Customer History daily process
Customer History initialization process
Markdown processing
Subsidiary Modeling
Scheduling service housekeeping task (1x per day)
PrismTechToolkitService The PrismTechToolkitService facilitates operations like joining/leaving the enterprise and adding/removing subordinates.

PrismResiliencyService
The PrismResiliencyService enables retailers to continue to make central credit and central gift card transactions when the connection to the Centrals server goes down.  The PrismResiliencyServer.exe facilitates offline processing and sending of those offline transactions to the processor when the connection is restored. Settings for resiliency service. Note that the database type and location are taken from RPSLicensing.ini file.

Property Notes
DBRETRYSECONDS The number of seconds between checks to see if the connection to the Centrals server has been restored. Default = 10 seconds. This means that if the connection to the Centrals Server is lost, the PrismResiliencyService.exe will wait 10 seconds and then check if the Centrals server is available. If not available, the PrismResiliencyService.exe will wait another 10 seconds and then check again if the Centrals Server is available, etc.
DATABASECONNECTDELAY Number of seconds to wait before trying to connect to database (to prevent crashing Oracle during startup). Default = 30.
UDPPORTIN Keep default    8432    Incoming UDP port number for receiving commands. Used for centrals resiliency.
UDPPORTOUT Keep default    8433    Outgoing UDP port number for sending responses to commands. Used for centrals resiliency.

Prism Scheduling Service
This service coordinates running of the following predefined tasks: Customer History daily process, Customer History initialization process, Markdown processing, Subsidiary Modeling and Scheduling service housekeeping task (1x per day)
[SCHEDULER]

Property Possible Values Default Notes
DEFAULT_INTERVAL      
RUN TASKS ENABLED TRUE, FALSE   If True, scheduled tasks are run.
If False, no scheduled tasks will be run.
MAXALLOWEDTASKS     Determines the maximum number of tasks that can be chained together to run at one time.
RPSUSERNAME Encrypted username N/a Username.
RPSPASSWORD Encrypted password N/A Password for the specified username

PrismTechToolkitService
This service monitors system settings and services. You can view or edit the settings for the TechToolkit service in the Service Manager tool of Tech Toolkit, or by editing the PrismTechToolkit.ini file (located in …\ProgramData\RetailPro\Server\Conf folder).

Setting Description
HealthCheck Run Interval (seconds) This setting determines how often Prism health checks are run. Default=60 seconds. Currently only the Service Monitor health check is run and only if it is set to Enabled. 
Service Monitor Service Exclusions If there is a Prism service you do not want the Monitor to restart, enter its exact name (as shown in the Toolkit Service Manager listing) in the "Service Monitor-Service Exclusions" edit box. By default, all services are monitored.
Service Monitor Restart All Services If selected, all services are restarted automatically during a full Prism restart. Default = Enabled
Service Monitor Enabled The Service Monitor, when enabled, checks Prism services' status every 60 seconds and restarts any Prism-related service that has stopped or did not start. Default = Disabled
Thread Count Number of threads used for monitoring services.

PrismReplicationService (PrismMQService)
The PrismMQService has key settings related to data replication. See the PrismMQService topic for details.

PrismLicenseAgent
The PrismLicenseAgent service tracks site / seat counts and synchronizes licensing. When PrismLicenseAgent.exe starts, the current licensing information is loaded in memory and used to track site/seat counts. Some number of days before the 30-day synchronization deadline, PrismLicenseAgent.exe will synchronize licensing with its parent.
Configuration settings for PrismLicenseAgent.exe are stored in the PrismLicenseAgent.ini file. The PrismLicenseAgent.ini file is found in the C:\ProgramData\RetailPro\Server\Conf\ folder along with other service configuration files.
Here is information about a few key settings for PrismLicenseAgent.exe:

Setting Notes
SECURITYTHREADCNT Increasing the SECURITYTHREADCNT may help when many users are logging in and out.
You have to manually add the SECURITYTHREADCNT setting. 
Default: SECURITYTHREADCNT=10
REMOVEALLSESSIONSONSERVICESTART The default setting is False, maintaining all licensed seats as open connections (no change from the previous behavior).  
Changing this setting to True will clear all licensing sessions whenever the PrismLicenseAgent service is started (whether manually or because of a Windows reboot). The effect of setting this to True is that all sessions connected to this database will be expired and all seats released for re-use.  This could be useful if the PC reboots unexpectedly while sessions were in use.
Additionally changes were put into place that all sessions are always automatically cleared when installing the Prism Server component.

Starting and stopping Prism Services

Prism services should be started in the following order:

  1. RabbitMQ
  2. All Prism services
  3. Apache 

Oracle services may be started before or after those. In older versions of RP Prism, starting the Prism Scheduling Service last among the Prism services may prevent generation of broken service connection queues.
The order does not matter when stopping Apache, Rabbit, or Prism services. However, TNS Listener and Oracle RproODS are dependent upon Apache and the Prism Services. In other words, stopping the listener or RproODS will require stopping Apache and Prism services.