I am in the process of moving all Call::openConnection() logic into the Call class constructor.

So far I have been somewhat successful but some of the tests are failing.

However, it looks to me that Call::openConnection() should not be there at all (Please see the sequence diagram that I sent earlier) and as I have discussed earlier, at the moment this is called multiple times for each method invocation.

 

Once I get around the problems with moving Call::openConnection() to constructor, I plan to reuse the ClientAxisEngine, MessageData, SOAPSerializer and SOAPDeSerializer objects, instead of destroying them on each method call.

My feeling is that this will lead to improved performance, though I have not yet planned how to measure it.

 

Thanks,

Samisa…

 

-----Original Message-----
From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED]
Sent:
Monday, May 30, 2005 4:34 PM
To: Apache AXIS C Developers List
Subject: RE: Restructuring Call::initialize

 

Yes, ClientAxisEengine is deleted for each method, despite the fact we are using the same Stub object.

 

Deleting the engine every time has to be removed and move some of the init logic which is one off to the constructor.

 

I have attached a sequence diagram herewith to help understanding Call::initialize(). It looks to me that Call::initialize triggers a deep set of method calls. Some activities like buffer clearing has to be done every time before a fresh invoke. However, some activities like setting the end point can be one off.

 

Thanks,

Samisa…

 

-----Original Message-----
From: sanjaya gayan [mailto:[EMAIL PROTECTED]
Sent:
Monday, May 30, 2005 4:01 PM
To: Apache AXIS C Developers List
Subject: Re: Restructuring Call::initialize

 

It looks to me like with each call to Call::Initialize() if a ClientAxisEngine object exists it is deleted and then a new one created and initialized (I am not sure whether ClientAxisEngine->Initialize() caters for this).

Shouldn't it be that if a AxisClient object exists it should be reused by intializing and a new one created only if there is no AxisClient object?

 

I guess that the deleting of the existing object could be removed, in which case initializing the ClientAxisEngine (which should "intialize" all members of the ClientAxisEngine. not sure whether this is the current behaviour) with each call to Call::Initialize has to be done.

 

sanjaya.


Samisa Abeysinghe <[EMAIL PROTECTED]> wrote:

Hi All,
I am looking into the Call::initialize() method that is being called within the client side generated code,
prior to each method invocation.

Basically if we have 2 method calls that we could invoke, and in the client program we execute both those methods,
we will be calling initialize() on the m_pCall member of the stub object twice.
However, having a glance into Call::initialize() it looks to me that some of the activities could be made one off
instead of executing them multiple times for each method invocation.

Some of the candidate calls that I want to make one off is initing the AxisClientEngine once, thus reusing the
serializer and deserializer objects for multiple calls.
It would be helpful if one of the original designers of this mechanism could rationalize the initial design so that
I would not miss any important points here.

Thanks,
Samisa...


How much free photo storage do you get? Store your holiday snaps for FREE with Yahoo! Photos. Get Yahoo! Photos

Reply via email to