[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sandesha-dev
Subject:    Re: [AXIS2] [Sandesha2] Saving the message context
From:       "Jaliya Ekanayake" <jnekanayake () gmail ! com>
Date:       2006-07-31 18:47:29
Message-ID: 001301c6b4d1$c7214a10$9a019f95 () ads ! iu ! edu
[Download RAW message or body]

Hi Chamikara,

Don't know whether it is an efficient way; how about this - we can save the SOAP \
message after security handler using a custom handler that will only be deployed in \
the persistent mode.

-Jaliya
  ----- Original Message ----- 
  From: Chamikara Jayalath 
  To: Jaliya Ekanayake 
  Cc: sandesha-dev@ws.apache.org 
  Sent: Monday, July 31, 2006 1:54 PM
  Subject: Re: [AXIS2] [Sandesha2] Saving the message context


  Hi Jaliya,

  Well, not exactly. In Sandesha2 scenario we process the message in several \
transactions. Processing of a message within a handler will be done in one \
transaction while the invocation will be done in another transaction. So we cannot \
simply abandon the message. We have to reinject it into our system (thats what we \
do). 

  But if we serialize the message in the very begining of the handler chain we can \
asume that the context would not have been changed and saving the SOAP envelope would \
be enough. But this is not always a practicle solution since handlers like security \
will sometimes have to be present before RM.

  Chamikara




  On 7/31/06, Jaliya Ekanayake <jnekanayake@gmail.com> wrote:
    Hi Chamikara,

    What I am suggesting is this. If we get the QoS information stored properly that \
will enable us to build a definite state after a crash.  e.g. We don't need transport \
                info because RM will handle it by way of re-transmissions.
            ServiceContext and ServiceGroupeContext; IMHO WS-Transaction should \
handle this.

    So if we keep the states of QoS layer then we can avoid this heavy serialization.

    Any thoughts?

    -Jaliya
    ----- Original Message ----- 
    From: Chamikara Jayalath 
    To: Jaliya Ekanayake 
    Cc: sandesha-dev@ws.apache.org ; axis-dev@ws.apache.org 
    Sent: Sunday, July 30, 2006 10:58 PM
    Subject: Re: [AXIS2] [Sandesha2] Saving the message context


    Hi Jaliya,

    Thats good news. But only the properties will not be anough. There are other \
things like the state of the options object, transports and callback object that also \
have to be

    serialized. There are also references to the other contexts (serviceContext, \
serviceGroupContext) from the Message Context and we will not want to loose these \
connections when the Message Context is deserialized.

    However if it can be declared that the referenced contexts will not be serialized \
when serializing one context, that paves the way for a solution. But not sure weather \
this is valid for all cases.(Still have to think more on reconstructing the context \
hierarchy)

    Chamikara



      On 7/31/06, Jaliya Ekanayake <jnekanayake@gmail.com> wrote: 
        Hi All,

        As far as I remember we spent some time during the design of axis2 to solve \
this problem. The final conclusion we made was to do our own serialization by \
serializing only the properties (serializable objects) in the property bag not the \
entire message context which has pointers to other contexts.

        Thanks,
        -Jaliya


        ----- Original Message ----- 
        From: Chamikara Jayalath 
        To: nagy@watson.ibm.com 
        Cc: sandesha-dev@ws.apache.org 
        Sent: Sunday, July 30, 2006 8:40 PM 
        Subject: Re: [AXIS2] [Sandesha2] Saving the message context


        Hi Bill,

        I agree that doing serialization within context objects is the best approach \
in a design perspective. The approach I followed was only possible due to \
MessageContext already having made its useful state public.

        I also originally tried to follow Externalizable approach and introduced \
externalizable methods to all the contexts (they hv now been removed due to not \
having any usages). The main problem I had in this approach was having to serialize \
the whole context hierarchy. 

        Every message context has a pointer to the configurationContext so to be \
general (not to be specific to our scenario) in the serialization method we would \
have to serialize this object as well.Since this has pointers to all other contexts \
they will be serialied too. What I am saying is that when adding the externalizable \
method to the axis2 codebase we would have to serialize the configContext and other \
contexts as well (because some people may actually want to serialize the whole \
context hierarchy). But in our case it seemed like this would be a burden. Every \
deserialized message context with come up with its own context hierarchy and maching \
between two deserialized Message contexts will be extremely difficult.

        If you find a solution to this problem I agree that your and Anns approach is \
the best way to go and I would like to use that in my code :-)

        Chamikara



        On 7/29/06, Bill Nagy < nagy@watson.ibm.com > wrote: 
          On Fri, 2006-07-28 at 23:46 -0400, Rajith Attapattu wrote:
          > Anne,
          >
          > Again I will advice again serializing the contexts using any form of 
          > serialization. This will not scale at all in a production environment.

          Hi Rajith,

          Could you please explain this last comment?

          > Again this approach will be error prone and as chamikara mentioned 
          > there will be too many information saved in the database.

          I don't understand why you and Chamikara keep saying that there will be
          too much information serialized.  You have the option of taking complete 
          control of the serialization, thereby writing/reading only the
          information that you want and in the form that you want it to be in.  I
          don't believe that Ann is arguing for simply using the default
          serialization, only about who should be in control of making the 
          decisions as to what should be saved.


          >
          > I am looking at clustering certain information within the ctx heirachy
          > for high availability and I would only do with the bare minimum.
          >
          > In my opinion the performance overhead of serializing and
          > deserializing (and validations to avoid erros) is a lot more than
          > saving the required info in a bean like what chamikara does for
          > Sandesha and then reconstructing it. 
          >

          Having the objects persist their own state is far less error prone than
          having a third-party piece of code do the persistence.  For one, anytime
          someone changes or adds a piece of information that needs to be saved in 
          order to correctly restore the state, they have to remember to modify
          the external code.  It's generally hard enough to remember to modify
          code embedded in the class itself, much less having to remember to
          modify a completely separate piece of code. 

          Secondly, you require the objects that need to be saved to expose
          methods, to return the portions that you want to have serialized, that
          you may not have to expose otherwise.

          In effect, the approach that you've chosen has abandoned encapsulation 
          and created fragile dependencies -- this is bad design.

          -Bill

          > Regards,
          >
          > Rajith
          >
          >
          > On 7/28/06, Chamikara Jayalath < chamikaramj@gmail.com > wrote:
          >         Hi Ann,
          >
          >         Yes. We had introduced Externalizable implementaitons for all
          >         of the Context hierarchy objects sometime back. But this
          >         approach seemed to be saving too much information on the 
          >         database.
          >
          >         For example at some point there may be following context
          >         objects available in a running axis2 instance.
          >         1. configuration context object
          >         2. service group context objects
          >         3 service context objects
          >         4. Operation context objects
          >         5. A lot of message context objects
          >
          >         If we try serializing starting from a message context, since 
          >         we have to serialize every incoming message context all these
          >         objects will be serialized every time (recall that the message
          >         context hs a link to the configuration context which has links 
          >         to all other context objects). Think how deficult the
          >         reconstruction would be. Every deserialized message context
          >         will come up with its own hierarchy of context objects which 
          >         may not map with the context objects reconstructed by
          >         deserializing others message contexts.
          >
          >         Thats why I went for this approach of saving only the relavent
          >         information. It seemed to be much cleaner and it was 
          >         working :-)
          >
          >         You had mentioned about serializing the AxisOperaion object.
          >         All the 'Axis*'  objects in Axis2 (AxisConfiguration,
          >         AxisServiceGroupt etc.) contains deployment time information. 
          >         So we can safely ignore them in the serializing process.
          >
          >
          >         Chamikara
          >
          >
          >
          >
          >         On 7/29/06, Ann Robinson < robinsona@us.ibm.com> wrote:
          >                 Hi Chamikara,
          >                 Thanks for the information.
          >
          >                 Did you consider using java.io.Externalizable for the
          >                 AXIS2 message context-related classes? (Having the
          >                 work done by the AXIS2 objects would have simplified
          >                 the actions that Sandesha needed to take in order to
          >                 save the message context, so I am curious about any
          >                 issues that were encountered.
          >
          >
          >                 In the MessageStoreBean, how much of the various
          >                 objects do you store as Strings? For example, the
          >                 AxisOperation object contains several lists and the
          >                 executionChain object contains a list of handlers and
          >                 phases.
          >
          >
          >
          >
          >                 Ann
          >
          >
          >                 WebSphere Development, Web Services Engine
          >
          >                 IBM
          >                 11501 Burnet Rd IZip 9035G021
          >                 Austin, TX 78758
          >                 (512)838-9438 TL 678-9438
          >
          >
          >
          >                 Inactive hide details for Chamikara"Chamikara
          >                 Jayalath" < chamikaramj@gmail.com >
          >
          >
          > 
          >                                                 "Chamikara Jayalath" < \
                chamikaramj@gmail.com >
          >                                                 07/28/2006 07:23 AM
          >                                                 Please respond to
          >                                                 axis-dev@ws.apache.org 
          >
          >
          >
          >                            To 
          >
          >                 Ann
          >                 Robinson/Austin/IBM@IBMUS
          > 
          >                            cc
          >
          >                 axis-dev@ws.apache.org , sandesha-dev@ws.apache.org
          >
          >                       Subject
          >
          >                 Re: [AXIS2]
          >                 [Sandesha2]
          >                 Saving the
          >                 message
          >                 context
          >
          >
          >
          >                 Hi Ann, 
          >
          >                 I did some work on serializing message contexts and
          >                 reconstructing them. This was done as a part of the
          >                 Sandesha2 Persistent Storage Manager implementation.
          >                 Unfortunately could not commit the code into Apache
          >                 due to a license issue (it was dependent on
          >                 Hibernate). But will try to host it somewhere else
          >                 soon.
          >
          >                 The approach i took was extracting the relevant
          >                 information from the message context, and saving them
          >                 in a java bean. Later this bean was used to recostruct
          >                 the message context. The format of this bean was as
          >                 follows.
          >
          >                 public class MessageStoreBean {
          >
          >                 private String SOAPEnvelopeString;
          >                 private String storedKey;
          >                 private int SOAPVersion = 0;
          >                 private String transportOut;
          >                 private String axisServiceGroup;
          >                 private String axisService;
          >                 private String axisOperation;
          >                 private String axisOperationMEP;
          >                 private String toURL;
          >                 private String transportTo;
          >                 private int flow;
          >                 private String executionChainString;
          >                 private String messageReceiverString;
          >                 private boolean serverSide;
          >                 private String inMessageStoreKey;
          >                 private String messageID;
          >                 private String persistentPropertyString;
          >                 private String callbackClassName;
          >                 private String action;
          >
          >                 }
          >
          >                 As you can see the aim was to avoid Java
          >                 serialization. One defect here is SOAP envelope being
          >                 saved as a string, which may not be possible in the RM
          >                 +MTOM scenario. I guess we can support that when a
          >                 better serialization mechanism gets available for SOAP
          >                 envelopes.
          >
          >                 Chamikara
          >
          >
          >
          >                 On 7/27/06, Ann Robinson < robinsona@us.ibm.com >
          >                 wrote: 
          >                         Hi all,
          >
          >                         I have posted this note to both the AXIS2 and
          >                         SANDESHA developer discussion lists, so I
          >                         apologize in advance to those folks who get
          >                         multiple copies of this note.
          >
          >                         I am investigating how to save and restore the
          >                         message context in AXIS2. This is
          >                         functionality that would be used by other
          >                         quality-of-service layers, for example, by a
          >                         WS-ReliableMessaging implementation -
          >                         particularly one that is composed with
          >                         WS-Security, to save the message in persistent
          >                         storage and later resume the message
          >                         processing.
          >
          >                         The AXIS2 message context is very complex (it
          >                         includes references to several complicated
          >                         objects) and does not lend itself to the
          >                         default java serialization mechanism
          >                         (java.io.Serializable). In order to save the
          >                         message context, the possible solutions
          >                         include the following:
          >
          >                         (A) Internal Message Context option
          >
          >                         Do a customized serialization using
          >                         java.io.Externalizable in the complex objects
          >                         and use the default serialization mechanism
          >                         (java.io.Serializable) in the simple objects.
          >                         - - This keeps the knowledge of the object's
          >                         internals in the object and keeps the
          >                         responsibility in the object for persisting
          >                         and resurrecting its own state.
          >                         - - This lets an object have a plugpoint where
          >                         needed to manage "user" data. This would apply
          >                         to the situation where an object maintains a
          >                         set of properties or attributes that are
          >                         supplied by users of the object. The plugpoint
          >                         would define an interface so that the users of
          >                         the object could save their
          >                         properties/attributes appropriately.
          >
          >                         (B) External Layer option
          >
          >                         Put in get/set methods in all of the objects
          >                         related to the message context in order to
          >                         allow another layer or quality of service
          >                         (QoS) to extract sufficient information from
          >                         the message context in order to save and
          >                         resurrect the information.
          >                         - - The simplest form of this technique is
          >                         saving just the message (and the message
          >                         attachments). However, this means that any
          >                         processing on the message has to be re-done
          >                         from the beginning.
          >                         - - If there is a requirement to maintain the
          >                         security context with the message, then the
          >                         security layer would need to provide
          >                         additional interfaces to allow that message's
          >                         security context to be acquired by that other
          >                         layer.
          >
          >                         (C) Core Plugpoint option
          >
          >                         Have a plugpoint in the AXIS2 core that would
          >                         provide an interface to capture essential
          >                         message context data for saving and restoring
          >                         it.
          >                         - - This solution would be a compromise
          >                         between (A) and (B)
          >                         - - This requires knowledge of message context
          >                         object-related internals inside of the
          >                         plugpoint implementation, which is not good
          >                         object oriented design
          >
          >
          >                         Any other suggestions or comments?
          >
          >                         I understand that there has been a previous
          >                         attempt to do this in AXIS2 based on Sandesha
          >                         requirements and that this attempt did not
          >                         work. I was wondering if anyone remembers what
          >                         problems were encountered and what issues
          >                         ultimately blocked that solution?
          >
          >
          >                         Thanks,
          >                         Ann
          >
          >
          >                         WebSphere Development, Web Services Engine
          >
          >                         IBM
          >                         11501 Burnet Rd IZip 9035G021
          >                         Austin, TX 78758
          >                         (512)838-9438 TL 678-9438
          >
          >
          >
          >
          >
          >
          >
          >


          ---------------------------------------------------------------------
          To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
          For additional commands, e-mail: axis-dev-help@ws.apache.org 


[Attachment #3 (text/html)]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2722" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi Chamikara,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Don't know whether it is an efficient way; how 
about this - we can save the SOAP message after security handler using a custom 
handler that will only be deployed in the persistent mode.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>-Jaliya</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 \
2px solid; MARGIN-RIGHT: 0px">  <DIV style="FONT: 10pt arial">----- Original Message \
----- </DIV>  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=chamikaramj@gmail.com href="mailto:chamikaramj@gmail.com">Chamikara 
  Jayalath</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=jaliya@apache.org 
  href="mailto:jaliya@apache.org">Jaliya Ekanayake</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=sandesha-dev@ws.apache.org 
  href="mailto:sandesha-dev@ws.apache.org">sandesha-dev@ws.apache.org</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, July 31, 2006 1:54 PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [AXIS2] [Sandesha2] Saving 
  the message context</DIV>
  <DIV><BR></DIV>Hi Jaliya,<BR><BR>Well, not exactly. In Sandesha2 scenario we 
  process the message in several transactions. Processing of a message within a 
  handler will be done in one transaction while the invocation will be done in 
  another transaction. So we cannot simply abandon the message. We have to 
  reinject it into our system (thats what we do). <BR><BR>But if we serialize 
  the message in the very begining of the handler chain we can asume that the 
  context would not have been changed and saving the SOAP envelope would be 
  enough. But this is not always a practicle solution since handlers like 
  security will sometimes have to be present before 
  RM.<BR><BR>Chamikara<BR><BR><BR>
  <DIV><SPAN class=gmail_quote><BR>On 7/31/06, <B class=gmail_sendername>Jaliya 
  Ekanayake</B> &lt;<A 
  href="mailto:jnekanayake@gmail.com">jnekanayake@gmail.com</A>&gt; 
wrote:</SPAN>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) \
1px solid">  <DIV>
    <DIV bgcolor="#ffffff">
    <DIV><FONT face=Arial size=2>Hi Chamikara,</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>What I am suggesting is this. If we get the QoS 
    information stored properly that will enable us to build a definite state 
    after a crash.</FONT></DIV>
    <DIV><FONT face=Arial size=2>e.g. We don't need transport info because RM 
    will handle it by way of re-transmissions.</FONT></DIV>
    <DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
    ServiceContext and ServiceGroupeContext; IMHO WS-Transaction should handle 
    this.</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>So if we keep the states of QoS layer then we 
    can avoid this heavy serialization.</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>Any thoughts?</FONT></DIV></DIV>
    <DIV><SPAN class=sg>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>-Jaliya</FONT></DIV></SPAN></DIV>
    <DIV>
    <BLOCKQUOTE 
    style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: \
rgb(0,0,0) 2px solid; MARGIN-RIGHT: 0px"></BLOCKQUOTE></DIV>  <DIV><SPAN class=q>
    <DIV 
    style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal">----- 
    Original Message ----- </DIV>
    <DIV 
    style="BACKGROUND: rgb(228,228,228) 0% 50%; FONT: 10pt arial; font-size-adjust: \
none; font-stretch: normal; moz-background-clip: initial; moz-background-origin: \
initial; moz-background-inline-policy: initial"><B>From:</B>   <A \
title="chamikaramj@gmail.com (mailto:chamikaramj@gmail.com)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   href="mailto:chamikaramj@gmail.com" \
target=_blank>Chamikara Jayalath</A>   </DIV></SPAN></DIV>
    <DIV><SPAN class=e id=q_10cc479e7097f54d_4>
    <DIV 
    style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><B>To:</B> \
  <A title="jaliya@apache.org (mailto:jaliya@apache.org)" 
    onclick="return top.js.OpenExtLink(window,event,this)" 
    href="mailto:jaliya@apache.org" target=_blank>Jaliya Ekanayake</A> </DIV>
    <DIV 
    style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><B>Cc:</B> \
  <A title="sandesha-dev@ws.apache.org (mailto:sandesha-dev@ws.apache.org)" 
    onclick="return top.js.OpenExtLink(window,event,this)" 
    href="mailto:sandesha-dev@ws.apache.org" 
    target=_blank>sandesha-dev@ws.apache.org</A> ; <A 
    title="axis-dev@ws.apache.org (mailto:axis-dev@ws.apache.org)" 
    onclick="return top.js.OpenExtLink(window,event,this)" 
    href="mailto:axis-dev@ws.apache.org" target=_blank>axis-dev@ws.apache.org 
    </A></DIV>
    <DIV 
    style="FONT: 10pt arial; font-size-adjust: none; font-stretch: \
normal"><B>Sent:</B>   Sunday, July 30, 2006 10:58 PM</DIV>
    <DIV 
    style="FONT: 10pt arial; font-size-adjust: none; font-stretch: \
normal"><B>Subject:</B>   Re: [AXIS2] [Sandesha2] Saving the message context</DIV>
    <DIV><FONT face=Arial size=2></FONT><BR></DIV>
    <DIV>Hi Jaliya,<BR><BR>Thats good news. But only the properties will not be 
    anough. There are other things like the state of the options object, 
    transports and callback object that also have to be</DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV>serialized. There are also references to the other contexts 
    (serviceContext, serviceGroupContext) from the Message Context and we will 
    not want to loose these connections when the Message Context is 
    deserialized.</DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV>However if it can be declared that the referenced contexts will not be 
    serialized when serializing one context, that paves the way for a solution. 
    But not sure weather this is valid for all cases.(Still have to think more 
    on reconstructing the context 
    hierarchy)<BR><BR>Chamikara<BR><BR><BR></DIV></SPAN></DIV>
    <DIV></DIV>
    <DIV><SPAN class=e id=q_10cc479e7097f54d_6>
    <BLOCKQUOTE 
    style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: \
                rgb(0,0,0) 2px solid; MARGIN-RIGHT: 0px">
      <DIV><SPAN class=gmail_quote>On 7/31/06, <B class=gmail_sendername>Jaliya 
      Ekanayake</B> &lt;<A title=mailto:jnekanayake@gmail.com 
      onclick="return top.js.OpenExtLink(window,event,this)" 
      href="mailto:jnekanayake@gmail.com" 
      target=_blank>jnekanayake@gmail.com</A>&gt; wrote:</SPAN> 
      <BLOCKQUOTE class=gmail_quote 
      style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: \
rgb(204,204,204) 1px solid">  <DIV>
        <DIV bgcolor="#ffffff">
        <DIV><FONT face=Arial size=2>Hi All,</FONT></DIV>
        <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
        <DIV><FONT face=Arial size=2>As far as I remember we spent some 
        time&nbsp;during the design of axis2 to solve this problem. The final 
        conclusion we made was to do our own serialization by serializing only 
        the properties (serializable objects)&nbsp;in the property bag not the 
        entire</FONT><FONT face=Arial size=2> message context which has pointers 
        to other contexts.</FONT></DIV>
        <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
        <DIV><FONT face=Arial size=2>Thanks,</FONT></DIV></DIV>
        <DIV><SPAN>
        <DIV><FONT face=Arial size=2>-Jaliya</FONT></DIV>
        <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
        <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></SPAN></DIV>
        <DIV>
        <BLOCKQUOTE 
        style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: \
rgb(0,0,0) 2px solid; MARGIN-RIGHT: 0px"></BLOCKQUOTE></DIV>  <DIV><SPAN>
        <DIV 
        style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal">----- 
        Original Message ----- </DIV>
        <DIV 
        style="BACKGROUND: rgb(228,228,228) 0% 50%; FONT: 10pt arial; \
font-size-adjust: none; font-stretch: normal; moz-background-clip: initial; \
moz-background-origin: initial; moz-background-inline-policy: initial"><B>From:</B>   \
                <A 
        title="chamikaramj@gmail.com (mailto:chamikaramj@gmail.com) \
(mailto:chamikaramj@gmail.com)"   onclick="return \
                top.js.OpenExtLink(window,event,this)" 
        href="mailto:chamikaramj@gmail.com" target=_blank>Chamikara Jayalath 
        </A></DIV>
        <DIV 
        style="FONT: 10pt arial; font-size-adjust: none; font-stretch: \
normal"><B>To:</B>   <A 
        title="nagy@watson.ibm.com (mailto:nagy@watson.ibm.com) \
(mailto:nagy@watson.ibm.com)"   onclick="return \
                top.js.OpenExtLink(window,event,this)" 
        href="mailto:nagy@watson.ibm.com" target=_blank>nagy@watson.ibm.com</A> 
        </DIV></SPAN></DIV>
        <DIV><SPAN>
        <DIV 
        style="FONT: 10pt arial; font-size-adjust: none; font-stretch: \
normal"><B>Cc:</B>   <A 
        title="sandesha-dev@ws.apache.org (mailto:sandesha-dev@ws.apache.org) \
(mailto:sandesha-dev@ws.apache.org)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   href="mailto:sandesha-dev@ws.apache.org" 
        target=_blank>sandesha-dev@ws.apache.org</A> </DIV>
        <DIV 
        style="FONT: 10pt arial; font-size-adjust: none; font-stretch: \
normal"><B>Sent:</B>   Sunday, July 30, 2006 8:40 PM </DIV>
        <DIV 
        style="FONT: 10pt arial; font-size-adjust: none; font-stretch: \
normal"><B>Subject:</B>   Re: [AXIS2] [Sandesha2] Saving the message context</DIV>
        <DIV><BR></DIV>Hi Bill,<BR><BR>I agree that doing serialization within 
        context objects is the best approach in a design perspective. The 
        approach I followed was only possible due to MessageContext already 
        having made its useful state public.<BR><BR>I also originally tried to 
        follow Externalizable approach and introduced externalizable methods to 
        all the contexts (they hv now been removed due to not having any 
        usages). The main problem I had in this approach was having to serialize 
        the whole context hierarchy. <BR><BR>Every message context has a pointer 
        to the configurationContext so to be general (not to be specific to our 
        scenario) in the serialization method we would have to serialize this 
        object as well.Since this has pointers to all other contexts they will 
        be serialied too. What I am saying is that when adding the 
        externalizable method to the axis2 codebase we would have to serialize 
        the configContext and other contexts as well (because some people may 
        actually want to serialize the whole context hierarchy). But in our case 
        it seemed like this would be a burden. Every deserialized message 
        context with come up with its own context hierarchy and maching between 
        two deserialized Message contexts will be extremely difficult.<BR><BR>If 
        you find a solution to this problem I agree that your and Anns approach 
        is the best way to go and I would like to use that in my code 
        :-)<BR><BR>Chamikara<BR><BR><BR>
        <DIV><SPAN class=gmail_quote>On 7/29/06, <B class=gmail_sendername>Bill 
        Nagy</B> &lt;<A 
        title="mailto:nagy@watson.ibm.com (mailto:nagy@watson.ibm.com) \
(mailto:nagy@watson.ibm.com)"   onclick="return \
                top.js.OpenExtLink(window,event,this)" 
        href="mailto:nagy@watson.ibm.com" target=_blank> nagy@watson.ibm.com 
        </A>&gt; wrote: </SPAN>
        <BLOCKQUOTE class=gmail_quote 
        style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: \
rgb(204,204,204) 1px solid">On   Fri, 2006-07-28 at 23:46 -0400, Rajith Attapattu \
wrote:<BR>&gt;   Anne,<BR>&gt;<BR>&gt; Again I will advice again serializing the 
          contexts using any form of <BR>&gt; serialization. This will not scale 
          at all in a production environment.<BR><BR>Hi Rajith,<BR><BR>Could you 
          please explain this last comment?<BR><BR>&gt; Again this approach will 
          be error prone and as chamikara mentioned <BR>&gt; there will be too 
          many information saved in the database.<BR><BR>I don't understand why 
          you and Chamikara keep saying that there will be<BR>too much 
          information serialized.&nbsp;&nbsp;You have the option of taking 
          complete <BR>control of the serialization, thereby writing/reading 
          only the<BR>information that you want and in the form that you want it 
          to be in.&nbsp;&nbsp;I<BR>don't believe that Ann is arguing for simply 
          using the default<BR>serialization, only about who should be in 
          control of making the <BR>decisions as to what should be 
          saved.<BR><BR><BR>&gt;<BR>&gt; I am looking at clustering certain 
          information within the ctx heirachy<BR>&gt; for high availability and 
          I would only do with the bare minimum.<BR>&gt;<BR>&gt; In my opinion 
          the performance overhead of serializing and<BR>&gt; deserializing (and 
          validations to avoid erros) is a lot more than<BR>&gt; saving the 
          required info in a bean like what chamikara does for<BR>&gt; Sandesha 
          and then reconstructing it. <BR>&gt;<BR><BR>Having the objects persist 
          their own state is far less error prone than<BR>having a third-party 
          piece of code do the persistence.&nbsp;&nbsp;For one, 
          anytime<BR>someone changes or adds a piece of information that needs 
          to be saved in <BR>order to correctly restore the state, they have to 
          remember to modify<BR>the external code.&nbsp;&nbsp;It's generally 
          hard enough to remember to modify<BR>code embedded in the class 
          itself, much less having to remember to<BR>modify a completely 
          separate piece of code. <BR><BR>Secondly, you require the objects that 
          need to be saved to expose<BR>methods, to return the portions that you 
          want to have serialized, that<BR>you may not have to expose 
          otherwise.<BR><BR>In effect, the approach that you've chosen has 
          abandoned encapsulation <BR>and created fragile dependencies -- this 
          is bad design.<BR><BR>-Bill<BR><BR>&gt; Regards,<BR>&gt;<BR>&gt; 
          Rajith<BR>&gt;<BR>&gt;<BR>&gt; On 7/28/06, Chamikara Jayalath &lt;<A 
          title="mailto:chamikaramj@gmail.com (mailto:chamikaramj@gmail.com) \
(mailto:chamikaramj@gmail.com)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   href="mailto:chamikaramj@gmail.com" \
target=_blank>   chamikaramj@gmail.com </A>&gt; 
          wrote:<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hi 
          Ann,<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          Yes. We had introduced Externalizable implementaitons for 
          all<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; of the 
          Context hierarchy objects sometime back. But 
          this<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; approach 
          seemed to be saving too much information on the 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          database.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          For example at some point there may be following 
          context<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          objects available in a running axis2 
          instance.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 
          configuration context 
          object<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. 
          service group context 
          objects<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 
          service context 
          objects<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. 
          Operation context 
          objects<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5. A 
          lot of message context 
          objects<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          If we try serializing starting from a message context, since 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; we have to 
          serialize every incoming message context all 
          these<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objects 
          will be serialized every time (recall that the 
          message<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          context hs a link to the configuration context which has links 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to all other 
          context objects). Think how deficult 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          reconstruction would be. Every deserialized message 
          context<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; will 
          come up with its own hierarchy of context objects which 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; may not map 
          with the context objects reconstructed 
          by<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          deserializing others message 
          contexts.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          Thats why I went for this approach of saving only the 
          relavent<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          information. It seemed to be much cleaner and it was 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; working 
          :-)<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          You had mentioned about serializing the AxisOperaion 
          object.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; All 
          the 'Axis*'&nbsp;&nbsp;objects in Axis2 
          (AxisConfiguration,<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  AxisServiceGroupt etc.) contains deployment time information. 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So we can 
          safely ignore them in the serializing 
          process.<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          Chamikara<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  On 7/29/06, Ann Robinson &lt;<A 
          title="mailto:robinsona@us.ibm.com (mailto:robinsona@us.ibm.com) \
(mailto:robinsona@us.ibm.com)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   href="mailto:robinsona@us.ibm.com" \
target=_blank>   robinsona@us.ibm.com</A>&gt; 
          wrote:<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Hi 
          Chamikara,<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Thanks for the 
          information.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Did you consider using java.io.Externalizable for 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  AXIS2 message context-related classes? (Having 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  work done by the AXIS2 objects would have 
          simplified<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  the actions that Sandesha needed to take in order 
          to<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  save the message context, so I am curious about 
          any<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  issues that were 
          encountered.<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  In the MessageStoreBean, how much of the 
          various<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  objects do you store as Strings? For example, 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  AxisOperation object contains several lists and 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  executionChain object contains a list of handlers 
          and<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          phases.<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          Ann<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  WebSphere Development, Web Services 
          Engine<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          IBM<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  11501 Burnet Rd IZip 
          9035G021<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Austin, TX 
          78758<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  (512)838-9438 TL 
          678-9438<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Inactive hide details for 
          Chamikara"Chamikara<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Jayalath" &lt; <A 
          title="mailto:chamikaramj@gmail.com (mailto:chamikaramj@gmail.com) \
(mailto:chamikaramj@gmail.com)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   href="mailto:chamikaramj@gmail.com" 
          target=_blank>chamikaramj@gmail.com </A>&gt;<BR>&gt;<BR>&gt;<BR>&gt; 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs \
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  "Chamikara Jayalath" &lt;<A 
          title="mailto:chamikaramj@gmail.com (mailto:chamikaramj@gmail.com) \
(mailto:chamikaramj@gmail.com)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   href="mailto:chamikaramj@gmail.com" \
target=_blank>   chamikaramj@gmail.com 
          </A>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  07/28/2006 07:23 
          AM<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Please respond 
          to<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  <A 
          title="mailto:axis-dev@ws.apache.org (mailto:axis-dev@ws.apache.org) \
(mailto:axis-dev@ws.apache.org)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   href="mailto:axis-dev@ws.apache.org" 
          target=_blank>axis-dev@ws.apache.org 
          </A><BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs \
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To \
                
          <BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          Ann<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Robinson/Austin/IBM@IBMUS<BR>&gt; 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs \
p;&nbsp;&nbsp;cc<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  <A 
          title="mailto:axis-dev@ws.apache.org (mailto:axis-dev@ws.apache.org) \
(mailto:axis-dev@ws.apache.org)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   href="mailto:axis-dev@ws.apache.org" 
          target=_blank>axis-dev@ws.apache.org </A>, <A 
          title="mailto:sandesha-dev@ws.apache.org \
(mailto:sandesha-dev@ws.apache.org) (mailto:sandesha-dev@ws.apache.org)"   \
onclick="return top.js.OpenExtLink(window,event,this)"   \
href="mailto:sandesha-dev@ws.apache.org"   \
target=_blank>sandesha-dev@ws.apache.org</A><BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          Subject<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Re: 
          [AXIS2]<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          [Sandesha2]<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Saving 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          message<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          context<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Hi Ann, 
          <BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  I did some work on serializing message contexts 
          and<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  reconstructing them. This was done as a part of 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Sandesha2 Persistent Storage Manager 
          implementation.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Unfortunately could not commit the code into 
          Apache<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  due to a license issue (it was dependent 
          on<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Hibernate). But will try to host it somewhere 
          else<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          soon.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  The approach i took was extracting the 
          relevant<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  information from the message context, and saving 
          them<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  in a java bean. Later this bean was used to 
          recostruct<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  the message context. The format of this bean was 
          as<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          follows.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  public class MessageStoreBean 
          {<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          SOAPEnvelopeString;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          storedKey;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private int SOAPVersion = 
          0;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          transportOut;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          axisServiceGroup;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          axisService;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          axisOperation;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          axisOperationMEP;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          toURL;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          transportTo;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private int 
          flow;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          executionChainString;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          messageReceiverString;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private boolean 
          serverSide;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          inMessageStoreKey;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          messageID;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          persistentPropertyString;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          callbackClassName;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  private String 
          action;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          }<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  As you can see the aim was to avoid 
          Java<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  serialization. One defect here is SOAP envelope 
          being<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  saved as a string, which may not be possible in the 
          RM<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  +MTOM scenario. I guess we can support that when 
          a<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  better serialization mechanism gets available for 
          SOAP<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          envelopes.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          Chamikara<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  On 7/27/06, Ann Robinson &lt;<A 
          title="mailto:robinsona@us.ibm.com (mailto:robinsona@us.ibm.com) \
(mailto:robinsona@us.ibm.com)"   onclick="return \
                top.js.OpenExtLink(window,event,this)" 
          href="mailto:robinsona@us.ibm.com" target=_blank> robinsona@us.ibm.com 
          </A>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  wrote: 
          <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Hi 
          all,<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  I have posted this note to both the AXIS2 
          and<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  SANDESHA developer discussion lists, so 
          I<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  apologize in advance to those folks who 
          get<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  multiple copies of this 
          note.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  I am investigating how to save and restore 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  message context in AXIS2. This 
          is<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  functionality that would be used by 
          other<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
                quality-of-service layers, for example, by 
          a<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  WS-ReliableMessaging implementation 
          -<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  particularly one that is composed 
          with<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  WS-Security, to save the message in 
          persistent<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs \
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  storage and later resume the 
          message<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
processing.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp \
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  The AXIS2 message context is very complex 
          (it<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  includes references to several 
          complicated<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  objects) and does not lend itself to 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  default java serialization 
          mechanism<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp \
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  (java.io.Serializable). In order to save 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  message context, the possible 
          solutions<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp \
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  include the 
          following:<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  (A) Internal Message Context 
          option<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Do a customized serialization 
          using<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
java.io.Externalizable in the complex   \
objects<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  and use the default serialization 
          mechanism<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp \
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  (java.io.Serializable) in the simple 
          objects.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          - - This keeps the knowledge of the 
          object's<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  \
internals in the object and keeps   \
the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  responsibility in the object for 
          persisting<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs \
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  and resurrecting its own 
          state.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
                bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          - - This lets an object have a plugpoint 
          where<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
needed to manage "user" data. This would   \
apply<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  to the situation where an object maintains 
          a<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  set of properties or attributes that 
          are<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  supplied by users of the object. The 
          plugpoint<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp \
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  would define an interface so that the users 
          of<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  the object could save 
          their<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
properties/attributes   \
appropriately.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  (B) External Layer 
          option<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Put in get/set methods in all of the 
          objects<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
                related to the message context in order 
          to<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  allow another layer or quality of 
          service<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
(QoS) to extract sufficient information   \
from<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  the message context in order to save 
          and<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  resurrect the 
          information.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          - - The simplest form of this technique 
          is<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  saving just the message (and the 
          message<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
attachments). However, this means that   \
any<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  processing on the message has to be 
          re-done<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
from the   beginning.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          - - If there is a requirement to maintain 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  security context with the message, then 
          the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  security layer would need to 
          provide<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
additional interfaces to allow that   \
message's<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  security context to be acquired by that 
          other<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
layer.<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  (C) Core Plugpoint 
          option<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Have a plugpoint in the AXIS2 core that 
          would<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
provide an interface to capture   \
essential<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  message context data for saving and 
          restoring<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp \
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  it.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          - - This solution would be a 
          compromise<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs \
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  between (A) and 
          (B)<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
                
          - - This requires knowledge of message 
          context<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
object-related internals inside of   \
the<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  plugpoint implementation, which is not 
          good<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  object oriented 
          design<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs \
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Any other suggestions or 
          comments?<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  I understand that there has been a 
          previous<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  \
attempt to do this in AXIS2 based on   \
Sandesha<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  requirements and that this attempt did 
          not<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  work. I was wondering if anyone remembers 
          what<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  problems were encountered and what 
          issues<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   \
ultimately blocked that   \
solution?<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp \
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Thanks,<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  Ann<BR>&gt;<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  WebSphere Development, Web Services 
          Engine<BR>&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  IBM<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
  11501 Burnet Rd IZip 
          9035G021<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  \
Austin, TX   78758<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  \
(512)838-9438 TL   678-9438<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;<BR \
>&gt;<BR><BR><BR>---------------------------------------------------------------------<BR>To \
> 
          unsubscribe, e-mail: <A 
          title="mailto:axis-dev-unsubscribe@ws.apache.org \
(mailto:axis-dev-unsubscribe@ws.apache.org) \
(mailto:axis-dev-unsubscribe@ws.apache.org)"   onclick="return \
top.js.OpenExtLink(window,event,this)"   \
                href="mailto:axis-dev-unsubscribe@ws.apache.org" 
          target=_blank>axis-dev-unsubscribe@ws.apache.org</A><BR>For additional 
          commands, e-mail: <A 
          title="mailto:axis-dev-help@ws.apache.org \
(mailto:axis-dev-help@ws.apache.org) (mailto:axis-dev-help@ws.apache.org)"   \
onclick="return top.js.OpenExtLink(window,event,this)"   \
href="mailto:axis-dev-help@ws.apache.org"   target=_blank>axis-dev-help@ws.apache.org \
  </A><BR><BR></BLOCKQUOTE></DIV><BR></SPAN></DIV>
        <DIV></DIV></DIV></BLOCKQUOTE></DIV><BR></BLOCKQUOTE></SPAN></DIV>
    <DIV></DIV></DIV></BLOCKQUOTE></DIV><BR></BLOCKQUOTE></BODY></HTML>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic