Entwickeln von Windows DNA

Werbung
Entwickeln von Windows DNA-Anwendungen
mit dem COMCodebook – Teil 10
Yair Alan Griver
Übersetzt von Mathias Gronau
Teil 10 –
Anwendung
Skalieren
unserer
Wenn Sie an robusteren Lösungen
interessiert sind, sollten Sie diesen Abschnitt
unbedingt lesen. Ich behandle die Skalierung
auf eine Oracle8- oder SQL ServerDatenbank und zeige Ihnen, welche
geringen Änderungen im Code der mittleren
Schicht dafür erforderlich sind. Außerdem
behandle ich das Ausführen unserer
Komponenten unter dem Microsoft
Transaction Server. Ich gehe davon aus, dass
Sie mit den hier behandelten Datenbanken
vertraut sind und konzentriere mich auf die
Änderungen in der mittleren Schicht und die
Konfiguration des MTS.
Einsatz
einer
Datenbank
SQL
Server-
Ich gehe davon aus, dass Sie mit der
Administration des SQL Server relativ
vertraut sind und dass Sie über die
notwendigen Rechte verfügen, um auf
Ihrem Rechner eine SQL Server-Datenbank
anzulegen. Nähere Informationen über die
Administration des SQL Server finden Sie in
Ihrer Dokumentation.
Einrichten der Datenbank
Als erstes wollen Sie jetzt eine Datenbank
erstellen. Sie können sie klein halten. Als
Datenbanknamen habe ich ATTAPP
gewählt. Wenn Sie einen anderen Namen
benutzen, müssen Sie sicherstellen, dass Sie
überall, wo Sie ATTAPP in diesem Beispiel
sehen, dies durch Ihren Datenbanknamen
ersetzen.
12-19 Entwickeln von Windows DNA/Teil 10
In
Ihrem
Verzeichnis
Flash\AttorneyApp\Data finden Sie die
Scriptdatei SqlServer.sql. In diesem Script
finden Sie ein Script zum Erzeugen der
Tabellen, Indizes und der gespeicherten
Prozedur, die Sie benötigen werden.
Außerdem fügt das Script einige
Beispieldaten ein. Stellen Sie sicher, dass Sie
Ihre Datenbank fertig eingerichtet haben
und dass Sie das Script als ein gültiger DBO
ausführen.
Wenn Sie nicht vorhaben eine OracleDatenbank einzurichten können Sie den
Abschnitt „Ändern unserer Datenquellen“
überspringen.
Einsetzen einer Oracle-Datenbank
Ich gehe hier davon aus, dass Sie mit der
Administration von Oracle-Datenbanken
vertraut sind und dass Sie über die
notwendigen DBA-Rechte verfügen, um
Instanzen einer Datenbank auf Ihrem
Oracle-Server zu erstellen. Sie finden in
diesem Abschnitt lediglich Hinweise für die
Erstellung der Instanz AttorneyApp. Ich
kann Ihnen keine Schritt-für-SchrittAnweisung für das Einrichten der Instanz
geben, da jede Installation des Oracle Server
einzigartig ist. Für genaue Informationen
über das Erstellen einer Oracle-Instanz auf
Ihrer Plattform lesen Sie Ihre OracleDokumentation.
Einrichten der Datenbank
Als erstes müssen Sie eine Instanz der
Oracle-Datenbank erstellen. Die einfache
Beispielanwendung AttorneyApp ist nur eine
kleine Datenbank, so dass Sie beim Erstellen
der Instanz die empfohlenen kleinen Werte
in Ihrer Datei INIT.ORA angeben können.
FoxX Professional
Seite 1
Als Oracle SID habe ich ATTN benutzt.
Wenn Sie eine andere SID benutzen wollen,
müssen Sie sicherstellen, dass Sie überall, wo
Sie ATTN in diesem Beispiel sehen, dieses
gegen Ihre SID austauschen.
Beispiel:
db_name = attndb
db_files = 100
db_file_multiblock_read_count = 8
db_block_buffers = 200
shared_pool_size = 3500000
log_checkpoint_interval = 10000
processes = 50
dml_locks = 100
log_buffer = 8192
sequence_cache_entries = 10
sequence_cache_hash_buckets = 10
Wenn Sie vorhaben, die Möglichkeit zu
implementieren, innerhalb der Bemerkungen
zu den Anwälten nach Schlüsselworten
suchen zu lassen, müssen Sie die Oracle
CONTEXT-Suche installieren und das Feld
Note_Text der Tabelle Attnote indizieren.
Damit ermöglichen Sie die Suche nach einer
Zeichenkette mit Hilfe der Funktion
CONTAINS in Ihrer SELECT-Anweisung.
Weitere Informationen zu diesem Feature
finden Sie in Ihrer Oracle-Dokumentation.
Einrichten des Oracle8-Client (Net8
Easy Config)
Nachdem Sie die Tablespaces erstellt haben,
müssen Sie sicherstellen, dass Sie für Ihre
Bedürfnisse über genügend RollbackSegmente verfügen. Je mehr gleichzeitige
Transaktionen Sie auf der Datenbank
AttorneyApp ausführen wollen, desto mehr
Rollback-Segmente oder desto größere
Rollback-Segmente benötigen Sie. Ich habe
acht Rollback-Segmente erstellt, die am
Anfang 50 k groß sind und in 50 k-Schritten
bis auf 250 k anwachsen können.
Der Anwendungsserver muss für den
Zugriff
auf
die
Oracle-Datenbank
konfiguriert werden. Ihr Anwendungsserver
ist
die
Maschine,
auf
der
die
COMCodebook-Komponenten ausgeführt
werden
(das
kann
auch
Ihre
Entwicklungsmaschine sein).
Zur Konfiguration des Anwendungsservers
befolgen Sie die folgenden Schritte:
Beispiel:
create public rollback segment rb1
storage(initial 50K next 50K optimal
250K)
tablespace rollback_data;
Nachdem Sie die Instanz erstellt haben
vergessen Sie nicht die Listener-Datei zu
ändern und die neue Datenbank
AttorneyApp einzutragen. Anschließend
müssen Sie den Listener-Service neu starten.
In
Ihrem
Verzeichnis
Flash\AttorneyApp\Data finden Sie die
Scriptdatei Oracle.sql. In dieser Datei finden
Sie ein Script zum Erzeugen der Tabellen,
Indizes und der gespeicherten Prozedur, die
Sie benötigen werden. Außerdem fügt das
Script einige Beispieldaten ein. Stellen Sie
sicher, dass Sie Ihre Datenbank fertig
eingerichtet haben und dass Sie das Script als
ein gültiger DBA ausführen.
CONTEXT-Suche
12-19 Entwickeln von Windows DNA/Teil 10
1. Installieren Sie die Oracle8 ClientSoftware.
2. Öffnen Sie Net8 Easy Config.
3. Wählen Sie „Add new Service“ und
geben Sie einen Namen für Ihren
Service ein. Dieser Name des Service
wird in den Connection-Strings
benötigt, um auf die Datenbank zu
verweisen. Er wird in der Klasse
prm_AttorneyApp_Oracle
eingesetzt. Klicken Sie auf „Next“.
4. Der nächste Bildschirm fragt Sie
nach dem Netzwerkprotokoll. In der
Regel ist dies TCP/IP. Klicken Sie
auf „Next“.
5. Jetzt werden Sie nach dem
Hostname und der Nummer des
Ports gefragt. Geben Sie den Namen
Ihres Servers an und wählen Sie die
Nummer des Port (in der Regel
1521). Klicken Sie auf „Next“.
6. Geben Sie in der nächsten Maske die
SID (früher TTRK) in die Textbox
ein. Klicken Sie auf „Next“.
7. Die nächste Maske hat in der Mitte
die Schaltfläche „Test Service“.
FoxX Professional
Seite 2
Klicken Sie darauf und geben einen
Benutzernamen und ein Passwort
ein (z. B. DBO/SA) und klicken auf
den Testbutton. Das daraufhin
erscheinende Statusfenster zeigt
Ihnen alle Fehler an; es sollte aber
die
Meldung
„Connection
Successful“ erscheinen. Klicken Sie
auf die Schaltfläche „Done“.
8. Klicken Sie auf die Schaltfläche
„Next“ und anschließend „Finish“.
Es ist alles getan.
DefineDeleteSQL() des A-Layers
löschen, die wir für unsere VFPDaten geschrieben haben.
In den meisten Fällen können Sie Schritt 3
auslassen, wenn die Datentypen Ihrer
Primärschlüssel gleich bleiben. Wir werden
nummerische Primärschlüssel in unserer
Datenbank einsetzen, um zu zeigen, wie Sie
das Standardverhalten des Frameworks
nutzen können.
1. Konfigurieren
Eigenschaften
Datenquellen
Ändern unserer Datenquellen
Nachdem wir nun unsere Datenbank und
die Anwendungsserver eingerichtet haben,
sind wir bereit die erforderlichen
Modifikationen am Code vorzunehmen, um
auf unsere Oracle/SQL Server-Datenbank
zuzugreifen. Öffnen Sie Visual FoxPro und
geben Sie im Befehlsfenster ein:
CD
“D:\FLASH\Codebook\AttorneyApp\Interfa
ce\”
DO StartCB
Damit öffnen Sie alle unsere Projekte und
stellen die Dateipfade ein. Wir müssen nur
das Datenquellen-Projekt AttData ändern.
Sie werden feststellen, dass für den Einsatz
eines anderen Backend nur minimale
Änderungen des Codes erforderlich sind. So
wie es sein soll, sind diese Änderungen in
der Datenquellen-Komponente isoliert. Nur
die Datenquelle kennt die Besonderheiten
der Datenbank, auf die sie zugreift.
Drei Änderungen müssen wir in unseren
Datenquellen vornehmen:
1. Konfigurieren unserer Datenquellen
und Search Criteria Manager, damit
diese die oraclespezifischen Objekte
ansprechen.
2. Prüfen unserer SQL-Anweisungen
um sicherzugehen, dass unsere
Syntax kompatibel zur Oracle/SQL
Server-Syntax ist.
3. Benutzen Sie beim Hinzufügen und
Löschen von Datensätzen das
Standardverhalten der Datenquellen,
indem
Sie
die
Funktionen
GetPrimaryKey()
und
12-19 Entwickeln von Windows DNA/Teil 10
der
der
Änderung der Eigenschaften für
den SQL Server
Öffnen
Sie
AttorneyDataSource
in
adatasources.prg. Als Erstes müssen Sie die
Konfigurationsklassen der Datenquelle
einstellen, damit sie den SQL Server
ansprechen. Im Moment benutzen wir
unsere Visual FoxPro-Klassen:
cADOComponentsParameterClass =
"prm_AttorneyADOComponents_vfp"
cConfigurationObjectClass
=
"prm_AttorneyApp_vfp"
cSearchSyntaxClass =
"SearchSyntax_vfp"
Diese drei Klassen müssen wir austauschen:
cADOComponentsParameterClass =
"prm_AttorneyADOComponents_sql"
cConfigurationObjectClass
=
"prm_AttorneyApp_sql"
cSearchSyntaxClass =
"SearchSyntax_sql"
Diese Änderungen müssen wir auch in
AttorneyNoteDatasource vornehmen:
cADOComponentsParameterClass =
"prm_AttorneyNoteADOComponents_sql"
cConfigurationObjectClass
=
"prm_AttorneyApp_sql"
cSearchSyntaxClass =
"SearchSyntax_sql"
Die
Klassendefinitionen
für
die
Komponenten-Parameterklasse und die
Konfigurations-Objektklasse befinden sich
in aparameterobjects.prg. In dieser Datei
definieren
wir
unsere
konkreten
FoxX Professional
Seite 3
Komponentenklassen für Attorney und
AttorneyNote:
**************************************
*******************************
DEFINE CLASS
prm_AttorneyADOComponents_sql AS
aadocomponentsparameter_sql
**************************************
*******************************
lEnableServerAssignedKeys = .T.
nlocktype = 4
ncursortype = 1
Name =
"prm_AttorneyADOComponents_sql"
ENDDEFINE
**************************************
*******************************
DEFINE CLASS
prm_AttorneyNoteADOComponents_sql AS
aadocomponentsparameter_sql
**************************************
*******************************
lEnableServerAssignedKeys = .T.
Name =
"prm_AttorneyNoteADOComponents_sql"
nlocktype = 4
ncursortype = 1
ENDDEFINE
In der gleichen Datei befinden sich die
Definitionen für die Konfigurationsklasse.
Diese Klasse ist für den Aufbau der
Verbindung
zu
unserer
Datenbank
zuständig.
Die
konkrete
Klasse
prm_AttorneyApp_sql
definiert
die
Connectionklasse, die wir für den Einsatz
mit der SQL Server-Datenbank benötigen.
Diese
Klasse
ist
von
cOledbProviderForSQLServer abgeleitet:
**************************************
*******************************
DEFINE CLASS prm_AttorneyApp_sql AS
isqloledbproviderforsqlserver
**************************************
*******************************
lEnableServerAssignedKeys = .T.
Name = "prm_AttorneyApp_sql"
ENDDEFINE
Änderung der Eigenschaften für
Oracle
Öffnen
Sie
AttorneyDataSource
in
adatasources.prg. Als Erstes müssen Sie die
12-19 Entwickeln von Windows DNA/Teil 10
Konfigurationsklassen der Datenquelle
einstellen, damit sie Oracle ansprechen. Im
Moment benutzen wir unsere Visual
FoxPro-Klassen:
cConfigurationObjectClass
"prm_AttorneyApp_vfp"
cSearchSyntaxClass =
"SearchSyntax_vfp"
Diese beiden
austauschen:
Klassen
cConfigurationObjectClass
"prm_AttorneyApp_oracle"
cSearchSyntaxClass =
"SearchSyntax_oracle"
=
müssen
wir
=
Die
Klassendefinitionen
für
die
Konfigurations-Objektklasse befindet sich in
aparameterobjects.prg. Die letzte Definition
beschreibt die A-Layer-Klasse für die
Konfigurationsklasse
(Connectionklasse).
Die
konkrete
Klasse
prm_AttorneyApp_Oracle definiert die
Connectionklasse, die wir für den Einsatz
mit der Oracle-Datenbank benötigen. Diese
Klasse ist von cOledbProviderForOracle
abgeleitet:
**************************************
*******************************
DEFINE CLASS prm_AttorneyApp_oracle AS
ioledbproviderfororacle
**************************************
*******************************
lEnableServerAssignedKeys = .T.
Name = "prm_AttorneyApp_oracle"
ENDDEFINE
Konfigurieren
Verbindungsinformation
der
Sie erinnern sich, dass wir am Anfang unsere
Datenquellen in der Art entworfen haben,
dass wir die Informationen für den
Connection-String
in
der
Tabelle
CONNCFG.DBF abgelegt haben, die sich
zusammen
mit
den
Datenquellenkomponenten (AttData.DLL)
und dem Projekt im Verzeichnis
\Dataservices
befindet.
Öffnen
Sie
CONNCFG.DBF in Visual FoxPro. Ich
habe darin die drei Connection-Parameter
prm_AttorneyApp_vfp,
prm_attorneyapp_sql
und
prm_attorneyapp_oracle abgelegt. Da wir
FoxX Professional
Seite 4
jetzt vorhaben, eine neue Datenbank
einzusetzen, müssen wir nun die speziellen
Eigenschaften des Connection-String für
diese Datenbanken eintragen.
in die Felder cPassword und cUserID den
Benutzernamen und das Passwort ein, die
für die Verbindung zum SQL Server
eingesetzt werden sollen. Zum Schluss
können wir noch einen Timeout für die
Verbindung und die Information, ob die
Sicherheit von Windows NT genutzt werden
soll, in die Felder cConnectto und cSecInfo
eingeben. Hier die Felder, die für den
Connection-String zum SQL Server
gebraucht werden:
Die Connection für den SQL Server
Geben Sie im Feld cDatasrc den Namen des
SQL
Server
für
die
Klasse
prm_attorneyapp_sql
ein,
z.
B.
MYSERVER. Anschließend geben Sie im
Feld cInitCat den Namen der Datenbank
ein, z. B. ATTAPP. Als nächstes geben wir
Cindex
Cconnectto
Cdatasrc
Cinitcat
Cpassword
prm_attor
neyapp_sql
60
MYSERV
ER
ATTAP
P
Die Connection für Oracle
Geben Sie im Feld cDatasrc den
Dienstnamen von Oracle für die Klasse
prm_attorneyapp_oracle
ein,
z.
B.
ATTAPP.WORLD. Als nächstes geben wir
in die Felder cPassword und cUserID den
Csecinfo
Cprovider
Cuserid
FALSE
SQLOLE
DB.1
SA
Benutzernamen und das Passwort ein, die
für die Verbindung zu Oracle eingesetzt
werden sollen. Hier die Felder, die für den
Connection-String zu Oracle benötigt
werden:
Cindex
Cdatasrc
Cpassword
Cprovider
Cuserid
prm_attorneyapp_oracle
ATTAPP.WORLD
SA
MSDAORA.1
DBO
2. Überprüfen unserer
SELECT-Anweisungen
SQL
Änderungen an den SQL SELECTAnweisungen für den SQL Server
Nun müssen wir uns die SQL SELECTAnweisungen in den Datenquellen Attorney
und
AttorneyNote
ansehen
und
sicherstellen, dass sie für den SQL Server
gültig sind. Zum Glück gleichen sich VFP
und der SQL Server in ihren Abfragen so
weit, dass wir hier nichts tun müssen. Der
nächste Schritt ist die Änderung der
Befehlsparameter. Vergleichen Sie dazu den
Absatz
Änderungen
an
den
Befehlsparametern weiter unten.
12-19 Entwickeln von Windows DNA/Teil 10
Änderungen an den SQL SELECTAnweisungen für Oracle
Nun müssen wir uns die SQL SELECTAnweisungen in den Datenquellen Attorney
und
AttorneyNote
ansehen
und
sicherstellen, dass sie für Oracle gültig sind.
Die erste Methode, an der wir Änderungen
vornehmen
müssen,
ist
AttorneyDatasource.GetProxy().
Diese
Schnittstelle definiert eine SQL-Anweisung,
die unter Oracle nicht arbeitet. Der
Verbindungsoperator in Oracle ist die
doppelte Pipe (||). Die SELECTAnweisung sollte folgendermaßen aussehen:
loADO.oCommand.CommandText = [ SELECT
RTRIM(LastName) || ', ' || FirstName
AS cDesc, ] + ;
[ Attorney_id AS upID FROM Attorney
ORDER BY Lastname, FirstName ]
FoxX Professional
Seite 5
Das gleiche gilt für die Methode AttorneyNoteDataSource.GetAttorneyNoteBySearchCriteria().
Sie sollten die Anweisung wie folgt ändern:
loADO.oCommand.CommandText = [ SELECT
Attnote.*, Attorney.LastName, ] + ;
[ RTRIM(Attorney.LastName) || ', '
|| Attorney.FirstName ] + ;
[ AS FullName FROM AttNote, Attorney
] + ;
lcWhere + [
Attnote.Attorney_Id =
Attorney.Attorney_ID ] + lcOrder
Änderungen
Befehlsparametern
an
den
Da wir unter Oracle und dem SQL Server
numerische
Primärschlüssel
einsetzen
wollen, müssen wir auch einige unserer
SQL-Parameter ändern. Der erste ist in
AttorneyDataSource.GetAttorneyByID().
Der Parameter lopAttorneyID sieht jetzt so
aus:
lopAttorneyID = ;
loADO.oCommand.CreateParameter(
"Attorney_ID", adVarchar,
adParamInput, 9, tuAttorneyID)
Ändern Sie ihn in:
lopAttorneyID = ;
loADO.oCommand.CreateParameter(
"Attorney_ID", adInteger,
adParamInput, , tuAttorneyID)
Das ermöglicht uns den Einsatz der
numerischen Schlüssel. Wir müssen diese
Änderungen
in
den
Methoden
GetAttorneyNoteByID()
und
GetAttorneyNoteByAttorneyID()
von
AttorneyNoteDataSource vornehmen.
Einsetzen des Standardverhaltens
der Datenquellen
Zuguterletzt müssen wir noch die
Funktionen
GetPrimaryKey()
und
DefineDeleteSQL() auskommentieren oder
löschen. Diese Funktionen benötigten wir
für den Zugriff auf unsere VFP-Daten. Wir
wollen das vorgegebene Verhalten des
COMCodebook für das Hinzufügen und
12-19 Entwickeln von Windows DNA/Teil 10
Löschen von Datensätzen nutzen. Sie finden
diese
Funktionen
am
Ende
von
adatasources.prg. Achten Sie aber darauf,
dass Sie nur die Funktioen löschen, nicht die
Klassendefinition.
aAbstractADODataSource
ist
unsere
abstrakte Klasse, von der die Datenquellen
AttorneyDataSource
und
AttorneyNoteDataSource abgeleitet sind.
Am Ende sollte der folgende Code
vorhanden sein:
**************************************
**********************************
DEFINE CLASS aAbstractADODataSource AS
IAbstractADODataSource
**************************************
**********************************
*!*
PROTECTED FUNCTION
GetPrimaryKey( rcPrimaryKey, toADO )
*!*
*!*
.
*!*
.
*!*
.
*!*
*!*
ENDFUNC
*!*
********************************
******
*!*
PROTECTED FUNCTION
DefineDeleteSQL( tcID, rcDeleteSQL )
*!*
*!*
.
*!*
.
*!*
.
*!*
*!*
ENDFUNC
ENDDEFINE
Kompilieren und Testen unserer
Datenquellen
Nachdem wir jetzt alle erforderlichen
Änderungen
an
den
Datenquellen
vorgenommen haben, können wir sie neu
erstellen und testen. Wenn Sie den richtigen
Verzeichnispfad noch nicht eingestellt
haben, holen Sie dies jetzt nach, indem Sie
im Befehlsfenster von VFP die folgenden
Anweisungen eingeben:
CD
“D:\FLASH\Codebook\AttorneyApp\Interfa
ce\”
DO StartCB
Wählen Sie das Projekt AttData und klicken
Sie auf „Erstellen...“. Wie schon früher
wählen Sie auch jetzt die Option multithreaded DLL. Wechseln Sie nun mit Ihrem
FoxX Professional
Seite 6
Browser
zu
Ihrer
Anwendung
(http://localhost/attapp/). Führen Sie eine
Abfrage auf die Bemerkungen aus und
kontrollieren Sie, ob die Komponenten
angesprochen werden und antworten. Sie
werden eine geringe Verminderung der
Geschwindigkeit bemerken, da wir jetzt
einen größeren Datenbankserver statt Visual
FoxPro einsetzen. Testen Sie die restliche
Funktionalität
der
Anwendung.
Sie
bemerken, dass wir das Frontend nicht
ändern mussten, nur weil wir eine neue
Datenbank einsetzen. Tatsächlich sind alle
Änderungen in den Datenquellen isoliert.
Nicht schlecht, oder? Wir haben gerade die
Skalierbarkeit unserer Anwendung durch
den Einsatz einer robusteren Datenbank
erhöht. Das ist aber nicht alles was wir tun
können. Wir können unsere Komponenten
auch innerhalb des Microsoft Transaction
Server platzieren.
rechten Maustaste
auf „My
Computer“
klicken
und
anschließend
„Stop
DTC“
auswählen.
2. Öffnen Sie den Registrierungseditor
auf der Maschine, auf der der MTS
ausgeführt wird.
3. Unter
dem
folgenden
Registrierungsschlüssel finden Sie
zwei Werte, die auf die Namen der
.DLLs der Client-Software von
Oracle 7.3 verweisen:
HKEY_LOCAL_MACHINE\SOF
TWARE\Microsoft\Transaction
Server\Local Computer\My Computer
4. Dabei handelt es sich um die Werte:
OracleXaLib „xa73.dll“ und
OracleSqlLib „sqllib18.dll“.
Ausführen der Komponenten im
Microsoft Transaction Server
Ändern der Einstellungen
Registry für Oracle8
5. Ändern Sie diese Werte ab, damit
sie auf die .DLLs der ClientSoftware von Oracle8 verweisen:
OracleXaLib „xa80.dll“ und
der
OracleSqlLib „sqllib80.dll“
Beachten Sie bitte: Wenn Sie die ClientSoftware von Oracle 7.3 einsetzen, können
Sie diesen Abschnitt überspringen.
Wenn Sie eine Oracle8-Datenbank einsetzen
wollen, müssen Sie den Microsoft
Transaction Server einrichten, damit er mit
der Datenbank korrekt kommunizieren
kann. Der MTS behandelt Transaktionen
mit Oracle über die XA-Technologie. Unser
Oracle8-Datenbankserver sollte bereits für
diese Aktionen vorbereitet sein. Sollten Ihre
Komponenten nicht korrekt reagieren, lesen
Sie bitte den Artikel Q193893 der Microsoft
Knowledgebase um zu erfahren, wie Sie alles
richtig einrichten.
Sie müssen für Oracle8 die folgenden
Einstellungen ändern:
1. Beenden Sie den Microsoft
Distributed
Transaction
Coordinator (DTC) aus der
Microsoft Management Console
(MMC) aus, indem Sie mit der
12-19 Entwickeln von Windows DNA/Teil 10
6. Beenden
Sie
Registrierungseditor
den
7. Starten Sie aus der Microsoft
Management Console (MMC) den
Microsoft Distributed Transaction
Coordinator (DTC) neu. Klicken Sie
dafür mit der rechten Maustaste auf
„My Computer“ und wählen Sie
„Start DTC“.
Registrieren der Komponenten in
einem Package des MTS
Testen Sie Ihre Komponenten immer
sorgfältig, bevor Sie sie in der Umgebung
des Microsoft Transaction Server ablaufen
lassen. Der MTS fügt Ihren Anwendungen
nicht nur eine erhöhte Skalierbarkeit hinzu,
sondern auch ein höheres Maß der
Komplexität. Ein Debugging ist in dieser
Umgebung nicht einfach. Zum Glück haben
die Entwickler des COMCodebook bereits
die meisten dieser Probleme bedacht. Um
die Komponenten dem MTS hinzuzufügen,
folgen Sie den folgenden Schritten:
FoxX Professional
Seite 7
1. Öffnen Sie die Management
Console des MTS und erstellen Sie
ein neues Package. Dies geschieht
durch einen Klick mit der rechten
Maustaste
auf
My
Computer/Packages Installed/ im
linken Fenster. Wählen Sie aus dem
Kontextmenü „New/Package“.
2. Der Package-Assistent zeigt Ihnen
zwei
Möglichkeiten
an,
das
Importieren eines bestehenden
Package oder das Erstellen eines
neuen. Wählen Sie das Erstellen
eines neuen leeren Package.
3. Als nächstes müssen Sie dem
Package einen Namen geben.
Geben Sie AttApp ein und klicken
Sie auf „Next“.
4. Jetzt fragt Sie der Assistent nach
den Einstellungen für die Identität
des Package. Lassen Sie die
Einstellung beim vorgeschlagenen
„interaktiven Anwender“. Klicken
Sie auf „Finish“.
5. Expandieren Sie Ihr Package im
linken Fenster und klicken Sie mit
der
rechten
Maustaste
auf
„Komponenten“. Wählen Sie im
Kontextmenü
„Neu“
und
anschließend Komponente.
6. Sie werden gefragt, was getan
werden
soll.
Wählen
Sie
„Komponente(n) installieren, die
bereits registriert sind“.
7. Aus der langen Liste der
registrierten Komponenten wählen
Sie AttData, AttResMgr und
AttValid.
8. Nachdem
die
Komponenten
erfolgreich
registriert
wurden,
markieren Sie im rechten Fenster
AttData und klicken mit der rechten
Maustaste darauf. Wählen Sie im
Kontextmenü
„Eigenschaften“,
wechseln
auf
den
Tab
„Transaktionen“ und wählen den
12-19 Entwickeln von Windows DNA/Teil 10
Tab „Transaktion“. Wählen Sie die
Option
„Erfordert
eine
Transaktion“.
9. Markieren Sie AttValid und
AttResMgr und klicken Sie mit der
rechten Maustaste. Wählen Sie
wieder
„Eigenschaften“
und
wechseln zum Tab „Transaktion“.
Wählen Sie die Option „Unterstützt
Transaktionen“.
Jetzt laufen Ihre Komponenten innerhalb
des MTS. Testen Sie sie, indem Sie in Ihren
Browser wechseln, eine Suche ausführen
und einen Anwalt ändern. Wir verfügen jetzt
über
eine
komplett
skalierbare
mehrschichtige Anwendung, die wir mit der
Theorie der Windows DNA im Hinterkopf
und mit einer mittleren Schicht unter
Verwendung des COMCodebook entwickelt
haben.
Zusammenfassung
Ich hoffe, dass Ihnen dieser Artikel zu
verstehen hilft, wie Sie eine mehrschichtige
Anwendung unter Verwendung des
COMCodebook und von Windows DNA
entwickeln. COMCodebook stellt uns das
Innenleben der mittleren Schicht zur
Verfügung und ermöglicht uns die Auswahl
der
Datenbank
und
der
Präsentationsschicht. Wir haben eine
einfache browserbasierte Benutzeroberfläche
von Anfang an entwickelt und haben dabei
HTML, CSS, JavaScript und ASP behandelt.
Wir haben gesehen, wie einfach es ist, unsere
Anwendung auf Oracle und den SQL Server
zu skalieren und wie wir Transaktionen mit
unseren Komponenten nutzen. Mit einer
sorgfältigen Planung und etwas Erfahrung
sollten Sie in der Lage sein, skalierbare
Geschäftsanwendungen schnell und einfach
zu erstellen. Ich hoffe, Sie sind genau so
begeistert wie ich über die Zukunft
mehrschichtiger
Geschäftsanwendungen
und wünsche Ihnen viel Glück bei Ihren
Bemühungen.
FoxX Professional
Seite 8
Herunterladen