Oracle® Fusion Middleware WebLogic Tuxedo Connector Programmer's Guide for Oracle WebLogic Server 11g Release 1 (10.3.6) Part Number E13723-05 |
|
|
PDF · Mobi · ePub |
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:
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. 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); } . . .