27 SB Transport

This chapter provides an overview of the SB transport and describes how to use and configure it in your services.

The SB transport allows Oracle products to synchronously invoke an Oracle Service Bus proxy service using RMI. The inbound transport allows clients to access SB proxy services using RMI. The outbound transport allows the invocation of SB proxy services using RMI. By default, accessing all services using T3 protocol, IIOP, HTTP, T3s, IIOPS, or HTTPS depends on the configuration of the target server. For more information, see "Configure Default Network Connections" in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help.

The SB transport supports:

This chapter includes the following sections:

27.1 Environmental Values

Table 27-1 describes the environment values the SB Transport supports.

Table 27-1 Environment Values

Environment Value Use this value to …

Timeout (category: operational)

Override the time out value set for the business service.

Service account (category: security)

Update the user credentials associated with the business service.

Use SSL (category: security)

Enable or disable the option of exposing a service using a secure protocol for a proxy service.


27.2 Configuring Proxy Services to Use the SB Transport

A client Oracle Service Bus server connects with the Oracle Service Bus server using the JNDI context and the proxy service URI. The security context of the client is used to invoke the proxy service. The default QoS is Exactly-once. Optionally, the client can change the QoS, set a request time out value and specify a desired messaging pattern. The message is received by the inbound SB transport and processed through the message flow.

To create a proxy service from the Oracle Service Bus Administration Console:

  1. Enter the general configuration details for the service in the General Configuration page. For more information, see Section 4.3.1, "Proxy Service General Configuration Page."

  2. In the Transport Configuration page, select the transport protocol as sb. Specify the endpoint URI as <proxy service name>. This proxy service name is the unique identifier associated with the proxy service that is to be invoked by the client. For more information, see Section 4.3.6, "Proxy Service Transport Configuration Page."

  3. In the SB Transport Configuration page, specify the values as described in Table 27-2.

    Table 27-2 Fields for Configuring SB Transport for Proxy Services

    Field Description

    Dispatch Policy

    You can use the default dispatch policy or configure a work manager for the inbound request.

    Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists.

    For information about Work Managers, see:

    Use SSL

    To expose the service through a secure protocol, choose the Use SSL option. Although this implies that the client should use the SSL protocol to access the SB proxy service, this does not prevent the client from accessing the service through unsecure protocols. In addition, the endpoint URI associated with the service would be sbs instead of sb:

    • When you export a secure service through UDDI and preserve security and policy configuration details during import.

    • In the effective WSDL.

    Note: A proxy service is not bound to any particular protocol. It is the responsibility of the WLS administrator to enable SSL, IIOP, or HTTP tunneling whenever it is necessary.

    This flag only affects the URI scheme of the service when it is exported or the JNDI provider selection for the business service URI when it is imported from UDDI. It does not prevent a client from accessing the service using a non-secured protocol.


For more information, see Section 2.3, "Working with Proxy Services."

27.3 Configuring Business Services to Use the SB Transport

The SB business service can send messages only to other SB proxy services. A JNDI provider, which is specified in the endpoint URI of the business service, performs a JNDI lookup on the remote Oracle Service Bus server. The client user credentials or the user credentials defined in the service account associated with the business service are used to invoke the proxy service. Optionally, a time out value and a custom dispatch policy can be associated with the business service. The QoS of the service can also be set by using the routing options.

To create a business service from Oracle Service Bus Administration Console:

  1. Enter the general configuration details for the service in the General Configuration page. For more information, see Section 4.2.1, "Business Service General Configuration Page."

  2. In the Transport Configuration page, select the transport protocol as sb and specify the endpoint URI in the following format:

    sb://<jndi_provider_name>/<service_name>

    where,

    • <jndi_provider_name> is the name of the JNDI provider, which points to the corresponding Oracle Service Bus JNDI provider. Optional. When omitted, the default context is used. This implies that the service and the Oracle Service Bus server are located on the same computer. When the call is co-located, serialization is skipped during service invocation. For more information, see Section 27.3.1, "JNDI Provider."

    • <service name> is a target service and corresponds to the remote proxy service URI.

    For more information see, Section 4.2.4, "Business Service Transport Configuration Page."

  3. In the SB transport configuration page, specify the values as described in Table 27-3.

    Table 27-3 Fields for Configuring SB Transport for Business Services

    Field Description

    Dispatch Policy

    Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists.

    For information about Work Managers, see:

    Time out

    The duration, in seconds, after which the business service times out and business service returns a runtime error when a timeout occurs.

    The specified time out value is not applied when:

    Service Account

    Specify the user credentials that should be used for invoking the remote proxy service. If no service account is specified, the user credentials of the inbound proxy service (the inbound client) of this business service are used for security context propagation. For more information, see Section 2.1.15, "Creating Service Account Resources."


For more information, see Section 2.2, "Working with Business Services."

27.3.1 JNDI Provider

A JNDI provider points to the Oracle Service Bus server where the service is deployed to retrieve the RMI stubs corresponding to the SB proxy service. The JNDI provider has a high performance caching mechanism for remote connections and EJB stubs. T3, IIOP, HTTP, T3s, IIOPS, or HTTPS transport protocols can be used by JNDI provider. The preferred communication protocol from Oracle Service Bus to a WLS domain is T3 or T3S. If messages need to go through a fire wall, you can use HTTP tunneling by using an HTTP provider url in the context and by enabling HTTP tunneling on the WLS server.

Note:

It is the responsibility of the administrator to ensure that the protocol supported by the JNDI provider is on the remote Oracle Service Bus server.

When you create a business service, you can associate it with a JNDI provider. For more information, see Section 27.3, "Configuring Business Services to Use the SB Transport" and Section 2.1.8, "Creating and Editing JNDI Provider Resources."

27.4 Handling Errors

You can configure business service URIs to be taken offline when communication errors occur. When you configure the operational settings for the business service, you can enable the business service endpoint URIs to be taken offline after the specified retry interval. For more information, see "Configuring Operational Settings for Business Services" and "Viewing Business Services Endpoint URIs Metrics" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus.

When a connection error occurs while invoking a SB proxy service, the SB transport provider generates the BEA-380002 error code. A connection error can occur due to any of the following reasons:

  • The target proxy service does not exist

  • The JNDI provider settings are incorrect

  • Any remote or naming exception occurs during RMI invocation

    A naming exception of the type javax.naming.NamingSecurityException typically occurs when the identity used during the invocation is not recognized by the target server. When this occurs, the request returns a generic runtime error, which is not treated as a connection error.

  • An external service returns a SOAP payload with a fault code

    When there is an error handler in place to handle the fault code, the transaction is not marked for rollback. If there is no error handler, the transaction is marked for rollback.

When an error occurs and there is an error handler in place that catches the fault and sends back a fault response (using the With Error option for the Reply action), the error is considered an application error and the transaction is not marked for rollback. In all other error cases, the transaction is marked for rollback.

SOAP faults returned by SB Proxies are treated as application errors.

27.5 UDDI

You can import and publish services to the UDDI registry. For more information, see "UDDI" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus.

27.5.1 Publishing a Service

When you publish a proxy service to a UDDI register, the URI associated with the published service has the following format:

sb://host:port/service_name

where, host:port refers to the host name and listening port of the Oracle Service Bus server hosting the proxy service that is being published.

If the Use SSL option is enabled for the proxy service that is being published, the URI associated with the published service has the following format:

sbs://host:port/service_name

where, host:port refers to the host name and the SSL listening port of the Oracle Service Bus server hosting the proxy service.

If the proxy service that is being published is running on a cluster, host:port is the Cluster Address setting in the Cluster section of the config.xml file. This value can either be a single host name and port number that is used to connect to any WLS in the cluster or it can be a comma-separated list of the host name and listener ports of the Managed Servers in the Oracle Service Bus cluster. For more information, see "WebLogic JNDI" in Oracle Fusion Middleware Programming JNDI for Oracle WebLogic Server.

For more information, see "Publishing Proxy Services to a UDDI Registry" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus.

27.5.2 Importing a Service

When you import a service from the UDDI registry, the SB transport provider matches the sbscheme and host:port information from the service URI property with a JNDI provider registered on the Oracle Service Bus server using the appropriate protocol based on sbscheme. Sbscheme is the URI scheme of the SB transport-based service and can be either sb or sbs.

If sbscheme is sb, the transport provider looks for the JNDI provider using T3, T3S, IIOP, IIOPS, HTTP, or HTTPS protocol (in this order). If sbscheme is sbs, the transport provider looks for the JNDI provider using T3S protocol, IIOPS, then HTTPS (in this order). The JNDI provider that matches the service URI property is used to generate the endpoint URI of the business service that is imported to Oracle Service Bus.

If there is no matching JNDI provider, the import fails unless the imported URI is a local URI and the scheme is not sb, the default context is used. This implies that there is no JNDI provider specified for the service and it is considered co-located with the server.

For example, if the service URI property value is:

sbs://remote_oracle_service_bus_host:7002/myservice

the generated URI of the business service imported to Oracle Service Bus would be:

sb://my_jndi_provider/myservice

where, my_jndi_provider is a JNDI provider resource registered on the Oracle Service Bus server with a t3s://remote_oracle_service_bus_host:7002 URL.

For more information, see "Importing Business Services From a UDDI Registry" in Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus.