Interoperability Solution for Tuxedo

     Previous  Next    Open TOC in new window    View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Using BEA Tuxedo Services from AquaLogic Service Bus

The following sections describe how to use BEA Tuxedo services from AquaLogic Service Bus:

 


Configuring a New Business Service

To use Tuxedo services from AquaLogic Service Bus, you must configure a new business service in the AquaLogic Service Bus Console. For more information about business services, see Business Services: Creating and Managing in Using the AquaLogic Service Bus Console.

Log in to the AquaLogic Service Bus Console. Perform the configuration steps in the order presented, using the instructions in the following sections.

For detailed procedural information, see Using the AquaLogic Service Bus Console.

Add a New Project

Follow these steps:

  1. In the Change Center, click Create to create a new session or click Edit to enter an existing session.
  2. You must be in a session to edit resources.

  3. Select Project Explorer.
  4. Enter a name for the new project and click Add Project.
  5. A message at the top of the page indicates that the project was added successfully.

Add a Business Service

Follow these steps:

  1. Click the name of the newly created project.
  2. From the Create Resource drop-down list, select Business Service.
  3. On the Create a Business Service – General Configuration page, enter the following values:
  4. Service Name – The name of the service.

    Service Type – Select Any XML Service (the default).

    Note: Tuxedo transport only supports Any XML Service and Messaging Service service types.
  5. Click Next.
  6. On the Create a Business Service – Transport Configuration page, enter the following values:
  7. Protocol – Select tuxedo.

    Load Balancing Algorithm – Keep the default or select another algorithm.

    Endpoint URI – Specify one or more endpoint URIs, using one of the following formats, then click Add.

    • The URI format for outbound calls to Tuxedo services is tuxedo:resourcename[/remotename] where,
      • resourcename corresponds to a WTC Import service name; resourcename is required.
      • remotename corresponds to the service name exported by the remote Tuxedo domain; remotename is optional.
      • If more than one URI is specified, you must have unique resource names for the endpoints. If no remote name is specified, its value is the value of the resource name. If no remote name is entered or if the remote and resource name are the same, only one URI is allowed. This allows already defined WTC Import services to use WTC load balancing and failover.

        Note: If you configure two identical URIs, an error displays notifying you that the service name already exists.

        The Tuxedo transport uses the resource name and remote name from the URI to dynamically create a WTC Import service.

    • The URI format for outbound calls to Tuxedo resources of type /Q is tuxedo-queue:sendQspace/sendQname[/[rcvQspace:]/rcvQname][/failureQname] where,
      • tuxedo-queue indicates that /Q calls will be made.
      • sendQspace corresponds to the unique name of the queue space in the Tuxedo domain; sendQspace is required.
      • sendQname corresponds to the queue name in the queue space in which requests will be stored; sendQname is required.
      • The following two values are optional. If you specify neither one, the run time will return immediately and not expect a response. Also, the Response Required? option on the Tuxedo Transport Configuration page will be unavailable. If you specify either value and do not select the Response Required? option, the values you specified will be ignored.

      • rcvQspace corresponds to the unique name of the queue space in the Tuxedo domain from which replies will be received; rcvQspace is optional. If not specified, the sendQspace value is used.
      • rcvQname corresponds to the name of the queue in the Tuxedo domain from which replies will be received; rcvQname is optional.
      • The last value is also optional. If you specify neither rcvQspace nor rcvQname, but specify failureQname, the URI format is tuxedo-queue:sendQspace/sendQname//failureQname

      • failureQname corresponds to the name of the queue in the Tuxedo domain where error messages will be stored; failureQname is optional.
      • Note: When a response is expected, it occurs in the same thread that sends the request.
  8. Click Next.
  9. On the Tuxedo Transport Configuration page, enter the following values:
  10. Field Table Classes – Optional. Enter the name of the class or classes describing the FML/FML32 buffer received. These are used for the FML/FML32-to-XML conversion routines to map field names to element names. This is a space-separated list of fully qualified class names.

    View Classes – Optional. Enter the name of the class or classes describing the VIEW/VIEW32 buffer received or sent. These are used for the VIEW/VIEW32-to-XML conversion routines to map field names to element names. This is a space-separated list of fully qualified class names.

    Classes Jar – Select a JAR resource that contains a JAR file with the FML/FML32 or VIEW/VIEW32 classes necessary for this endpoint operation.

    Remote Access Point – From the drop-down list, select a remote access point that is associated with the WTC Import service. The drop-down list contains remote access points configured in WTC. You cannot create a business service without an associated remote access point.

    If no remote access points exist or to create a new one, select New. Enter the corresponding Access Point Name and Network Address in the adjacent fields. Upon validation of the endpoint, the access point is added to the WTC configuration for each WTC server. If no WTC server exists, one is created.

    You can enter an existing access point name after selecting the New option. This causes the existing information to be updated with the new parameters. You can change only the host name and port number.

    If more than one URI has been specified, there will be one remote access point field per URI and the URI displays for informative purposes. If more than one URI exists, each requires a different remote access point. If the URI specified already corresponds to an existing WTC resource, the corresponding remote access point displays, but cannot be modified.

    Local Access Point – This field appears only when you select New in the Remote Access Point field. From the drop-down list, select a local access point to be associated with the newly created remote access point. If none exist or to create a new one, select New. Enter the corresponding Local Access Point Name and Local Network Address in the adjacent fields.

    Note: Access points are not deleted by the transport when the endpoints are removed, since they may be used by multiple endpoints. To remove access points, use the WebLogic Server Administration Console.

    Request Buffer Type – From the drop-down list, select the type of buffer that the remote Tuxedo service will receive.

    Request Buffer Subtype – This field is enabled if the Request Buffer Type value is VIEW or VIEW32. Enter the buffer subtype with which to associate the request buffer.

    Response Required? – Select the check box to indicate a bidirectional call. If not selected, the underlying tpcall is invoked with TPNOREPLY flag, and a null response is posted asynchronously.

    Suspend Transaction – Select the check box to suspend the transaction, if one exists. This is useful when the remote service does not support transactions.

    When making calls to Tuxedo resources of the type /Q, use the Suspend Transaction option whether or not you expect a reply. A successful return from a one-way call means that a message has been successfully queued.

    Note: Tuxedo tansports to /Q mode endpoints are considered asynchronous transactional, if the Suspend Transaction option is not selected. This allows the framework to prevent a deadlock situation.
    Note: In /Q mode, when an endpoint expects a reply, multiple threads on multiple Managed Servers may reply using the same destination. For this reason, at run time, when a reply is expected, a unique correlation ID is sent along with the request. The dequeue operation then waits for the message containing that correlation ID. Correlation IDs are composed in the same manner as those used by JMS transports in similar situations.

    Dispatch Policy – From the drop-down list, select a WebLogic Server Work Manager, if available. The default Work Manager is used if no other one exists. The Work Manager asynchronously posts a null reply in the case of a one-way invocation.

    Request Encoding – Specify a character set encoding for requests in Tuxedo transports.

    Response Encoding – Specify a character set encoding for responses in Tuxedo transports.

    Transformation Style – The ordering or grouping of elements when FML or FML32 buffers are transformed into XML. Select one of the following choices:

    None: (default) The order of fields may not be respected.

    Ordered: The fields will be presented with all their occurrences in the correct order.

    Ordered and Grouped: If the fields are logically structured as records, the fields will be ordered by occurrence and also grouped by record.

    Timeout – Specify the maximum amount of time (in seconds) that the transport run time waits for replies; an integer value that is greater than or equal to 0. If not specified or set to zero (default), replies will time out at BLOCKTIME, the maximum number of seconds that the local Tuxedo access point allows for a blocking call.

    At run time, replies exceeding the time-out value are ignored and an error message with a TPETIME exception is returned.

    Specify the timeout value only for request/response services. For /Q or one-way endpoints, the Timeout field is unavailable. If the outbound call is part of a transaction, the timeout value is ignored.

    Note: The WTC BLOCKTIME value takes precedence if it is less than the time-out value. For example, if the endpoint time-out value is 30 seconds and the WTC BLOCKTIME is 20 seconds, calls will time out in 20 seconds.
  11. Click Finish.
  12. On the Summary page, click Save.

 


Load Balancing and Failover

When specifying a business service and defining the endpoint URIs, entering a remote name that is different from the resource name allows you to use the AquaLogic Service Bus load balancing and failover capabilities. In this case, you can define multiple service names and associate them to a service that is replicated across multiple remote domains. The resource name must be unique, but remote names do not have the same restriction.

 


Handling Errors

You can configure tuxedo-transport business services to handle application and communication errors as follows:

Table 3-1 describes the following Tuxedo exceptions and the type of ALSB error they denote.

Table 3-1 Tuxedo Exceptions 
Exception
Description
TPESVCFAIL
The service failed—an application error
TPENOENT
The requested entity does not exist—a communication error
TPEPERM
A permissions error has occurred—a communication error

For more information on Tuxedo exceptions, see the Javadocs.

 


Testing Your Configuration

Once you have configured AquaLogic Service Bus to work with BEA Tuxedo, you can test the configuration using the test console in the AquaLogic Service Bus Console.

The following list of tasks summarizes the process of testing outbound usage of BEA Tuxedo by AquaLogic Service Bus.

  1. Build and start the Tuxedo servers.
  2. Set up a Tuxedo service to call the AquaLogic Service Bus proxy service.
  3. In the AquaLogic Service Bus Console, click Activate under Change Center, to enable the test console.
  4. In the Project Explorer, click the Launch Test Console icon associated with the business service you want to test.
  5. Enter a payload in the test console. For more information, see Testing Business Services in Using the AquaLogic Service Bus Console.
  6. Click Execute.
  7. A response page displays the results of the service request.


  Back to Top       Previous  Next