Quoting Valerio Vianello <[EMAIL PROTECTED]>:

Is it 120 iterations or 1000? Can you try calling the gc in the middle? Also 
try running it at a slower pace and see whether that makes any difference.

thanks,
--dasarath


> Hi,
> But how mush is it the coordinator footprint? I mean, how much memory does 
> it take?
> It sounds quite strange that only 120 coordinators can cause an out of 
> memory. Isn't it?
> Thanks,
> Valerio
> 
> ----- Original Message ----- 
> From: "Dasarath Weeratunge" <[EMAIL PROTECTED]>
> To: <[email protected]>
> Sent: Sunday, July 23, 2006 4:44 PM
> Subject: Re: memory leakage?
> 
> 
> > Quoting sergio salvi <[EMAIL PROTECTED]>:
> >
> > Each time you invoke service A, it creates a new transaction. This means a
> 
> > new
> > coordinator gets created. Once created, a coordinator object is kept 
> > around
> > until it timeouts (the default value is 180 s). This was done so to 
> > respond to
> > some late messages appropriately. We could certainly come up  with a more
> > efficient way to do this. Thus, if you create many activities within a 
> > short
> > duration, even if activities end in succession, it may cause their 
> > coordinators
> > to get accumulated. It may be this that is causing the slow down.
> >
> > thanks,
> > --dasarath
> >
> >
> >> I've done a client which invokes a service A whinch in turn create a
> >> transaction with 2 services, B and C.
> >>   The client invokes 1000 times the service A.
> >>   here is the code of the service A, the one who creates the transaction:
> >>
> >>   public class CoordinatoreKandula {
> >>
> >>     private Integer risultato;
> >>     private Integer ris1;
> >>     private Integer ris2;
> >>     static Logger logger;
> >>     static Logger logger2;
> >>
> >>     /** Creates a new instance of CoordinatoreKandula */
> >>     public CoordinatoreKandula() {
> >>         risultato = null;
> >>         ris1 = null;
> >>         ris2 = null;
> >>         logger2 = Logger.getLogger("Valerio");
> >>         logger = Logger.getLogger("CoordinatoreKandula");
> >>         PropertyConfigurator.configure("C:/Programmi/Apache Software
> >> Foundation/Tomcat 5.5/webapps/axis/WEB-INF/classes/log4j.properties");
> >>         logger2.info("creato CoordinatoreKandula");
> >>     }
> >>       public int risolviEspressione(int tipo, int a, int b, int c, int d)
> 
> >> {
> >>
> >>
> >>         TransactionManagerImpl wstm = 
> >> TransactionManagerImpl.getInstance();
> >>
> >>         String endpointSomma = new
> >> String("http://localhost:8080/axis/services/ServizioSomma";);
> >>         String endpointProdotto = new
> >> String("http://localhost:8080/axis/services/ServizioProdotto";);
> >>
> >>         //espressione tipo 1 ==> (a + b) * (c + d)
> >>         if (tipo==1) {
> >>
> >>             int risTipo1;
> >>
> >>             logger.info("Operazione richiesta : (" + a + " + " + b + ") *
> 
> >> ("
> >> + c + " + " + d + ")");
> >>
> >>             try {
> >>                 wstm.begin();
> >>             }catch(RemoteException e) {
> >>                 logger.info("Errore nel begin ");
> >>                 e.printStackTrace();
> >>             }
> >>
> >>             Service service = new Service();
> >>             Call call = null;
> >>
> >>             try {
> >>                 call = (Call) service.createCall();
> >>             }catch(javax.xml.rpc.ServiceException e) {
> >>                 logger.info("Errore nel creare oggetto call");
> >>             }
> >>
> >>             //call per (a + b)
> >>             call.setTargetEndpointAddress(endpointSomma);
> >>             call.setOperationName("somma");
> >>             call.setUseSOAPAction(true);
> >>
> >> call.setSOAPActionURI
> > ("http://localhost:8080/axis/services/kandulaServizioSomma#somma";);
> >>
> >>             call.addParameter( "op1", XMLType.XSD_INT, ParameterMode.IN);
> >>             call.addParameter( "op2", XMLType.XSD_INT, ParameterMode.IN);
> >>             call.setReturnType( XMLType.XSD_INT );
> >>               Integer op1 = new Integer(a);
> >>             Integer op2 = new Integer(b);
> >>
> >>
> >>             try {
> >>                  ris1 = (Integer) call.invoke( new Object [] {op1,op2});
> >>             }catch(java.rmi.RemoteException e) {
> >>                  System.err.println("catch  CoordinatoreKandulaInvoke1-> 
> >> " +
> >> e);
> >>                  e.printStackTrace();
> >>             }
> >>
> >>             //call2 per (c+d)
> >>             Call call2 = null;
> >>
> >>             try {
> >>                 call2 = (Call) service.createCall();
> >>             }catch(javax.xml.rpc.ServiceException e) {
> >>                 logger.info("Errore nel creare oggetto call2");
> >>             }
> >>
> >>             call2.setTargetEndpointAddress(endpointSomma);
> >>             call2.setOperationName("somma");
> >>             call2.setUseSOAPAction(true);
> >>
> >> call2.setSOAPActionURI
> > ("http://localhost:8080/axis/services/kandulaServizioSomma#somma";);
> >>
> >>             call2.addParameter( "op3", XMLType.XSD_INT, 
> >> ParameterMode.IN);
> >>             call2.addParameter( "op4", XMLType.XSD_INT, 
> >> ParameterMode.IN);
> >>             call2.setReturnType( XMLType.XSD_INT );
> >>               Integer op3 = new Integer(c);
> >>             Integer op4 = new Integer(d);
> >>
> >>             try {
> >>                  ris2 = (Integer) call2.invoke( new Object [] {op3,op4});
> >>
> >>             }catch(java.rmi.RemoteException e) {
> >>                  System.err.println("catch  CoordinatoreKandulaInvoke2-> 
> >> " +
> >> e);
> >>                  e.printStackTrace();
> >>             }
> >>
> >>             //call3 per (a + b) * (c + d)
> >>             Call call3 = null;
> >>
> >>             try {
> >>                 call3 = (Call) service.createCall();
> >>             }catch(javax.xml.rpc.ServiceException e) {
> >>                 logger.info("Errore nel creare oggetto call3");
> >>             }
> >>
> >>             call3.setTargetEndpointAddress(endpointProdotto);
> >>             call3.setOperationName("prodotto");
> >>             call3.setUseSOAPAction(true);
> >>
> >> call3.setSOAPActionURI
> > ("http://localhost:8080/axis/services/kandulaServizioProdotto#prodotto";);
> >>
> >>             call3.addParameter( "ris1", XMLType.XSD_INT, 
> >> ParameterMode.IN);
> >>             call3.addParameter( "ris2", XMLType.XSD_INT, 
> >> ParameterMode.IN);
> >>             call3.setReturnType( XMLType.XSD_INT );
> >>               try {
> >>                  risultato = (Integer) call3.invoke( new Object []
> >> {ris1,ris2});
> >>
> >>             }catch(java.rmi.RemoteException e) {
> >>                  System.err.println("catch  CoordinatoreKandulaInvoke3-> 
> >> " +
> >> e);
> >>                  e.printStackTrace();
> >>             }
> >>
> >>
> >>             try {
> >>                 wstm.commit();
> >>
> >>             }catch(RemoteException e) {
> >>                 logger.info("Errore nel commit ");
> >>                 e.printStackTrace();
> >>             }
> >>
> >>             logger.info("(" + a + " + " + b + ") * (" + c + " + " + d + 
> >> ") =
> >> " + risultato.intValue());
> >>         }
> >>
> >>         else logger.info("input sbagliato");
> >>
> >>         return risultato.intValue();
> >>     }
> >> }
> >>
> >>
> >> Dasarath Weeratunge <[EMAIL PROTECTED]> ha scritto:
> >>   Quoting sergio salvi :
> >>
> >> are you creating a new transaction each time? if you could please post 
> >> your
> >> client code so that we can get a better idea about what your client is
> >> doing.
> >>
> >> thanks,
> >> --dasarath
> >>
> >>
> >>
> >>
> >>  Chiacchiera con i tuoi amici in tempo reale!
> >>  http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> 
> Chiacchiera con i tuoi amici in tempo reale! 
>  http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to