WSO2 Business Process Server v3.1.0 Documentation

##### Overview

- Home
- Release Note
- WS-BPEL Compliance
- License

##### Downloads

- Releases

##### Installation Guide

- Installing WSO2 BPS

##### Quick Start Guide

- Modeling the process
- Deploying the process
- Testing the process

##### User Guide

- Deploying BPEL Processes
- Deploying Human Tasks
- Managing BPEL processes
- Managing BPEL process instances
- QoS for BPEL processes
- Securing BPEL processes
- Invoking secured partner services
- Versioning
- Management API

##### Human Task Guide

- Human Tasks Quick Start Guide
- Deploying HumanTasks
- Managing Tasks
- Developing a Human Task Artifact
- Human Task Management and Configuration
- Human Task Concepts

##### Administrator Guide

- External data sources Configuration
- Registry Configuration
- Events
- Unified Endpoints
- BPEL Extensions
- Transaction Factory Configuration
- Message Exchange Interceptors
- OpenJPA specific properties
- JMS Transport Configuration
- Process Instance Cleanup Tasks
- Process Hydration and Dehydration
- Enabling Peer-to-Peer(P2P) Communication
- Setting up a BPS Cluster

##### Best Practices

- Process Deployment Best Practices

##### Concepts

- Process Versioning
- Process instance events
- Partner links

##### WS-BPEL Extensions

- Activity Failure and Recovery
- Extension Activities and Extensible Assign Operations
- XPath Extensions
- Iterable ForEach
- Flexible Assigns
- BPEL4People Extension

##### Samples

- HelloWorld
- If-Else
- ForEach
- While
- Repeat Until
- Flow and Links
- Pick
- Synchronous and Asynchronous Service Invocations
- Fault Handling
- Split
- XslTransform
- Compensation Handler
- Event Handler

##### Resources

- FAQ
- External Articles
- Library
- Source Code

##### Community

- Forum
- Mailing Lists

##### Project Information

- Issue Tracking

# Reliable Messaging

The goal of Reliable Messaging in Web services is to allow applications to send and receive messages in an efficient, and reliable manner amidst application, platform, or network failure. The WS-Reliable Messaging specification (WS-RM), defines a protocol and a set of mechanisms that ensure that messages are delivered reliably between two endpoints.

The WSO2 Web Services Application Server (WSAS) provides a Reliable Messaging tool that is used to enable WS-RM to services at global level and service level. If you activate reliable messaging for a particular service, your configurations will be applied to that particular service. WS-Reliable Messaging handles and solves both simple and complex scenarios arising in message transmission.

## Enabling Reliable Messaging

Service Level

1. In the navigator, under Manage/Services, click List. The Deployed Services page appears.
2. Click the service for which you want to activate reliable messaging. The Service Dashboard page appears.
3. Click Reliable Messaging in the Quality of Service Configuration panel. The Enable Reliable Messaging page appears.
4. In the Enable Reliable Messaging list, click Yes. The current reliable messaging configuration appears.
5. Modify the configuration if required.
6. Click Finish. Reliable messaging will be activated for that particular service.

Field Descriptions

Figure 1: Enabling Reliable Messaging

Global Level

In the navigator, under Manage/Modules, click click List. This will show you all the deployed modules. Then click Configure link in front of sandesha2 module. Then you can configure reliable meassaging in the same way as explained above.

## RM Sequence Configuration Parameters

WS-RM defines a one way sequence. The sender (source) is called the RMS (reliable messaging source) and the receiver (destination) is called the RMD (reliable messaging destination). Therefore for in-out operations, the RM uses two sequences. For request messages, the server acts as the RMD and for response messages, the server act as the RMS.

Inactivity Timeout Interval | The maximum inactive time for any RM session. After the sequence timeout, the RM session is terminated.
Inactivity Timeout Measure | The unit in which the inactivity timeout interval is specified.
Sequence Removal Timeout Interval | If the sequence is inactive during this time period, the sequence is removed from the storage.
Sequence Removal Timeout Measure | The unit in which the sequence removal timeout interval is specified.
Acknowledgment Interval | The time interval that the RMD uses to send the acknowledgments
Retransmission Interval | The time interval after which the RMS retransmits the message if it does not get an acknowledgment
ExponentialBackoff | Whether RMS exponentially increases the retransmission time or not
Maximum Retransmission Count | The maximum number of retransmits the RMS sends

## Permanent Storage Parameters

Storage Manager | The type of storage manager to use.
Connection String | The JDBC connection string to the database.
Driver Name | The driver name to use for this connection.
User Name | The database user name.
Password | The database user password.