Question

Pour une agence gouvernementale, nous construisons un système de gestion de versions développé en PHP et Oracle. Les données de cette application sont stockées dans des tables de base de données et sont traitées avec les packages et les procédures PL / SQL.

Le processus de gestion des versions est largement basé sur les métadonnées provenant des référentiels Subversion. Nous accédons aux référentiels à partir de PL / SQL via la JVM Oracle interne pour exécuter des commandes svn sur le serveur Unix sur lequel résident les instances Oracle. Les résultats des commandes svn sont reçus en XML et analysés avant d’être traités par PL / SQL. Accéder à Subversion de cette manière n’est pas très performant pour un usage fréquent et répété.

Actuellement, nous stockons les métadonnées Subversion dans des tables de base de données à chaque validation dans les référentiels Subversion (via les crochets Subversion). Nous extrayons les informations de journal pour chaque transaction Subversion et les conservons dans certaines tables Oracle. Nous sommes ensuite en mesure d’obtenir des métadonnées Subversion avec des requêtes SQL normales.

Existe-t-il de meilleurs moyens d'accéder à Subversion à partir de PL / SQL?

Était-ce utile?

La solution

Si vous utilisez la machine virtuelle Java Java d'Oracle, vous pouvez essayer d'utiliser SVNKit pour communiquer avec le serveur SVN natif de Java. , au lieu de demander au système d’exploitation d’exécuter des commandes.

Autres conseils

Je pense que le flux de base est logique. Je recommanderais de faire des expériences pour voir où se situent exactement les goulots d'étranglement en termes de performances, puis éliminer si de là. Par exemple, passe-t-il de PL / SQL à JVM Oracle? Est-ce que la JVM est en train d'exécuter la commande svn? Est-ce le svn aller-retour? Est-ce l'analyse syntaxique du XML?

Disons, par exemple, qu’il s’agit du voyage aller et retour. Peut-être pourriez-vous avoir un processus sur la machine oracle qui mette en cache les réponses du serveur svn afin d'éviter parfois l'aller-retour? Peut-être que l'aller-retour svn pourrait être asynchrone?

Mais, comme je l'ai dit, vous devez savoir où se trouve le goulot d'étranglement.

Je recherche également une API pour intégrer Subversion et Oracle. Je dois pouvoir extraire les objets PL / SQL d’Oracle (procédures, packages) dans Subversion, puis une fois les modifications apportées aux objets, il convient de les appliquer à la base de données Oracle.

Une autre solution consiste à utiliser un logiciel qui reste entre ORACLE et SVN et qui synchronise PL / SQL avec les sources.

Voici l’un de ces programmes pouvant être lancé par cron: https://sourceforge.net/projects/dbcode-svn-sync/ .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top