Hi, everyone,
My apologies for the delay in responding to the questions. I was offline
for a few days :-( and am in the process of catching up!

There was a question whether the message context serialization is
configurable - in other words, can the behaviour be switched off if it is
not wanted?

The answer is that the message context serialization must be explicitly
invoked in order for save/restore activity to take place. During normal
message processing, no message serialization takes place.

There is one spot that where the normal message processing is affected,
where the AxisEngine calls a MessageContext.activate() method. While this
is implemented to be a quick turnaround with a check on a flag,
it does add overhead of a method call.  For performance considerations,
after thinking about how MessageContext serialization has been used and can
be used by a WS-RM layer, I think this extra call can be removed from the
AxisEngine and shifted to the code that invokes the MessageContext
serialization.
I will work on getting this change implemented.

Just as a note: the activate() method in the MessageContext is used to
finish getting a restored MessageContext linked back into the full object
graph that makes up a complete MessageContext on the engine where the
MessageContext is restored.  This step is needed because when a
MessageContext is saved, only a subset of information from the full object
graph is actually saved.  I'm going to post a separate note that explains
how the object graph is handled during a save and a restore.

The MessageContext serialization is part of some performance scenarios that
my company is doing, which should provide some useful information on
improving the implementation for Axis2.


Ann

WebSphere Development, Web Services Engine
IBM

Reply via email to