Riyadh wrote:
Hi Ruwan,
Thank you for writing a such expalnatory mail. I guess getting closure
:). still i have some confusion. May be i should i add few things in
addtion to the requirements i said in the last mail.
any sequence mediator in the clone may drop the message that flows in.
For example from 5 squence mediators 2 of them dropped the message
without sending it to any service. and then at the end of the clone we
want to capture to which services the message was sent to.
Isn't there a requirement saying that if one sequence drops the message
non of the sequences are going to send the message out. I understood
your requirement like that..... Please correct me if I am wrong.
I have some difficulties to understand your solution.. please have a
look at my reply in the specific lines...
On Mon, Mar 17, 2008 at 5:24 PM, Ruwan Linton <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
Hi Riyadh,
Well, the clone mediator is same as send in the operation nature
(what I
just explained), because it injects the cloned messages to synapse in
parallel (asynchronously) and those cloned messages are completely
independent, and hence this requirement is a little hard to achieve.
Let me try to explain one possible but hard to implement solution. You
will have to write a blocking state full mediator, and the messages
>>which arrives this mediator is stored inside a map indexed with
the the
>>message number and
you mean a map that will be known to every sequence. so each blocking
state full mediator basically stores its cloned message with the index
(= messagesequnce no ) into the map.
Exactly.
>> the parent message id in to a message group (having
>>the same parent message id),
in the clone every message has the same parent id..no?? if so same id
will be stored for the blocking state full mediator in each sequnce.
Yes, message sequence will be the identifier and the parent message id
will be the common attribute in each and every message...
and wait till that mediator receives all
the messages before letting the message to go out from that mediator.
>>At the same time when ever a message has been received for
mediation this
>>should check for the completion of a message group.
could you please explain this one a bit. i did not quite get it :(
When ever a message receives this mediator that particular message will
be checked for the messages with the same parent message id as the
current message parent message id and then these messages will be
checked for the completion.
That is the message sequence specifies the 1/4 or 3/4 or some number
implying that the total count has to be 4 and you received the first and
the third cloned messages but still two more are missing and hence the
mediator has to wait, without returning the messages for the mediation,
until all four has been arrived, which will be checked on arrival of
each and every message...
This mediator has to be put just before the send mediator in all the
sequences, to ensure all the messages have been reached this mediator
before releasing the messages to send. There are two properties in the
cloned messages that will be help full in achieving this;
messageSequence ==> which will be something like 1/4, 3/4, etc...
($message_number/$number_of_cloned_messages)
aggregateCorelation ==> the message id of the parent message from
which
these messages are cloned
>>You may have a look at the aggregate mediator code which does
something
>>similar.
you mean some sample mediator code?
Yeah,
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java?view=markup
Thanks,
Ruwan
You will need to specify a timeout for a message group so that
the mediator will only wait only for that time period and discards the
whole message group.
Even then you could not detect sending channel failures. Obviously
it is
not possible to assure your requirement if one message fails in the
transport channel of the sending process because when ever that
particular message fails in the transport some of the messages has
been
already sent to the recipient.
If not you could write your own clone mediator which does the
mediation
synchronously and assures the sending of the messages at the end of
mediation of cloned messages.
If you need further clarifications on this please do not hesitate to
bother me :-)
Thanks,
Ruwan
Riyadh wrote:
> Hi,
>
> Thanks for your reply.
> let me specify our requirements:
>
> We have a clone mediator which clones the same message to a
number
> of sequence mediators where each sequence mediator contains a set of
> mediators. Each sequence has a send mediator at the end in the
> sequence to send the message to a service.
>
> At the end of clone we want to determine that to which services the
> message was sent and we have to capture the list of services to whom
> the message was sent before logging it. We will use our custom log
> mediator to log it.
>
> Now if any sequence in the clone fails, the message is not sent
to any
> service. How do i capture this at the end of clone?
> I hope i could explain what i want.
>
> Is the usage of transport helpful here? can you just explain a bit
> about it?
>
> Thank you.
> Riyadh
>
>
> On Mon, Mar 17, 2008 at 3:31 PM, Ruwan Linton <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
>
> Hi Riyadh,
>
> Riyadh wrote:
> > Hi Paul,
> >
> > Thanks for your reply.
> > i can see that using the fault sequence i can capture the
> failure of
> > a message continuation but i rather need to capture the
successful
> > mediation.
> >
> > is there any variable or property which is set for
continuation
> of the
> > mediator and i can read the value of the variable in a
subsequent
> > mediator.
> Well, for the moment there is no such property, but even if
we put a
> property to check the successful continuation, when it comes to
> mediators like send, this value does not have much value,
because send
> is asynchronous inside the ESB, so that you want be able to
detect the
> successful delivery of a message. What you can check is
whether the
> message has been submitted to the transport for sending
> successfully...???
>
> If this is the case, even then you don't need this property
> because you
> get to the point where you are now in mediation because all the
> already
> executed mediators are successful in there mediation....
>
> Can you please elaborate on your exact requirements so that
we will be
> able to help you..
>
> Thanks,
> Ruwan
>
> _______________________________________________
> Esb-java-dev mailing list
> [email protected] <mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>
> http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev
>
>
>
------------------------------------------------------------------------
>
> _______________________________________________
> Esb-java-dev mailing list
> [email protected] <mailto:[email protected]>
> http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev
>
_______________________________________________
Esb-java-dev mailing list
[email protected] <mailto:[email protected]>
http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev
------------------------------------------------------------------------
_______________________________________________
Esb-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev
_______________________________________________
Esb-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev