Oracle JDBC for Rdb Jim Murray Oracle New England ...€¦ · Oracle JDBC for Rdb Native Driver...
Transcript of Oracle JDBC for Rdb Jim Murray Oracle New England ...€¦ · Oracle JDBC for Rdb Native Driver...
Oracle Rdb Technical ForumsOracle JDBC for Rdb
Jim MurrayOracle New EnglandDevelopment Centre
Agenda
• Driver & Servers Overview• V7.1.3 release
– Multi-process server– XML configuration file– SQL/Services interface– Controller– SSL support
• Itanium• Demonstration
3
OCI C Library
OracleThin
Types of JDBC Drivers
ODBC C Library Java Sockets
Oracle Pure Java
Driver
Vender independent
Drivers written by
venderDynamic SQL
Javasoft ODBC OracleOCI rdbNative
JDBC Class Library
rdbThin
4
Oracle JDBC for RdbNative Driver
OracleRdb
Java Programnative driver
Dynamic SQL
• Purpose of this driver– Environment type Java application
and Java application as a middle tier.• JDBC call is translated to dynamic
SQL• Features
– JAVA applet can not be used.– Performance is best.
5
Types of JDBC Drivers
ODBC C Library
OCI C Library Java Sockets
Oracle Pure Java
Driver
Vender independent
Drivers written by
venderDynamic SQL
Javasoft ODBC OracleOCI OracleThin rdbNative
JDBC Class Library
rdbThin
6
Oracle JDBC for RdbThin Driver
OracleRdb
Java Programthin driver
Java Socket
Rdb Thin ServerTCP/IP
• Thin driver connects to OracleRdb via JAVA sockets usingTCP/IP
• Features– No client libraries need to be
installed.• 100% JAVA
– only TCP/IP protocol issupported.
7
Oracle JDBC for RdbThin Server
• Multi-threaded server• Listens to single port• Single process• Synchronization needed at Rdb interface
may limit concurrency
8
Thin Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Thin Server
9
Thin Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Thin ServerTCP/IP
10
Thin Server (cont)
OraeRdb
Java Program Thin DriverJava Socket
Thin ServerTCP/IP
Thread
11
Thin Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Thin ServerTCP/IP
ThreadOracleRdb
12
Thin Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Thin ServerTCP/IP
ThreadOracleRdb
Java ProgramThin DriverJava Socket
Thread
13
Oracle JDBC for RdbPool Server
• Distributes connection requests• Pool of available Thin servers• Single Node:port address• Thin Server may be local/remote to pool
server• Better concurrency• NOT connection pooling
14
Pool Server (cont)
Thin Server
OraeRdb
Java ProgramThin DriverJava Socket
Pool ServerThin Server
Thin ServerThin Server
15
Pool Server (cont)
Thin Server
OraeRdb
Java ProgramThin DriverJava Socket
Pool ServerTCP/IP
Thin ServerThin Server
Thin Server
16
Pool Server (cont)
Thin Server
OraeRdb
Java ProgramThin DriverJava Socket
Pool ServerTCP/IP
Thin ServerThin Server
Thin ServerTCP/IP
17
Pool Server (cont)
Thin Server
OraeRdb
Java Program Thin DriverJava Socket
Pool Server
TCP/IP
Thin ServerThin Server
Thin Server
18
Pool Server (cont)
Thin Server
OraeRdb
Java ProgramThin DriverJava Socket
Pool Server
TCP/IP
Thin ServerThin Server
Thin Server
OracleRdb
19
V7.1.3 release
• Multi-Process Server• XML –based configuration file• SQL/Services Manager server start and
close• More Controller features• Auto-start and keep alive with pool
servers
20
V7.1.3 release (Cont.)
• Secure Socket support (SSL)• DEC_KANJI , DEC_HANZI support is
still undergoing testing
21
Oracle JDBC for RdbMulti-Process Server
• Multi-threaded server• New sub-process started for each
connection• Single Node:port address• Better concurrency as multiple process
used, no synchronization needed
22
Multi-Process Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Multi-Process Server
23
Multi-Process Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Multi-Process ServerTCP/IP
24
Multi-Process Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Multi-Process ServerTCP/IP
Global memory Executor
25
Multi-Process Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Multi-Process ServerTCP/IP
Global memoryOracleRdbExecutor
26
Multi-Process Server (cont)
OraeRdb
Java ProgramThin DriverJava Socket
Multi-Process ServerTCP/IP
Global memoryOracleRdbExecutor
Java ProgramThin DriverJava Socket
Executor
27
XML–based configurationfile
• *.CFG still supported• *.XML provides more features• Single configuration file for all servers or have
multiple configuration files – your choice• Other characteristics
– Session information– Databases– DEFAULT server characteristics
28
XML–based configurationfile (Cont)
29
XML–based configurationfile (Cont)
30
XML–based configurationfile (Cont)
SQL/Services Managerstartup
• Start/Stop server using SQL/Services$ MCR SQLSRV_MANAGE71SQLSRV> CONNECT SERVER;SQLSRV> CREATE DISPATCHERJDBCDISP NETWORK_PORT TCPIPPORT_ID 1880 PROTOCOL JDBC;SQLSRV> START DISPATCHERJDBCDISP;
JDBC :New type of
Protocol
32
Oracle JDBC for RdbController features
• Start / Stop / Open /Close / Show server• Watch server ( Trace log sent to
controller console)• Poll of active servers on network ( using
Multicast)• Stop Client – Stop all Clients – Stop
Clients in database
Controllerrdbthincontrol> show active serversActive server infoRDB$NODE : 192.168.1.100RDB$PORT : 1701RDB$STATUS : IdleRDB$SERVER_NAME : rdbthnsrv1RDB$SERVER_TYPE : RdbThinSrvRDB$SERVER_VERSION : X7.1-301 20041029 B40SRDB$SERVER_SHR_VERSION : X7.1-301 20041029 B40SRDB$SERVER_PID : 0x0118(280)RDB$ALLOWS_ANON : falseRDB$ALLOWS_BYPASS : falseRDB$NUMBER_OF_CLIENTS : 0RDB$MAX_CLIENTS : -1RDB$TRACE_LEVEL : 0RDB$LOG_FILE : nullRDB$RESTRICT_ACCESS : false
34
Auto-start & Auto-restart
• Available only in conjunction with poolserver
• Thin servers auto-start on Pool serverstartup
• Also servers close down when Pool servercloses
• Auto-restart and keep alive timer
35
Asian Character Sets
• Previously a problem asUNICODE/Asian conversion libraries onVMS not compatible with server sharedimage.
• Now using JAVA to do conversions,more character sets supported by drivers
• Still undergoing testing
36
SSL Support
• Client/Server communication may use SecureSocket Layer sockets
• New SSL type servers– RdbThinSSL– RdbThinMPSSL– RdbThinPoolSSL
• Startup may take longer – handshake takes time• You can choose security aspects of SSL
SSL support ( Cont.)
• Server needs SSL information<!-- DEFAULT Secure socket server --><server name="DEFAULTSSL" type="RdbThinSrvSSL" ssl.default="false" ssl.context="TLS" ssl.keyManagerFactory="SunX509" ssl.keyStoreType="jks" ssl.keyStore="rdbjdbcsrv.kst" ssl.keyStorePassword="CHANGETHIS" ssl.trustStore="rdbjdbcsrv.kst" ssl.trustStorePassword="CHANGETHIS“/>
RdbThinSrvSSL :New type of
Server
38
SSL support ( Cont.)
• Client needs SSL information• Use Properties block on connection
SSL support ( Cont.)Properties info = new Properties();info.put("user", user);info.put("password", password);info.put("tracelevel", traceLevel);info.put("ssl", "true");info.put("ssl.default", "false");info.put("ssl.context", "TLS");info.put("ssl.keyManagerFactory", "SunX509");info.put("ssl.keyStoreType", "jks");info.put("ssl.keyStore", "rdbjdbccli.kst");info.put("ssl.keyStorePassword", "CHANGETHIS");info.put("ssl.trustStore", "rdbjdbccli.kst");info.put("ssl.trustStorePassword", "CHANGETHIS");Connection conn = DriverManager.getConnection( “jdbc:rdbThin://bravo:1755/my_db_dir:pers",info);
40
Itanium
• Kit built with Native build of images• JAVA is JAVA is JAVA. No changes
needed for JARs• NO change needed to Oracle JDBC for
Rdb source code• Thin Server running on IA64• Thin Client running on IA64
41
DEMONSTRATIONS
42
Sneak Peek
• www.oracle.com/rdb• metalink.oracle.com• http://www.hp.com/products/openvms• [email protected]
For More Information
Q U E S T I O N S
A N S W E R S&