© 2014 IBM Corporation COMMON POLSKA 2014 JDBC z IBM System i Tomasz Piela & Marcin Wilk Global Technlonogy Services, IBM
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 2 Typy sterowników JDBC TypImplementacjaCechy Type 1JDBC-ODBC brigde - Zależny od platformy - Wymaga instalacji i konfiguracji sterownika ODBC i połączenia do bazy po stronie klienta - Translacja z JDBC na ODBC daje narzut wydajnościowy - Nie może być wykorzystywany w appletach Type 2JDBC Native API - Korzysta z natywnych wywołań API po stronie klienta - Jest kompilowany pod konkretny system operacyjny - Nie może być wykorzystywany w appletach (JNI calls) - Lepsza wydajność niż Type 1 Type 3JDBC-Net pure Java (Network Protocol Driver) - Wymaga tzw ‘middle-tier’ – warstwy pośredniej - Jeden sterownik do wielu typów bazy - Rozwiązanie mocno elastyczne - Nie wymaga instalacji dodatkowego oprogramowania po stronie klienta Type 4Pure Java (Native Protocol Driver) - Nie wymaga instalacji dodatkowego oprogramowania po stronie klienta - Niezależny od platformy - Wydajny, zwykle dostarczany i optymalizowany przez dostawcę bazy danych
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 3 Sterownikia używane z IBM System i SterownikTypKlasa implementacjiPlik.jar IBM i Developer Kit for Java JDBC driver (tzw native driver) Type 2com.ibm.db2.jdbc.app.DB2Driverdb2_classes.jar IBM Toolbox for Java JDBC Driver Type 4 com.ibm.as400.access.AS400JDBC Driver jt400.jar IBM Toolbox for Java JDBC Driver with Native Optimization Type 2 com.ibm.as400.access.AS400JDBC Driver jt400Native.jar IBM DB2 Driver for JDBC and SQLJ (Universal DB2 driver) Type 2/4 COM.ibm.db2.jdbc.app.DB2Driver com.ibm.db2.jcc.DB2Driver db2java.zip/db2jcc.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 4 IBM i Developer Kit for Java JDBC driver Używany po stronie IBM i do połączenia lokalnego i zdalnego Wymaga konfiguracji (WRKRDBDIRE) – Type 2 Wykorzystuje protokół DRDA Plik db2_classes.jar domyślnie ładowany przez classloadery przy starcie JVM (nie wymaga podawania ścieżki na CLASSPATH) jdbc:db2:LPAR710;libraries=JDBCTEST Frzahh%2Fjdbcproperties.htm Domyślna lokalizacja pliku: /QIBM/ProdData/OS400/Java400/ext/db2_classes.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 5 IBM Toolbox for Java JDBC Driver Używany zarówno po stronie klienta (niezależnie od systemu) jak i po stronie IBM i do połączenia do DB2 for IBM i Oferuje dużo większą funkcjolaność niż tylko dostęp do DB2 connectionString=jdbc:as400://LPAR710;user=TRADEDB;password=fly2sky3;lib raries=JDBCTEST Rozwijany i wspierany przez IBM w ramach inicjatywy JTOpen: Oferuje dużo większą funkcjolaność niż tylko dostęp do DB2 Domyślna lokalizacja pliku: /QIBM/ProdData/OS400/jt400/lib/jt400.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 6 IBM Toolbox for Java JDBC Driver with Native Optimization Zoptymalizowany sterownik Toolbox w przypadku połączenia do bazy lokalnej Wykorzystuje userid/password z bieżącego zadania Wywołuje bezpośrednio API IBM i zamiast połączeń do host serverów connectionString=jdbc:as400://LPAR710;user=TRADEDB;password=fly2sky3;li braries=JDBCTEST Ficmain.htm Ficmain.htm Property: driver=native Nie wymaga zmian w programach Java, które korzystają ze sterownika Toolbox Domyślna lokalizacja pliku: /QIBM/ProdData/OS400/jt400/lib/jt400Native.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 7 IBM DB2 Driver for JDBC and SQLJ (Universal DB2 driver) Używany do połączenia z bazą DB2 (zarówno na IBM i, jak i distributed platforms) Implementacja: Type 2 (COM.ibm.db2.jdbc.app.DB2Driver) Type 4 (com.ibm.db2.jcc.DB2Driver) Rozwijany i wspierany przez zespół DB2 distributed platforms jdbc:db2://LPAR710:447/LPAR710:user=TRADEDB;password=fly2sky3;current Schema=JDBCTEST; b2.udb.apdv.java.doc/doc/tjvjcccn.htm b2.udb.apdv.java.doc/doc/tjvjcccn.htm Domyślna lokalizacja pliku: /java/db2jcc.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 8 Live Demo RECORDS (500000) DATAFILE ( )
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 9 Kod Java SELECT QRECN, QTBHLL FROM JDBCTEST.DATAFILE WHERE QRECN IN (SELECT QRECN FROM JDBCTEST.RECORDS FETCH FIRST " + rowsToProcess + " ROWS ONLY) FOR UPDATE OF QTBHLL UPDATE JDBCTEST.DATAFILE SET QTBHLL=? WHERE CURRENT OF " + rs.getCursorName ()
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 10 Średnie czasy wykonania (ms) jt400.jarjt400Native.jardb2_classes.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 11 Średnie czasy wykonania (ms)
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 12 DBMON view jt400Native.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 13 DBMON view jt400.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 14 DBMON view db2_classes.jar
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 15 DBMON view jt400.jar – zdalna baza
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 16 DBMON view db2jcc.jar - zdalnie
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 17 Rekomendacje Dla połączeń do lokalnej bazy DB2 IBM i należy używać sterownika natywnego (com.ibm.db2.jdbc.app.DB2Driver) jeżeli to tylko możliwe Nie umieszczać klasy sterownika w kodzie Java tylko jako parametr (lub property) Testować aplikację przy użyciu różnych sterowników i mierzyć wyniki Korzystać z najnowszej wersji sterowników Aktualizować na bieżąco PTFy
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 18 Quiz 1 Przy założeniu, że aplikacja Java jest skompilowana z użyciem sterownika Toolbox do połączenia do lokalnej bazy DB2 na IBM i, która z opcji powinna być użyta aby zapewnić najlepszą wydajność? 1.IBM i Developer Kit for Java JDBC driver (tzw native driver) 2.IBM Toolbox for Java JDBC Driver (jt400.jar) 3.IBM Toolbox for Java JDBC Driver (jt400Native.jar) 4.IBM Toolbox for Java JDBC Driver (jt400NativeOpt.jar)
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 19 Quiz 2 Przy założeniu, że aplikacja Java jest skompilowana w taki sposób, że wybór sterownika jest parametryzowany, do połączenia do lokalnej bazy DB2 na IBM i. Która z opcji powinna być użyta aby zapewnić najlepszą wydajność? 1.IBM i Developer Kit for Java JDBC driver (tzw native driver) 2.IBM Toolbox for Java JDBC Driver (jt400.jar) 3.IBM Toolbox for Java JDBC Driver (jt400Native.jar) 4.IBM Toolbox for Java JDBC Driver (jt400NativeOpt.jar)
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 20 Quiz 3 Który z wymienionych sterowników JDBC może być użyty w aplikacji Java działającej na platformie IBM i do połączenia do bazy DB2 działającej w systemie Linux? 1.IBM i Developer Kit for Java JDBC driver (tzw native driver) 2.IBM Toolbox for Java JDBC Driver (jt400.jar) 3.IBM Toolbox for Java JDBC Driver (jt400Native.jar) 4.IBM DB2 Driver for JDBC and SQLJ (db2jcc.jar)
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 21 Q&A
COMMON POLSKA JDBC z IBM System i © 2014 IBM Corporation 22 Dziękuję!