© Andreas Prouza 20111 Andreas Prouza [email protected] Web Programmierung mit CGI, ILE...
-
Upload
werner-durner -
Category
Documents
-
view
139 -
download
1
Transcript of © Andreas Prouza 20111 Andreas Prouza [email protected] Web Programmierung mit CGI, ILE...
© Andreas Prouza 2011 2
Themen
CGI Technik Installation Webserver Aufruf von CGI (RPG) Programmen via
HTTP Kommunikation Client mit RPG Programm SQL Optimierung
Abkürzungen
CGICommon Gateway Interface
RPGReport Program Generator
SQLStructured Query Language
© Andreas Prouza 2011 3
CGI Technik
© Andreas Prouza 2011 4
Installation Webserver
/www/WebServer/conf/httpd.conf STRTCPSVR SERVER(*HTTP)
HTTPSVR(*ADMIN) http://192.168.0.10:2001/HTTPAdmin Mit QSECOFR oder gleichwertigen
User anmelden PDF Anleitung
© Andreas Prouza 2011 5
RPG Aufruf (httpd.conf)
http://192.168.0.10:95/pgms/dfmtest.pgm LIB: WFM40OBJ PGM: DFMTEST
© Andreas Prouza 2011 6
Kommunikation Client RPG
HTML-Buffer einlesenQtmhRdStin
HTML-Buffer ausgebenQtmhWrStout
Umgebungs-Variable einlesenQtmhGetEnv
© Andreas Prouza 2011 7
QtmhRdStin
D*=====================================
D*?API StdIn
D*=====================================
DAPIStdIn C 'QtmhRdStin'
DInData S 4096A INZ
DInDataln S 9B 0 INZ(4096)
DInActLn S 9B 0
© Andreas Prouza 2011 8
QtmhWrStout
D*======================================
D*?API StdOut
D*======================================
DAPIStdOut C 'QtmhWrStout'
DOutBuff S 4096A INZ
DOutBuffln S 9B 0 INZ(4096)
© Andreas Prouza 2011 9
Programm-Beispiel RPG
C*================================
C** ?Buffer
C*================================
C ' ' checkr OutBuff in
C CALLB APIStdOut
C PARM OutBuff
C PARM in OutBuffLn
C PARM QUSEC
© Andreas Prouza 2011 10
RPG Aufruf
© Andreas Prouza 2011 11
RPG Aufruf 2 (LOGIN)
© Andreas Prouza 2011 12
PGM-Aufruf via HTML
<formaction="/pgms/WFM30AX.PGM" name="login" method="POST">
© Andreas Prouza 2011 13
Programm-Beispiel RPG
C*================================
C** ?Buffer
C*================================
C CALLB APIStdIn
C PARM ' ' INData
C PARM INDataLn
C PARM INActLn
C PARM QUSEC
© Andreas Prouza 2011 14
Webseite
© Andreas Prouza 2011 15
Datenstrom Client PGM
&Feld=Wert Konvertierung von Zeichen
& %50Blank +
&P3TXT=Muster+%50+Maxi&P3DP=&DRPLG=G&[email protected]&DRPSL=U
© Andreas Prouza 2011 16
HTML-Beispiele
Workflows Stammdaten Client/Server
FilterFirmenabgleichDynamischer SQL Aufbau
© Andreas Prouza 2011 17
© Andreas Prouza 2011 18
Index
Binary Radix Tree IndexLogischer Baum
Encoded Vector Index (EVI)Auch Bitmap Index genannt
Binary Radix Tree Index
Seit 1988 Verwendung
AuswahlkriterienSortierung
Summe der DS < 70 % - 80 % Entscheidung vom Optimizer
© Andreas Prouza 2011 19
© Andreas Prouza 2011 20
Binary Radix Tree Index
Node
A
Node
W
Node
Al
Node
Am
Node
An
Node
Wien
Node
Wies
Leaf Node
08 Allensteig
Leaf Node
04 Amstetten09 Ammersee
Leaf Node
06 Ansfelden07 Andorf
Node
Alt
Node
All
Leaf Node
02 Altheim05 Althofen
Leaf Node
01 Wien03 Wiener Neustadt
Leaf Node
10 Wiesbaden
Root
Encoded Vector Index (EVI)
Seit 1998 (10 Jahre später) Verwendung
GruppierungZeilenauswahlLogische Operationen (AND, OR, …)
Summe der DS 20 % – 70 % Entscheidung vom Optimizer
© Andreas Prouza 2011 21
© Andreas Prouza 2011 22
Encoded Vector Index (EVI)
System TabelleUnique-KeyStatistiken
Vector
ErsterSatz
12345678910
Eindeutiger Schlüssel
AllensteigAmstettenAltheimAlthofenAndorfAnsfeldenAmmerseeWienWiener NeustadtWiesbaden
BinärCode
117382519135732
LetzterSatz
1121951935884536793185
Anzahl
16241971153410
© Andreas Prouza 2011 23
DB2 Engine
SQE (SQL Query Engine)Eingeführt ab V5R2
CQE (Classic Query Engine)
© Andreas Prouza 2011 24
CQE
© Andreas Prouza 2011 25
SQE
© Andreas Prouza 2011 26
DDS vs. DDL
DDL Data Definition LanguageCREATE TABLE
DDS Data Description Specifications
© Andreas Prouza 2011 27
DDS vs. DDL
DDS ist stabilisiertKeine Neuheiten
DDS ist potentielle Gefahr für SQE DDL bieten viele Möglichkeiten
(Index, MQTs, UDF, SP, …)
© Andreas Prouza 2011 28
Native I/O vs. SQL
Native I/O (z.B. in RPG)READEWRITEDELETEUPDATE
SQLSELECT * FROM TABLE
© Andreas Prouza 2011 29
Native I/O
Fixer ZugriffspfadDadurch kein Overhead wie bei SQLDirekter Datenzugriff
© Andreas Prouza 2011 30
SQL
Dynamischer ZugriffspfadImmer der Optimale
Internationale Sprache Anpassungen sind einfacher Plattform unabhängiger Zugriff Monitoring
© Andreas Prouza 2011 31
SQL
Vielfalt an Funktionen (Order By) Mehrere Cursor für den gleichen
Zugriffsplan möglich Keine Abstürze von Programmen
Error Handling SQL (und SQE) wird weiter entwickelt uvm.
© Andreas Prouza 2011 32
Index Advisor
Vorschläge vom System Mit statistische Informationen Art des Vorschlages (Binär, EVI)
© Andreas Prouza 2011 33
Materialized Query Table
Eine Tabelle ähnlich wie ein View erstellt.
Daten sind Physisch vorhanden Aktualisierung der Daten geschieht
manuell
© Andreas Prouza 2011 34
MQT
VorteilSchneller Zugriff durch AufteilungZusätzliche Indizes möglich
NachteilSpeicherverbrauchKnow-How
Stored Procedure (SP)
SQL Prozedur Externe Prozedur
© Andreas Prouza 2011 35
© Andreas Prouza 2011 36
User-Defined Function
Sourced UDF SQL UDF External UDF
© Andreas Prouza 2011 37
Tuning des Systems
Aktivierungsgruppen Indizes MQTs DDS LF mit Select/Omit Spezifikation SQL immer auf Basistabellen Select Into Dynamisches SQL wieder verwenden In Blöcke einlesen
© Andreas Prouza 2011 38
Error Handling
Whenever Statement Get Diagnostic Statement
Workflow-System
http://tasklink.com/TQS EDV-Software GesmbH
Tel.: +43 (2252) 508 708 - 17
Fax: +43 (2252) 508 708 - 13
© Andreas Prouza 2011 39
DB2 und RPG Schulungen
http://www.erfolgsbildung.at/
DB2 Optimierung und Tuning ILE RPG Auf Anfrage mit 1 oder 2 Tage auch:
CGI mit RPG
© Andreas Prouza 2011 40