Exzilla.net
Contact
Home -> Articles -> Oracle JDBC -> Introduction to Oracle JDBC KPRB Server-Side driver
 
Features
Forums
Files
Blogs
Document ID: # howto-orcl-jdbc-KPRB-Server-01 August 5, 2004
Document Title : Introduction to Oracle JDBC KPRB server-side driver 

Document Details :

JDBC KPRB server-side Driver:

What is it?

JDBC แบบนี้ เป็น JDBC type 2 Driver จะติดต่อกับ Oracle Database ได้โดยผ่าน Java Native methods ซึ่งต้องอาศัย C library ในกรณีนี้ C library ที่กล่าวถึงคือ KPRB ซึ่งเป็นส่วนหนึ่งของ Oracle Server Process ในการทำงานจะสามารถติดต่อกับ internal SQL engine ได้โดยตรง

ภายใน Oracle Driver จะติดต่อ SQL engine โดยใช้ internal function call เพื่อเป็นการหลีกเลี่ยงเรื่องของ Network Traffic

JDBC Driver แบบนี้ อนุญาตให้ Java Code ของเราทำงานในฝั่ง Server และทำการติดต่อกับ Database เร็วที่สุดเท่าที่เป็นไปได้ การจะติดต่อกับ database ของ JDBC Driver แบบนี้จะติดต่อภายในเครื่องเดียวกันกับ Database Server

และเนื่องจาก การใช้งานในแบบ Native methods ทำให้การใช้งาน JDBC KPRB จะจำเพาะเฉพาะ Platform (platform-specific)

ในการใช้งานนั้น Server-side Internal Driver จะมีความสามารถในการทำงานได้เหมือนๆ กับการทำงานที่เป็น Client-side Driver

Requirement

1. Oracle Jserver [1]

Installation

1. Check Oracle Jserver installation

Sample Program

/* jdbckprb.sql */

/* Dated: 3-Jan-2001 */

/* Author: Teddy Graham, teddy@exzilla.net */

/* Subject: Oracle JDBC: Java Database Administration */

/* Edition: 1.0 */

/* */

CREATE OR REPLACE JAVA SOURCE NAMED "jdbckprb" AS

import java.sql.*;

import oracle.jdbc.driver.*;

public class jdbckprb {

static public void test ()

throws SQLException {

// Obtain the connection for the server-side internal driver.

OracleDriver ora = new OracleDriver();

Connection conn = ora.defaultConnection();

System.out.println("Connected.");

// Create a statement.

Statement stmt = conn.createStatement();

// Do the SQL "Hello World" thing.

ResultSet rset = stmt.executeQuery(

"select 'Hello OS user ' || osuser || ' on machine ' || machine || " +

"' running program ' || program" +

" from v$session" +

" where sid = (select sid from v$mystat where rownum < 2)");

while (rset.next())

System.out.println(rset.getString(1));

System.out.println("Your server-side internal JDBC connection succeeded.");

// Close the result set and statement. Don't close the connection!

rset.close();

stmt.close();

}

}

/

CREATE OR REPLACE PROCEDURE jdbckprb AS

LANGUAGE JAVA NAME 'jdbckprb.test()';

/

set serveroutput on format wrapped

CALL dbms_java.set_output(2000)

/

CALL jdbckprb()

/

Testing

$ ls

jdbckprb01.sql

$ sqlplus nicole/tiger@dare

SQL*Plus: Release 8.1.6.0.0 - Production on Tue Jan 16 20:28:07 2001
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production

SQL> @jdbckprb01.sql
Java created.
Procedure created.
Call completed.

Connected.

Hello OS user sefjl on machine fuju.exzilla.net running program
Your server-side internal JDBC connection succeeded.
Call completed.

SQL> exit
Disconnected from Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
$

More information

References:

  1. Java Developer’s Guide, Release 2 (8.1.6) Part No. A81353-01 ( You can download documents from otn.oracle.com )
  2. http://otn.oracle.com/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm

 




Copyright (c) 2001-2009 - Exzilla.net -  All Rights Reserved.
Contact Us | Privacy Policy | Terms & Conditions