----- Forwarded message from sergio salvi <[EMAIL PROTECTED]> -----
    Date: Mon, 24 Jul 2006 16:25:12 +0200 (CEST)
    From: sergio salvi <[EMAIL PROTECTED]>
Reply-To: sergio salvi <[EMAIL PROTECTED]>
 Subject: Re: memory leakage?
      To: Dasarath Weeratunge <[EMAIL PROTECTED]>

The client is programmned to invoke the service 1000 times, but after 120 times
it gets a timeout exception. honestly, I don't know how to call the gc in the
middle. Can you tell me if you know?
  thanks
  sergio

Dasarath Weeratunge <[EMAIL PROTECTED]> ha scritto: 
  Quoting Valerio Vianello :

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" 
> To: 
> Sent: Sunday, July 23, 2006 4:44 PM
> Subject: Re: memory leakage?
> 
> 
> > Quoting sergio salvi :
> >
> > 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 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]



 Chiacchiera con i tuoi amici in tempo reale! 
 http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com 
----- End forwarded message -----


The client is programmned to invoke the service 1000 times, but after 120 times it gets a timeout exception. honestly, I don't know how to call the gc in the middle. Can you tell me if you know?
thanks
sergio

Dasarath Weeratunge <[EMAIL PROTECTED]> ha scritto:
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:
> 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]


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]

Reply via email to