هل JVM أن خدمات الويب الخاص بك التطبيق إعادة بدء في إعادة الانتشار إلى ملقم التطبيق؟

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

  •  22-08-2019
  •  | 
  •  

سؤال

وهذا هو شيء يمكنك تكوين و / أو تعتمد على ملقم التطبيق الخاص بك؟ وأنا أتساءل إذا كان سيتم بناؤها كائن مفرد عند إعادة نشر التطبيق.

وأنا أفضل أن أسأل هنا ويحاولون الحصول على إجابة موجزة من غوغلينغ عشوائيا أو اللجوء إلى القراءة J2EE بريمج المواصفات -

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

المحلول

لا، لن (أي ملقم التطبيق على الأقل أن أعرف). مواصفات بريمج يمنحك ServletContextListener هوك لإدارة دورة حياة التطبيق. بعض خوادم التطبيقات، مثل جبوس لها شروح خاصة لحبوب المفرد (Service)، وEJB 3.1 يتيح لك هذا الشرحSingleton. شيء واحد آخر للتفكير عند استخدام سنغلتونس هو ما سيحدث عند الكتلة لك التطبيق، سوف تحتاج التوفر العالي (HA) أو استخدام نوع من التكرار، إلا إذا كنت تستخدم نهج شيء نصيب. مخابئ وزعت جيدة لهذا السبب.

نصائح أخرى

والجواب باختصار على هذا السؤال هو لا. أنا لا أعرف من أي ملقم التطبيقات التي تتصرف بهذه الطريقة. ومع ذلك، هناك عدد قليل من الأشياء التي ينبغي الإشارة إلى. فيما يلي شرح مبسط:

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

وطلبك سوف (من الناحية النظرية، أتلست) تتصرف نفس بعد إعادة الانتشار، وبعد إعادة تشغيل خادم JVM / التطبيق.

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

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