1. Java-Source: SOSSchedulerCommand.java
vor der Klassendefinition bitte einfügen
create or replace and compile java source named SOSSchedulerCommand as
und hinter der letzten Klammer ein Semikolon (
> Quell-Code mit SQL Worksheet in DB übergeben
2. Java-Quelle: DocumentFactorySchedulerCommand.java
vor der Klassendefinition bitte einfügen
create or replace and compile java source named DocumentFactorySchedulerCommand as
und hinter der letzten Klammer ein Semikolon (> Quell-Code mit SQL Worksheet in DB übergeben
3. Wrapper Procedure: Scheduler_Add_Order.sql
PL/SQL-Prozedur mit folgendem Inhalt erzeugen:
create or replace procedure SCHEDULER_ADD_ORDER(host varchar2, port number, letter number, status number, model number, job_chain varchar2) as language java name 'DocumentFactorySchedulerCommand.addOrder(java.lang.String, int, int, int, int, java.lang.String)';
4. Ausführungsberechtigungen für TCP/UDP-Verbindungen
a) Bei Verwendung von TCP:
call dbms_java.grant_permission( 'FACTORY', 'SYS:java.net.SocketPermission', 'localhost', 'resolve' ); call dbms_java.grant_permission( 'FACTORY', 'SYS:java.net.SocketPermission', '127.0.0.1:4363', 'connect,resolve' );
b) Bei Verwendung von UDP (default):
call dbms_java.grant_permission( 'FACTORY', 'SYS:java.net.SocketPermission', 'localhost:1024-', 'listen,resolve' ); call dbms_java.grant_permission( 'FACTORY', 'SYS:java.net.SocketPermission', '127.0.0.1:4363', 'accept,resolve' );
A. Aufruftest mittels SQL Worksheet:
a) Prozedur
/* host, port, letter, status, model, job_queue */ CALL SCHEDULER_ADD_ORDER( 'localhost', 4363, 4711, 0, 2, 'factory_print' );
b) Debugging
set serveroutput on size 5000 call dbms_java.set_output(5000);
B. Zugriff via JDBC-Treiber muss getauscht werden
Sollen DB-Zugriffe erfolgen, dann muss der JDBC-Treiber mit einer Oracle-internen Connection verwendet werden
/** Oracle Version */
/** Datenbankverbindung herstellen */ public void db_connect() throws SQLException\{ try \{ DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); conn = DriverManager.getConnection("jdbc:default:connection:"); errState = 1; \} catch(SQLException e) \{ throw new SQLException ("DB connect failed" + e); \} \}
/** Java Version */
/** Datenbankverbindung herstellen */
public void db_connect() throws SQLException\{ try \{ DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); conn = DriverManager.getConnection("jdbc:oracle:thin:@sag:1521:sag","sosdev","sosdev"); \} catch(SQLException e) \{ throw new SQLException ("DB connect failed" + e); \} \}