Возможно ли запустить java-файл jar из базы данных Oracle (10g)? Более конкретно, я ищу, чтобы запланировать работу оракула, используяOracle Jobs выполняет Java
dbms_scheduler.create_job(...)
При запуске задания будет вызывать приложения Java, который выполняет процесс, включающий разговор с другим приложением через HTTP, некоторые бизнес-логики, то выполнение хранимой процедуры против базы данных с использованием JDBC.
Как правило, работа с хроном для этого будет работать нормально, но приложению java необходимо поговорить с базой данных в качестве данного владельца схемы. Я не могу хранить учетные данные пользователя как обычный текст в конфигурации приложения по различным причинам конфиденциальности.
Вкратце, мне интересно, есть ли способ запланировать задание выполнить банку, передав учетные данные пользователя, который назначил задание.
Я не знаком с планированием Oracle Jobs и запуском Java-кода из базы данных Oracle, поэтому любые указатели в правильном направлении были бы замечательными. Я действительно не смог найти достойную документацию для того, что я пытаюсь сделать, хотя я уверен, что она должна существовать.
EDIT: нашел в документации, и это похоже, что я мог бы сделать что-то вроде
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, хотя.
Это то, что в конечном итоге стало единственным реальным решением, которое я нашел с отсутствием полномочий на авторизацию с передачей учетных данных. Спасибо за ссылку! – BuffaloBuffalo