> Verzeichnis der Dokumente mit den theoretischen Grundlagen |
|
Letzte
Bearbeitung dieses Dokuments: |
Voraussetzungen für das Verständnis dieses Dokuments:* Kenntnisse der
Programmierung von Heavyweight-Clients (Fat-Clients) in Java. |
Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:Das
ist ein Dokument zur Erklärung des theoretischen
Hintergrundes des JavaScout-Fat-Client-Frameworks (JS-FCF). |
Dieses
Dokument beschreibt die XML-Struktur in der Datei
'Connections.xml'.
Diese Datei ist Teil des
JavaScout-Fat-Client-Frameworks und enthält die Parameter für
die Verbindung zum Datenbanksystem und/oder die Verbindung zu einem
oder mehreren Java-Application-Server (JAS).
Die Datei ist im Unterverzeichnis 'CONNECTIONS' abgelegt; eine detaillierte Beschreibung zur Verzeichnisstruktur finden Sie im Dokument Verzeichnisstruktur für die Entwicklung von Heavyweight-Clients mit dem JS-FCF.
Vorbedingungen
Muster
einer Datei
Detailbeschreibung
des ClientID-Parameter (Mandanten-Identifikation)
Detailbeschreibung
der Datenbank-Parameter
Detailbeschreibung
der JAS-Parameter
Weitere
Schritte und verwandte Dokumentation
Grundlegende Kenntnisse über XML-Strukturen.
Kenntnisse
über notwendige Parameter für die Verbindung zu einem
Datenbanksystem.
Zum Erwerben des nötigen Wissen wird ein
Durcharbeiten des Tutorials Datenbank-Ladeprogramm
mit Graphischer Benutzeroberfläche (Java_Intro_02)
empfohlen.
Kenntnisse
über notwendige Parameter für die Verbindung zu einem
Java-Application-Server (JAS).
Zum Erwerben des nötigen
Wissen wird ein Durcharbeiten des Tutorials Client-Programm
für einfache Session-Bean, EJB3-Standard (Java_EJB_06)
empfohlen.
Diese
Muster-Datei enthält als Beispiel Parameter für die
Verbindung zu einer MySQL-Datenbank und zu 3 EJB
(Enterprise-Java-Beans) die auf einem JAS (Java-Application-Server)
laufen.
Üblicherweise verwendet ein Client-Programm entweder
ein Datenbanksystem oder einen JAS für das Speichern von Daten;
die vorgestellte Muster-Datei wird im täglichen Betrieb also
kaum vorkommen.
Die Datei wurde so aufgebaut um eine XML-Struktur
vorstellen zu können, die sowohl die Parameter für die
Verbindung zu einer Datenbank als auch die Parameter für die
Verbindung zu 3 EJB, die auf 2 verschiedenen JAS laufen, enthält.
Für eine detaillierte Beschreibung der einzelnen Elemente der XML-Struktur klicken Sie bitte auf die jeweilige Zeile.
<!--
Root-Element (Connections); muss vorhanden sein sonst meldet der
Parser einen Fehler -->
<Connections>
<!--
*********************************************
-->
<!--
*** Parameter für die Mandanten-Identifikation (Client-ID);
dieses Element ist optional *** -->
<ClientID>
123
</ClientID>
<!--
*********************************************
-->
<!--
********** Parameter für die Verbindung zur Datenbank
***********
-->
<DataBaseParameters>
<DataBaseDriverName>
com.mysql.jdbc.Driver
</DataBaseDriverName>
<DataBaseName>
jdbc:mysql://192.168.0.125:3306/js_tutorial
</DataBaseName>
<DataBaseUserID>
mysql
</DataBaseUserID>
<DataBasePassword>
drowssap
</DataBasePassword>
</DataBaseParameters>
<!--
*********************************************
-->
<!--
********** Parameter für die Verbindung zu(m)
Java-Application-Server(s) ***********
-->
<JASParameter>
<SymbolicName>
Standard
</SymbolicName>
<mappedJNDIName>
ejb/application_StandardEJBJNDI
</mappedJNDIName>
<ConnectionProperty>
<PropertyKey>java.naming.provider.url
</PropertyKey>
<PropertyValue>192.168.0.125:1099
</PropertyValue>
</ConnectionProperty>
<ConnectionProperty>
<PropertyKey>java.naming.factory.url.pkgs
</PropertyKey>
<PropertyValue>org.jboss.naming:org.jnp.interfaces
</PropertyValue>
</ConnectionProperty>
<ConnectionProperty>
<PropertyKey>java.naming.factory.initial
</PropertyKey>
<PropertyValue>org.jnp.interfaces.NamingContextFactory
</PropertyValue>
</ConnectionProperty>
</JASParameter>
<JASParameter>
<SymbolicName>HighVolume
</SymbolicName>
<mappedJNDIName>
ejb/application_HV_Order_EJB
</mappedJNDIName>
<ConnectionProperty>
<PropertyKey>
java.naming.provider.url
</PropertyKey>
<PropertyValue>
192.168.0.125:1099
</PropertyValue>
</ConnectionProperty>
<ConnectionProperty>
<PropertyKey>
java.naming.factory.url.pkgs
</PropertyKey>
<PropertyValue>
org.jboss.naming:org.jnp.interfaces
</PropertyValue>
</ConnectionProperty>
<ConnectionProperty>
<PropertyKey>
java.naming.factory.initial
</PropertyKey>
<PropertyValue>
org.jnp.interfaces.NamingContextFactory
</PropertyValue>
</ConnectionProperty>
</JASParameter>
<JASParameter>
<SymbolicName>ShippingRegistration
</SymbolicName>
<mappedJNDIName>
client_api_EJB
</mappedJNDIName>
<ConnectionProperty>
<PropertyKey>
java.naming.provider.url
</PropertyKey>
<PropertyValue>
iiop://10.0.3.237:3700
</PropertyValue>
</ConnectionProperty>
<ConnectionProperty>
<PropertyKey>
java.naming.factory.url.pkgs
</PropertyKey>
<PropertyValue>
com.sun.enterprise.naming
</PropertyValue>
</ConnectionProperty>
<ConnectionProperty>
<PropertyKey>
java.naming.factory.initial
</PropertyKey>
<PropertyValue>
com.sun.enterprise.naming.SerialInitContextFactory
</PropertyValue>
</ConnectionProperty>
<ConnectionProperty>
<PropertyKey>
java.naming.factory.state
</PropertyKey>
<PropertyValue>
com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl
</PropertyValue>
</ConnectionProperty>
</JASParameter></Connections>
<ClientID>
ist
ein optionales XML-Element, das die Zuordnung einer
Mandanten-Identifikation ermöglicht.
Die Trennung in
verschiedene Mandanten erlaubt die Nutzung eines Anwendungsprogramms
auf einem JAS (Java Application Server) durch mehrere
Anwendergruppen (Mandanten).
Die Daten einer Anwendergruppe sind
dabei nur für die Mitglieder einer Anwendergruppe einsehbar und
können nicht von einer Anwendergruppe mit einer anderen
Mandanten-Identifikation abgerufen oder verändert
werden..
Dieses XML-Element ist nicht zwingend.
Bei einem
Fehlen dieses XML-Elements ist innerhalb des Anwendungsprogramms zu
entscheiden, welcher Mandanten-ID verwendet wird.
Wenn die
Basisklassen des JavaScout
Fat-Client-Frameworks
verwendet werden, dann wird innerhalb der Klasse
JSBS_XML_Connections
für den Mandanten-ID (ClientID) der Wert '0' vergeben.
<DataBaseParameters>
ist
der Abschnitt, der die Parameter für den Zugriff auf die
Datenbank enthält.
Dieser Abschnitt ist nur notwendig wenn
das Java-Applikationsprogramm auf eine Datenbank zugreifen muss.
In
anderen Worten:
Wenn das Java-Applikationsprogramm ein Client für
einen Java-Application-Server (JAS) ist, kann der Abschnitt
<DataBaseParameters>
weggelassen
werden.
<DataBaseDriverName>
ist
die Klasse, die den Code für die Verbindung zum Datenbanksystem
enthält.
Diese Klasse wird vom Hersteller des
Datenbanksystems bereitgestellt und ist üblicherweise in einer
eigenen Java-ARchiv- (JAR-) enthalten.
<DataBaseName>
ist
die Identifikation der Datenbank.
Diese Bezeichnung hängt
vom verwendeten Datenbanksystem ab; das verwendete Beispiel bezieht
sich auf das Datenbanksystem MySQL.
<DataBaseUserID>
ist
die Identifikation eines Benutzers, der Rechte für den Zugang
zur Datenbank besitzen muß.
Die Einrichtung einer
Datenbank unter MYSQL und die Vergabe von Berechtigungen ist im
Dokument MySQL
Datenbank für die Verwendung mit Java-programmen einrichten
beschrieben.
<DataBasePassword>
ist
das Passwort zu der verwendeten Benutzer-Identifikation (UserID).
<JASParameter>
ist
ein Abschnitt, der die Parameter für den Zugriff auf ein EJB
(Enterprise Java Bean) enthält.
Dieser Abschnitt ist nur
notwendig wenn das Java-Applikationsprogramm auf einen oder mehrere
EJBs (mehrere EJBs könne auch auf verschiedenen JAS laufen)
zugreifen muß.
In anderen Worten:
Wenn das
Java-Applikationsprogramm die Datenspeicherung direkt auf einer
Datenbank verwaltet, kann der Abschnitt <JASParameters>
weggelassen
werden.
Dieser
Abschnitt kann mehrfach in der Datei vorhanden sein.
Die
Definition von mehreren Abschnitten kann aus folgenden Gründen
erfolgen:
* Aus Performanz-Gründen sind die
Aufgaben auf mehrere EJBs verteilt; z.B.
ein EJB mit selten
aufgerufenen, zahlreichen Methoden und
mehrere EJBs mit je einer
einzelnen Methode die häufig aufgerufen wird.
* Das
Java-Programm muss auf EJBs, die auf verschiedenen JAS laufen,
zugreifen.
So können Daten auf verteilten Systemen verwendet
werden.
<SymbolicName>
ist
ein symbolischer Name, der innerhalb des Java-Programms verwendet
wird um das XML-Element auszulesen, das die Parameter für die
Verbindung mit dem gewünschten EJB enthält.
Wenn
Sie für Ihre Entwicklung die JavaScout Basisklassen (JSBS)
verwenden, ist ein Abschnitt <JASParameter>
mit
einem XML-Element <SymbolicName>
Standard
<SymbolicName>
unbedingt
notwendig.
Über das damit definierte EJB wird in den
Basisklassen die Größe und Position eines Fensters (beim
Schließen des Fensters) auf der Datenbank gespeichert bzw.
wieder gelesen wenn das Fenster wieder geöffnet wird.
Wenn Sie zusätzlich zum Standard-EJB weitere EJB verwenden wollen, finden Sie unter Muster-Code für die Klassen eines Start-Frames > Anleitung zur Adaptierung in der Klasse für die Verbindung zum EJB einen Muster-Code, wie eine Verbindung vom Client-Programm zum EJB hergestellt werden kann.
<mappedJNDIName>
ist
jener Name, unter dem das EJB beim JAS registriert ist.
Dieser
Name ist innerhalb der Java-Klasse für das EJB festgelegt durch
eine 'Injection' festgelegt; eine detaillierte Beschreibung finden
Sie unter Tutorial:
Einfache Session Bean, EJB3-Standard (Java_EJB_05) - Codieren >
Class ShowTimeDateBean
mit
den Implementierungen der Methoden erstellen.
Dieser
Name kann außerhalb der Java-Klasse für das EJB verändert
werden; das geschieht in der Konfigurationsdatei 'ejb-jar.xml'.
Beispiele für den Inhalt dieser Datei finden Sie unter
Tutorial:
Einfache Session Bean, EJB3-Standard (Java_EJB_05) – Packen in
EAR-Datei und Ändern des JNDI-Namens > Ändern des
JNDI-Namens und
>
Gesamter Code am Ende des Tutorials > Datei ejb-jar.xml.
<ConnectionProperty>
besteht
aus einem Datenpaar (<PropertyKey>
und
<PropertyValue>
)
und ist ein Teil der Daten für die Verbindung zu einem JAS
(Java Application Server).
Die Werte für die Datenpaare
werden vom Hersteller des jeweiligen JAS vorgegeben. Üblicherweise
existiert zu jedem JAS eine Datei mit Namen 'jndi.properties' in dem
die Paare aus 'Schlüssel' und 'Wert' enthalten sind.
Wenn
aus dem Anwendungsprogramm nur die Verbindung zu einem JAS notwendig
ist, ist es einfacher und überschaubarer die Verbindungsdaten
in einer Datei mit Namen 'jndi.properties' abzulegen. Ein Beispiel
für eine solche Datei finden Sie unter Tutorial:
Client-Programm für Einfache Session Bean, EJB3-Standard
(Java_EJB_06) > Gesamter Code am Ende des Schrittes > Datei
jndi.properties.
Nur
wenn die Verbindung zu mehr als einem JAS hergestellt werden muss
– und
das wird nur in Ausnahmefällen notwendig sein – ist
es notwendig, die Werte für die Verbindungen zu den JAS in der
XML-Struktur zu definieren.
Wenn
mehrere EJB auf einem JAS laufen, ist es nur notwendig für
jedes EJB einen <JASParameter>
-Teil
mit <SymbolicName>
und
<mappedJNDIName>
zu
erstellen.
Die
Werte für die Verbindung (zu diesem einzigen JAS) brauchen dann
nicht in den <ConnectionProperty>
-Teilen
der XML-Struktur definiert werden - sondern können in der Datei
'jndi.properties' erfasst werden.
Dokument |
Inhalt |
Klasse aus dem JavaScout-Basis-System (JSBS) in der diese Datei gelesen und die Parameter abgefragt werden. |