Можно ли запустить файл 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, хотя.