أوراكل JDBC تجمع الاتصالات مع ارتباط قاعدة البيانات

StackOverflow https://stackoverflow.com/questions/1801592

  •  05-07-2019
  •  | 
  •  

سؤال

وأنا بناء تطبيقات J2EE على شبكة الإنترنت مع قاعدة بيانات أوراكل. يستخدم ملقم التطبيق JDBC اتصال تجميع لقاعدة بيانات أوراكل A (على سبيل المثال 20 وصلات كحد أقصى)، وبعض الاستفسارات تنفيذ الجداول استخدامها في البعيد أوراكل قاعدة بيانات B عن طريق وصلة قاعدة البيانات.

إذا التطبيق خادم يخلق 20 وصلات إلى قاعدة بيانات A، وجميع الاستفسارات يبحثون عن البيانات في قاعدة بيانات B، وقاعدة بيانات وإنشاء 20 وصلات إلى قاعدة بيانات B؟ أو كل الاستعلامات من خلال نفق اتصال واحد؟

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

المحلول

وهناك علاقة واحد الى واحد بين الدورتين قاعدة البيانات المحلية والبعيدة. يجب أن يكون هناك للحالات التالية: جلسة A1 على DB المحلي يدير القيم B INSERT INTO الجدول @ ( 'A1')؛ أن إدراج جزء من الصفقة الدورة A1 ل.

والدورة A2 تأتي جنبا إلى جنب ويقوم SELECT * FROM الجدول @ B. لأن الدورة A1 لم تلتزم حتى الآن، يجب أن جلسة A2 لا ترى التوالي. ولذلك تحتاج الى جلسة النائية والتي تختلف عن تلك التي تنتمي إلى A1.

وبالمثل هل يمكن أن يكون جميع الدورات 20 على قاعدة بيانات واستفسارات تشغيل بشكل متزامن على قاعدة بيانات B.

وهناك إجراء DBMS_SESSION.CLOSE_DATABASE_LINK التي سيتم قطع الاتصال عن بعد. كان لي بعض المشاكل مع أن (قاعدة بيانات 9I) عندما رفض إغلاقها بدعوى "المعاملات المعلقة" حتى مباشرة بعد ارتكاب. يبدو أن تتصل المؤشرات PL / SQL مؤقتا. قد لم تعد تكون هذه القضية.

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