Loading...
Select Version
&pagelevel(4)&pagelevel
Dieser Abschnitt erhält die folgenden Code-Beispiele:
Dialogbasierte Kommunikation unter Verwendung des Interfaces EISConnection.
Dialogbasierte Kommunikation unter Verwendung des Interfaces CCI.
Connection Groups unter Verwendung des Interfaces EISConnectionGroup.
Beispiel 7 Dialogbasierte Kommunikation unter Verwendung des Interfaces EISConnection
...
public String callService(String request) throws EJBException
{
net.fsc.jca.communication.EISConnectionFactory cf = null;
net.fsc.jca.communication.EISConnection con = null;
String reply = null;
try
{
javax.naming.InitialContext ic =
new javax.naming.InitialContext();
cf = (net.fsc.jca.communication.EISConnectionFactory)
ic.lookup("java:comp/env/eis/myEIS");
con= cf.getConnection();
reply = con.call(request);
con.close();
con = null;
return reply;
}
catch (Exception e)
{
if (con != null)
{
con.close();
}
throw new EJBException ("EJB Exception: " + e);
}
}
Damit Sie diese Methode verwenden können, muss der Deployment Descriptor der EJB folgende Informationen beinhalten:
<resource-ref> <res-ref-name>eis/myEIS</res-ref-name> <res-type>net.fsc.jca.communication.EISConnectionFactory</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Unshareable</res-sharing-scope> </resource-ref>
Beispiel 8 Dialogbasierte Kommunikation unter Verwendung des Interfaces CCI
...
public String sndRcvJavax(String user, String name, String data)
{
String retValue = "";
Connection connection = null;
try {
Context ic = new InitialContext();
ConnectionFactory cf = ConnectionFactory)ic.lookup("java:comp/env/eis/myEIS");
ConnectionSpec cred = new BCCciConnectionSpec (user, "");
connection = cf.getConnection(cred);
Interaction ix = connection.createInteraction();
InteractionSpec is = new BCCciInteractionSpec(InteractionSpec.SYNC_SEND_RECEIVE,"HELLO");
BCRecordFactory recordFactory = (BCRecordFactory)cf.getRecordFactory();
BCRecord in = recordFactory.createBCRecord("SendRecord");
BCRecord out = recordFactory.createBCRecord("ReceiveRecord");
OltpMessage inMsg = in.getOltpMessage();
inMsg.addMessagePart(data);
out = (BCRecord)ix.execute(is, in);
OltpMessage outMsg = out.getOltpMessage();
Iterator it<OltpMessagePart> = outMsg.getMessageParts();
OltpMessagePart msgPart;
while (it.hasNext()) {
msgPart = it.next();
retValue += msgPart.getText();
}
} catch ( Throwable ex) {
// Todo: Fehlerbehandlung
}// tryCatch
try {
if ( connection != null )
connection.close(); }
catch (ResourceException e){
retValue += "\n bei connection.close():\n"+getStackInfo(e);
}
return retValue;
} // sndRcvJavax
Damit Sie diese Methode verwenden können, muss der Deployment Descriptor der EJB folgende Informationen beinhalten:
<resource-ref> <res-ref-name>eis/myEIS</res-ref-name> <res-type>net.fsc.jca.communication.EISConnectionFactory</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Unshareable</res-sharing-scope> </resource-ref>
Beispiel 9 Connection Groups unter Verwendung des Interfaces EISConnectionGroup
...
EISOltpConnection con1 = null;
EISOltpConnection con2 = null;
try {
javax.naming.InitialContext ic =
new javax.naming.InitialContext();
cf = (net.fsc.jca.communication.EISConnectionFactory)
ic.lookup("java:comp/env/eis/myEIS");
EISConnectionGroupFactory cgf =
cf.getEISConnectionGroupFactory();
EISConnectionGroup cg = cgf.getConnectionGroup();
con1 = (EISOltpConnection)cf.getConnection(cg, new
PasswordCredential("upicusea", ""));
con2 = (EISOltpConnection)cf.getConnection(cg, new
PasswordCredential("upicuseb", ""));
OltpMessage om1 = con1.createMessage();
om1.addMessagePart("STAT");
OltpMessage om2 = con2.createMessage();
om2.addMessagePart("osi-con,l=kdcall");
con1.sndOltpMessage(om1);
con2.sndOltpMessage(om2);
cg.execute();
String s;
om2 = con2.rcvOltpMessage();
Iterator iter<OltpMessageRecord> = om2.getMessageRecords();
for (s = ""; iter.hasNext(); )
{ s+=iter.next()).getText(); }
String result_o = "";
result_o = result_o + "OltpConnection: KDCINF osi-con,
l=kdcall\n" + s + "\n";
om1 = con1.rcvOltpMessage();
iter = om1.getMessageRecords();
for (s = ""; iter.hasNext(); ) {
s+= ((OltpMessageRecord)iter.next()).getText(); }
result_o = addResult_o(result_o, "OltpConnection:
KDCINF STAT\n" + s + "\n");
s = cg.getGroupName();
result_o = result_o + "OltpConnection: KDCINF STAT\n" +s
+ "\n");
con1.close();
con2.close();
return result_o;
} catch(EISConnectionException ex) {
...