WebLogic Tuxedo Connector Programmer's Guide
Developing WebLogic Tuxedo Connector Service EJBs
The following sections provide information on how to create WebLogic Tuxedo Connector service EJBs:
Basic Service EJB Operation
A service application uses Java and JATMI primitives to provide the following tasks:
Access Service Information
Use the TPServiceInformation class to access service information sent by the Tuxedo client to run the service.
Table 3-1 JATMI TPServiceInformation Primitives
Buffer Type
|
Description
|
getServiceData()
|
Use to return the service data sent from the Tuxedo Client.
|
getServiceFlags()
|
Use to return the service flags sent from the Tuxedo Client.
|
getServiceName()
|
Use to return the service name that was called.
|
Buffer Messages
Use the following TypedBuffers when sending and receiving messages between your application and Tuxedo:
Table 3-2 TypedBuffers
Buffer Type
|
Description
|
TypedString
|
Buffer type used when the data is an array of characters that terminates with the null character. Tuxedo equivalent: STRING.
|
TypedCArray
|
Buffer type used when the data is an undefined array of characters (byte array), any of which can be null. Tuxedo equivalent: CARRAY.
|
TypedFML
|
Buffer type used when the data is self-defined. Each data field carries its own identifier, an occurrence number, and possibly a length indicator. Tuxedo equivalent: FML.
|
TypedFML32
|
Buffer type similar to TypeFML but allows for larger character fields, more fields, and larger overall buffers. Tuxedo equivalent: FML32.
|
TypedXML
|
Buffer type used when data is an XML based message. Tuxedo equivalent: XML for Tuxedo Release 7.1 and higher.
|
TypedView
|
Buffer type used when the application uses a Java structure to define the buffer structure using a view description file. Tuxedo equivalent: VIEW
|
TypedView32
|
Buffer type similar to View but allows for larger character fields, more fields, and larger overall buffers. Tuxedo equivalent: VIEW32.
|
TypedXOctet
|
Buffer type used when the data is an undefined array of characters (byte array) any of which can be null. X_OCTET is identical in semantics to CARRAY. Tuxedo equivalent: X_OCTET.
|
TypedXCommon
|
Buffer type identical in semantics to View. Tuxedo equivalent: VIEW.
|
TypedXCType
|
Buffer type identical in semantics to View. Tuxedo equivalent: VIEW.
|
TypedMBString
|
Buffer type used when the data is a wide array of characters to support multibyte characters. Tuxedo equivalent: MBSTRING.
|
Perform the Requested Service
Use Java code to express the logic required to provide your service.
Return Client Messages for Request/Response Communication
Use the TuxedoReply class setReplyBuffer()
method to respond to client requests.
Use tpsend and tprecv for Conversational Communication
Note: For more information on Conversational Communication, see WebLogic Tuxedo Connector JATMI Conversations.
Use the following JATMI primitives when creating conversational servers that communicate with Tuxedo clients:
Table 3-3 WebLogic Tuxedo Connector Conversational Client Primitives
Name
|
Operation
|
tpconnect
|
Use to establish a connection to a Tuxedo conversational service.
|
tpdiscon
|
Use to abort a connection and generate a TPEV_DISCONIMM event when executed by the process controlling the conversation.
|
tprecv
|
Use to receive data across an open connection from a Tuxedo application.
|
tpsend
|
Use to send data across a open connection to a Tuxedo application.
|
Example Service EJB
The following provides an example of the TolowerBean.java
service EJB which receives a string argument, converts the string to all lower case, and returns the converted string to the client.
Listing 3-1 Example Service EJB
.
.
.
public Reply service(TPServiceInformation mydata) throws TPException {
TypedString data;
String lowered;
TypedString return_data;
log("service tolower called");
data = (TypedString) mydata.getServiceData();
lowered = data.toString().toLowerCase();
return_data = new TypedString(lowered);
mydata.setReplyBuffer(return_data);
return (mydata);
}
.
.
.