[jboss-user] [JBossCache] - PojoCache replcation not working

guava do-not-reply at jboss.com
Wed Oct 25 04:10:02 EDT 2006


Hi,

I'm on JBossCache 1.4.0.SP1. I'm just testing pojo cache replication between two machines. I wrote a simple test case and a pojo class. I started the test on one machine and put the object into the cache. I then started the second machine and the initial state did get replicated over. 

However, when I modified the pojo on the first machine I never saw the modification got replicated. Below is my code. Maybe I'm making some simple mistake? Thanks for any help.

Test case:
========================================
public class Driver
{
	static Logger logger = Logger.getLogger(Driver.class);
	
	public static void main(String[] args)
	{
		BasicConfigurator.configure();
		logger.getRoot().setLevel(Level.INFO);
		try {
			PojoCache cache = new PojoCache();
			PropertyConfigurator configurator = new PropertyConfigurator();
			configurator.configure(cache, new FileInputStream("jboss-cache.xml"));
			cache.addTreeCacheListener(new Driver());
			cache.startService();
			
//this is the code executed on the first machine
			Router r0 = new Router(0, "12:34:56:78:FF:00");
			cache.putObject("/router", r0);

//this is the code on the second machine. I simply get that pojo from the cahce
                         //Router r0 = (Router)cache.getObject("/router");
			
// start a thread to display the router every 3 seconds
// never saw the change got replicated to the second machine!
			DisplayThread display = new DisplayThread();
			display.setRouter(r0);
			new Thread(display).start();


			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

//start a loop to insert new address into the POJO 
			while ( true ) {
				System.out.print("Enter ip...");
				String line = reader.readLine();
				r0.addAddress(line);
			}
			
		} catch ( Throwable tx ) {
			tx.printStackTrace();
		}
	}
}
=========================================
@PojoCacheable
public class Router
{
	private List addresses;
	private int id;
	private String mac;
	
	public Router() 
	{
		
	}
	
	public Router(int id, String mac)
	{
		this.id = id;
		this.mac = mac;
		addresses = new ArrayList();
	}

	public List getAddresses()
	{
		return addresses;
	}

	public int getId()
	{
		return id;
	}

	public String getMac()
	{
		return mac;
	}
	
	public void addAddress(String address)
	{
		addresses.add(address);
	}
	
	public String toString()
	{
		StringBuffer sb = new StringBuffer();
		sb.append("router ").append(id).append(" mac").append(mac).append("addresses:").append("\n");
		for ( String s: addresses ) {
			sb.append(s).append(" ");
		}
		sb.append("\n");
		
		return sb.toString();
	}
}



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3980635#3980635

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3980635



More information about the jboss-user mailing list