Using the HTTP Binding Component

Quality of Service (QOS) Features

Quality of Service features are configured from the CASA Editor, and include properties used to configure Retry (Redelivery) and Throttling.

This section contains the following topics:

Configuring the Quality of Service Properties

The QOS attributes are configured from the Config QoS Properties Editor, accessed from the Composite Application Service Assembly (CASA) Editor. For an example of how to access the Config QOS Properties Editor, see Configuring the HTTP Binding Component Endpoint for Throttling

Attribute 

Description 

Value/Example 

Consumer Settings

Service Name 

Specifies the consumer service name. Click the ellipses button to open the QName Editor. Select a pre-existing Namespace URL or enter a new Namespace URL and prefix. 

{http://j2ee.netbeans.org/wsdl/SoapBasicAuth}SoapBasicAuthServices 

Endpoint Name 

Specifies the consumer endpoint name. Click the ellipses button to open an edit window. 

SoapBasicAuthPortWssToken 

Provider Settings

Service Name 

Specifies the provider service name. Click the ellipses button to open the QName Editor. Select a pre-existing Namespace URL or enter a new Namespace URL and prefix. 

{http://enterprise.netbeans.org/bpel/BasicAuthBP/SoapBasicAuthAM}AMPartnerLink 

Endpoint Name 

Specifies the Provider endpoint name. Click the ellipses button to open an edit window. 

SoapBasicAuthAMPortTypeRole_myRole 

RedeliveryExtension Settings

maxAttempts 

Specifies the number of retries to attempt before using the on-failure option. 

20 

waitTime 

Specifies time (in milliseconds) to wait between redelivery attempts. 

300 

on-failure 

Specifies the type of action to be taken when message exchange (ME) re-delivery attempts have been exhausted. 

The on-failure options are

  • delete: When the final defined delivery attempt has failed, the QoS utility abandons the message exchanges (ME) and returns a Done status to the JBI component, which proceeds to its next process instance. This option is only supported for In-Only message exchanges.

  • error: When the final defined delivery attempt has failed, the QoS utility returns an Error status to the JBI component, and the JBI component throws an Exception. This is the default option, and is supported for both In-Only and In-Out message exchanges.

  • redirect: Similar to the delete option, except that the QoS utility re-routes the ME to the configured redirect endpoint when the maxAttempts count has been exhausted. If the QoS utility is successful in routing the message to the redirect endpoint, a Done status is returned to the JBI component; otherwise, an Error status is returned. This option is supported for In-Only message exchanges only.

  • suspend: The QoS utility returns an Error status to the JBI component if it is not able to deliver the ME to the actual provisioning endpoint. After the re-delivery attempts have been exhausted, the JBI Component suspends the process instance. This option is only supported if monitoring is enabled in the JBI Component, since the user must use the monitoring tool to resume a suspended instance. This option is supported for both In-Only and In-Out message exchanges.

delete 

ThrottlingExtension Settings

maximum-ConcurrencyLimit 

Specifies the maximum number of concurrent messages that can be processed on a specific connection. This number is used to set up the maximum number of concurrent messages that the internal endpoint sends to the the provider endpoint. 

10 

Message Throttling: Configuring and Using

Throttling allows you to set the maximum number of concurrent messages that are processed by a particular endpoint. Increased message load and large message payloads can cause memory usage spikes that can decrease performance. Throttling limits resource consumption so that consistent performance is maintained.

The HTTP Binding Component, using functionality provided by the Grizzly HTTP Web Server, manages the flow of messages by evaluating endpoints to determine when it is necessary to suspend requests and when to resume processing as usual.

For more information in regard to HTTP BC and Throttling, see HTTP BC Throttling.

Configuring the HTTP Binding Component Endpoint for Throttling

For the HTTP Binding Component, throttling is a QOS feature configured from the CASA Editor.

ProcedureTo configure Throttling for an HTTP/SOAP WSDL port

  1. From the NetBeans IDE Projects window, right-click the Service Assembly node under your composite application, and select Edit from the popup menu.

    The CASA Editor opens containing your composite application.

    Graphic shows the QOS icon in the CASA Editor, as described
in context.
  2. In the CASA Editor, click the QOS icon located on the link between your JBI Module and the WSDL port you want to configure.

    The QOS Properties Editor appears.

  3. In the QOS Properties Editor, click the property field for maximumConcurrencyLimit under ThrottlingExtension, and enter an integer for the maximum number of concurrent messages allowed for this endpoint.

    Graphic shows the QoS Properties Editor
  4. Click Close.

    The appropriate throttling configuration for the connection is generated in the project's jbi.xml file, when the service assembly is built.

Redelivery: Configuring and Using

Redelivery is a Quality of Service mechanism that handles message delivery when first-time delivery fails. Redelivery allows you to define the number of attempts that the system makes to deliver a message, the time between attempts, and the final result for an undeliverable message or non-responsive endpoint.

Redelivery is configured for a specific connection from the Composite Application Service Assembly (CASA) Editor, by clicking the QoS icon for that connection. This opens the Config QoS Properties for that connection. From the RedeliveryExtension section of the editor, configure the Redelivery properties.

The Redelivery configuration parameters are:

Note: The on-failure options: delete and redirect, cannot be applied to In-Out message exchanges because In-Out message exchanges require a specific response from the process instance to proceed further, and as such, the return value for these options does not suffice.

For more information regarding Redelivery, see Redelivery.