2013-10-23 12 views
8

पर एचए-सिंगलटन माइग्रेट/बनाएं, मैं 6 के रूप में जेबॉस में तैनाती-हैसिंगिंगटन फ़ोल्डर का उपयोग कर रहा हूं, इसने मुझे सिंगलटन बीन बनाने की अनुमति दी है जिसका उपयोग क्लस्टर नोड्स से व्यवसाय जानकारी अनुरोधों को नियंत्रित करने के लिए किया जाता है। नोड्स के बीच समरूपता को नियंत्रित करने के लिए इन विधियों को सिंक्रनाइज़ किया जाता है (वही डेटा अलग-अलग नोड्स में नहीं हो सकता है)।जेबॉस 7

अब जब कि मैं Jboss 7 की ओर पलायन कर रहा हूँ, और के बाद से है कि तैनाती-hasingleton फ़ोल्डर गायब हो गया, मैं आधिकारिक उदाहरण निम्नलिखित किया गया है:

समस्या यह है कि थेसिस उदाहरण बहुत तुच्छ हैं, और मैं समझ नहीं पाया कि मैं व्यवसाय तर्क विधियों को कहां रख सकता हूं। तो मैं SingletonService में उस तर्क है, जो लागू करता है जगह करने की कोशिश की: सेवा, MyInterface

और मैं निम्नलिखित करने के लिए getValue विधि संशोधित कर लिया है:

@Override 
    public MyInterface getValue() throws IllegalStateException, 
      IllegalArgumentException { 

     return this; 
    } 

ग्राहक के पक्ष में:

@Override 
    public List<Long> myMeth(Long arg1, int arg2) { 
     LOGGER.log("loadGroups() is called()"); 
     ServiceController<?> service = CurrentServiceContainer.getServiceContainer().getService(
       GroupDistributorService.SINGLETON_SERVICE_NAME); 

     if (service != null) { 
      return ((MyInterface) service.getValue()).getMyMethod(arg1, arg2); 
     } else { 
      throw new IllegalStateException("Service '" + GroupDistributorService.SINGLETON_SERVICE_NAME + "' not found!"); 
     } 
    } 

मुझे संदेह है कि यह सही दृष्टिकोण है। और दूसरा, यह उस नोड में काम करता प्रतीत होता है जिसमें मास्टर सिंगलटन सेवा होती है। हालांकि अन्य नोड्स में, यह सिंगलटन सेवा को कॉल करते समय ताले लगाता है, और मुझे टाइमआउट मिलता है।

उत्तर

1

कई महीने पहले मैंने जेबॉस 7: http://www.kubrynski.com/2013/07/using-ha-singleton-in-jboss-7.html में हैसिंगलेटन का उपयोग करने के बारे में ब्लॉग पोस्ट पोस्ट किया है उम्मीद है कि इससे मदद मिलेगी। सुनिश्चित करें कि आप सक्षम क्लस्टरिंग मोड रहें:

<subsystem xmlns="urn:jboss:domain:ee:1.0"> 
    <global-modules> 
    <module name="org.jboss.msc" slot="main"> 
    <module name="org.jboss.as.clustering.singleton" slot="main"> 
    </global-modules> 
</subsystem> 

और आप OSGi व्यवस्था करने के लिए छड़ी है कि, (जार करने के लिए/युद्ध प्लगइन) इस तरह के configuraiton अपने pom.xml में जोड़कर:

<configuration> 
    <archive> 
    <manifestentries> 
     <dependencies> 
     org.jboss.msc,org.jboss.as.server, 
     org.jboss.as.clustering.singleton 
     </dependencies> 
    </manifestentries> 
    </archive> 
</configuration> 
+0

कि नोट [कड़ी केवल जवाब निराश होते हैं] (http://meta.stackoverflow.com/tags/link-only-answers/info), SO उत्तर समाधान के लिए खोज का अंत बिंदु होना चाहिए (बनाम अभी तक संदर्भों का एक और स्टॉपओवर , जो समय के साथ बासी हो जाते हैं)। लिंक को संदर्भ के रूप में रखते हुए, यहां स्टैंड-अलोन सारांश जोड़ना पर विचार करें। – kleopatra

+0

क्या यह पूरे मॉड्यूल के विपरीत एक एकल बीन को हे-सिंगलटन लोड करने की अनुमति देता है? –

संबंधित मुद्दे