SETMODEL
For the MSMQ transport, defines a dynamic creation
queue model. For the Rendezvous transport, the SETMODEL call enables
you to change one or more transport attributes from the default values.
For the Rendezvous-CM transport, defines a model definition for certified
message delivery.
Supports: |
MSMQ, Rendezvous, Rendezvous-CM |
Syntax
CALL SETMODEL(transport, name, storage, rc, props, value1 , value2,...>)
Required Arguments
- transport
-
Character, input
Specifies the transport
that is associated with this model. MSMQ, Rendezvous, and Rendezvous-CM
are the only valid transports for this CALL routine.
- name
-
Character, input
Identifies the dynamic
model or transport model that is assigned.
- storage
-
Character, input
Specifies the location
for the model definition. The REGISTRY location is valid.
- rc
-
Numeric, output
Provides the return
code from the CALL routine. If an error occurs, then the return code
is nonzero. You can use the SAS function SYSMSG() in order to obtain
a textual description of the return code.
- props
-
Character, input
Identifies one or
more properties that the queue exhibits once created. This parameter
is a character string. Each applicable property is separated by a
comma. You must associate a value with each property that is identified
by
props .
- values
-
Character or numeric,
input
Inputs the values
for each property that is specified. Use one of the following values
for each of the properties listed in the
props parameter.
- AUTHENTICATE
-
Character
Specifies whether the
queue accepts only authenticated messages. The following values are
valid:
- NONE (Default)
-
Specifies the queue
accepts either authenticated or nonauthenticated messages.
- ALWAYS
-
Specifies the queue
always requires authenticated messages.
- BASEPRIORITY
-
Numeric
Specifies a single
base priority for all messages sent to a public queue. Values range
from -32768 to 32767, where 32767 is the highest priority, and 0
is the default priority.
- JOURNAL
-
Character
Specifies whether messages
retrieved from the queue are also copied to its journal queue. The
following values are valid:
- NONE (default)
-
Indicates that messages
that are removed from the queue are not stored in a journal.
- ALWAYS
-
Indicates that messages
that are removed from the queue are always stored in its journal queue.
- JOURNALQUOTA
-
Numeric
Specifies the maximum
size (in kilobytes) of the journal queue. The default size is infinite.
- LABEL
-
Character
Specifies a description
of the queue. The default is a blank label ("").
- PRIVLEVEL
-
Character
Specifies the privacy
level that is required by the queue. The following values are valid:
- NONE
-
Specifies that the
queue accepts only nonprivate (clear-text) messages.
- BODY
-
Specifies that the
queue accepts only private (encrypted) messages.
- OPTIONAL (default)
-
Specifies that the
queue accepts both private and nonprivate messages.
- QUOTA
-
Numeric
Specifies the maximum
size (in kilobytes) of the queue. The default size is infinite.
- TRANSACTION
-
Character
Specifies whether the
queue is a transactional queue or a nontransactional queue. The following
values are valid:
- NONE (default)
-
Indicates that the
queue does not accept transactional operations.
- ALWAYS
-
Indicates that all
messages that are sent to the queue must be done through an MSMQ transaction.
- TYPE
-
Binary string
Specifies the type
of service that is provided by the queue. The value of the TYPE property
is a universal unique identifier (UUID) character string that represents
binary data. The default is NULL_GUID.
- For Rendezvous and Rendezvous-CM, the following transport
properties are valid:
-
- SERVICE
-
Character
Specifies the service
name or port number. If you specify a null value, the transport creation
function looks for the service name "rendezvous" and uses 7500 if
"rendezvous" is not found. The TIBCO Rendezvous documentation strongly
recommends that administrators define "rendezvous" as a service, especially
if UDP port 7500 is already in use. For more information, consult
the TIBCO Rendezvous documentation.
- NETWORK
-
Character
Specifies the network
name, Host IP, host name, or other identifier of the network. For
more information, see the TIBCO Rendezvous documentation.
- DAEMON
-
Character
Specifies the TCP socket
number for a local daemon, or the remote host name and socket number
for a remote daemon. For more information, consult the TIBCO Rendezvous
documentation.
Note: A model is not required
if you are using default Rendezvous values.
- For Rendezvous-CM only, the following transport properties
are valid:
-
- CMNAME
-
Character
Specifies the reusable
name of a certified message (CM) transport. This is the CM Correspondent
name, which can be omitted if persistent correspondents are not required.
- LEDGER
-
Character
Specifies the name
of the file in which to store a file-based ledger. This property can
be omitted if persistent correspondents are not required.
- RELAYAGENT
-
Character
Specifies the name
of the relay agent. If you use this property, then it must be configured
by the Rendezvous administrator.
- REQUESTOLD
-
Character
Indicates whether a
persistent correspondent requires delivery of unacknowledged messages
that were sent to a previous certified delivery transport with the
same CMNAME. Possible types are as follows:
- NO (default)
-
Specifies that the
new CM transport does not require certified senders to retain unacknowledged
messages. Certified senders can delete those messages from their ledgers.
- YES
-
Specifies that the
new CM transport requires certified senders to retain unacknowledged
messages sent to this persistent correspondent. When the new CM transport
begins listening to the appropriate subjects, the senders can complete
delivery. It is an error to specify YES when CMNAME is null.
- SYNCLEDGER
-
Character
Specifies how to synchronize
the ledger to its storage medium. Possible types are as follows:
- NO (default)
-
Specifies that the
operating system writes changes to the storage medium asynchronously.
- YES
-
Specifies that the
operations updating the ledger file do not return until the changes
are written to the storage medium.
Details
Dynamic models for MQSeries
are defined within its own configuration.
Example
The following example
defines an MSMQ model queue in the SAS registry:
length msg $ 200;
length rc 8;
rc=0;
/* private queue model */
call setmodel('MSMQ', 'MYMODEL', 'REGISTRY', rc,
'AUTHENTICATE,PRIVLEVEL,LABEL', 'ALWAYS',
'BODY', 'Private dynamic queue');
if rc ^= 0 then do;
put 'SETMODEL: failed';
msg = sysmsg();
put msg;
end;
else put 'SETMODEL:
succeeded';