Übergeordnete Klasse für alle Programmaufruf-Beans. Sie enthält allgemeine Methoden und Merkmale aller Programmaufruf-Beans.
LogonSpecDiese Klasse enthält die Angaben (Hostname, Benutzer-ID und Kennwort), die zum Herstellen der Verbindung mit dem fernen System verwendet werden. Wenn Ihre Anwendung auf dem fernen System ausgeführt wird, können Sie die folgenden speziellen Werte für Hostname, Benutzer-ID und Kennwort verwenden: "localhost", "*CURRENT", "*CURRENT". Zum Ausführen von Programmaufrufen wird das aktuelle Benutzerprofil verwendet.
IConnectionDer Assistent für den Programmaufruf generiert drei Klassen, die diese Schnittstelle implementieren: AS400Connection, PooledAS400Connection, JcaAS400Connection.
AS400ConnectionAS400Connection ist ein einfacher Wrapper für ein AS400-Objekt. Sie sollten diesen Verbindungstyp der Programmaufruf-Bean zuordnen, wenn Ihre Anwendung alle Verbindungen zum fernen System verwaltet.
RuntimeContext enthält sowohl alle in der Laufzeitkonfigurationsdatei definierten Informationen als auch weitere globale Informationen, die von unterschiedlichen Programmaufruf-Beans gemeinsam genutzt werden. Für jede in Ihrem Projekt definierte Konfigurationsdatei ist eine einzelne RuntimeContext-Instanz vorhanden.
Beispiel 1:
TestProgram pgm = new TestProgram(); AS400Connection myConnection = new AS400Connection(myAS400); pgm.initConnection(myConnection);PooledAS400Connection
PooledAS400Connection ist eine Verbindung, die Teil eines Verbindungspools ist. Die Methode getAS400() gibt ein AS400-Objekt aus dem Pool zurück. Die Methode versucht anhand der Angaben (Hostname, Benutzer-ID und Kennwort) im Objekt LogonSpec, ein vorhandenes AS400-Objekt im Pool zu finden. Ist ein Objekt verfügbar, wird es zurückgegeben. Andernfalls wird ein neues AS400-Objekt erstellt. Nach erfolgtem Programmaufruf wird das AS400-Objekt von der Methode releaseAS400() in den Verbindungspool zurückgestellt.
Beachten Sie, dass die Bibliotheksliste und die Anfangsbefehlinformationen im Objekt LogonSpec nicht für die Suche nach einem vorhandenen AS400-Objekt im Pool verwendet werden. Diese Informationen werden lediglich beim Erstellen einer neuen Verbindung verwendet. Die Bibliothekslisteninformationen werden für die Konfiguration der Anfangsbibliotheksliste verwendet. Desgleichen wird der Anfangsbefehl nur ein einziges Mal ausgeführt. Wenn Ihre Anwendung während der Ausführung die Bibliotheksliste bearbeitet, sollten Sie daran denken, dass alle an der Bibliotheksliste vorgenommenen Änderungen bestehen bleiben, wenn die Verbindung zu einem späteren Zeitpunkt wiederverwendet wird. Außerdem sollten Sie keine zwei Verbindungen mit demselben Hostnamen, derselben Benutzer-ID und demselben Kennwort, aber mit unterschiedlicher Bibliotheksliste und unterschiedlichen Anfangsbefehlinformationen definieren. In diesem Fall würde unter Umständen eine Verbindung mit falscher Bibliotheksliste für Ihr Programm hergestellt. Beispiel: Programm A definiert eine Verbindung, die angibt, dass Bibliothek LIBA in der Bibliotheksliste enthalten sein soll. Programm B definiert eine Verbindung mit demselben Hostnamen, derselben Benutzer-ID und demselben Kennwort, gibt jedoch an, dass Bibliothek LIBB in der Bibliotheksliste enthalten sein soll. Zur Ausführungszeit verwendet Programm B dann unter Umständen die von Programm A definierte Verbindung.
Der Verbindungspool ist eine Instanz der Klasse AS400ConnectionPool in der Toolbox. Der Verbindungspool bleibt offen, bis Ihre Anwendung beendet wird. Ihre Anwendung kann den Pool durch Verwendung der Methode getPoolInstance() explizit schließen, indem ein Handle zum Pool abgerufen wird. Mit einem Handle zum Pool können Sie auch andere Einstellungen wie beispielsweise die minimale und maximale Anzahl zulässiger Verbindungen konfigurieren.
Verbindungen werden nach Bedarf erstellt. Nach der Erstellung bleiben sie im Pool, bis der Pool geschlossen wird.
Die folgenden Beispiele zeigen die Verwendung von PooledAS400Connection.
Beispiel 1:
TestProgram pgm = new TestProgram();
LogonSpec logonInfo = new LogonSpec();
logonInfo.setHostName("mySystem");
logonInfo.setUserName("user");
logonInfo.setUserPw("password");
PooledAS400Connection pooledConn = new PooledAS400Connection(TestProgram.getRuntimeContext().getAS400ConnectionPool(), logonInfo);
initConnection(pooledConn);
JcaAS400ConnectionJcaAS400Connection steht für eine ISeriesPgmCallConnection-JCA-Verbindung. Die Methode getAS400() führt anhand des angegebenen JNDI-Namens für die JCA-Verbindung eine Suche aus. Diese JCA-Verbindung muss eine Instanz von ISeriesPgmCallConnection sein. Bei dem zurückgegebenen AS400-Objekt handelt es sich um das Objekt, das sich innerhalb der ISeriesPgmCallConnection-JCA-Verbindung befindet.
Die Methode releaseAS400() schließt die JCA-Verbindung.
Um JcaAS400Connection verwenden zu können, müssen Sie ein separates Connectorprojekt konfigurieren. Weitere Informationen finden Sie in J2C-Connector für IBM i-Programmaufruf für die WebSphere-Testumgebung konfigurieren.
Beispiel 1: In diesem Beispiel wird eine JCA-Verbindung unter Verwendung der Standardanmeldedaten im JCA-Connectorprojekt erstellt.
String jndiName = "my.jca"; JcaAS400Connection jcaConn = new JcaAS400Connection(jndiName); initConnection(jcaConn);
Beispiel 2: In diesem Beispiel wird eine Anmeldespezifikation bereitgestellt, um die Standardanmeldedaten des Connectorprojekts zu überschreiben.
String jndiName = "my.jca";
JcaAS400Connection jcaConn = new JcaAS400Connection(jndiName);
LogonSpec logonInfo = new LogonSpec();
logonInfo.setHostName("mySystem");
logonInfo.setUserName("user");
logonInfo.setUserPw("password");
initConnection(logonSpec, jndiName);
IConnectionFactoryDiese Schnittstelle stellt eine Verbindungsfactory dar. Implementieren Sie diese Schnittstelle, um angepasste Verbindungen für die Programmaufruf-Beans bereitzustellen. Gleichzeitig sollten Sie die Variable WDT_CONNECTIONFACTORY in der Laufzeitkonfigurationsdatei aktualisieren, damit sie auf Ihre Verbindungsfactoryklasse zeigt.
ConnectionFactoryDiese Klasse implementiert die Schnittstelle IConnectionFactory. Sie erstellt die folgenden Typen von IConnection abhängig von den Werten, die in der Laufzeitkonfigurationsdatei angegeben sind: JcaAS400Connection, PooledAS400Connection
NachrichtenVon den Programmaufruf-Beans ausgegebene Nachrichten werden in dieser Klasse definiert. Es gibt eine entsprechende Datei Messages.properties, in der der Text der Nachrichten gespeichert wird.
KonstantenVon den Programmaufruf-Beans verwendete Konstanten werden in dieser Klasse definiert.
Der Assistent für Programmaufruf generiert Klassen für jedes von Ihnen definierte Programm und Klassen, die Datenstrukturen darstellen. Wenn Sie die Option zum Generieren von Web-Services ausgewählt haben, werden für jedes Programm drei zusätzliche Klassen generiert. Eine der Klassen ist eine Java-Bean, deren Name mit dem Wort Services endet. Die anderen beiden Klassen haben Namen, die mit Input oder Result enden. Diese beiden Klassen werden von der Java-Bean-Klasse für Web-Services benötigt. Soll ein Web-Service unter Verwendung des Assistenten für Web-Services erstellt werden, müssen Sie die Klasse, deren Name mit dem Wort Services endet, als Eingabe für den Assistenten für Web-Services verwenden.
Zusätzlich zu den oben erwähnten Klassen generiert der Assistent außerdem einmalig Klassendateien für die Laufzeitunterstützung für jedes Projekt. Näheres siehe Laufzeitunterstützungsklassen.
Der Assistent erstellt auch eine PCML-Datei und eine Datei .mpcml. Sie benötigen die Datei .mpcml nicht, wenn Sie Ihre Anwendung oder Services implementieren. Sie wird nur zur Entwicklungszeit in der Workbench verwendet. Außerdem wird eine Datei .config erstellt, wenn Sie mit der dritten Seite des Assistenten fortfahren und angeben, dass die Einstellungen gesichert werden sollen.
Wenn der von Ihnen angegebene Ordner zu einem Java-Projekt gehört, wird der Klassenpfad des Projekts aktualisiert, damit er die folgenden JAR-Dateien enthält. Wenn Sie Ihre Java-Anwendung implementieren, müssen Sie sicherstellen, dass diese JAR-Dateien im Anwendungsklassenpfad definiert sind. Beachten Sie, dass die JAR-Datei iseriespgmcallclient nur hinzugefügt wird, wenn Ihr Projekt J2EE-konform ist.
Wenn der von Ihnen angegebene Ordner zu einem Webprojekt gehört, werden diese JAR-Dateien in den Ordner lib Ihres Webprojekts kopiert. Beachten Sie, dass die JAR-Datei iseriespgmcallclient nur hinzugefügt wird, wenn Ihr Projekt einen J2EE-konformen Server als Zielserver aufweist.