Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Code-Beispiele für Outbound-Kommunikation

&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) { 
...