Der ResourceAdapter ermöglicht es Ihnen das ApplicationInterface von Enterprise JavaBeans (EJB) heraus zu nutzen. Aufgrund technischer Einschränkungen ist es nicht möglich aus einem EJB direkt das ApplicationInterface zu verwenden. Der ResourceAdapter läuft nicht im Enterprise JavaBean Container und ist daher nicht an diese Einschränkungen gebunden.
Die Verwendung des ResourceAdapters und des ApplicationInterface unterscheidet sich in lediglich zwei Punkten:
Alle anderen Klassen werden genauso verwendet wie beim direkten Zugriff auf das ApplicationInterface.
Der J2EE Server verwaltet einen Pool von Verbindungen in der Java Connector Architecture (JCA). Das EJB muss von ihm bei Bedarf eine Verbindung anfordern. Der J2EE Server verwendet entweder eine passende Verbindung aus dem Pool oder erzeugt über den ResourceAdapter eine neue, die er nach dem Gebrauch in den Pool legt.
Beim Verbindungsaufbau über das ApplicationInterface werden der Rechner und die Portnummer eines Kommunikationsprozesses benötigt.
Connection uc4 = Connection.open("PC01",2080);
Beim Verbindungsaufbau über den ResourceAdapter sind beide Parameter ein Teil der Konfiguration. Sie erhalten daher über einen JNDI Lookup eine bereits konfigurierte Instanz einer ConnectionFactory. Zu diesem Zeitpunkt muss noch keine Verbindung zum Kommunikationsprozess existieren.
Context initctx = new InitialContext();
ConnectionFactory factory = (ConnectionFactory) initctx.lookup("java:comp/env/eis/UC4");
Es werden zwei Arten der Anmeldung in der JCA unterschieden:
Beim Verbindungsaufbau über das ApplicationInterface sind die Anmeldedaten mitzugeben. Über die Methode isLoginSuccessful können Sie abfragen, ob die Anmeldung erfolgreich war.
CreateSession login = uc4.login(98,"MEIER","UC4","pass",'D');
if (!login.isLoginSuccessful()) {
...
}
Beim Verbindungsaufbau über den ResourceAdapter verwenden Sie die Methode getConnection einer factory, die über einen JNDI Lookup geliefert wird, um eine TCP/IP-Verbindung plus Anmeldung durchzuführen. Hierbei gibt es folgende Varianten:
AdapterConnection uc4 = factory.getConnection();
Der Server, der Port, der Mandant, die Abteilung und die Sprache werden aus der Konfiguration des ResourceAdapters verwendet. Der J2EE Server liefert den Benutzernamen und das Passwort mit dem Sie sich am J2EE Server angemeldet haben (Single Sign-On).
AdapterConnection uc4 = factory.getConnection(97, "SMITH", "UC4", "pass", 'E')
Bei dieser Variante werden alle Anmeldedaten im EJB angegeben. Diese haben gegenüber der Konfiguration des ResourceAdapters eine höhere Priorität. Wenn Sie einen oder mehrere Parameter nicht angeben, wird der entsprechende Wert aus der Konfiguration verwendet. Falls die Anmeldung nicht durchgeführt werden konnte, wird eine ResourceException ausgelöst deren Text den Fehler näher beschreibt.
AdapterConnection uc4 = factory.getConnection(97, "UC4", 'E')
Im EJB sind nur der Mandant, die Abteilung und die Sprache anzugeben. Der Benutzername und das Passwort werden wie in der Variante 1 vom J2EE Server geliefert.
Abgesehen vom Verbindungsaufbau ist die Nutzung der Javaklassen des ApplicationInterfaces genauso als ob Sie das ApplicationInterface direkt nutzen würden. Sehen Sie im folgenden ein einfaches Bespiel, das ein Objekt namens MAWI.TAG im Automation Engine System ausführt.
Context initctx = new InitialContext();
ConnectionFactory factory = (ConnectionFactory) initctx.lookup("java:comp/env/eis/UC4");
AdapterConnection uc4 = factory.getConnection();
ExecuteObject execute = new ExecuteObject(new UC4ObjectName("MM.DAY"));
uc4.sendRequestAndWait(execute);
...
uc4.close();
Siehe auch:
Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support |
Copyright © 2016 Automic Software GmbH |