سؤال

بالنسبة لوكالة حكومية، نقوم ببناء نظام لإدارة الإصدارات تم تطويره باستخدام لغة PHP وOracle.يتم تخزين البيانات الخاصة بهذا التطبيق في جداول قاعدة البيانات وتتم معالجتها باستخدام حزم وإجراءات PL/SQL.

تعتمد عملية إدارة الإصدار على نطاق واسع على البيانات الوصفية الواردة من مستودعات Subversion.نحن نصل إلى المستودعات من PL/SQL من خلال Oracle JVM الداخلي لتنفيذ أوامر svn على خادم Unix الذي توجد عليه مثيلات Oracle.يتم استلام النتائج من أوامر svn في ملف XML ويتم تحليلها قبل معالجتها بواسطة PL/SQL.إن الوصول إلى Subversion بهذه الطريقة ليس فعالاً للغاية للاستخدام المتكرر والمتكرر.

ما نقوم به حاليًا هو تخزين بيانات تعريف التخريب في جداول قاعدة البيانات عند كل التزام في مستودعات التخريب (عبر خطافات التخريب).نقوم باستخراج معلومات السجل لكل معاملة تخريبية ونحتفظ بها في بعض جداول أوراكل.يمكننا بعد ذلك الحصول على بيانات تعريف Subversion باستخدام استعلامات SQL العادية.

هل هناك طرق أفضل للوصول إلى Subversion من PL/SQL؟

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم Java JVM من Oracle، فيمكنك محاولة استخدامه SVNKit للتواصل مع خادم SVN بشكل طبيعي من Java، بدلاً من إرسال الأوامر إلى نظام التشغيل.

نصائح أخرى

أعتقد أن التدفق الأساسي منطقي.أوصي بإجراء تجارب لمعرفة أين تكمن اختناقات الأداء بالضبط ثم ابدأ من هناك.على سبيل المثال، هل يتم العبور من PL/SQL إلى Oracle JVM؟هل يتم قصف JVM لتنفيذ أمر svn؟هل هي رحلة ذهابا وإيابا svn؟هل هو تحليل XML؟

لنفترض، على سبيل المثال، أنها رحلة ذهابًا وإيابًا svn.ربما يمكن أن يكون لديك عملية على جهاز أوراكل تقوم بتخزين الإجابات مؤقتًا من خادم svn بحيث يمكن في بعض الأحيان تجنب الرحلة ذهابًا وإيابًا؟ربما يمكن أن تكون رحلة svn ذهابًا وإيابًا غير متزامنة؟

ولكن كما قلت، عليك أن تعرف أين يكمن عنق الزجاجة.

أنا أبحث أيضًا عن واجهة برمجة التطبيقات (API) لدمج Subversion وOracle.أحتاج إلى أن أكون قادرًا على سحب كائنات Oracle PL/SQL (الإجراءات والحزم) إلى Subversion، وبعد إجراء التغييرات على الكائنات، يجب تطبيقها على تلك الكائنات في قاعدة بيانات Oracle.

الحل الآخر هو استخدام البرنامج الذي يبقى بين ORACLE وSVN ويقوم بمزامنة PL/SQL مع المصادر.

إليك أحد هذه البرامج التي يمكن تشغيلها بواسطة cron:https://sourceforge.net/projects/dbcode-svn-sync/ .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top