QFA (Queue Forwarding Agent)

The purpose of the Queue Forwarding Agent (QFA) application is to provide a reliable mechanism for reading messages from a WebSphere Message Queue (termed the Source Queue) and sending copies of the message to a number of queues (termed the Target Queues).

The messages that are sent to the Target queues will be processed by some other application at a later date.  Care has been taken in the development of this product to ensure that the outgoing message data is not lost in the event of a system failure by wrapping the forwarding process in a WebSphere Message Queue (WMQ) Service Transaction.

The diagram shown below, illustrates a typical use for the QFA application:

In order to insure message integrity, QFA must be run in a WMQ Server environment.

The following are a few of the main features of the QFA application:

  • A configuration file is used to simplify the setup of the QFA application.
  • A Command Line argument is available to provide a specific name for the Configuration File (default: qfa.cfg).
  • A Command Line argument is available to provide a specific name for the QFA log file (default: qfa.log).
  • A Command Line argument is available for specifying a Maximum Message Length that will be handled by the QFA application (default: 100000 bytes).
  • At startup, If any of the Queues specified in the configuration file are not available or exhibiting an error then the QFA application will abort.
  • An MQGET with a wait of 30 seconds is used for polling of the Source Queue.  This ensures the application is efficiently utilizing the CPU and still being responsive to external stimulus. This call ensures that any message arriving on the Source Queue during the 30 second wait time will be handled immediately.
  • A WMQ Transaction is wrapped around the MQGET and the MQPUT(s) to ensure that any failure will result on the message being restored to the Source Queue.
  • The messages sent to the Target Queues are set to Persistent (even if the Source Message was Non-Persistent) to ensure that they survive a system reset or, if a WMQ Channel was not available during the distribution process or the Target Queues application was not available to process the incoming message.
  • If the WMQ Queue Manager becomes unavailable for any reason, the QFA will continue to run, while waiting for the Queue Manager to start.  The log file will have notations indicating the state of the QFA application.


Certified by IBM for Linux on Intel & Linux on Power:

Certified for HP_UX11i on Itanium: