[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] memory leak? FIXED



Error happens when I test the problem using the release 0.79dev from cvs. It will not happen until many messages(it's about 10000 on my machine) are transfered.

It says:
================================================
WARN [RequestBroker-/node/http:192.168.2.118:3412] Generating dead letter oid=9341 from publisher=liuwen because delivery to 'zhangsan' cbQueue=/node/http:192.168.2.118:3412/client/zhangsan/1 failed. WARN [RequestBroker-/node/http:192.168.2.118:3412] Generating dead letter oid=9343 from publisher=liuwen because delivery to 'zhangsan' cbQueue=/node/http:192.168.2.118:3412/client/zhangsan/1 failed. ERROR [MessageUnitHandler-/node/http:192.168.2.118:3412/msg/9343.EmptyMessageUnit] Internal problem, msgUnit = null, there was not yet any message published, only subscription exists on this unpublished message:

   <MessageUnitHandler>
      <uniqueKey>9343</uniqueKey>
      <MessageUnitWrapper>null</MessageUnitWrapper>
      <SubscriptionInfo id='__subId:XPATH2:9345/>
      <handlerIsNewCreated>false</handlerIsNewCreated>
   </MessageUnitHandler>

java.lang.Throwable 	
	at org.jutils.runtime.StackTrace.getStackTrace(StackTrace.java:50) 	
	at org.xmlBlaster.engine.MessageUnitHandler.getMessageUnitWrapper(MessageUnitHandler.java:154) 	
	at org.xmlBlaster.engine.RequestBroker.publish(RequestBroker.java:1212) 	
	at org.xmlBlaster.engine.RequestBroker.publish(RequestBroker.java:1032) 	
	at org.xmlBlaster.engine.XmlBlasterImpl.publish(XmlBlasterImpl.java:138) 	
	at org.xmlBlaster.protocol.corba.ServerImpl.publish(ServerImpl.java:108) 	
	at org.xmlBlaster.protocol.corba.serverIdl.ServerPOA._invoke(ServerPOA.java:80) 	
	at org.jacorb.poa.RequestProcessor.invokeOperation(RequestProcessor.java:207) 	
	at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:404) 	
	at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:513) 
WARN [RequestBroker-/node/http:192.168.2.118:3412] Generating dead letter oid=9342 from publisher=liuwen because delivery to 'zhangsan' cbQueue=/node/http:192.168.2.118:3412/client/zhangsan/1 failed. =====================================================


> -----Original mail-----
> From: Marcel Ruff [mailto:ruff at swand.lake.de]
> 
> 
> Hi 刘 文
> 
> thanks for reporting this bug.
> It is fixed now and available with CVS.
> Could you please confirm that the problem disappeared?
> 
> best regards,
> 
> Marcel
> 
> PS: Remove all files in
> xmlBlaster/src/java/org/xmlBlaster/engine/admin/extern/snmp
> after cvs update, they currently don't compile.
> 
> >Hi,
> >
> >I found the following question:
> >
> >The publisher send volatile messages( 1K size each) and the
> subscriber
> >received it. When the publisher send about 30000 message, it got the
> >OutOfMemory Exception.
> >
> >I used the OptimizeIt Profiler to debug the server. finding
> that every
> >time a message is published,  A MessageUnitHandler and
> SubscribeInfo instance produced and they would never GCed
> even if the client loged out.
> >
> >
> >my publish code
> >//===========================================================
> ===========
> >      String xmlKey = null;
> >      PublishQosWrapper qw = new PublishQosWrapper();
> >      qw.isVolatile(true);
> >      System.out.println("qos = " + qw.toXml() );
> >      byte[] b = new byte[1024];
> >      while(true){
> >        	synchronized(this){
> >          		if ( _bQuit ) break;
> >        	}
> >        	lCount++;
> >          	xmlKey =  "<key oid='" + lCount +
> >                   	 "'> <topic id='aaaa'/>" +
> >                   	 "</key>";
> >          	_conn.publish(new MessageUnit(xmlKey,b,qw.toXml()));
> >//          	System.out.println(new 
> Timestamp(System.currentTimeMillis())+":"+lCount);
> >            	Thread.currentThread().sleep(1);
> >   }
> >
> >regards,
> >
> >liuwen.
> >
> >
> >  
> >
> 
> 
> 
>