BEA Logo BEA Tuxedo Release 7.1

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

 

   Tuxedo Doc Home   |   TOP END Domain Gateway   |   Topic List   |   Previous   |   Next   |   Contents

   Using the BEA Tuxedo TOP END Domain Gateway

How Messages Are Passed from BEA TOP END Clients to BEA Tuxedo Servers

A BEA TOP END client sends requests to BEA Tuxedo servers in the conversational mode in the same way that it sends requests in request/response mode. The TEDG then manages the conversation with the server as shown in the following table.

Conversational Messaging Process: BEA TOP END Client to BEA Tuxedo Server

If . . .

Then . . .

The DM_LOCAL_SERVICES SERVICE entry located for this client request is configured as conversational (CONV=Y)

The TEDG processes the request as a pseudo-conversation request. For an initial request (before context exists on the client dialog), the TEDG opens a conversation with the server by calling a function equivalent to tpconnect(3c) and passes data (if any) and the TPRECVONLY flag to the server, thus giving control to the server.

The server responds with a tpsend(3c) call with the TPRECVONLY flag set

The TEDG responds to the BEA TOP END client with the TP_APPL_CONTEXT flag set and keeps the conversation open.

The TP_DISSOLVE flag was set by the client

After returning the server's response to the client (TP_DISSOLVE and no TP_APPL_CONTEXT), the TEDG calls a function equivalent to a tpdiscon(3c) to the server.

The TPRECVONLY flag is not set by the server, or the flags are set to TPSENDONLY

Note: The mapping of BEA TOP END pseudo-conversations to BEA Tuxedo conversations requires that the BEA Tuxedo server relinquish control of the conversation with each response.

The TEDG logs an error and ends the conversation using tpdiscon(3c). The BEA TOP END dialog is reset (TP_RESET).

The server returns by ending the conversation (tpreturn(3c)) with TPSUCCESS

The TEDG responds to the BEA TOP END client without setting the TP_APPL_CONTEXT flag.

The server returns by ending the conversation (tpreturn(3c)) with TPFAIL or TPEXIT

The TEDG responds by resetting the dialog that returns TP_RESET with an extended status of TP_EXT_SERVER_APPL to the BEA TOP END client.

The client continues context by specifying a blank product and blank function parameter.

A client request that continues the BEA TOP END application context on the dialog is sent to the same conversation with a function equivalent to tpsend(3c) with the TPRECVONLY flag set.

Note: With TEDG-mapped conversations, the BEA TOP END client cannot use the function_qualifier to specify a step in a multiple-step interaction. This information must be passed in the client message.

The client breaks the context by performing a function switch (specifying a product and function)

The TEDG receives a TP_DISCONNECT and terminates the conversation using a function equivalent to tpdiscon(3c) and acknowledges the disconnected status to the BEA TOP END system.

How the TEDG Works with BEA TOP END Clients

Client operations are programmed with the same functions used for any BEA TOP END client.

Use this API . . .

For . . .

tp_client_send

Making asynchronous requests

tp_client_signon

Making asynchronous requests

tp_client_receive

Receiving responses

These functions are used in the normal manner when making a service request to a BEA Tuxedo server through the TEDG.

As a BEA TOP END client programmer, you need to know the following information:

How the TEDG Maps Client Requests

A client request may be transactional or non-transactional; it must require a response. The following table shows how BEA TOP END client flags are mapped. By mapping these flags, the TEDG accomplishes a task that is normally done in the BEA TOP END system. Do not use the input_format and attach_info parameters on requests to the TEDG; they are not supported.

BEA TOP END Client Flag Mapping

BEA TOP END Client Flag

Action

TP_DISSOLVE

The TEDG dissolves the dialog and returns the server response. It then ends the conversation by issuing a tpdiscon(3c) call.

TP_NON_TRANSACT

The TEDG preserves the fact that the request is excluded from the client transaction by the CSI library.

TP_NO_RESPONSE

This flag is not supported for pseudo-conversations. The TEDG resets the dialog and returns TP_RESET with an extended status of TP_EXT_SERVER_APPL.

TP_FML_BUF

The TEDG passes the user data as an FML32 buffer.

The status and extended status values returned to the BEA TOP END client are standard values. For additional information about the mapping of error values, see Error Values.

The TEDG maps the response from the BEA Tuxedo system or server to a response that the BEA TOP END client accesses through the tp_client_receive(3T) call. BEA Tuxedo servers should send responses in one of the following types of buffers: CARRAY, X_OCTET, or FML32. A CARRAY or X_OCTET buffer is mapped by the TEDG to a raw message; an FML32 buffer, to a BEA TOP END FML32 message. The administrator may constrain the response buffer to a specific type (CARRAY, X_OCTET, or FML32). If the BEA Tuxedo service returns an incompatible buffer, then the TEDG returns a TP_RESET status.

How the TEDG Works with BEA Tuxedo Servers

Relative to a BEA Tuxedo server, the TEDG functions as a conversational BEA Tuxedo client: it receives mapped BEA TOP END client requests in the normal manner. The TEDG always relinquishes control after one message is sent. As a result:

The buffer received is a CARRAY, X_OCTET, or FML32 buffer, depending on the message sent by the client. The BEA Tuxedo server processes the request in the normal manner. Client requests may be transactional or non-transactional.

A BEA Tuxedo server responds to client requests in the standard manner. If the conversation is being continued, it calls tpsend(3c) with the TPRECVONLY flag and data. In this case the server must then call tprecv(3c) to receive the next client message, an error indication, or an indication that the conversation was terminated (TPEV_DISCONIMM). To send the last message of a conversation, the server calls tpreturn(3c) with the TPSUCCESS flag. To terminate a conversation and indicate an error, a server calls tpreturn() with the TPFAIL flag. Reply messages are supported only with tpsend or TPSUCCESS. The application-defined return code, rcode, is not supported by the TEDG.

The BEA Tuxedo server buffer may be a CARRAY, X_OCTET, or FML32 buffer, depending on which types are supported by the BEA TOP END system, the TEDG configuration, and the BEA TOP END client. This buffer is mapped to a BEA TOP END message as described in How the TEDG Maps Client Requests. The server may indicate an error by calling TPFAIL or by responding with an application-defined field value in the reply buffer. The BEA TOP END client must be programmed accordingly. To terminate a conversation, the client ends the dialog by calling tp_client_signoff(3T) or invoking a function switch that calls a different service.

Because BEA TOP END messages are limited to 30K bytes, the BEA Tuxedo server reply may not exceed that limit. For an FML32 message, the limit applies after the FML index is stripped from the message.

How the TEDG Maps BEA Tuxedo Server Flags

The following table shows how the TEDG maps flags to tpsend(3c), the function that transmits BEA Tuxedo server responses. All other flags (TPNOBLOCK, TPNOTIME, TPSIGRSTRT) either are local to the application or affect only server-TEDG interactions in the BEA Tuxedo system.

BEA Tuxedo Server Flag Mapping

BEA Tuxedo Server Flag

Action

TPRECVONLY

This flag must be set on. If it is not, the TEDG resets the dialog and returns TP_RESET with an extended status of TP_EXT_SERVER_APPL.

TPSENDONLY

The TEDG resets the dialog and returns TP_RESET with an extended status of TP_EXT_SERVER_APPL.

Error Values

In addition to regular BEA TOP END error status messages, a number of other status messages may be returned to a BEA TOP END client as a result of problems in the TEDG, the BEA Tuxedo system, or the BEA Tuxedo server. Keep in mind that a single error status value may be used to report any one of many possible causes of the error being reported.

Because the TEDG does not advertise services based upon the actual availability of BEA Tuxedo services, a message may be routed to a BEA Tuxedo node where the services actually are unavailable, resulting in a TP_SERVICE error, while other routing decisions may result in successful requests. If a service is to be available on multiple nodes, the design of the BEA Tuxedo application, the BEA TOP END application, and the TEDG must take into account the possibility that this type of failure may occur. A well-designed application, that ensures that there are multiple, restartable copies of the servers, reduces the possibility of such errors occurring.

Error Values Returned to a BEA TOP END Client

BEA TOP END Error Status

Cause

TP_SERVICE, TP_EXT_MSR_FAILURE

The TEDG SERVICE entry lookup failed: the target was not found.

TP_SERVICE, TP_EXT_NO_SUCH_SERV

The TEDG SERVICE entry lookup failed: the product or function was not found (ignoring entries for which RDOM does not have access).

TP_SERVICE, TP_EXT_NO_SUCH_SERV

TPENOENT was returned by the BEA Tuxedo system.

TP_RESET, TP_EXT_SERVER_APPL

The input buffer type does not match the type specified in the INBUFTYPE field of the SERVICE entry.

TP_RESET, TP_EXT_SERVER_APPL

The server response buffer type does not match the type specified in the OUTBUFTYPE field of the SERVICE entry or is not a type supported by the TEDG. (FML32, CARRAY, and X_OCTET are supported.)

TP_RESET, TP_EXT_SERVER_APPL

The size of the server response buffer exceeds the maximum message size of 30K bytes (after the FML index is stripped for FML buffers).

TP_RESET, TP_EXT_SERVER_APPL

Server failed and returned TPFAIL.

TP_RESET, TP_EXT_SERVER_APPL

TPRECVONLY is not specified or TPSENDONLY is set on server response.

TP_RESET, TP_EXT_SERVER_APPL

All other tperrno values.

TP_RESET, TP_EXT_SERVER_APPL

Error due to public/private key encryption:

The client input was rejected by the BEA Tuxedo server because the BEA Tuxedo system is configured to require encryption and the TEDG could not decrypt the message before sending it to the BEA TOP END system.

TP_RESET, TP_EXT_SERVER_APPL

Error due to digital signature:

The client input was rejected by the BEA Tuxedo server because the BEA Tuxedo system is configured to require digital signatures and the TEDG could not remove the digital signature from the message before sending the message to the BEA TOP END system.

TP_RESET, TP_EXT_SERVER_FAIL

Internal error occurred within the TEDG.

See Also