axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ann Robinson <>
Subject Re: [AXIS2] Proposal for saving the message context
Date Thu, 21 Dec 2006 17:14:25 GMT

I have submitted an updated patch for the message context save/restore
proposal (under JIRA axis2-1567).  Now, when a message context is restored,
it looks for existing ServiceContext and ServiceGroupContext objects to use
in its object hierarchy.  This means that a restored object graph for a
MessageContext is made up of mostly existing *Context and Axis* objects.
In other words, object re-use for the *Context and Axis* objects is
maximized.   And, when existing context object are re-used, any saved
properties are merged into the existing objects.

Just to summarize, when a message context is saved, its state is collected
and saved, including:
- the settings for various flags in the message context
- properties associated with the message context (which are really
contained in an Options object)
- the actual message
- where in the message processing the message is
- meta data about the handlers associated with processing the message
- meta data about the AxisOperation/AxisService/AxisServiceGroup associated
with the message context
- the OperationContext/ServiceContext/ServiceGroupContext associated with
the message context

When a message context is restored, the message context object graph is
re-built based on the information that was saved.  If possible, existing
objects are used from the engine where the message context is being
restored.  Names or IDs are used to find existing objects that correspond
to their counterparts from the saved environment.  Where existing objects
are used, saved properties are merged into the existing objects.

The patch (as well as previous patch files) contains test cases to verify
and demonstrate functionality.  The test cases include
- simple save/restore starting at some of the objects in the object graph
- a save/restore of a message in a client/server setup
- a save/restore of a message with MTOM in a client/server setup
- verifying that the setting of service-level properties on a restored
message context applies to other message contexts in that service
- verifying object reuse in the object graph

It is also important to note that there are other AXIS2 test cases where
messages are sent and received.   Even when the message context
save/restore code is integrated into AXIS2, those other test cases continue
to execute without errors and with little impact from the message context
save/restore code.

I don't think that starting a separate branch for this proposal provides
any benefits.  Having a separate branch from the main trunk will just
introduce merge problems at a later time.

The message context save/restore proposal is intended to benefit AXIS2.
This proposal gives AXIS2 some functionality that allows AXIS2 to be used
in more customer environments.

I have indicated in previous postings that the prototype for the message
context save/restore proposal has been used internally by IBM.  This
statement was not intended to divide the open source community along
company lines but instead, to indicate that the prototype has been tested
and reached a level of stability and that negative side-effects have been

I would really like to get this proposal at a point where it could be
included in the AXIS2 1.2 release.  What other technical or architectural
issues need to be addressed?


WebSphere Development, Web Services Engine

11501 Burnet Rd   IZip 9035G021
Austin, TX   78758
(512)838-9438                TL 678-9438
Internet:         robinsona @
View raw message