سؤال

هل من الممكن ضبط مستوى عزل قاعدة البيانات (أي Serializable، قراءة قابلة للتكرار الخ) للحصول على مكالمة طريقة EJB 3 معينة؟

أنا أفهم أن هذا غير مشمول من مواصفات EJB، لذا فإن تفاصيل كيفية القيام بذلك بطريقة محددة من JBOSS أو Glassfish سيكون رائعا.

لقد بدأت في الحصول على الانطباع فمن غير الممكن وأنه لا يمكنك ضبطه فقط لكل مسبح اتصال وهو أمر مثالي من الواضح فقط.

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

المحلول

هذا بالفعل غير مشمول بالمواصفات، ولكن يمكن تكوينها من خلال واصفات نشر خادم التطبيقات المحددة عند دعمها. WeBlogic يفعل على سبيل المثال، ويمكنك تحديد عزل المعاملات على مستوى الطريقة في weblogic-ejb-jar.xml:

مثال

<transaction-isolation>
  <isolation-level>...</isolation-level>
  <method>
      <description>...</description>
      <ejb-name>...</ejb-name>
      <method-intf>...</method-intf>
      <method-name>...</method-name>
      <method-params>...</method-params>
  </method>
</transaction-isolation>

لا أعرف ما إذا كان لدى JBoss أو Glassfish مكافئا (لم أستطع الوصول إلى supportwlddincontainers. الصفحة لإيجاد إجابة لزنزينكة).

كديل، هل حاولت استخدامها Connection#setTransactionIsolation(int) داخل طريقة EJB معينة باستخدام أي تكوين العزلة برمجيا؟

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