© Andreas Prouza 20111 Andreas Prouza [email protected] Web Programmierung mit CGI, ILE...
-
Upload
werner-durner -
Category
Documents
-
view
129 -
download
1
Transcript of © Andreas Prouza 20111 Andreas Prouza [email protected] Web Programmierung mit CGI, ILE...
![Page 2: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/2.jpg)
© Andreas Prouza 2011 2
Themen
CGI Technik Installation Webserver Aufruf von CGI (RPG) Programmen via
HTTP Kommunikation Client mit RPG Programm SQL Optimierung
![Page 3: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/3.jpg)
Abkürzungen
CGICommon Gateway Interface
RPGReport Program Generator
SQLStructured Query Language
© Andreas Prouza 2011 3
![Page 4: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/4.jpg)
CGI Technik
© Andreas Prouza 2011 4
![Page 5: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/5.jpg)
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
![Page 6: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/6.jpg)
RPG Aufruf (httpd.conf)
http://192.168.0.10:95/pgms/dfmtest.pgm LIB: WFM40OBJ PGM: DFMTEST
© Andreas Prouza 2011 6
![Page 7: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/7.jpg)
Kommunikation Client RPG
HTML-Buffer einlesenQtmhRdStin
HTML-Buffer ausgebenQtmhWrStout
Umgebungs-Variable einlesenQtmhGetEnv
© Andreas Prouza 2011 7
![Page 8: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/8.jpg)
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
![Page 9: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/9.jpg)
QtmhWrStout
D*======================================
D*?API StdOut
D*======================================
DAPIStdOut C 'QtmhWrStout'
DOutBuff S 4096A INZ
DOutBuffln S 9B 0 INZ(4096)
© Andreas Prouza 2011 9
![Page 10: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/10.jpg)
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
![Page 11: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/11.jpg)
RPG Aufruf
© Andreas Prouza 2011 11
![Page 12: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/12.jpg)
RPG Aufruf 2 (LOGIN)
© Andreas Prouza 2011 12
![Page 13: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/13.jpg)
PGM-Aufruf via HTML
<formaction="/pgms/WFM30AX.PGM" name="login" method="POST">
© Andreas Prouza 2011 13
![Page 14: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/14.jpg)
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
![Page 15: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/15.jpg)
Webseite
© Andreas Prouza 2011 15
![Page 16: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/16.jpg)
Datenstrom Client PGM
&Feld=Wert Konvertierung von Zeichen
& %50Blank +
&P3TXT=Muster+%50+Maxi&P3DP=&DRPLG=G&[email protected]&DRPSL=U
© Andreas Prouza 2011 16
![Page 17: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/17.jpg)
HTML-Beispiele
Workflows Stammdaten Client/Server
FilterFirmenabgleichDynamischer SQL Aufbau
© Andreas Prouza 2011 17
![Page 18: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/18.jpg)
© Andreas Prouza 2011 18
Index
Binary Radix Tree IndexLogischer Baum
Encoded Vector Index (EVI)Auch Bitmap Index genannt
![Page 19: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/19.jpg)
Binary Radix Tree Index
Seit 1988 Verwendung
AuswahlkriterienSortierung
Summe der DS < 70 % - 80 % Entscheidung vom Optimizer
© Andreas Prouza 2011 19
![Page 20: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/20.jpg)
© 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
![Page 21: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/21.jpg)
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
![Page 22: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/22.jpg)
© 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
![Page 23: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/23.jpg)
© Andreas Prouza 2011 23
DB2 Engine
SQE (SQL Query Engine)Eingeführt ab V5R2
CQE (Classic Query Engine)
![Page 24: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/24.jpg)
© Andreas Prouza 2011 24
CQE
![Page 25: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/25.jpg)
© Andreas Prouza 2011 25
SQE
![Page 26: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/26.jpg)
© Andreas Prouza 2011 26
DDS vs. DDL
DDL Data Definition LanguageCREATE TABLE
DDS Data Description Specifications
![Page 27: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/27.jpg)
© 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, …)
![Page 28: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/28.jpg)
© Andreas Prouza 2011 28
Native I/O vs. SQL
Native I/O (z.B. in RPG)READEWRITEDELETEUPDATE
SQLSELECT * FROM TABLE
![Page 29: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/29.jpg)
© Andreas Prouza 2011 29
Native I/O
Fixer ZugriffspfadDadurch kein Overhead wie bei SQLDirekter Datenzugriff
![Page 30: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/30.jpg)
© Andreas Prouza 2011 30
SQL
Dynamischer ZugriffspfadImmer der Optimale
Internationale Sprache Anpassungen sind einfacher Plattform unabhängiger Zugriff Monitoring
![Page 31: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/31.jpg)
© 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.
![Page 32: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/32.jpg)
© Andreas Prouza 2011 32
Index Advisor
Vorschläge vom System Mit statistische Informationen Art des Vorschlages (Binär, EVI)
![Page 33: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/33.jpg)
© Andreas Prouza 2011 33
Materialized Query Table
Eine Tabelle ähnlich wie ein View erstellt.
Daten sind Physisch vorhanden Aktualisierung der Daten geschieht
manuell
![Page 34: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/34.jpg)
© Andreas Prouza 2011 34
MQT
VorteilSchneller Zugriff durch AufteilungZusätzliche Indizes möglich
NachteilSpeicherverbrauchKnow-How
![Page 35: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/35.jpg)
Stored Procedure (SP)
SQL Prozedur Externe Prozedur
© Andreas Prouza 2011 35
![Page 36: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/36.jpg)
© Andreas Prouza 2011 36
User-Defined Function
Sourced UDF SQL UDF External UDF
![Page 37: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/37.jpg)
© 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
![Page 38: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/38.jpg)
© Andreas Prouza 2011 38
Error Handling
Whenever Statement Get Diagnostic Statement
![Page 39: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/39.jpg)
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
![Page 40: © Andreas Prouza 20111 Andreas Prouza Andreas.Prouza@tasklink.com Web Programmierung mit CGI, ILE RPG und SQL.](https://reader036.fdocuments.us/reader036/viewer/2022081507/55204d7149795902118c3ad0/html5/thumbnails/40.jpg)
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