TMQFORWARD
SRVGRP
="identifier
"SRVID
="number
"REPLYQ=N
CLOPT="
[-A
] [servopts
options ]--
-q
queuename[,queuename...] [-t
trantime ] [-i
idletime ] [-e
] [-d
] [-n
] [-f
delay ] "
The message forwarding server is a BEA TUXEDO system-supplied server that forwards messages that have been stored using tpenqueue
(3c) for later processing. The application administrator enables automated message processing for the application servers by specifying this server as an application server in the SERVERS
section.
The location, server group, server identifier and other generic server related parameters are associated with the server using the already defined configuration file mechanisms for servers. The following is a list of additional command line options that are available for customization.
-q
queuename[,queuename...]
-t
trantime
tpbegin
(3c) for transactions that dequeue messages and forward them to application servers. If not specified, the default is 60 seconds.
-i
idletime
-e
TMQFORWARD
server in response to fluctuations of messages that are enqueued.
-d
-n
TPNOTRAN
flag. This flag allows for forwarding to server groups that are not associated with a resource manager.
-f
delay
tpcall
. The message is sent such that a reply is not expected from the service. The TMQFORWARD
server does not block waiting for the reply from the service and can continue processing the next message from the queue. To throttle the system such that TMQFORWARD
does not flood the system with requests, the delay numeric value can be used to indicate a delay, in seconds, between processing requests; use zero for no delay.
Messages are sent to a server providing a service whose name matches the queue name from which the message is read. The message priority is the priority specified when the message was enqueued, if that was set. Otherwise, the priority is the priority for the service, as defined in the configuration file, or the default (50).
Messages are dequeued and sent to the server within a transaction. If the service succeeds, the transaction is committed and the message is deleted from the queue. If the message is associated with a reply queue, then any reply from the service is enqueued to the reply queue, along with the returned tpurcode
. If the reply queue does not exist, the reply is dropped.
If the service fails, then the transaction is rolled back and the message is put back on the queue, up to the number of times specified by the retry limit configured for the queue. When a message is put back on the queue, the rules for ordering and dequeueing that applied when it was first put on the queue are (in effect) suspended for delay
seconds; this opens up the possibility that a message of a lower priority may be dequeued ahead of the restored message.
If the -d
option is specified, the message is deleted from the queue if the service fails and a reply message is received from the server, and the reply message (and associated tpurcode
) are enqueued to the failure queue, if one is associated with the message and the queue exists.
Any configuration condition that prevents TMQFORWARD
from dequeuing or forwarding messages will cause the server to fail to boot. These conditions include the following:
SRVGRP
must have TMSNAME
set to TMS_QM.
OPENINFO
must be set to indicate the associated device and queue name.
SERVER
entry must not be part of an MSSQ set.
-q
option must be specified in the command line options.
-s
option must not be specified).
As delivered, If your application uses shared libraries, it is not necessary to go through the compile and link process described in the previous paragraph. See the description in the Chapter "Buffer Types" of the BEA TUXEDO Administrator's Guide.
The files included by the caller should include only the application buffer type switch and any required supporting routines. The Handling Application Buffer Types
TMQFORWARD
handles the standard buffer types provided with the BEA TUXEDO system. If additional application buffer types are needed, then a customized version of TMQFORWARD
needs to be built using buildserver
(1) with a customized type switch.
buildserver
is used to combine the server object file, $TUXDIR/lib/TMQFORWARD.o
, with the application type switch file(s), and link it with the needed BEA TUXEDO system libraries. The following example provides a sample for further discussion.
buildserver -v -o TMQFORWARD -r TUXEDO/QM -f ${TUXDIR}/lib/TMQFORWARD.o -f apptypsw.o
buildserver
options are as follows:
-v
buildserver
should work in verbose mode. In particular, it writes the cc
command to its standard output.
-o
name
SERVERS
section of the configuration file. It is recommended that the name TMQFORWARD
be used for consistency. The application specific version of the command can be installed in $APPDIR
it is booted instead of the version in $TUXDIR/bin
.
-r
TUXEDO/QM
TUXEDO/QM
appears in the resource manager table located in $TUXDIR/udataobj/RM
and includes the library for the BEA TUXEDO system queue manager.
-f $TUXDIR/lib/TMQFORWARD.o
TMQFORWARD
service and should be specified as the first argument to the -f
option.
-f
firstfiles
buildserver
. Source files are compiled using the either the cc
command or the compilation command specified through the CC environment variable. These files must be specified after including the TMQFORWARD
.o object file. If more than one file is specified, file names must be separated by white space and the entire list must be enclosed in quotation marks. This option can be specified multiple times.
The -s
option must not be specified to advertise services.
TMQFORWARD
is supported as a BEA TUXEDO system-supplied server on UNIX operating systems.
TMQFORWARD
may be run in an interoperating application, but it must run on a Release 4.2 or later node.
*GROUPS # For NT/Netware, :myqueue becomes ;myqueue
TMQUEUEGRP LMID=lmid GRPNO=1 TMSNAME=TMS_QM
OPENINFO="TUXEDO/QM:/dev/device:myqueue"
# no CLOSEINFO is required
*SERVERS # recommended values RESTART=Y GRACE=0
TMQFORWARD SRVGRP="TMQUEUEGRP" SRVID=1001 RESTART=Y GRACE=0
CLOPT=" -- -qservice1,service2" REPLYQ=N
TMQUEUE SRVGRP="TMQUEUEGRP" SRVID=1000 RESTART=Y GRACE=0
CLOPT="-s ACCOUNTING:TMQUEUE"
servopts
(5), buildserver
(1), tpenqueue
(3c), tpdequeue
(3c), ubbconfig
(5), TMQUEUE
(5), TMQFORWARD
(5), Administering the BEA TUXEDO System, BEA TUXEDO Programmer's Guide