Оракул Джобс выполняет Java - PullRequest
0 голосов
/ 22 октября 2010

Можно ли запустить файл java jar из базы данных Oracle (10g)?Точнее говоря, я планирую задание оракула, используя

dbms_scheduler.create_job(...)

. При запуске задание будет вызывать приложение Java, которое выполняет процесс, включающий в себя обращение к другому приложению через HTTP, некоторую бизнес-логику, а затем выполнениеХранимая процедура для базы данных с использованием JDBC.

Как правило, для выполнения этой задачи отлично работает хрон, но java-приложение должно взаимодействовать с базой данных как данный владелец схемы.Я не могу сохранить учетные данные пользователя в виде простого текста в конфигурации приложения по разным причинам конфиденциальности.

Короче, мне интересно, есть ли способ запланировать задание на выполнение jar, передавая вучетные данные пользователя, который запланировал задание.

Мне незнакомы как планирование заданий Oracle, так и запуск кода Java из базы данных Oracle, поэтому любые указатели в правильном направлении будут хороши.Я действительно не смог найти приличную документацию для того, что я пытаюсь сделать, хотя я уверен, что это должно существовать.

РЕДАКТИРОВАТЬ: нашел некоторую документацию, и похоже, что я мог что-то сделатьнапример

DBMS_SCHEDULER.create_program (
    program_name        => 'recurring_java_task',
    program_type        => 'EXECUTABLE',
    program_action      => 'java -jar /path/to/recurring-task.jar',
    number_of_arguments => 2,
    enabled             => TRUE,
    comments            => 'Program to perform cleanup');

, а затем используйте dbms_scheduler.create_job (...)

, чтобы создать задание для recurring_java_task.Кажется, что аргументы устанавливаются с помощью

DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
   job_name                IN VARCHAR2,
   argument_position       IN PLS_INTEGER,
   argument_value          IN VARCHAR2);

Это все еще не решает проблему предоставления учетных данных соединения (имя пользователя / пароль) для приложения Java, хотя.

1 Ответ

3 голосов
/ 27 октября 2010

Вы можете поместить Java IN в базу данных. Oracle 10.2 Java Dev Guide . При этом используется специальная строка соединения JDBC, которая фактически ссылается на внутренний сеанс. Есть особые соображения, то есть отсутствие рендеринга графического интерфейса и т. Д. Вы также можете вызвать и обернуть это в pl / sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...