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

Document Details :

JDBC thin server-side driver:

What is it?

JDBC แบบนี้ เป็น JDBC type 4 Driver จะติดต่อกับ Oracle Database ได้โดยตรง โดยมีความสามารถเหมือนกับ JDBC thin client-side driver แต่จะต่างกันตรงที่จะต้องใช้งานกับ Oracle Jserver[1] ที่ติดตั้งอยู่ภายใน Oracle Server และใช้ในการติดต่อกับ Remote Database

เนื่องจาก Driver แบบนี้ ถูกเขียนจาก Java ทั้งหมด จึงเป็น Platform-independent ลักษณะการเขียน Program ที่เรียกใช้งาน จะไม่มีความแตกต่างกันระหว่าง Thin Driver ที่ทำงานจาก client Application หรือทำงานจากใน Oracle Server

Requirement

1. Oracle Jserver [1]

Installation

1. Check Oracle Jserver installation

Sample Program

/* jdbcthin-server-side.sql */

/* Dated: 3-Jan-2001 */

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

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

/* Edition: 1.0 */

/* */

/* The local user requires JAVAUSERPRIV or the appropriate permission */

/* (something like java.net.SocketPermission <remote_host> resolve). */

/* */

CREATE OR REPLACE JAVA SOURCE NAMED "jdbcthin" AS

import java.sql.*;

import oracle.jdbc.driver.*;

public class jdbcthin {

static public void test (String user, String password, String database)

throws SQLException {

// Load the Oracle JDBC driver.

// But apparently this is not required for the server-side thin driver.

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

String connectString = "jdbc:oracle:thin:@" + database;

System.out.print("Connecting to " + connectString + "... ");

System.out.flush();

Connection conn =

DriverManager.getConnection(connectString, user, password);

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 thin JDBC connection succeeded.");

// Close the result set, statement and connection.

rset.close();

stmt.close();

conn.close();

}

}

/

CREATE OR REPLACE PROCEDURE jdbcthin (

user VARCHAR2,

password VARCHAR2,

database VARCHAR2)

AS LANGUAGE JAVA NAME 'jdbcthin.test(

java.lang.String,

java.lang.String,

java.lang.String)';

/

set serveroutput on format wrapped

CALL dbms_java.set_output(2000)

/

CALL jdbcthin('&user', '&password', '&database')

/

Testing

$ ls

jdbckprb01.sql jdbcthin-server-side.sql

$ sqlplus nicole/tiger@dare @jdbcthin-server-side.sql
SQL*Plus: Release 8.1.6.0.0 - Production on Tue Jan 16 20:50:36 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

Java created.
Procedure created.
Call completed.
Enter value for user: nicole

Enter value for password: tiger
Enter value for database: eros.exzilla.net:1521:dare
old 1: CALL jdbcthin('&user', '&password', '&database')
new 1: CALL jdbcthin('nicole', 'tiger', 'eros.exzilla.net:1521:dare')

Connecting to jdbc:oracle:thin:@eros.exzilla.net:1521:dare... Connected.

Hello OS user oracle on machine jdbcclient running program JDBC-1.0-Client
Your server-side thin 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

$

$ uname -a
SunOS archer 5.6 Generic_105181-15 sun4u sparc SUNW,Ultra-4
$

 

Additional:

If you get ORA-29532 messages, you must grant one or both of the following Oracle 8I 'Roles' to the schema that is attempting to execute the java stored procedure

JAVASYSPRIV --- To create the file

JAVAUSERPRIV --- To read or write

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