لماذا تكون حبوب الجلسة عديمة الجنسية ذات خيط واحد؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

وفقًا لفهمي، يتم استخدام حبوب الجلسة عديمة الجنسية لترميز منطق العمل.لا يمكنهم تخزين البيانات في متغيرات المثيل الخاصة بهم لأن المثيل الخاص بهم تتم مشاركته بواسطة طلبات متعددة.لذلك يبدو أنهم أشبه بفصول سينجلتون.ومع ذلك، فإن الاختلاف يتمثل في إنشاء (أو إعادة الاستخدام من التجمع) المثيل المنفصل لحبوب الجلسة عديمة الحالة لكل طلب.

بعد البحث على Google، تمكنت من العثور على السبب وراء كون مواصفات Java EE من المفترض أن تكون ذات خيط واحد.لكن لا يمكنني الحصول على سبب تحديد ذلك خيوط واحدة?

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

المحلول

إن SLSBs عبارة عن خيط واحد بسبب سياق TX، ويرتبط المبدأ بمثيل الفول عند استدعائه.يتم تجميع هذه الحبوب وما لم يتم الوصول إلى الحد الأقصى لحجم التجمع، تتم معالجتها في سلاسل منفصلة (تعتمد على البائع).

إذا تم تصميم SLSBs لمؤشر الترابط الآمن، فستبدو كل مكالمة وكأنها servlet doGet/Post مع معلومات الطلب التي تحتوي على سياق Tx ومعلومات سياق الأمان وما إلى ذلك.لذا على الأقل يبدو الرمز نظيفًا (يعتمد على المطور).

نصائح أخرى

السبب الرئيسي وراء كون حبوب الجلسة عديمة الحالة ذات ترابط مفرد هو جعلها قابلة للتطوير بشكل كبير للحاوية.يمكن للحاوية تقديم الكثير من الافتراضات المبسطة حول بيئة التشغيل.السبب الثاني هو تسهيل الحياة على المطور لأنه لا داعي للقلق بشأن أي مزامنة أو إعادة إدخال في منطق عمله لأنه لن يتم استدعاء الوحدة أبدًا في سياق سلسلة رسائل أخرى.

أتذكر الأسباب التي تمت مناقشتها في مراجعات مواصفات EJB 1.0 الأصلية.سألقي نظرة على قسم الأهداف في المواصفات.يرى http://java.sun.com/products/ejb/docs.html للحصول على قائمة المواصفات.

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