[jboss-user] [JBossCache] - Problems with PojoCache to work and outOfMemory

yudivian do-not-reply at jboss.com
Fri Sep 1 20:39:02 EDT 2006


I have two problems using PojoCache. I have an application tha use PojoCache to replicate data, but when I run the application in one node it seems to work fine but when the time pass I got an OutOfMemory Exception and I don't know why. The other problem is that I can't run fine the application in more than one node. This is the code I use, and the application call the methods putMessage and getMessage all the time. I appreciate any help on this.

This is the code

  | public class JBCacheDMS  {
  | 	
  | 	private static final Logger log = Logger.getLogger(JBCacheDMS.class);
  | 
  | 	protected boolean inited;
  | 
  | 	protected PojoCache queues;
  | 
  | 	protected HashMap<String, List> proxyQueues;
  | 
  | 	public void init(String DMSUrl, String[] DMSnodesUrls) {
  | 		try {
  | 			queues = new PojoCache();
  | 			PropertyConfigurator config = new PropertyConfigurator(); // configure tree cache.
  | 			   config.configure(queues, "config/replSyncPC-service.xml");
  | 			String platformName = System.getProperty("platformName");
  | 			queues.setClusterName("DMS-" + platformName);
  | 			queues.setCacheMode(PojoCache.REPL_SYNC);
  | 			queues.createService();
  | 			queues.startService();
  | //			addTreeCacheListener();
  | 			proxyQueues = new HashMap<String, List>();
  | 			inited = true;
  | 		} catch (Exception e) {
  | 			// TODO Auto-generated catch block
  | 			e.printStackTrace();
  | 		}
  | 
  | 	}
  | 
  | 	/**
  | 	 * To add a TreeCacheListener
  | 	 * 
  | 	 * @param listener
  | 	 *            The listener to add
  | 	 */
  | 	public void addTreeCacheListener(TreeCacheListener listener) {
  | 		queues.addTreeCacheListener(listener);
  | 	}
  | 
  | 	/**
  | 	 * To remove a TreeCacheListener
  | 	 * 
  | 	 * @param listener
  | 	 *            The listener to remove
  | 	 */
  | 	public void removeTreeCacheListener(TreeCacheListener listener) {
  | 		queues.removeTreeCacheListener(listener);
  | 	}
  | 
  | 	/**
  | 	 * Return an instance of DMStorage(the class itself) if the class was
  | 	 * inited, if not returns null
  | 	 * 
  | 	 * @return an instance of DMS
  | 	 */
  | 	public DMS getDMS() {
  | 		if (inited)
  | 			return this;
  | 		return null;
  | 	}
  | 
  | 	public void stop() {
  | 		// TODO Auto-generated method stub
  | 
  | 	}
  | 
  | 	public void createQueue(String name) {
  | 		try {
  | 			queues.putObject(name, new ArrayList<AbstractMessage>());
  | 			List<AbstractMessage> proxyList = (List) queues.getObject(name);
  | 			proxyQueues.put(name, proxyList);
  | 			// System.out.println(getAgent(name).getName().getName());
  | 		} catch (CacheException e) {
  | 			// TODO Auto-generated catch block
  | 			e.printStackTrace();
  | 		}
  | 
  | 	}
  | 
  | 	public void deleteQueue(String name) {
  | 		try {
  | 			proxyQueues.remove(name);
  | 			queues.removeObject(name);
  | 			queues.remove(name);
  | 		} catch (CacheException e) {
  | 			// TODO Auto-generated catch block
  | 			e.printStackTrace();
  | 		}
  | 
  | 	}
  | 
  | 	public void putMessage(String name, AbstractMessage message) {
  | 		if (!queues.exists(name)){
  | 			createQueue(name);
  | 		}
  | 		List<AbstractMessage> proxyList = proxyQueues.get(name);
  | 		proxyList.add(message);
  | 	}
  | 
  | 	public AbstractMessage getMessageBusy(String name) {
  | 		if (!queues.exists(name)){
  | 			createQueue(name);
  | 		}
  | 		List<AbstractMessage> proxyList = proxyQueues.get(name);
  | 		AbstractMessage message = proxyList.remove(0);
  | 		while(message == null){
  | 			message = proxyList.remove(0);
  | 			try {
  | 				Thread.sleep(10);
  | 			} catch (InterruptedException e) {
  | 				// TODO Auto-generated catch block
  | 				e.printStackTrace();
  | 			}
  | 		}
  | 		return message;
  | 	}
  | 

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

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



More information about the jboss-user mailing list