Pergunta

Para uma agência governamental, construímos um sistema de gerenciamento de liberação desenvolvido em PHP e Oracle. Os dados para esta aplicação são armazenados em tabelas de banco de dados e é processado com pacotes e procedimentos SQL PL /.

O processo de gerenciamento de liberação é amplamente baseado em metadados provenientes de repositórios Subversion. Nós acessar os repositórios de PL / SQL através da Oracle JVM interna para executar comandos svn no servidor unix no qual reside as instâncias do Oracle. Os resultados dos comandos svn são recebidos em XML e analisado antes beeing processado pelo PL / SQL. Acessando Subversion desta forma não é muito alto desempenho para uso repetido freqüente.

Atualmente, o que fazemos é armazenar os metadados do Subversion em tabelas de banco de dados em cada commit nos repositórios do Subversion (via ganchos Subversion). Extraímos as informações de log para cada transação Subversion e mantê-lo em algumas tabelas do Oracle. Assim, somos capazes de obter o Subversion metadados com consultas SQL normais.

Há melhores formas de acesso do Subversion de PL / SQL?

Foi útil?

Solução

Se o seu uso da Oracle Java JVM, você pode tentar usar SVNKit para se comunicar com o servidor SVN nativly de Java , em vez de descascar para fora para o sistema operacional para executar comandos.

Outras dicas

Eu acho que o fluxo básico faz sentido. Eu recomendaria fazer experiências para ver onde exatamente os gargalos de desempenho são e, em seguida, tomar se de lá. Por exemplo, se ele cruzar a partir de PL / SQL para o Oracle JVM? É JVM descascar para fora para executar o comando svn? É o svn de ida e volta? É a análise do XML?

Vamos dizer, por exemplo, é o svn ida e volta. Talvez você possa ter um processo na máquina oráculo que armazena em cache respostas do servidor SVN para que, por vezes, a viagem de volta poderia ser evitado? Talvez o svn de ida e volta pode ser assíncrona?

Mas, como eu disse, você precisa saber onde está o gargalo.

Eu também estou procurando uma API para Subversion integerate e Oracle. Eu preciso ser capaz de puxar Oracle PL / SQL objetos (procedimentos, pacotes) para Subversion e, em seguida, uma vez que as mudanças são feitas a objetos deve ser aplicada a esses objetos no banco de dados Oracle.

Mais Uma solução é usar o software que fica entre a Oracle e SVN e sincroniza PL / SQL com fontes.

Aqui é um desses programas que podem ser iniciados por cron: https://sourceforge.net/projects/dbcode-svn-sync/ .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top