q.conf — persistent, Transactional Message Queue (TMQ) configuration file
<QUEUE_NAME>,svcnm=<SERVICE_NAME>,autoq=<AUTOMATIC_Q>,tries=<TRIES>,waitinit=<INIT_WAIT>,waitretry=<RETRY_WAIT>,waitretryinc=<RETRY_WAIT_INC>,waitretrymax=<WAIT_MAX>,mode=<MODE>[,txtout=<TXTOUT>]
q.conf defines the message queues for tmqueue. The filename is passed to tmqueue in application -q parameter. This file can be shared between multiple tmqueue servers. It is recommended to define default queue (special name is @). So that during operations if specific queue is not found, then settings are taken from default queue. The queue definitions also might not be complete. If so, then defaults are used for other parameters. It is recommended to define default queue first. So that it can be using for other queue missing parameter defaulting.
Whitespace/empty lines are ignored. File may contains comments which are started at the beginning of the line with # symbol.
Sample configuration:
# # @(#) EnduroX Persistent Queue Configuration # @,svcnm=-,autoq=n,waitinit=0,waitretry=0,waitretryinc=0,waitretrymax=0,memonly=n,mode=fifo # This will take other settings from default: TESTA,svcnm=-,autoq=n,waitinit=5 # Automatic queue: Will try to send messages to TESTSVC LTESTB,svcnm=TESTSVC,autoq=y,waitinit=1,waitretry=1,waitretryinc=2,waitretrymax=0,memonly=n,mode=lifo
When using common-configuration then above sample is moved to ini files. The sample section would look like: (e.g. /app/dir/conf/endurox.ini)
# # @(#) EnduroX Persistent Queue Configuration # [@queue] @=svcnm=-,autoq=n,waitinit=0,waitretry=0,waitretryinc=0,waitretrymax=0,memonly=n,mode=fifo # This will take other settings from default: TESTA=svcnm=-,autoq=n,waitinit=5 # Automatic queue: Will try to send messages to TESTSVC LTESTB=svcnm=TESTSVC,autoq=y,waitinit=1,waitretry=1,waitretryinc=2,waitretrymax=0,memonly=n,mode=lifo
For common configuration sub-sections can be used by cctag, for example if you have following in your ndrxconfig.xml:
<server name="tmqueue"> <max>1</max> <srvid>1660</srvid> <cctag>qs1</cctag> <sysopt>-e /tmp/QS1.log -r -- -m QS1 -s1</sysopt> </server> <server name="tmqueue"> <max>1</max> <srvid>1670</srvid> <cctag>qs2</cctag> <sysopt>-e /tmp/QS2.log -r -- -m QS2 -s1</sysopt> </server>
Then queues can be defined in sub-section per server cctag, for example:
# #Q defaults (common) # [@queue] @=svcnm=-,autoq=n,waitinit=0,waitretry=0,waitretryinc=0,waitretrymax=0,memonly=n,mode=fifo # # manual queue, overridden to lifo # [@queue/qs1] queue1=mode=lifo # # Automatic queue # [@queue/qs2] queue2=svcnm=TESTSV,autoq=y,tries=3,waitinit=1,waitretry=5,waitretryinc=2,waitretrymax=10