Java и Oracle - загрузить JAR в Oracle или выполнить отдельно? - PullRequest
5 голосов
/ 25 ноября 2010

У меня есть ситуация, когда мне нужно выполнить некоторый код, который по ряду причин (я не буду здесь вдаваться) лучше выполнять в Java, чем в PL / SQL. На мой взгляд, есть два варианта:

  1. Создайте jar со всем моим скомпилированным кодом и другими вспомогательными файлами / другими jar-файлами, загрузите jar-файл в Oracle (у нас работает 10g) и выполните Java из хранимой процедуры.

    • Плюсы: Java-код очень хорошо интегрируется с остальной частью системы, может вызываться из существующего PL / SQL.
    • Минусы: у меня очень мало опыта работы с Java в Oracle.
  2. Оставьте Java в отдельном банке и выполните его с помощью сценариев оболочки.

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

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

Какой опыт люди загружают и запускают Java-код изнутри Oracle? Насколько легко тестировать и отлаживать? Требуются ли какие-либо специальные инструменты? Любые "ошибки", о которых я должен знать?

Ответы [ 2 ]

1 голос
/ 25 ноября 2010

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

Единственная часть, где встраивание Java в вашу базу данных усложняется (вам нужно установить специальные разрешения для вашего кода Java), - это когда вам нужен доступ к внешним ресурсам (сеть, файловый ввод-вывод, чтобы назвать несколько) и это явно не ваша ситуация в этой проблеме.

0 голосов
/ 25 ноября 2010

Для вашего сценария выполнение этого в базе данных кажется правильным подходом.Причины сделать это снаружи могут быть:

  • зависимость от библиотек Java, которые не совместимы со встроенной JVM Oracle
  • необходимо запустить его под учетной записью пользователя Linux, отличной от Oracle

но я не вижу в вашем сценарии

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