Как получить доступ к Subversion из Oracle PL / SQL?
для государственного учреждения мы создаем систему управления выпуском, разработанную в PHP и Oracle. Данные для этого приложения хранятся в таблицах базы данных и обрабатываются пакетами и процедурами PL/SQL.
процесс управления выпуском широко основан на метаданных, поступающих из репозиториев Subversion. Мы получаем доступ к репозиториям из PL / SQL через внутренний Oracle JVM для выполнения команд svn на сервере unix, на котором находятся экземпляры Oracle. Этот результаты от команд svn получены в XML и проанализированы перед обработкой PL/SQL. Доступ к Subversion таким образом не очень эффективен для частого повторного использования.
В настоящее время мы храним метаданные Subversion в таблицах базы данных при каждой фиксации в репозиториях Subversion (через крючки Subversion). Мы извлекаем информацию журнала для каждой транзакции Subversion и сохраняем ее в некоторых таблицах oracle. Затем мы можем получить метаданные Subversion с помощью обычного SQL запросы.
есть ли лучшие способы доступа к Subversion из PL / SQL ?
4 ответов
Если вы используете Java JVM Oracle, вы можете попробовать использовать SVNKit для связи с сервером SVN nativly с Java, вместо того, чтобы обстреливать операционную систему для выполнения команд.
Я думаю, что основной поток не имеет смысла. Я бы рекомендовал провести эксперименты, чтобы увидеть, где именно узкие места производительности, а затем взять оттуда. Например, это переход от PL / SQL к Oracle JVM? Это JVM обстреливает, чтобы выполнить команду svn? Это svn туда и обратно? Это синтаксический анализ XML?
предположим, например, что это svn туда и обратно. Возможно, у вас может быть процесс на машине oracle, который кэширует ответы с сервера svn, поэтому что временами можно избежать поездки туда и обратно? Может быть, поездка svn туда и обратно может быть асинхронной?
но, как я уже сказал,вам нужно знать, где узкое место.
Я также ищу API для интегрирования Subversion и Oracle. Мне нужно иметь возможность вытаскивать объекты Oracle PL / SQL (процедуры, пакеты) в Subversion, а затем, как только изменения будут внесены в объекты, они должны быть применены к этим объектам в базе данных Oracle.
еще одно решение-использовать программное обеспечение, которое остается между ORACLE и SVN и синхронизирует PL/SQL с источниками.
вот одна из этих программ, которая может быть запущена cron: https://sourceforge.net/projects/dbcode-svn-sync/ .