Feedback

  • Contents
 

PMQ guarantees delivery of database updates

Interaction Dialer uses an advanced proprietary messaging subsystem known as PMQ.  PMQ stands for Persistent Message Queuing.  Records are always stored and transmitted in FIFO (first-in-first-out) order, to ensure reliable transaction processing. PMQ offers guaranteed FIFO delivery and store-and-forward capabilities.  Interaction Dialer uses PMQ to transport information between services and data stores.  PMQ is reliable, efficient, and fast.

As contact lists are processed, Outbound Dialer servers accumulate information that needs to be propagated back to databases managed by the Central Campaign Server.  These updates are written to Persistent Message Queues on each ODS for pickup by the CCS.  For example, an agent might collect information from a customer.  Instead of attempting to directly update the master database by means of a direct SQL connection, the local CIC server writes this information to a queue and continues processing.

PMQ is then responsible for delivering this information to the Central Campaign Server where it is applied against the database.  PMQ protects against the loss of database updates caused by network or hardware failures. 

PMQ "users" are applications that send data to one another.  Each application implements a PMQ object and passes data to it.   The object handles the task of sending data to another PMQ-compatible application on the network. 

For example, each Outbound Dialer server uses PMQ to send data collected by agents to the Central Campaign server.  PMQ guarantees that all data eventually arrives at the database.  If the database cannot process an incoming message for some reason, PMQ writes the data to an error queue. 

PMQ guarantees delivery of data between networked applications, by saving the working state of data.   When a software process or network path is unavailable, PMQ queues information in a way that allows running applications to continue.  PMQ automatically resumes communication when services are restored.

 PMQ support is built directly into Interaction Dialer.  PMQ queues have an .I3P extension, and are called I3 Persistent Files.  Interaction Dialer creates persistent files dynamically, and takes care of all setup and configuration details.  PMQ objects pass data from the application to a back end entity in real-time.  PMQ provides an efficient method of caching and storing messages until they can be processed.  If for some reason PMQ cannot deliver data, or data cannot be delivered fast enough, data is written to local disk files until a reliable connection is reestablished with the remote application. 

PMQ queues reside in memory most of the time.  Persistent files (queues) are written to disk if PMQ cannot deliver data fast enough, or not at all.

In the event of an outage, PMQ caches data to disk until the remote connection is re-established, or until all free storage space is exhausted.  If storage falls below 10% available free space, the oldest data is discarded to make room for incoming data.  In the event of a sustained outage, PMQ will discard data rather than fail for lack of storage space. 

PMQ cannot send data to an application that is not running.  Likewise, network outages and hardware failures can prevent PMQ from connecting to a remote entity.  PMQ attempts to reconnect with the entity it is configured to log to—which may be Notifier, a logging client, database application, wave file compression engine, or other process—whatever the receiving entity is defined to be. 

When the connection is broken, PMQ writes data to disk and enters an idle state.  It retries the connection every few seconds and automatically resumes delivery when the connection is re-established.