Я рассматриваю возможность использования технологии Oracle Advanced Queuing для асинхронной связи. Моя цель - использовать его для параллельного выполнения процессов (асинхронные вызовы процедур PL/SQL).
Текущая устаревшая реализация для параллельного выполнения процесса состоит из сценариев Unix KornShell (ksh), которые мы запускаем из внешнего интерфейса через SSH-соединение в фоновом режиме. Это прекрасно работает для нас, но я недоволен таким решением из-за:
- Безопасность (интерфейс запускает SSH-соединение и выполняет ksh-скрипты в фоновом режиме. От наших коллег я заметил, что такой вход в нашу компанию будет ограничен.)
- Обслуживание (не все из нашей команды знакомы с ksh-скриптами)
- Разнообразие технологий (я стараюсь уменьшить разнообразие технологий благодаря ноу-хау и усилиям по миграции)
- Ведение журнала (наша серверная система регистрируется в таблицах журнала базы данных, параллельное выполнение частично регистрируется в файле журнала)
Перейдя с ksh на базу данных, я смогу повысить общее качество своей системы:
- Безопасность (больше никаких SSH-соединений, внешний интерфейс будет отправлять сообщения в базу данных, а прослушиватель сообщений базы данных будет реагировать на сообщения и выполнять процедуры асинхронно)
- Обслуживание (Мы используем PL/SQL, где мы знакомы)
- Разнообразие технологий (при следующей миграции ОС нам нужно будет перенести только объекты базы данных и данные)
- Ведение журнала (мы будем полностью использовать наше серверное решение для ведения журнала)
Что вы думаете о моих соображениях и каковы ваши впечатления от Oracle Advanced Queueing? Особенно в стабильности, производительности и обслуживании? Есть ли лучшие альтернативы?