Use the attributes parameter for the setPolicyType and setBinding
commands to specify additional configuration information for the ReliableMessaging
policy and policy set binding. The WSReliableMessaging quality of service
(QoS) is only available for application policy sets.
WSReliableMessaging is an interoperability standard for the reliable transmission
of messages between two endpoints. Use WSReliableMessaging to secure and verify
transactions when using Web services between businesses.
Use the following commands and parameters in
the PolicySetManagement group of the AdminTask object to customize your policy
set configuration.
- Use the attributes parameter for the getPolicyType and getBinding
commands to view the properties for your policy and binding configuration.
To get an attribute, pass the property name to the getPolicyType or getBinding
command.
- Use the attributes parameter for the setPolicyType and setBinding
commands to add, update, or remove properties from your policy and binding
configurations. To add or update an attribute, specify the property name and
value. The setPolicyType and setBinding commands update the value if the attribute
exists, or adds the attribute and value if the attribute does not exist. To
remove an attribute, specify the value as an empty string (""). The attributes parameter
accepts a properties object.
Note: If a property name or value supplied with the attributes parameter
is not valid, then the setPolicyType and setBinding commands fail with an
exception. The property that is not valid is logged as an error or warning
in the SystemOut.log file. However, the command exception might not
contain the detailed information for the property that caused the exception.
When the setPolicyType and setBinding commands fail, examine the SystemOut.log file
for any error and warning messages that indicate that the input for the attributes parameter
contains one or multiple properties that are not valid.
WSReliableMessaging policy properties
Configure
the WSReliableMessaging policy by specifying the following properties with
the setPolicyType command:
- specLevel
- Choose the WS-ReliableMessaging standard to use for reliable transmission
of your messages. The WS-ReliableMessaging specification Version 1.1 is the
default value. Use the following information to choose a specification level:
- Specify 1.0 as the value for the specLevel attribute to use the
WS-ReliableMessaging specification Version 1.0, February 2005 specification
level.
- Specify 1.1 as the value for the specLevel attribute to use the
OASIS WS-ReliableMessaging specification Version 1.1, August 2006 specification
level.
The following example code sets the specLevel property to the OASIS
WS-ReliableMessaging specification Version 1.1, August 2006:
AdminTask.setPolicyType('[-policySet "CustomWSReliableMessaging"
-policyType WSReliableMessaging -attributes "[[specLevel 1.1]]"]')
- inOrderDelivery
- Specifies whether to process messages in the order that they are received.
If you use the inOrderDelivery property, then inbound messages might be queued
while waiting for earlier messages.
The following example code enables the
inOrderDelivery property:
AdminTask.setPolicyType('[-policySet "CustomWSReliableMessaging"
-policyType WSReliableMessaging -attributes "[[inOrderDelivery true]]"]')
- qualityOfService
Specifies the quality of the WSReliableMessaging service to use. Define
one of the following three values for the qualityOfService attribute:
- unmanagedNonPersistent
This setting tolerates network and remote system
failures. The unmanagedNonPersistent quality of service is non-transactional.
With this setting configured, messages are lost if a server fails. This quality
of service is supported for all environments only if the environment is configured
as a Web service requester.
- managedNonPersistent
This setting tolerates system, network, and remote
system failures. However, the message state is discarded when the messaging
engine restarts. The managedNonPersistent quality of service is non-transactional.
This setting prevents message loss if a server fails. However, messages are
lost if the messaging engine fails. Managed and thin client applications cannot
use this quality of service.
- managedPersistent
This setting tolerates system, network, and remote
system failures. With this setting, messages are processed within transactions,
persisted at the Web service requester and provider. Messages can be recovered
if a server fails. Messages that are not successfully transmitted at the time
of failure continue when the messaging engine or application restarts. Managed
and thin client applications cannot use this quality of service.
The following example sets the qualityOfService property as unmanaged
nonpersistent:
AdminTask.setPolicyType('[-policySet "CustomWSReliableMessaging" -policyType
WSReliableMessaging -attributes "[[qualityOfService unmanagedNonPersistent]]"]')
The following example uses the setPolicyType command
to set a value for each policy property:
AdminTask.setPolicyType('[-policySet "CustomWSReliableMessaging"
-policyType WSReliableMessaging -attributes "[[specLevel 1.1][inOrderDelivery true]
[qualityOfService unmanagedNonPersistent]]"]')
WSReliableMessaging binding configuration attributes
If
you set the qualityOfService policy property to managedNonPersistent or managedPersistent,
configure the WSReliableMessaging binding by specifying values for the following
properties with the setBinding command:
- busName
- The name of the service integration bus that contains the messaging engine
to use for the managedNonPersistent or managedPersistent Quality of Service
options.
The following example sets the busName property as
myBus:
AdminTask.setBinding('[-bindingLocation "" -policyType WSReliableMessaging
-attributes "[[busName myBus]]"]')
- messagingEngineName
- The name of the messaging engine to use for the managedNonPersistent or
managedPersistent quality of service options.
The following example sets
the messagingEngineName property as
messagingEngine001:
AdminTask.setBinding('[-bindingLocation "" -policyType WSReliableMessaging
-attributes "[[messageEngineName messageEngine001]]"]')
The following code example demonstrates how to use the
setBinding command
to set values for each binding attribute:
AdminTask.setBinding('[-bindingLocation "" -policyType WSReliableMessaging
-attributes "[[busName myBus][messageEngineName messageEngine001]]"]')