Für eine Regierungsbehörde erstellen wir ein Release-Management-System, das in PHP und Oracle entwickelt wurde. Die Daten für diese Anwendung werden in Datenbanktabellen gespeichert und mit PL / SQL-Paketen und -Prozeduren verarbeitet.
Der Release-Management-Prozess basiert weitgehend auf Metadaten, die aus Subversion-Repositories stammen. Wir greifen von PL / SQL über die interne Oracle JVM auf die Repositorys zu, um svn-Befehle auf dem Unix-Server auszuführen, auf dem sich die Oracle-Instanzen befinden. Die Ergebnisse von svn-Befehlen werden in XML empfangen und analysiert, bevor sie von PL / SQL verarbeitet werden. Der Zugriff auf Subversion auf diese Weise ist für häufige wiederholte Verwendung nicht sehr performant.
Gegenwärtig speichern wir die Subversion-Metadaten in Datenbanktabellen bei jedem Commit in den Subversion-Repositories (über Subversion-Hooks). Wir extrahieren die Protokollinformationen für jede Subversion-Transaktion und behalten sie in einigen Oracle-Tabellen bei. Wir können dann Subversion-Metadaten mit normalen SQL-Abfragen erhalten.
Gibt es bessere Möglichkeiten, von PL / SQL aus auf Subversion zuzugreifen?
Ich denke, der grundlegende Fluss macht Sinn. Ich würde empfehlen, Experimente zu machen, um zu sehen, wo genau die Leistungsengpässe sind, und dann zu nehmen, wenn von dort. Zum Beispiel, geht es von PL / SQL zu Oracle JVM? Will JVM den Befehl svn ausführen? Ist es die Svn-Rundreise? Ist es das Parsen des XML?
Sagen wir zum Beispiel, es ist die svn round trip. Vielleicht könntest du einen Prozess auf der Oracle-Maschine haben, der Antworten vom Svn-Server zwischenspeichert, so dass der Hin- und Rückweg manchmal vermieden werden könnte? Vielleicht könnte die Svn-Rundreise asynchron sein?
Aber wie gesagt, Sie müssen wissen, wo der Engpass ist.
Ich suche auch eine API, um Subversion und Oracle zu integrieren. Ich muss in der Lage sein, Oracle PL / SQL-Objekte (Prozeduren, Pakete) in Subversion zu ziehen, und sobald Änderungen an Objekten vorgenommen werden, sollte es auf diese Objekte in der Oracle-Datenbank angewendet werden.
Eine weitere Lösung besteht darin, Software zu verwenden, die zwischen ORACLE und SVN bleibt und PL / SQL mit Quellen synchronisiert.
Hier ist eines dieser Programme, die von cron gestartet werden können: Ссылка .