[Logo] Terracotta Discussion Forums
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
[Expert]
不能用Automatic Peer Discovery 来同步  XML
Forum Index -> Terracotta 中文社区
Author Message
cloudlok

journeyman

Joined: 12/13/2011 01:17:49
Messages: 17
Offline

你好, 我手动的ehcache.xml 设定如下,
Code:
         <cacheManagerPeerProviderFactory
 		class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
 		properties="peerDiscovery=manual,
 		rmiUrls=//host2d:11105/userCache"/> (另一台是host2e)
 
 	<cacheManagerPeerListenerFactory
 		class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
 		properties="hostName=localhost, port=11105,
 		socketTimeoutMillis=2000"/>
 

在这个环境下, 我设计是能够将两台的cache透过程式来同步.

cache.put(new Element(userId, userName), flase);

但如果我将我的ehcache.xml 设定改为以下就不能同步了
Code:
 <cacheManagerPeerProviderFactory
 		class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
 		properties="peerDiscovery=automatic, multicastGroupAddress=239.250.81.5,
 		multicastGroupPort=31101, timeToLive=32"/>(其实timeToLive 我已经试了0 ,1 ,16 ,32 ,64 ,128 ,255也不行)
 
 	<cacheManagerPeerListenerFactory
 		class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
 		properties="hostName=localhost, port=11105,
 		socketTimeoutMillis=2000"/>
 

而我也用了java写了一个multicast程式确定了239.250.81.5:31101这个multicast ip, port 是能正常运作的.
Code:
 package web.util;
 import java.io.*;
 import java.net.*;
 public class MulticastListener {
    public void main() {
 
       String ip = "239.250.81.5";
       String name = "1234";
       int port = 31101;
       try {
          InetAddress group = InetAddress.getByName(ip);
          MulticastSocket s = new MulticastSocket(port);
          s.joinGroup(group);
 
          String msg = name;
          System.out.println("Sending out: "+msg);
          DatagramPacket data = new DatagramPacket(
             msg.getBytes(), msg.length(), group, port);
          s.send(data);
          
          byte[] buffer = new byte[10*1024];
          data = new DatagramPacket(buffer, buffer.length);
          while (true) {
             s.receive(data);
             System.out.println("Received: "+ 
                (new String(buffer, 0, data.getLength())));
          }
       } catch (IOException e) {
          System.out.println("Error: "+ e.toString());
       }
    }
 }
 


可麻烦帮忙看看是否那里出了问, 谢谢

也附上整个ehcaceh.xml
 Filename ehcache.xml [Disk] Download
 Description
 Filesize 38 Kbytes
 Downloaded:  251 time(s)

rajoshi

seraphim

Joined: 07/04/2011 04:36:10
Messages: 1465
Offline

Please post in English.

Rakesh Joshi
Terracotta.
crybird

neo

Joined: 04/09/2012 01:08:16
Messages: 4
Offline

He means that if using the second configure snippet, the code
cache.put(new Element(userId, userName), flase);  
can't propagate to another jvm.
 
Forum Index -> Terracotta 中文社区
Go to:   
Powered by JForum 2.1.7 © JForum Team