Hi Imesh, Considering perf details you have mentioned, having the BAM mediator after a send mediator would optimize the situation. But it is not the recommended to add any mediator after a send mediator. If you check in Developer studio, we have deliberately restricted this behavior.
Thanks, On Fri, Jun 13, 2014 at 10:20 AM, Imesh Gunaratne <im...@wso2.com> wrote: > HI Ayash, > > Yes after doing the optimisations we placed the BAM mediator after the > "send" call in the out mediation flow. > > Thanks > > > On Fri, Jun 13, 2014 at 2:33 AM, Ayash <ayashkan...@wso2.com> wrote: > >> Hi Imesh, >> >> While experiencing this problem, do you remember where the BAM Mediators >> were in the mediation flow? Have you kept them after calling "send" or >> before in the mediation flow? >> >> Thanks, >> -Ayash >> >> >> On Thu, Feb 13, 2014 at 2:18 PM, Imesh Gunaratne <im...@wso2.com> wrote: >> >>> s/comapred/compared/g >>> s/millisecods/milliseconds/g >>> >>> >>> On Thu, Feb 13, 2014 at 10:21 AM, Imesh Gunaratne <im...@wso2.com> >>> wrote: >>> >>>> Hi Sinthuja, >>>> >>>> Thanks for your response. Absolutely the concern is not with the data >>>> publisher but with the bam mediator logic being executed in the mediation >>>> flow. >>>> >>>> This is something I experienced during last couple of days while >>>> configuring several BAM mediators in an ESB flow. When a load test was run >>>> (with a set of concurrent users) and the ESB mediation latency was >>>> monitored, the BAM mediators were taking considerable amount of time >>>> comapred with the ESB latency without having the BAM mediators. It was like >>>> 90 ms with the BAM mediators and 35 ms without them. >>>> >>>> What I wanted to highlight here is that, I could not see any reason for >>>> executing the above logic in the mediation flow and adding several >>>> millisecods to the ESB latency. >>>> >>>> Thanks >>>> >>>> >>>> On Thu, Feb 13, 2014 at 12:32 AM, Sinthuja Ragendran <sinth...@wso2.com >>>> > wrote: >>>> >>>>> Hi Imesh, >>>>> >>>>> Publish() method in data publisher is not a blocking call, it's a >>>>> asynchronous call. Within data publisher the events are put into a queue >>>>> and a separate thread does the real publishing to BAM. Also in BAM >>>>> mediator, the AsyncDataPublisher is being used therefore the connection to >>>>> BAM is also made asynchronous. Hence IMHO it's not required to spawn a >>>>> new >>>>> thread externally to publish the events and make it complicated. >>>>> >>>>> Thanks, >>>>> Sinthuja. >>>>> >>>>> >>>>> On Thu, Feb 13, 2014 at 2:15 AM, Imesh Gunaratne <im...@wso2.com> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> This is regarding the BAM Mediator 4.2.0. >>>>>> As it looks like currently the BAM Mediator is executing the data >>>>>> publishing logic in the same thread which the current message mediation >>>>>> is >>>>>> happening: >>>>>> >>>>>> public class BamMediator: >>>>>> >>>>>> public boolean mediate(MessageContext messageContext) { >>>>>> ... >>>>>> try { >>>>>> stream.sendEvents(messageContext); >>>>>> } catch (BamMediatorException e) { >>>>>> return true; >>>>>> } >>>>>> >>>>>> } >>>>>> } >>>>>> >>>>>> public class Stream { >>>>>> >>>>>> ... >>>>>> >>>>>> public void sendEvents(MessageContext messageContext) throws >>>>>> BamMediatorException { >>>>>> ActivityIDSetter activityIDSetter = new ActivityIDSetter(); >>>>>> activityIDSetter.setActivityIdInTransportHeader(messageContext); >>>>>> try { >>>>>> if (!isPublisherCreated) { >>>>>> initializeDataPublisher(this); >>>>>> isPublisherCreated = true; >>>>>> } >>>>>> this.publishEvent(messageContext); >>>>>> } catch (BamMediatorException e) { >>>>>> String errorMsg = "Problem occurred while logging events in >>>>>> the BAM Mediator. " + e.getMessage(); >>>>>> log.error(errorMsg, e); >>>>>> throw new BamMediatorException(errorMsg, e); >>>>>> } >>>>>> } >>>>>> >>>>>> ... >>>>>> >>>>>> } >>>>>> >>>>>> I think if we move this logic to a new thread we could reduce the >>>>>> time it takes to execute the data publishing logic from the main message >>>>>> flow. WDYT? >>>>>> >>>>>> Thanks >>>>>> >>>>>> -- >>>>>> *Imesh Gunaratne* >>>>>> Technical Lead >>>>>> WSO2 Inc: http://wso2.com >>>>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>>>> W: http://imesh.gunaratne.org >>>>>> Lean . Enterprise . Middleware >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Dev mailing list >>>>>> Dev@wso2.org >>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Sinthuja Rajendran* >>>>> Software Engineer <http://wso2.com/> >>>>> WSO2, Inc.:http://wso2.com >>>>> >>>>> Blog: http://sinthu-rajan.blogspot.com/ >>>>> Mobile: +94774273955 >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Imesh Gunaratne* >>>> Technical Lead >>>> WSO2 Inc: http://wso2.com >>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>> W: http://imesh.gunaratne.org >>>> Lean . Enterprise . Middleware >>>> >>>> >>> >>> >>> -- >>> *Imesh Gunaratne* >>> Technical Lead >>> WSO2 Inc: http://wso2.com >>> T: +94 11 214 5345 M: +94 77 374 2057 >>> W: http://imesh.gunaratne.org >>> Lean . Enterprise . Middleware >>> >>> >>> _______________________________________________ >>> Dev mailing list >>> Dev@wso2.org >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> Ayashkantha Ramasinghe >> Software Engineer WSO2, Inc. >> email: ayashkan...@wso2.com <sanj...@wso2.com>; >> TP: +94 77 7 487 669 >> > > > > -- > *Imesh Gunaratne* > Technical Lead > WSO2 Inc: http://wso2.com > T: +94 11 214 5345 M: +94 77 374 2057 > W: http://imesh.gunaratne.org > Lean . Enterprise . Middleware > > > _______________________________________________ > Dev mailing list > Dev@wso2.org > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- *Gayan Kaushalya Yalpathwala* Software Engineer WSO2 Inc.; http://wso2.com lean.enterprise.middleware mobile: +94 71 8682704 <http://asia14.wso2con.com/> <http://asia14.wso2con.com/>
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev