David, I certainly think it's a resonable limitation. And we should document it clearly.
But even in the case of HTTP sessions doesn't this problem exist? If a service author passes the HTTPSession to a different thread, other than the current thread of control, and a object in the scope of the other thread later modifies a session attribute (provided that the session is alive) then this same problem would exist ? am I correct ? I think the above method is discouraged but people may end up doing it. One way of solving this problem is to have a configurable option of how state change is handled. a) Container managed (in this case we notify a state change when the MessageReceiver thread returns) b) Service managed (in this the service author is responsible for calling a method to trigger the updateState method) option "b" would work in the case of asynchronous invocations that may not finish when flowControl is called. We can have option "a" as default and clearly document this behaviour so people have the flexibility to choose according to their requirements. Regards, Rajith On 2/7/07, David Illsley <[EMAIL PROTECTED]> wrote:
If it's that expensive, and given that it probably gets even more difficult if one client can easily hit the same service multiple times concurrently, would it be a reasonable limitation for the first version that the MessageReceivers which return before the business logic is complete are not supported? David On 07/02/07, Rajith Attapattu <[EMAIL PROTECTED]> wrote: > David, > > Exactly that was my concern. > comments inline. > > On 2/7/07, David Illsley <[EMAIL PROTECTED] > wrote: > > That's a difficult question to answer... flowComplete is called by the > > AxisEngine after the MessageReceiver returns from invoke(). So in the > > general case, yes, flowComplete will occur after the business logic is > > complete. > [RA] I currently (in the branch) have choosen do so in the engine just below > flowComplete() as the replication point for "state update". > but as mentioned below it's not sufficient. > > If, however, the MessageReceiver does work on a separate thread and > > returns beffore the business logic is complete then flowComplete will > > occur too early. However, I'd guess you'll struggle with this problem > > with any approach. > That is true. And the way to tackle is to track and replicate individual > setProperty methods as and when they happen. > But this is expensive and will have a performance impact :( > > > > David > > > > On 07/02/07, Rajith Attapattu <[EMAIL PROTECTED]> wrote: > > > David and Dims, > > > > > > Sorry I should have been more clear. What I meant by end of invocation > is to > > > identify when the business logic has finished executing. > > > Bcos during the course of web service operation, the web service could > be > > > updating state. > > > > > > So does flowComplete() get executed after this ?? > > > I thought (I maybe wrong, please correct me) flowComplete() can get > executed > > > before "business logic" if finsihed executing. > > > > > > Regards, > > > > > > Rajith Attapattu > > > Red Hat. > > > > > > > > > > > > On 2/7/07, Davanum Srinivas <[EMAIL PROTECTED]> wrote: > > > > Yep. David beat me to it :) > > > > > > > > On 2/7/07, David Illsley < [EMAIL PROTECTED]> wrote: > > > > > Can't you use flowComplete() in the In_ONLY case? > > > > > David > > > > > > > > > > On 07/02/07, Rajith Attapattu < [EMAIL PROTECTED]> wrote: > > > > > > Deepal, > > > > > > > > > > > > I tried this approach and failed badly. > > > > > > If it is only a IN_ONLY operation it is very difficult to figure > out > > > when to > > > > > > determine if an invocation is over or not. > > > > > > For IN_OUT we can have handler in the inflow and outflow, but > > > certainly > > > > > > difficult in the above scenario. > > > > > > > > > > > > rajith > > > > > > > > > > > > On 2/7/07, Deepal Jayasinghe <[EMAIL PROTECTED]> wrote: > > > > > > > Hi Chamikara ; > > > > > > > Do we really need to the listen to the event changes ? > > > > > > > > > > > > > > As I know whenever a message coming into the system there will > be > > > many > > > > > > > getProperty and setPoropert method calls. That simply impl you > that > > > > > > > there are a number of context changes for a req. So you need to > > > update > > > > > > > the replicas irrespective of the message, therefore you do not > need > > > to > > > > > > > listen to specific event . What you can do is , you can add a > > > handler > > > > > > > (or handlers) to update the replicas when message coming to the > > > system > > > > > > > and when a message going out from the system. > > > > > > > > > > > > > > Thanks > > > > > > > Deepal > > > > > > > > > > > > > > > Hi Deepal, > > > > > > > > > > > > > > > > The problem we had in clustering is having the listen to > specific > > > > > > > > events in the Axis2 execution. For example context creation, > > > context > > > > > > > > removal, mep completion. So it is not possible to do it with a > > > module > > > > > > > > based approach :-(. > > > > > > > > > > > > > > > > But performance is certainly in our mind. > > > > > > > > > > > > > > > > Chamikara > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > To unsubscribe, e-mail: > > > > > > [EMAIL PROTECTED] > > > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > David Illsley - IBM Web Services Development > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: > > > [EMAIL PROTECTED] > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > -- > > > > Davanum Srinivas :: http://wso2.org/ :: Oxygen for Web Services > Developers > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > > [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > -- > > David Illsley - IBM Web Services Development > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > -- David Illsley - IBM Web Services Development --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
