![]() |
![]() |
e-docs > WebLogic Server > WebLogic Tuxedo Connector Programmer's Guide > Developing WebLogic Tuxedo Connector Client EJBs |
WebLogic Tuxedo Connector Programmer's Guide
|
Developing WebLogic Tuxedo Connector Client EJBs
Note: For more information on the WebLogic Tuxedo Connector JATMI, view the Javadocs for WebLogic Classes.The WebLogic Tuxedo Connector classes are located in the weblogic.wtc.jatmi and weblogic.wtc.gwt packages.
The following sections describe how to create client EJBs that take user input and send service requests to a server process or outbound object that offers a requested service.
WebLogic Tuxedo Connector JATMI client classes are used to create clients that access services found in Tuxedo.
Joining and Leaving Applications
Tuxedo and WebLogic Tuxedo Connector have different approaches to connect to services.
The following section compares how Tuxedo and WebLogic Tuxedo Connector join an application:
Listing 2-1 Example Client Code to Join a Tuxedo Application
.
.
.
try {
ctx = new InitialContext();
tcf =
(TuxedoConnectionFactory) ctx.lookup("tuxedo.services.TuxedoConnection");
} catch (NamingException ne) {
// Could not get the tuxedo object, throw TPENOENT
throw new TPException(TPException.TPENOENT,
"Could not get TuxedoConnectionFactory : " + ne);
}
myTux = tcf.getTuxedoConnection();
.
.
.
The following section compares how Tuxedo and WebLogic Tuxedo Connector leave an application:
A client process uses Java and JATMI primitives to provide the following basic application tasks:
A client may send and receive any number of service requests before leaving the application.
Establish a connection to a remote domain by using the TuxedoConnectionFactory to lookup "tuxedo.services.TuxedoConnection" in the JNDI tree and get a TuxedoConnection object using getTuxedoConnection().
Use the following TypedBuffers when sending and receiving messages between your application and Tuxedo:
WebLogic Tuxedo Connector clients support two types of communications with Tuxedo service applications:
Request/Response Communication
Use the following JATMI primitives to request and receive response messages between your WebLogic Tuxedo Connector client application and Tuxedo:
Note: For more information on Conversational Communication, see WebLogic Tuxedo Connector JATMI Conversations.
Use the following conversational primitives when creating conversational clients that communicate with Tuxedo services:
Close a Connection to a Tuxedo Object
Use tpterm() to close a connection to an object and prevent future operations on this object.
The following Java code provides an example of the ToupperBean.java client EJB which sends a string argument to a server and receives a reply string from the server.
Listing 2-2 Example Client Application
.
.
.
public String Toupper(String toConvert)
throws TPException, TPReplyException
{
Context ctx;
TuxedoConnectionFactory tcf;
TuxedoConnection myTux;
TypedString myData;
Reply myRtn;
int status;
log("toupper called, converting " + toConvert);
try {
ctx = new InitialContext();
tcf = (TuxedoConnectionFactory) ctx.lookup(
"tuxedo.services.TuxedoConnection");
}
catch (NamingException ne) {
// Could not get the tuxedo object, throw TPENOENT
throw new TPException(TPException.TPENOENT, "Could not get TuxedoConnectionFactory : " + ne);
}
myTux = tcf.getTuxedoConnection();
myData = new TypedString(toConvert);
log("About to call tpcall");
try {
myRtn = myTux.tpcall("TOUPPER", myData, 0);
}
catch (TPReplyException tre) {
log("tpcall threw TPReplyExcption " + tre);
throw tre;
}
catch (TPException te) {
log("tpcall threw TPException " + te);
throw te;
}
catch (Exception ee) {
log("tpcall threw exception: " + ee);
throw new TPException(TPException.TPESYSTEM, "Exception: " + ee);
}
log("tpcall successfull!");
myData = (TypedString) myRtn.getReplyBuffer();
myTux.tpterm(); // Closing the association with Tuxedo
return (myData.toString());
}
.
.
.
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |