|
Hi All,
I have noticed some inconsistency in the way we
currently send outgoing messages from a handler. I noticed this one in Sandesha2
implementation and think that we need some definite way to do this at least for
the modules that we implement.
Say, engine receive RM Specific Create message. We
can interpret this message either in RMInHandle or RMMessageReceiver. In
addition modules may have pre-dispatch handlers, in RM case we use one to
eliminate duplicate messages.
If we interpret this from RMInHandler then we can
stop that message from going through all the other handlers.
If we interpret this from RMMessageReceiver then
this message will go through the handlers deployed for the service.
Now we need to send CreateSequenceResponse message
from any of the above two locations.
If we send the response from RMInHandler we need to
decide what is the handler configuration for this message. Is it all the
handlers deployed for that service or only the handlers that are after the
RMPhase? (RMHandlers deployed in RMPhase)
If we send the CreateSequenceResponse from
RMMessageReceiver then this message will go through all the outgoing handlers
deployed for that service.
IMHO we should interpret module specific messages
using any handler in the module and if there is a response that we need to send
for that, it should start from that phase. (not from the beginning of the
handler flow)
So in this way, phase n will affect only to phase
n+1 as shown in the attached diagram.
We need to decide the same thing from the
pre-dispatch handlers as well. If one pre-dispatch handler want to send a
response, then what are the handlers that we use in the response
path.
Thoughts?
Thanks,
Jaliya
|
<<attachment: phases.JPG>>
