Hi,


On Wed, Oct 22, 2014 at 11:52 AM, Manoj Gunawardena <man...@wso2.com> wrote:

> Hi Gayan,
>
> I think the  bamServerURL format you are passing is not correct. It should
> be pass to the DataPublisherUtil.getReceiverGroups method with following
> format.
> * {*tcp://192.168.16.2:7614},{tcp://192.168.16.2:7624}*.* Each host
> should enclose with curly brackets.
>
>
No, this url should be used if you need to send an event to both URLs.

@Gayan: The below code line should pass 'false' in you want loadbalancing
feature, with failover. If you need only active/passive setup (ie, failover
only), you need to pass true. Hence please correct that and try again.



*ReceiverGroup group = new ReceiverGroup(dataPublisherHolders, true);*
Thanks,
Sinthuja.


> Pls refer
>
> http://mohanadarshan.wordpress.com/2013/05/04/load-balancing-data-publisher-to-bamcep-example-code/
> Thanks
>
> On Wed, Oct 22, 2014 at 8:34 PM, Gayan Dhanushka <gay...@wso2.com> wrote:
>
>> Hi Sinthuja,
>>
>> I tested with two BAM servers pointing to its own cassandra (not
>> clustered). I was not able to see the load balancing scenario where nearly
>> equal amount of events are published into respective BAM nodes.
>>
>> Following is the code that I have used. Please correct me if I have done
>> something wrong.
>>
>> Urls defined in appfactory.xml
>>
>> *            tcp://192.168.16.2:7614
>> <http://192.168.16.2:7614>,tcp://192.168.16.2:7624
>> <http://192.168.16.2:7624>*
>>
>> code for preparing receiver groups
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> * AppFactoryConfiguration config = AppFactoryUtil
>> .getAppfactoryConfiguration();            String EnableStatPublishing =
>> config
>> .getFirstProperty("BAM.EnableStatPublishing");            String
>> bamServerURL = config.getFirstProperty("BAM.BAMServerURL");
>> String bamServerUserName = config
>> .getFirstProperty("BAM.BAMUserName");            String bamServerPassword =
>> config                    .getFirstProperty("BAM.BAMPassword");
>> AgentConfiguration agentConfiguration = new
>> AgentConfiguration();            Agent agent = new
>> Agent(agentConfiguration);            ArrayList<ReceiverGroup>
>> allReceiverGroups = new ArrayList<ReceiverGroup>();
>> ArrayList<String> receiverGroupUrls =
>> DataPublisherUtil.getReceiverGroups(bamServerURL);            for (String
>> aReceiverGroupURL : receiverGroupUrls) {
>> ArrayList<DataPublisherHolder> dataPublisherHolders = new
>> ArrayList<DataPublisherHolder>();                String[] urls =
>> aReceiverGroupURL.split(",");                for (String aUrl : urls)
>> {                    DataPublisherHolder aNode = new
>> DataPublisherHolder(null, aUrl.trim(), bamServerUserName,
>> bamServerPassword);
>> dataPublisherHolders.add(aNode);                }
>> ReceiverGroup group = new ReceiverGroup(dataPublisherHolders,
>> true);                allReceiverGroups.add(group);            }
>>            loadBalancingDataPublisher = new
>> LoadBalancingDataPublisher(allReceiverGroups, agent);*
>>
>> Method for event publishing
>>
>>
>>
>>
>> *public void publishEvents(Event event, String Stream, String
>> version)            throws AgentException, InterruptedException
>> {                loadBalancingDataPublisher.publish(Stream, version,
>> event);           }*
>>
>> Thanks
>> GayanD
>>
>>
>>
>> On Wed, Oct 22, 2014 at 7:32 PM, Sinthuja Ragendran <sinth...@wso2.com>
>> wrote:
>>
>>> Hi gayan,
>>>
>>> In order to verify the loadbalancing of events in a round robin manner,
>>> you can have two BAM nodes pointing to its own cassandra instance (not
>>> clustered), and send the events to those BAM nodes. If your client is
>>> configured correctly for load balancing scenario, then you will see each
>>> bam nodes will have nearly equal amount of events stored in its respective
>>> BAM nodes. This is just for testing purpose to verify, but of course in
>>> real case cassandra will be clustered, hence finally even though the load
>>> is balanced within receiver nodes it stores in the same cassandra cluster,
>>> hence it's not observable from outside.
>>>
>>> Thanks,
>>> Sinthuja.
>>>
>>> On Wed, Oct 22, 2014 at 4:53 AM, Gayan Dhanushka <gay...@wso2.com>
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I have been trying to move the AsyncDataPublisher used in App Factory
>>>> to LoadBalancingDataPublisher to cater load balancing and failover. Even
>>>> though [1] describes that it sends data to available receiver nodes in a
>>>> round robin manner, I was only able to observe the failover scenario.
>>>>
>>>> Can somebody please explain ?
>>>>
>>>> [1]
>>>> https://docs.wso2.com/display/BAM240/Setting+up+Multi+Receiver+and+Load+Balancing+Data+Agent#SettingupMultiReceiverandLoadBalancingDataAgent-Loadbalancingconfigurations
>>>>
>>>> Thanks
>>>> GayanD
>>>>
>>>> --
>>>> Gayan Dhanuska
>>>> Software Engineer
>>>> http://wso2.com/
>>>> Lean Enterprise Middleware
>>>>
>>>> Mobile
>>>> 071 666 2327
>>>>
>>>> Office
>>>> Tel   : 94 11 214 5345
>>>> Fax  : 94 11 214 5300
>>>>
>>>> Twitter : https://twitter.com/gayanlggd
>>>>
>>>
>>>
>>>
>>> --
>>> *Sinthuja Rajendran*
>>> Senior Software Engineer <http://wso2.com/>
>>> WSO2, Inc.:http://wso2.com
>>>
>>> Blog: http://sinthu-rajan.blogspot.com/
>>> Mobile: +94774273955
>>>
>>>
>>>
>>
>>
>> --
>> Gayan Dhanuska
>> Software Engineer
>> http://wso2.com/
>> Lean Enterprise Middleware
>>
>> Mobile
>> 071 666 2327
>>
>> Office
>> Tel   : 94 11 214 5345
>> Fax  : 94 11 214 5300
>>
>> Twitter : https://twitter.com/gayanlggd
>>
>> _______________________________________________
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Manoj Gunawardena
> Tech Lead
> WSO2, Inc.: http://wso2.com
> lean.enterprise.middleware
> Mobile : +94 77 2291643
>



-- 
*Sinthuja Rajendran*
Senior Software Engineer <http://wso2.com/>
WSO2, Inc.:http://wso2.com

Blog: http://sinthu-rajan.blogspot.com/
Mobile: +94774273955
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to