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 <[email protected]> wrote: > s/comapred/compared/g > s/millisecods/milliseconds/g > > > On Thu, Feb 13, 2014 at 10:21 AM, Imesh Gunaratne <[email protected]> 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 <[email protected]> >> 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 <[email protected]> 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 >>>> [email protected] >>>> 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 > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- Ayashkantha Ramasinghe Software Engineer WSO2, Inc. email: [email protected] <[email protected]>; TP: +94 77 7 487 669
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
