2009-05-19 12 views
10

मैं यहां दस्तावेज के रूप में ehcache प्रतिकृति सेट अप करने की कोशिश कर रहा हूं: http://ehcache.sourceforge.net/EhcacheUserGuide.html#id.s22.2
यह विंडोज मशीन पर है लेकिन अंत में उत्पादन में सोलार्स पर चलाएगा।ehcache प्रतिकृति सेट अप करना - मुझे किस मल्टीकास्ट सेटिंग्स की आवश्यकता है?

<cacheManagerPeerProviderFactory 
    class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" 
    properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1, 
    multicastGroupPort=4446, timeToLive=32"/> 

और इस तरह एक श्रोता:

<cacheManagerPeerListenerFactory 
    class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
    properties="hostName=localhost, port=40001, 
    socketTimeoutMillis=2000"/> 

मेरे प्रश्न हैं:
मल्टीकास्ट IP पता और पोर्ट मनमाना (हैं

निर्देश इस प्रकार एक प्रदाता स्थापित करने के लिए कहते हैं मुझे पता है कि पते को एक विशिष्ट सीमा के भीतर रहना है, लेकिन क्या उन्हें विशिष्ट संख्याएं होनी चाहिए)?
क्या उन्हें हमारे सिस्टम प्रशासक (मैं कार्यालय नेटवर्क पर हूं) द्वारा किसी तरह से स्थापित करने की आवश्यकता है?

मैं इसे स्थानीय रूप से परीक्षण करना चाहता हूं इसलिए उपरोक्त कॉन्फ़िगरेशन के साथ दो अलग टॉमकैट उदाहरण चला रहा हूं। मुझे प्रत्येक में बदलने की क्या ज़रूरत है? मुझे पता है कि श्रोताओं दोनों एक ही बंदरगाह पर नहीं सुन सकते हैं - लेकिन प्रदाता के बारे में क्या?
इसके अलावा, श्रोता बंदरगाह भी मनमाने ढंग से हैं?

मैं इसे के रूप में ऊपर की स्थापना की कोशिश की, लेकिन अपनी परीक्षण कैश दोहराया जा प्रतीत नहीं होते हैं में है - एक बिल्ला के कैश में जोड़ा मूल्य अन्य कैश में मौजूद नहीं है।
क्या इस स्थिति को डीबग करने के लिए मैं कुछ भी कर सकता हूं (पैकेट स्नीफिंग के अलावा)?

किसी भी मदद के लिए अग्रिम धन्यवाद, इस पर मेरे बालों को फाड़ कर!

उत्तर

5

मैं इसे परीक्षण करना चाहते हैं स्थानीय स्तर पर तो ऊपर config साथ चल रहा दो अलग-अलग बिल्ला उदाहरणों हूँ।

के रूप में मैं सिर्फ cherouvims related question के बारे में एक जवाब प्रस्तुत कर दिया है मैं तो बस यहाँ भी उजागर करने के लिए कि वे वास्तव में एक उदाहरण कुछ इसी तरह कर रही है प्रदान करने में कर रहे हैं करना चाहते हैं तो कम से कम (मेजबान प्रति एकाधिक नोड्स, हालांकि एक उदाहरण केवल): RMI Distributed Caching दस्तावेज में सेक्शन पूर्ण उदाहरण देखें।

यह के लिए TCP पोर्ट को बदलने के लिए वास्तव में महत्वपूर्ण है प्रत्येक cacheManagerPeerListenerFactory लेकिन बहुस्त्र्पीय सेटिंग्स (मुझे लगता है कि चाहते हैं वे करना होगा) कर सकते हैं रहने ही: आप पूर्ण उदाहरण ऊपर उल्लेख के लिए ehcache.xml's के भीतर कार्रवाई में देख सकते हैं: पोर्ट संख्या 40001 से एक के बाद एक वृद्धि हुई है 40006 प्रति नोड करने के लिए, जबकि बहुस्त्र्पीय सेटिंग्स समान रहते हैं।

आप आज्ञा का पालन किया है कि, आपकी समस्या सिर्फ बिलाव विंडोज पर चलने से संबंधित हो सकती - भीतर अनुभाग आम समस्याएं संबंधित पैरा RMI Distributed Caching में देखें:

बिलाव और/या में एक बग नहीं है JDK जहां किसी भी RMI श्रोता असफल हो जायेगी बिलाव पर शुरू करने के लिए करता है, तो स्थापना पथ उस में रिक्त स्थान है।
[...]
विंडोज़ पर डिफ़ॉल्ट के रूप में "प्रोग्राम फ़ाइलें" में टॉमकैट स्थापित करना है, यह समस्या डिफ़ॉल्ट रूप से होगी।

+0

स्वीकार करते हुए यह बंदरगाह संख्याओं के बारे में सवाल का जवाब देता है। पथों में रिक्त स्थान पर भी अच्छी युक्तियाँ हालांकि मैं प्रभावित नहीं हुआ क्योंकि मैं हमेशा बिना स्पेस के पथ में जावा सामान स्थापित करता हूं। निष्कर्षों और जेकोनसोल टिप साझा करने के लिए –

2

सुनिश्चित करें कि आपके सर्वर में स्टार्टर्स के लिए मल्टीकास्ट सक्षम है। सुनिश्चित नहीं है कि आप किस प्लेटफ़ॉर्म पर चल रहे हैं।

+0

हाय, यह विंडोज़ पर है (अब इसे प्रश्न में जोड़ा गया है)। क्या आप "सर्वर" द्वारा इसका मतलब है - मुझे इसे ओएस में सक्षम करने की आवश्यकता है? –

+2

http://technet.microsoft.com/en-us/library/bb726985.aspx – Gandalf

+0

हाय, ऐसा लगता है कि मल्टीकास्ट सक्षम है - मुझे जांचने के लिए मेरा स्थानीय मित्रवत sysadmin मिला। मुझे अभी तक किसी अन्य कार्य पर नहीं रहना है - जब मैं करता हूं तो मेरे निष्कर्ष पोस्ट करूंगा। –

2
बस एक त्वरित अनुवर्ती के रूप में

हम इस दो अलग-अलग मशीनों जो यह बिल्कुल काम करने के लिए प्राप्त करने की मूल समस्या हल के साथ काम करना आरंभ किया था। जहां तक ​​मुझे याद है कि मल्टीकास्ट को "बॉक्स से बाहर" काम करना चाहिए, लेकिन यह आपके स्थानीय सिसडमिन (हमारे मल्टीकास्ट ग्रुप एड्रेस को ट्विक करने का सुझाव देता है) के साथ जांच करने लायक है।

हम अंत में सोलारिस पर समस्याओं के सभी प्रकार मारा और Manual Peer Discovery बजाय के लिए बहुस्त्र्पीय छोड़ समाप्त हो गया।

अंत में, डिबगिंग के मामले, JConsole का उपयोग कर कैश मूल्यों पर नजर रखने के में यह करने के लिए सबसे अच्छा तरीका साबित हुई। पैकेट स्नीफिंग का सहारा लेना नहीं था। :-)

+0

+1। –

5

ईएचसीएसी पीयर प्रतिकृति के दौरान मुझे एक गलती आई। यह उपयोगी हो सकता है ताकि कोई भी एक स्थानीय बॉक्स पर सहकर्मी प्रतिकृति का प्रयास कर सके।

मैं एक ही Windows Vista बॉक्स peerDiscovery के प्रयोग पर ehcache के 3 सहकर्मी दोहराया उदाहरणों को चलाने के लिए चाहते थे = स्वत: (अंतिम लक्ष्य पर्यावरण लिनक्स) था।

सहकर्मी प्रतिकृति काम नहीं किया। विचित्र रूप से, सभी EhCache उदाहरण लॉग में किसी भी त्रुटि या शिकायतों के बिना शुरू हो रहे थे।

मेरी गलती को समझने के लिए मुझे थोड़ी देर लग गई; लॉग में किसी भी चीज़ के बिना मुझे चारों ओर घूमना पड़ा: मैं प्रत्येक एशैच उदाहरणों के लिए सहकर्मी श्रोता विन्यास में एक ही श्रोता पूल (40001) का उपयोग कर रहा था। विभिन्न श्रोता पोर्ट (40001, 40002 ...) का उपयोग करके चाल चल रही थी।

<cacheManagerPeerListenerFactory 
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
properties="port=40001, socketTimeoutMillis=3000"/> 

<cacheManagerPeerListenerFactory 
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
properties="port=40002, socketTimeoutMillis=3000"/> 

ध्यान दें कि यह 'सहकर्मी श्रोता' विन्यास है कि विभिन्न पोर्ट संख्या की जरूरत है। मल्टीकास्ट 'पीयर डिस्कवरी' अभी भी प्रत्येक ehcache उदाहरण के लिए समान मल्टीकास्ट पता और पोर्ट नंबर का उपयोग करता है।

2
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/> 

बस ऊपर, ehcache कर अगले उपलब्ध किसी एक का उपयोग होगा! तो अगर आप नए नोड्स है कि आप cluser

-Jeryl कुक

1

मदद कर सकते हैं किसी को लागू करने मल्टीकास्टिंग में तैनात करने के लिए चाहते हैं पर विन्यास के बारे में चिंता करने की जरूरत नहीं है। मैंने अपने ऐप को ग्रहण से अपने स्थानीय टॉमकैट में चलाकर सत्यापित किया है और मेरे सहयोगी के ग्रहण से स्थानीय टोमकैट में एक ही ऐप चलाया है।

अपने Windows मशीन पर नीचे चल रहा है आप कुछ ips दिखाएगा और सुनिश्चित करता है कि बहु कास्टिंग काम करना चाहिए।

netsh interface ip show joins 
विशेषता multicastGroupAddress

= 230.0.0.1 मतलब है कि आपके आवेदन इस आईपी, इस बदला जा सकता है का उपयोग करें, लेकिन केवल कक्षा डी IP श्रेणी में उपयोग करने के लिए सुनिश्चित करना चाहते हैं। अपना आवेदन चलाने के बाद, आप इस आईपी 230.0.0.1 को भी देख सकते हैं enter image description here

सभी जादुई देखने के लिए, लॉग को ठीक से सक्षम करने के लिए सुनिश्चित करें।

<logger name="net.sf.ehcache"> <level value="debug"/></logger> 
    <logger name="net.sf.ehcache.distribution.RMICachePeer" level="debug" /> 

अपने डिफ़ॉल्ट कैश में lisners या आवश्यक कैश विन्यास

  <cacheManagerPeerProviderFactory 
     class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" 
     properties="port=40003, peerDiscovery=automatic, 
        multicastGroupAddress=230.0.0.1, 
        multicastGroupPort=4446, 
        timeToLive=32"/> 
    <cacheManagerPeerListenerFactory 
     class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
     properties="port=40001, socketTimeoutMillis=3000" /> 
    <cacheManagerPeerListenerFactory 
     class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
     properties="port=40002, socketTimeoutMillis=3000"/> 
<defaultCache 
    eternal="false" 
    timeToIdleSeconds="300" 
    timeToLiveSeconds="300" 
    diskExpiryThreadIntervalSeconds="305" 
    memoryStoreEvictionPolicy="LRU" 
    statistics="true"> 
    <persistence strategy="localTempSwap"/> 
    <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/> 
    <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" properties="bootstrapAsynchronously=true, maximumChunkSizeBytes=5000000"/> 
     </defaultCache> 

नीचे है करने के लिए सुनिश्चित करें आवेदन परिनियोजित करने के बाद आप लॉग में नीचे देख सकते हैं

13:31:27.073 DEBUG n.s.e.d.PayloadUtil assembleUrlList - Cache peers for this CacheManager to be advertised:...... 
15:15:14.110 DEBUG net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver processPayload rmiUrls received....(YOur configured caches with Ips) 

कौन सा अगर आप मददगार होगा मैन्युअल सहकर्मी खोज प्रक्रिया को कॉन्फ़िगर करने की आवश्यकता है।

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