मैं एक जावा ईई अनुप्रयोग उपयोगकर्ताओं को एक वेब इंटरफेस से जोड़ने के लिए/निकालें "socketinfo" तालिकाओं (एक डेटाबेस में संग्रहीत) की अनुमति देता है कि बनाने रहा द्वारा डायनामिक सॉकेट श्रोताओं को हटाने। यदि उपयोगकर्ता वेब इंटरफ़ेस से "सॉकेटिनोफ़" सक्षम करता है, तो एप्लिकेशन सर्वर को आने वाले पैकेट के लिए सॉकेट श्रोता बनाना होगा और डेटा को संसाधित करना होगा। यदि उपयोगकर्ता "सॉकेटइन्फो" को अक्षम या हटा देता है तो सॉकेट श्रोता को हटा दिया जाना चाहिए। पूरा उत्पाद एक कान में निहित होना चाहिए, और प्राथमिक रूप से अनुपालन करना चाहिए। कुछ दृष्टिकोण मैं माना लेकिन साथ समस्याओं में भाग गए हैं:जावा ईई: बनाना और डोमेन मॉडल
सॉकेट के लिए एक JCA संसाधन एडाप्टर बनाएँ और श्रोताओं के रूप में एमडीबी का उपयोग करें। जिस समस्या में मैं भाग गया था वह यह था कि जब मैं उपयोगकर्ता उन्हें जोड़ता हूं तो अलग-अलग सॉकेट के लिए प्रोग्रामेटिक रूप से एमडीबी को कैसे तैनात किया जाए।
बनाएँ @ सिंगलटन/@ सेवा EJB कि सावधान तुल्यकालन के साथ डेमॉन धागे प्रबंधन करता है। सिंगलटन ईजेबी को बिजनेस लेयर में इंजेक्शन दिया जा सकता है ताकि सीआरयूडी ऑपरेशंस और सॉकेट हेरफेर सही वर्कफ़्लो में हो। यहां समस्या यह थी कि माना जाता है कि ईजेबी से धागे बनाने का एक बुरा अभ्यास माना जाता है और यह विशिष्ट अनुपालन नहीं है (भले ही सिंगलटन जीवन चक्र सही तरीके से संभाला जा सके और उचित सिंक्रनाइज़ेशन तंत्र हो?)।
(एक और सिंगलटन?) डोमेन मॉडल में धागे रखो और EJBs मॉडल का उपयोग कर सकते है। यह उन सभी में से सबसे खराब था क्योंकि एप्लिकेशन सर्वर में एकाधिक क्लासलोडर होते हैं, सामान्य रूप से कम कंटेनर समर्थन होते हैं, साथ ही यह सबकुछ से पीड़ित होता है 2. इससे पीड़ित होता है।
किसी भी विचार कैसे सही ढंग से जावा ईई में इस स्थिति से निपटने के लिए?
संपादित करें: इस प्रश्न का विस्तार: मान लीजिए कि मैं इस समस्या से संपर्क करने का निर्णय लेता हूं जैसे ईवर्नली अपने समाधान 3 में सुझाव देता है, मैं जेसीए (आंतरिक थ्रेड जोड़ने के लिए कस्टम इंटरफ़ेस के साथ) में ऐसा करके क्या हासिल करूं एक (अच्छी तरह से डिजाइन) सिंगलटन से मिलता है? एक संसाधन एडाप्टर बनाने के दौरान एक राक्षसी कार्य की तरह दिखता नहीं है, यह पूरी तरह से तुच्छ लग रहा है और थोड़ा समय लेने वाला हो सकता है (और शायद अन्य डेवलपर्स के लिए भी पालन करना मुश्किल हो सकता है)।
क्या मैं इसे सही तरीके से पढ़ रहा हूं - आप सॉकेट श्रोताओं को बनाना चाहते हैं, यानी जावा ईई कंटेनर से रनटाइम पर सर्वरस्केट्स, और फिर पूर्व निर्धारित तरीके से सॉकेट पर आने वाले डेटा को कैप्चर और संसाधित करना चाहते हैं? –