Как получить доступ к Subversion из Oracle PL / SQL? - PullRequest
8 голосов
/ 26 сентября 2008

Для правительственного агентства мы создаем систему управления релизами, разработанную на PHP и Oracle. Данные для этого приложения хранятся в таблицах базы данных и обрабатываются пакетами и процедурами PL / SQL.

Процесс управления выпусками в значительной степени основан на метаданных, поступающих из хранилищ Subversion. Мы обращаемся к репозиториям из PL / SQL через внутреннюю JVM Oracle для выполнения команд svn на сервере unix, на котором находятся экземпляры Oracle. Результаты команд svn принимаются в XML и анализируются перед обработкой PL / SQL. Доступ к Subversion таким способом не очень эффективен для частого повторного использования.

В настоящее время мы храним метаданные Subversion в таблицах базы данных при каждом коммите в репозиториях Subversion (через перехватчики Subversion). Мы извлекаем информацию журнала для каждой транзакции Subversion и сохраняем ее в некоторых таблицах оракула. Затем мы можем получить метаданные Subversion с помощью обычных запросов SQL.

Есть ли лучшие способы доступа к Subversion из PL / SQL?

Ответы [ 4 ]

2 голосов
/ 26 сентября 2008

Я думаю, что основной поток имеет смысл. Я бы порекомендовал провести эксперименты, чтобы увидеть, где именно находятся узкие места в производительности, а затем взять их оттуда. Например, это переход от PL / SQL к Oracle JVM? Обрабатывается ли JVM для выполнения команды svn? Это свн туда и обратно? Это разбор XML?

Скажем, например, это svn туда-обратно. Может быть, у вас может быть процесс на компьютере-оракуле, который кэширует ответы с сервера svn, чтобы иногда можно было избежать передачи туда и обратно? Может быть, SVN туда и обратно может быть асинхронным?

Но, как я уже сказал, вам нужно знать, где находится узкое место.

2 голосов
/ 26 сентября 2008

Если вы используете Java JVM от Oracle, вы можете попытаться использовать SVNKit для естественного взаимодействия с сервером SVN из Java, вместо того, чтобы отправлять команды операционной системе для выполнения команд.

1 голос
/ 25 апреля 2011

Еще одним решением является использование программного обеспечения, которое находится между ORACLE и SVN и синхронизирует PL / SQL с источниками.

Вот одна из этих программ, которая может быть запущена cron: https://sourceforge.net/projects/dbcode-svn-sync/ .

1 голос
/ 05 февраля 2009

Я также ищу API для интеграции Subversion и Oracle. Мне нужно иметь возможность извлекать объекты Oracle PL / SQL (процедуры, пакеты) в Subversion, а затем после внесения изменений в объекты их следует применять к этим объектам в базе данных Oracle.

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