Caching
When replicating messages from one system to another (i.e. from "Producer" of messages to "Consumer" of messages), Prism caches messages to prevent bottlenecks. Prism uses two special tables to perform caching: PRODUCER_CACHE on the sending side and CONSUMER_CACHE on the receiving side.
The following modules work together to cache replication messages:
Program | Description |
---|---|
PrismMQ.exe | Previously, PrismMQ.exe was the only module used for replication. Now, PrismMQ.exe still runs as a service and in the background launches the PrimsMQProducer.exe and PrimsMQConsumer.exe processes. When you stop PrimsMQ.exe or kill it in task manager, PrimsMQProducer.exe and PrimsMQConsumer.exe are also killed automatically. Path: Program Files (x86)\RetailPro\Server\Replication |
PrismMQPublisher.exe | PrismMQPublisher.exe publishes records on the sending side of the data replication process. Previously the publishing task was handled by PrismMQ.exe, which also was responsible for consuming messages. Separating the producing and consuming functions into separate executables results in more efficient replication. PrismMQPublisher.exe publishes the message and adds it to the PRODUCER_CACHE and PRODUCER_CACHE_DESTINATION tables. The PRODUCER_CACHE table stores messages and the PRODUCER_CACHE_DESTINATION table stores the relational link to each subscriber (destination). |
PrismMQProducer.exe | This module monitors the PRODUCER_CACHE table and sends any messages it finds there to the appropriate subscriber. Path: Program Files (x86)\RetailPro\Server\Replication |
PrismMQConsumer.exe | This module monitors the CONSUMER_CACHE table and saves any messages it finds to the Prism database. Path: Program Files (x86)\RetailPro\Server\Replication |
MSGENCODINGVERSION setting in PrismMQService.ini
As part of the caching feature, Prism 1.14.7 and later uses a different encoding format for compressed messages. The MSGENCODINGVERSION (Message Encoding Version) setting in the PrismMQService.ini file controls which encoding format (new or old) is used. This facilitates upgrading to 1.14.7 in a gradual manner. By keeping all servers on the old encoding format, day-to-day replication can continue uninterrupted even if some servers are on 1.14.7 and some are on 1.14.6. To use the old encoding format, set MSGENCODINGVERSION to 0 and restart the PrismMQService. After finishing upgrading all the company's servers, change MSGENCODINGVERSION back to "1."