Hello everyone,
could you tell me is Orbeon fully stateless when using state-handling="client"? Recently I've deployed Orbeon on a for machine cluster without the so-called session-affinity (all machines are available via the same address, but I have no control over which server responds to a particular request), set state-handling to "client" on these four machines and noticed a strange behavior, namely after pressing e.g. a button the action sometimes took place, sometimes not. I've looked at the logs and it SEEMS to me what when the AJAX request reached the same server that served the form (say, server1) everything works fine. The problem seems to occur when the AJAX request reaches a different server (say, server2). Then the messages like this appear: DEBUG - XForms - XForms server - start handling external events DEBUG - XForms - XForms server - start handling external event {target id: "xf-1156·1", event name: "DOMFocusIn"} DEBUG - XForms - containing document - ignoring client event with invalid target id {target id: "xf-1156·1", event name: "DOMFocusIn"} DEBUG - XForms - XForms server - end handling external event {time (ms): "1"} DEBUG - XForms - XForms server - start handling external event {target id: "xf-1156·1", event name: "DOMActivate"} DEBUG - XForms - containing document - ignoring client event with invalid target id {target id: "xf-1156·1", event name: "DOMActivate"} DEBUG - XForms - XForms server - end handling external event {time (ms): "0"} DEBUG - XForms - XForms server - end handling external events {time (ms): "1"} ... and of course no action is triggered. So the question is: is it actually possible to achieve a configuration in which different servers respond to request originating from the same session? Does the state information contained in the request contain everything required for the server (any server) to process the request? Perhaps this info can be decoded in different ways on different machines (is the id assigning algorithm fully deterministic)? Have you tried to deploy Orbeon in such configurations? I'm a bit lost, thanks in advance, Maciej |
Administrator
|
Maciej,
With client state handling, having different Ajax requests handled by different servers should just work fine. You can easily try this with one server by stopping and restarting the server between two Ajax requests for the same page. But of course, let us know if you notice any problem with this. Alex On Nov 25, 2009, at 3:58 PM, Maciej Arciuch <[hidden email]> wrote: > > Hello everyone, > > could you tell me is Orbeon fully stateless when using > state-handling="client"? Recently I've deployed Orbeon on a for > machine > cluster without the so-called session-affinity (all machines are > available > via the same address, but I have no control over which server > responds to a > particular request), set state-handling to "client" on these four > machines > and noticed a strange behavior, namely after pressing e.g. a button > the > action sometimes took place, sometimes not. I've looked at the logs > and it > SEEMS to me what when the AJAX request reached the same server that > served > the form (say, server1) everything works fine. The problem seems to > occur > when the AJAX request reaches a different server (say, server2). > Then the > messages like this appear: > > DEBUG - XForms - XForms server - start handling external events > DEBUG - XForms - XForms server - start handling external event > {target id: > "xf-1156·1", event name: "DOMFocusIn"} > DEBUG - XForms - containing document - ignoring client event with > invalid target id {target id: "xf-1156·1", event name: "DOMFocusIn"} > DEBUG - XForms - XForms server - end handling external event {time > (ms): > "1"} > DEBUG - XForms - XForms server - start handling external event > {target id: > "xf-1156·1", event name: "DOMActivate"} > DEBUG - XForms - containing document - ignoring client event with > invalid target id {target id: "xf-1156·1", event name: "DOMActivate"} > DEBUG - XForms - XForms server - end handling external event {time > (ms): > "0"} > DEBUG - XForms - XForms server - end handling external events {time > (ms): > "1"} > > ... and of course no action is triggered. > > So the question is: is it actually possible to achieve a > configuration in > which different servers respond to request originating from the same > session? Does the state information contained in the request contain > everything required for the server (any server) to process the > request? > Perhaps this info can be decoded in different ways on different > machines (is > the id assigning algorithm fully deterministic)? Have you tried to > deploy > Orbeon in such configurations? > > I'm a bit lost, thanks in advance, Maciej > -- > View this message in context: http://n4.nabble.com/Clustering-problem-is-Orbeon-fully-stateless-when-using-state-handling-client-tp787388p787388.html > Sent from the ObjectWeb OPS - Users mailing list archive at > Nabble.com. > > -- > You receive this message as a subscriber of the [hidden email] > mailing list. > To unsubscribe: mailto:[hidden email] > For general help: mailto:[hidden email]?subject=help > OW2 mailing lists service home page: http://www.ow2.org/wws -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws
--
Follow Orbeon on Twitter: @orbeon Follow me on Twitter: @avernet |
In reply to this post by Maciej Arciuch
Maciej,
In theory yes, everything should be in the state sent by the client in this case. In practice, you might have hit a bug (which OF version are you using?). Now you will be the judge of that, but my suspicion is that performance can suffer a lot if you don't have session affinity, because if requests move constantly from server to server, cached resource will be lost at each transition (since caches reside in memory). This will be in addition to the fact that the state transfered on the wire can be huge. -Erik On Wed, Nov 25, 2009 at 12:58 AM, Maciej Arciuch <[hidden email]> wrote: > > Hello everyone, > > could you tell me is Orbeon fully stateless when using > state-handling="client"? Recently I've deployed Orbeon on a for machine > cluster without the so-called session-affinity (all machines are available > via the same address, but I have no control over which server responds to a > particular request), set state-handling to "client" on these four machines > and noticed a strange behavior, namely after pressing e.g. a button the > action sometimes took place, sometimes not. I've looked at the logs and it > SEEMS to me what when the AJAX request reached the same server that served > the form (say, server1) everything works fine. The problem seems to occur > when the AJAX request reaches a different server (say, server2). Then the > messages like this appear: > > DEBUG - XForms - XForms server - start handling external events > DEBUG - XForms - XForms server - start handling external event {target id: > "xf-1156·1", event name: "DOMFocusIn"} > DEBUG - XForms - containing document - ignoring client event with > invalid target id {target id: "xf-1156·1", event name: "DOMFocusIn"} > DEBUG - XForms - XForms server - end handling external event {time (ms): > "1"} > DEBUG - XForms - XForms server - start handling external event {target id: > "xf-1156·1", event name: "DOMActivate"} > DEBUG - XForms - containing document - ignoring client event with > invalid target id {target id: "xf-1156·1", event name: "DOMActivate"} > DEBUG - XForms - XForms server - end handling external event {time (ms): > "0"} > DEBUG - XForms - XForms server - end handling external events {time (ms): > "1"} > > ... and of course no action is triggered. > > So the question is: is it actually possible to achieve a configuration in > which different servers respond to request originating from the same > session? Does the state information contained in the request contain > everything required for the server (any server) to process the request? > Perhaps this info can be decoded in different ways on different machines (is > the id assigning algorithm fully deterministic)? Have you tried to deploy > Orbeon in such configurations? > > I'm a bit lost, thanks in advance, Maciej > -- > View this message in context: http://n4.nabble.com/Clustering-problem-is-Orbeon-fully-stateless-when-using-state-handling-client-tp787388p787388.html > Sent from the ObjectWeb OPS - Users mailing list archive at Nabble.com. > > > -- > You receive this message as a subscriber of the [hidden email] mailing list. > To unsubscribe: mailto:[hidden email] > For general help: mailto:[hidden email]?subject=help > OW2 mailing lists service home page: http://www.ow2.org/wws > > -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws |
Free forum by Nabble | Edit this page |