The following sections provide information on how to create Oracle WebLogic Tuxedo Connector service EJBs:
A service application uses Java and JATMI primitives to provide the following tasks:
Access Service Information
Buffer Messages
Perform the Requested Service
Use the TPServiceInformation class to access service information sent by the Oracle 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 Oracle Tuxedo Client. |
getServiceFlags() |
Use to return the service flags sent from the Oracle Tuxedo Client. |
getServiceName() |
Use to return the service name that was called. |
Use the following TypedBuffers when sending and receiving messages between your application and Oracle Tuxedo:
| Buffer Type | Description |
|---|---|
|
TypedString |
Buffer type used when the data is an array of characters that terminates with the null character. Oracle Tuxedo equivalent: STRING. |
|
TypedCArray |
Buffer type used when the data is an undefined array of characters (byte array), any of which can be null. Oracle 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. Oracle Tuxedo equivalent: FML. |
|
TypedFML32 |
Buffer type similar to TypeFML but allows for larger character fields, more fields, and larger overall buffers. Oracle Tuxedo equivalent: FML32. |
|
TypedXML |
Buffer type used when data is an XML based message. Oracle 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. Oracle 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. Oracle Tuxedo equivalent: X_OCTET. |
|
TypedXCommon |
Buffer type identical in semantics to View. Oracle Tuxedo equivalent: VIEW. |
|
TypedXCType |
Buffer type identical in semantics to View. Oracle Tuxedo equivalent: VIEW. |
|
TypedMBString |
Buffer type used when the data is a wide array of characters to support multi-byte characters. Oracle Tuxedo equivalent: MBSTRING. |
Use Java code to express the logic required to provide your service.
Use the TuxedoReply class setReplyBuffer() method to respond to client requests.
Note:
For more information on Conversational Communication, see Chapter 6, "Oracle WebLogic Tuxedo Connector JATMI Conversations."Use the following JATMI primitives when creating conversational servers that communicate with Oracle Tuxedo clients:
Table 3-3 Oracle WebLogic Tuxedo Connector Conversational Client Primitives
| Name | Operation |
|---|---|
|
tpconnect |
Use to establish a connection to an Oracle 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 an Oracle Tuxedo application. |
|
tpsend |
Use to send data across a open connection to an Oracle Tuxedo application. |
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.
Example 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);
}
.
.
.