Round robin DNS for load balancing between multiple network adapters (Xserve)

I'm attempting to use 'round robin' DNS to load balance between the two ethernet adapters of an Xserve.
Both ethernet adapters are connected to the same LAN and have static IP addresses of 192.168.2.250 and 192.168.2.251.
The DNS zone for the server's local domain/host (macserver.private) has a machine record with both IP addresses (set up in the Lion Server UI).
Having read up on round robin DNS, I would have expected DNS requests for 'macserver.private' to be answered with the two IP addresses ordered at random, achiving my aim of requests being served at random via each ethernet adapter.
However this doesn't seem to be the case. Doing a 'nslookup' from any of the network clients results in the two IP addresses being listed in the same order everytime. And pinging 'macserver.private' only ever results in a response from the same address.
Does anyone know why this is the case? Does Lion Server use a non-standard DNS configuration? Are there any additional settings I need to configure in Lion's DNS server to make adopt a round robin approach to responding to requests?
Thanks in advance for any help!

Be careful what you wish for
Round Robin DNS is rarely the best option for 'load balancing'. At the very least it's subject to caching at various point on the network - even at the client side, once the client looks up the address it will cache that response - this means that subsequent lookups may be served from the client's cache and not refer back to the server. Therfore any given client will always see the same address until the cache expires.
I suspect this is what you're seeing.
You can minimize this by setting a lower TTL on the records. This should result in the response being cached for a shorter period, meaning the client will make more requests to the server, with a higher change of using the 'other' address.
However, you're also going to run into issues with the server having two interfaces/addresses in the same LAN. This isn't recommended.
As Jonathon mentioned, you may be better off just bonding the two interfaces. This will provide an automatic level of dynamic load balancing without the latency of DNS caches, as well as automatic failover should one link fail (as opposed to round robin DNS which will cause 50% of requests to fail until the client cache expires and a new lookup is performed (and, even then, there's still a chance the client will try to use the failed link).

Similar Messages

  • HttpClusterServlet Proxy Load Balancing with Multiple Clusters

              How do I load balance JSPs and Servlets using the HttpClusterServlet proxy server
              approach when I have more than one cluster?
              It appears from the docs that there is a 1 to 1 relationship between the non-clustered
              managed proxy server that has the HttpClusterServlet and the cluster (1 proxy
              to 1 cluster).
              

    Preferred method would be domain, domainhash, url or urlhash as described in:
    http://www.cisco.com/univercd/cc/td/doc/product/webscale/css/bsccfggd/contrule.htm#xtocid2610122.
    do not recommend to use round-robin method for load balancing internet proxies. It creates inefficient usage of the storage and bandwidth, as more proxies can have to cache the same objects.

  • Query - Business Objects- CMS Cluster internals for load balancing/ sharing

    Hi,
    We are implementing CMS Cluster solution between two BOE server on Windows 2003 OS. As per documentation, One CMS server is primary, which coordinates with secory CMS server within same cluster. Does both server share equal load without external load balancer, by BOE cluster functionality? What are the tuning parameters for Load balancing between 2 CMS servers?
    Thanks for your help!!
    Regards,
    G

    If you somehow needed to accomplish load balancing between the 2 machines which wasn't 50/50 you could possibly try dns aliasing and have more copies of one machine than the other.  I'm not recommending this, just thinking out loud here.

  • Load balancing over multiple E3s

    Hi all,
    For the same VP , can I make load balancing over multiple E3s connected bet the BPX 8600 and MGX 8850.
    Asking the question in another way:
    Is there a possibility for load balancing over multiple LSPs (multiple E3 interfaces) in Cell-Mode MPLS...and if possible,plz provide me with any good links for configuration.

    Following link might be useful to you
    http://www.cisco.com/univercd/cc/td/doc/product/wanbu/bpx8600/9_2/ref92/bpxrtag.htm

  • Some confusion about Web Cache clustering for load balancing

    I have 4 Windows 2003 identical machines having OAS 10g installed with Web Cache (Same Passwords and Oracle Home) . I want to utilize them for load-balancing using Microsoft Network Load-balancing. I followed the Note: 259208.1 till step#10. Now we have virtual machine "IASPROD" for all other nodes {IASPROD1,IASPROD2,IASPROD3,IASPROD4 } I am able to logon to Web Cache manager from all nodes separately.
    On Node-1 I added all nodes entries in " Origin Server " having routed "Enabled " for all of them. Same I did added in Site-Definitions and gave alias hostname as "IASPROD" which is virtual server.
    Priority =1
    Site Hostname =iasprod1.domain Port = 80
    Policy = Unrestricted
    Origin Server Hostnames , port,proxy
    iasprod1.domain 7778 No
    iasprod2.domain 7778 No
    iasprod3.domain 7778 No
    iasprod4.domain 7778 No
    I have couple of questions might be very basic but as I am configuring very first time.
    1. How do I access all the machines through virtual name as stated above ? I tried but not working.
    2. This cluster setup should be repeated for all Nodes or for only node-1.
    3. If for only Node-1 than what will heppen in case of Node-1 goes down.
    4. How can I verify Load-balancing is working ?
    If you guyz can guide me than I'll be very greatful.

    One more addition Database is on AIX (9.2.0.4)

  • Recommended configuration for load balanced Portal with load balancer, multiple gateways and multiple servers.

    Does anyone have a recommended network, hardware and software configuration guide for a Portal installation running with multiple gateways load balanced (ie one URL) that talk to multiple servers?

    David,
    We've used Resonate (software) to load balance the gateways. It allows
    you to group all the gateways under 1 virtual URL and load balance the
    incoming connections over each gateway depending on the rules that you
    define in Resonate. Look in the SUN portal whitepapers there is one that
    talks about it specifically.
    As far as load balancing the calls to the portals, the gateways will
    automatically load balance across all the portals that they know about
    using a simple round-robin rotation. You may be able to use Resonate in
    front of the portals but you may need to activate persistance within
    Resonate to ensure that the user always ends up on the portal that he
    established his initial connection on (if you want that), check with Sun
    on this one.
    David Broeren wrote:
    Recommended configuration for load balanced Portal with load balancer,
    multiple gateways and multiple servers.
    Does anyone have a recommended network, hardware and software
    configuration guide for a Portal installation running with multiple
    gateways load balanced (ie one URL) that talk to multiple servers?
    Try our New Web Based Forum at http://softwareforum.sun.com
    Includes Access to our Product Knowledge Base!

  • Load balancing between Instance for same external IP client

    Hi,
    I have a azure website which is single tenant and is going to be used inside a single Domain from same region.
    Now my website provide good  performance till 20 concurrent request. I want to scale this so that it can reach up to 30 - 40 -100 so on.
    What are the options available to achieve this. till now what i have figured out is that
    1. If i increase the web site instance or on the auto scale option. It load balances between the instances on the basis of Client external I.P. but in my case all the users which are using the site shares the same external IP. 
    I have tested it increasing the instances doesn't make any impact on my performance results. 
    2. I have also looked in traffic manager but that case is valid when the clients are on different GeoLocations which is also not valid in my case.
    So my basic Question is if i have a pool of different scenarios where 
    100 users uses 1 azure website
    200 uses uses 1 azure website
    1000 users uses 1 azure website
    what infra should i take for each website to support this have performnace same as 100 users.
    Whenever you see a reply and if you think is helpful,Vote As Helpful! And whenever you see a reply being an answer to the question of the thread, click Mark As Answer

    Hi,
    I would request you to configure Web hosting plan and check if it helps in increasing the performance.
    It gives a set of features and capacity that you can share across your websites separately.
    http://azure.microsoft.com/en-us/documentation/articles/azure-web-sites-web-hosting-plans-in-depth-overview/
    Regards,
    Azam Khan

  • Cluster Apex MS's across multiple nodes for load balancing?

    Can Cluster Apex MS's across multiple nodes for load balancing? If Yes/No, any supportive doc's will be much appreciated.
    Here is what I did ..........
    I tried multiple MS's on different nodes for Apex Domain (clustered)
    Deployed apex.war, i.war with targets pointing to cluster.
    Apex listener techstack is shared filesystem $HOME/apex, where apex-config.xml and bdb are available
    Anyone of the MS's whichever started up first is locking up bdb and 500 server shows up when internal workspace is being launched with host specific url, where as it works fine for the host which actually locked up bdb (first MS that was started)
    2nd MS shows errors as below in log files ..
    Caused By: com.sleepycat.je.EnvironmentLockedException: (JE 4.0.103)$HOME/apex/bdb The environment cannot be locked for single writer access. ENV_LOCKED: The je.lck file could not be locked. Environment is invalid and must be closed.
    Its expected behavior until here .....
    ++++ I tried something to get it working ++++
    Whilst both MS's are up and running, delete $HOME/apex/bdb but let apex-config,xml be as it is...now the internal workspace urls for both hosts work fine. I logged into host specific urls and navigated, created/edited users.,etc and it is all looking good but it did not create new bdb directory under $HOME/apex ...!!
    Having said its working fine, the same issue repeats after the MS's bounce. So I did put a command line to delete bdb dir once the MS comes up to avoid the issue but really not sure if this is the right way at all?
    Geek's ...awaiting your advice!!

    Hey there,
    I managed to fulfill my requirement..
    If its a cluster on same machine or across machines, this should work
    1. Login to machine, cd $DOMAIN_HOME
    2. mkdir -p Apex_lsn_config/AdminServer Apex_lsn_config/<MS1> Apex_lsn_config/<MS2> # MS1 and MS2 are the Managed Server names as appropriate
    #If you are planning for cluster spawning MS's across machines, make sure you create the dir's on step 2 for each machine respectively. (in my case $DOMAIN_HOME is not shared)
    3. Copy apex-config.xml from the /tmp/apex or whatever location you have it currently to Apex_lsn_config/<MS1> Apex_lsn_config/<MS2>
    4. cd $DOMAIN_HOME/bin; cp -p SetDomainEnv.sh SetDomainEnv.sh.orig #Backup the file
    5. Append -Djava.io.tmpdir in SetDomainEnv.sh as below for JAVA_OPTIONS # Do it on both machine if you are not sharing DOMAIN_HOME and planning cluster across machines
    -Djava.io.tmpdir=$DOMAIN_HOME/APEX_CONFIG/${SERVER_NAME}
    Hint: Search for "iterativeDev" and append the same line with -Djava.jo.tmpdir
    6. Modify "java.io.tmpdir" from the web.xml file of apex.war as below and re-deploy the war
    <context-param>
         <param-name>config.dir</param-name>
         <param-value>${java.io.tmpdir}</param-value>
    </context-param>
    7. Bounce Weblogic Admin and Manged Servers. Make sure to tail the Managed Server log to see apex-config.xml is picked from the new location.
    8. Brew a Coffee for yourself :)
    - You find the instructions on creating a cluster from weblogic documentation, the steps mentioned above are only to overcome the bdb locking issue whilst creating a cluster.
    Did it help?
    Edited by: Oratime on Mar 25, 2013 2:44 AM

  • SSP5: Using multiple JVM for load balance performance?

    Sun 12 MAY 2002
    Apps 11.0.3
    SSP5 patchset I
    HP UX 11.0
    db 8.1.7.2 (64-bit)
    Load 60 concurrent sessions, each spawning 2.5 - 3 http connections.
    CPU 3:750Mhz
    RAM 8G
    Is anybody using multiple JVM for load balance?
    What is your ratio of JVM to concurrent iP sessions?
    Are you running Apache/Jserv on a server with any other applications, or is Apache by itself?
    If you are not using JVM, how many httpd processes do you get before Apache implodes? We stopped in the water at 90 httpd processes, but performance degraded starting at 70 sessions.
    Thx - Don

    Using Web Cache to load balance servlet-based Forms (6i and 9i) is unofficially supported. I say "unofficially" because we have actual customers doing it and getting support, but the 2 development teams (Forms and Web Cache) haven't actually done any integration testing of this sort of configuration yet. For your case, please contact your Support rep and ask what was done to use Web Cache as a load balancer for Forms6i at METRO in Germany. The Forms product managemment team is writing up a white paper to describe how to do it, but until then, you'll need to go through Support. Please contact me if you want more information.

  • CF8/JRun4 Cluster for Load Balancing

    Does anyone have an example of how to set up a CF8/JRun4
    cluster for load balancing?
    I have three servers:
    x004 - Linux - Apache2 (10.0.0.54,10.1.0.54)
    x020 - Linux - JRun4/CF8 (10.0.0.70,10.1.0.70)
    x021 - Linux - JRun4/CF8 (10.0.0.71,10.1.0.71)
    Every server in our network has two network cards. One
    network card is attached to 10.0.x.x which has a gateway to the
    internet and runs at 100Mbps and is firewalled, and the other is
    attached to 10.1.x.x which runs at 1Gbps and is internal with no
    gateway. I'm trying to set it up so web traffic arrives on
    10.0.0.54 into Apache and mod_jrun20 bootstraps a cluster named
    STST using 10.1.0.54 which consists of STST_x020 coldfusion server
    running on x020 and STST_x021 running on x021. I want the
    communications between JRun4 on x020 and x021 to occur on the
    10.1.x.x network and eventhough JRun and ColdFusion will only use
    the 10.1.x.x network I still need the 10.0.x.x network card
    attached for other purposes which require a gateway. I have
    installed JRun4/CF8 about 10 times already and it seems I have no
    control over what network JRun4 clusters on... sometimes it will
    communicate on one, sometimes the other and without being able to
    set which network is being used there always seems to be "network
    error" on at least one of the two CF8 servers. I was able to get
    everything working fine by disabling the network cards on the
    10.0.x.x network and re-installing everything... but as soon as I
    added the network cards back the whole thing was broken again.
    How is this supposed to work? Most of the examples are either
    no clustering or clustering on the same machine with Apache running
    on the same box... I don't see any clustering across machines
    examples.
    How do I install a connector on a web server which doesn't
    have JRun on it and get wsconfig to connect to a multi-machine
    cluster when wsconfig only accepts a single IP address as a host
    and the cluster is not listed?
    How do I get JRun to bind to a specific network card?
    Does this work if I choose a J2EE server other than JRun?
    Any help anyone can provide is greatly appreciated. I'm
    getting close to giving up which means staying on the non-clustered
    environment and figuring out how we can deal with scalability by
    switching to something else.

    The article at
    http://www.adobe.com/go/1e8e9170
    is specific to configuring two or more cluster nodes that reside on
    separate networks, e.g. 10.0.1.0/24 and 10.0.2.0/24. (The article
    doesn't state it, but you can only use unicast peers if your
    cluster nodes host a single instance of JRun or multiple instances
    of JRun in the same cluster domain. When performing unicast
    discovery, JRun looks for all Jini groups and not just the cluster
    group.)
    Anyhow, that's not your problem. The simplest solution is you
    haven't enabled the jrun.servlet.jrpp.JRunProxyService service. I'm
    most familiar with the Windows version of JRun, but I'm assuming
    the directory structure is similar across platforms. In
    <jrun_root>/servers/<name>/SERVER-INF/jrun.xml, set the
    deactivated attribute of the jrun.servlet.jrpp.JRunProxyService
    service to false and restart JRun. You should now see JRun
    listening on the appropriate port. (The default for the first
    manually created instance is 51000.) You can limit the proxy
    service to a single interface using the interface attribute.
    If you have enabled the proxy service, verify your security
    settings in <jrun_root>/lib/security.properties. It's usually
    best to limit access to specific hosts. Comment out the
    jrun.subnet.restriction parameter and set the jrun.trusted.hosts to
    the IP address of your web server, e.g. 10.1.0.54.
    Forcing all JRun processes/services to listen on a single
    interface isn't difficult, but it does require modifying quite a
    few configuration files by hand. If you need assistance with that,
    I can elaborate.
    Configuring the JRun module under Apache is pretty
    straightforward. If you're not using virtual hosts, it's very
    simple. If you are using virtual hosts, it's still simple, but your
    JRun configuration can be virtual host-specific.
    On your Apache server, you'll want to create a directory
    structure for the JRun module. I'll assume
    /opt/jrun/lib/wsconfig/1, but you can use anything you want. Once
    the directory structure is created, extract the appropriate JRun
    module from wsconfig.jar to the new directory. You're most likely
    interested in the Apache 2.0 module,
    wsconfig.jar/connectors/apache/intel-linux/prebuilt/mod_jrun20.so.
    Let's assume you've extracted the module to
    /opt/jrun/lib/wsconfig/1/mod_jrun20.so. Your Apache service account
    should have read, write, and execute permissions on the
    /opt/jrun/lib/wsconfig/1 directory.
    The JRun module configuration is normally appended to your
    current httpd.conf file by wsconfig. Here's a sample configuration:
    LoadModule jrun_module
    "/opt/jrun/lib/wsconfig/1/mod_jrun20.so"
    <IfModule mod_jrun20.c>
    JRunConfig Verbose false
    JRunConfig Apialloc false
    JRunConfig Ssl false
    JRunConfig Ignoresuffixmap false
    JRunConfig Serverstore
    "/opt/jrun/lib/wsconfig/1/jrunserver.store"
    JRunConfig Bootstrap 10.1.0.70:51000
    #JRunConfig Errorurl <optionally redirect to this URL on
    errors>
    #JRunConfig ProxyRetryInterval 600
    #JRunConfig ConnectTimeout 30
    #JRunConfig RecvTimeout 30
    #JRunConfig SendTimeout 30
    AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr
    .cfswf
    </IfModule>
    You may also want to update your DirectoryIndex directive
    with an appropriate index page, e.g. index.cfm.
    After the first request to a page handled by the JRun module
    is received, the module will query the boostrap server,
    10.1.0.70:51000, for a list of cluster peers. If you've configured
    your cluster correctly, a line similar to following will be written
    to /opt/jrun/lib/wsconfig/1/jrunserver.store:
    proxyservers=10.1.0.70:51000;10.1.0.71:51000
    You can create/edit this file manually as well.
    Unfortunately, the bootstrap option only accepts one server. If
    your bootstrap server is down, the JRun module will use the values
    in jrunserver.store directly, if the file exists.
    Here's a complete list of JRun module options:
    metrics *
    debugger *
    ssl *
    verbose
    traceflags
    serverstore
    bootstrap
    errorurl
    apialloc
    ignoresuffixmap
    proxyretryinterval
    connecttimeout
    recvtimeout
    sendtimeout
    sslcalist
    Options flagged with an asterisk can only be configured at
    the Apache server level. All other options can be configured at the
    server level and/or the virtual host level. The usage of these
    options is in the JRun documentation, and the JRun module source
    code is included in wsconfig.jar. Keep in mind that versions of the
    JRun module shipped prior to ColdFusion 8 were coded to assign the
    connecttimeout and sendtimeout options to the socket connection
    timeout. Whichever option appeared last in your configuration ended
    up as the final value. This has been fixed in ColdFusion 8 and
    presumably the next release of the JRun updater.
    I think that's a good start. If you need more information or
    can't find what you need in the JRun or ColdFusion documentation,
    let me know.
    If you're looking for resiliency, I highly recommend
    expanding your configuration to include a second web server and a
    hardware load-balancer (preferably one that supports redudancy via
    multiple paths and devices, e.g. devices from Cisco, F5, or Foundry
    Networks). Often, however, running Apache on the ColdFusion
    server(s) provides adequate performance, and round-robin DNS
    records coupled with the ability to update DNS quickly in the event
    of a failure may be all you need for load-balancing and
    failover.

  • Windows Event Collector - Built-in options for load balancing and high availability ?

    Hello,
    I have a working collector. config is source initiated, and pushed by GPO.
    I would like to deploy a second collector for high availability and load balancing. What are the available options ? I have not found any guidance on TechNet articles.
    As a low cost option, is it fine to simply start using DNS round-robin with a common alias for both servers pushed as a collector name through GPO ?
    In my GPO Policy, if I individually declare both servers, events are forwarded twice, once for each server. Indeed it does cover high availability, but not really optimized.
    Thanks for your help.

    Hi,
    >>As a low cost option, is it fine to simply start using DNS round-robin with a common alias for both servers pushed as a collector name through GPO ?
    Based on the description, we can utilize DNS round robin to distribute workloads and increase fault tolerance. By default, DNS uses round robin to rotate the order of RR data returned in query answers where multiple RRs of the same type exist for a queried
    DNS domain name. This feature provides a simple method for load balancing client use of Web servers and other frequently queried multihomed computers. Besides, by default, DNS will perform round-robin rotation for all RR types.
    Regarding DNS round robin, the following article can be referred to for more information.
    Configuring round robin
    http://technet.microsoft.com/en-us/library/cc787484(v=ws.10).aspx
    TechNet Subscriber Support
    If you are TechNet Subscription user and have any feedback on our support quality, please send your feedback here.
    Best regards,
    Frank Shen

  • Load-Balancing between Foreign and two Anchors

    Hi, we have two foreign controllers (one active, one standby) and two anchor controllers. All APs are connected to the active foreign controller. The layer 3 networks for the wlan clients on both anchors are different for the same SSID. SSID: Internet, anchor 1: Subnet A, anchor 2: Subnet B. So when a client is getting anchored to Anchor 1, the clients will get an ip from subnet A and when the client is getting anchored to anchor 2, the client will get an ip from subnet B.
    This is so far not a big problem because we only have a few accesspoints in some rooms. But what will happen, when we have a full covered wlan and the client roams from one AP to the other AP? Is there a possibility, that the client will anchored to a different anchor while roaming? I think this will result in a lack of connectivity because without a real disconnect the client will not ask for a new IP address.
    Other question: Is it possible to disable this load-balancing between anchor controllers? Or can i make a client sticky to only one anchor as long as an access-session is established?
    All controllers are 5760 with 3.3.3 software.

    Hi acontes, 
    It's an interesting question. 
    In this case, if all AP's are on WLC-A and there is no possibility that an L3 inter-subnet roam will occur between WLC-A and WLC-B, I would just forward WLC-A to Anchor A and WLC-B (in the event of fail over) to Anchor B (if Anchors reside on different subnets). If you must specify Anchor A and Anchor B on each WLC for redundancy purposes, it's important to understand the guidelines and limitations with regard to Foreign / Anchor Design.  
    As Scott mentioned, the limitation with Anchoring design is that there is no primary / secondary configuration for an Anchor on the Foreign WLC.
    If WLC-A has two entries (1) for Anchor-A and (2) for Anchor-B, the EoIP tunnels are establish and load-balancing occurs in a round robin fashion.
    Keep in mind the following with regard to guest N+1 redundancy:
    •A given foreign controller load balances wireless client connections across the list of anchor controllers configured for the guest WLAN. There is currently no method to designate one anchor as primary with one or more secondary anchors.
    •Wireless clients that are associated with an anchor WLC that becomes unreachable are re-associated with another anchor defined for the WLAN. When this happens, assuming web authentication is being used, the client is redirected to the web portal authentication page and required to re-submit their credentials.
    Since traffic is transported at Layer 2 via EoIP, the first point at which DHCP services can be implemented is either locally on the anchor controller or the controller can relay client DHCP requests to an external server. Since the IP address directly correlates to the DMZ subnet or the interface where the traffic egresses, it is possible for some clients to get IP's from both Subnet A or Subnet B in the event that WLC-A is building EoIP to both anchors.
    1) What happens if my clients roam?
    Nothing... since all AP's are on WLC-A, it's Intra-Controller Roaming
    Each controller supports same-controller client roaming across access points managed by the same controller. This roaming is transparent to the client as the session is sustained, and the client continues using the same DHCP-assigned or client-assigned IP address. The controller provides DHCP functionality with a relay function. Same-controller roaming is supported in single-controller deployments and in multiple-controller deployments.
    Would it be better to choose the same DHCP Pool on both anchors?
    It's probably better to have redundant anchors on the same subnet, but it's not required. 
    3) How would you design this :-)
    WLC-A <--EoIP--> Anchor A (DHCP Pool A)
    WLC-A <--EoIP--> Anchor B (DHCP Pool A)
    It's important to remeber what Scott mentioned about the lack of a primary / secondary relationship. If multiple controllers are added as mobility anchors for a particular WLAN on a foreign controller, the foreign controller internally sorts the controller by their IP address. The controller with the lowest IP address is the first anchor. For example, a typical ordered list would be 172.16.7.25, and 172.16.7.28. If the first client associates to the foreign controller's anchored WLAN, the client database entry is sent to the first anchor controller in the list, the second client is sent to the second controller in the list, and so on, until the end of the anchor list is reached. The process is repeated starting with the first anchor controller.
    If any of the anchor controller is detected to be down, all the clients anchored to the controller are deauthenticated, and the clients then go through the authentication/anchoring process again in a round-robin manner with the remaining controller in the anchor list. This functionality is also extended to regular mobility clients through mobility failover. This feature enables mobility group members to detect failed members and reroute clients.

  • Distributed Queue - Unable To Load Balance Between Each Time A Send Method Is Called

    Hi,
              According to the JMS documentation, I should be able to get the
              distributed queue to load balance
              between each time the message producer calls Message.send(). I was not
              able to achieve this, however,
              I noticed the load balancing happens when a JMS client is stopped and
              restarted (meaning totally
              exit the JVM and restart the JVM).
              Here is my configuration:
              WLS 8.1 SP2 on XP
              One cluster with two nodes (running on the same machine w/ different port)
              Each node hosts one JMS server, which hosts one physical queue and using
              JDBC store
              One distributed queue with two physical members from each of the JMS
              server.
              JMS Connection Factory is configured with "Load Balancing Enabled" set to
              yes,
              and "Server Affinity Enabled" to no. This connection factory is target to
              the cluster.
              The queue session for the queue sender is created with transaction setting
              to false.
              Any hints and ideas would greatly appreciated.
              Here is the content of config.xml:
              ========================================================================
              <?xml version="1.0" encoding="UTF-8"?>
              <Domain ConfigurationVersion="8.1.0.0" Name="odh">
              <Cluster ClusterAddress="localhost:8001,localhost:9001"
              MulticastAddress="237.0.0.1" Name="odhCluster_1"/>
              <Server ListenAddress="" ListenPort="7001" Machine="localhost"
              Name="odhAdmin" NativeIOEnabled="true" ServerVersion="8.1.2.0">
              <SSL Enabled="false" HostnameVerificationIgnored="false"
              IdentityAndTrustLocations="KeyStores" Name="odhAdmin"/>
              </Server>
              <Server Cluster="odhCluster_1" ExpectedToRun="false"
              IIOPEnabled="false" ListenAddress="" ListenPort="8001"
              Machine="localhost" Name="odhManagedServer_1"
              NativeIOEnabled="true" ServerVersion="8.1.2.0">
              <SSL Enabled="false" IdentityAndTrustLocations="KeyStores"
              Name="odhManagedServer_1"/>
              <ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="15"/>
              </Server>
              <Server Cluster="odhCluster_1" ExpectedToRun="false"
              IIOPEnabled="false" ListenAddress="" ListenPort="9001"
              Machine="localhost" Name="odhManagedServer_2"
              NativeIOEnabled="true" ServerVersion="8.1.2.0">
              <SSL Enabled="false" IdentityAndTrustLocations="KeyStores"
              Name="odhManagedServer_2"/>
              <ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="15"/>
              </Server>
              <MigratableTarget Cluster="odhCluster_1"
              Name="odhManagedServer_1 (migratable)"
              Notes="This is a system generated default migratable target for a
              server. Do not delete manually."
              UserPreferredServer="odhManagedServer_1"/>
              <MigratableTarget Cluster="odhCluster_1"
              Name="odhManagedServer_2 (migratable)"
              Notes="This is a system generated default migratable target for a
              server. Do not delete manually."
              UserPreferredServer="odhManagedServer_2"/>
              <Machine Name="localhost">
              <NodeManager ListenAddress="localhost" Name="localhost"/>
              </Machine>
              <JMSConnectionFactory AcknowledgePolicy="All"
              DefaultDeliveryMode="Persistent"
              JNDIName="com.neoforma.ConnectionFactory"
              Name="odhConnectionFactory" ServerAffinityEnabled="false"
              Targets="odhCluster_1" XAConnectionFactoryEnabled="true"/>
              <JMSDistributedQueue JNDIName="com.neoforma.odhDistributedQueue_1"
              LoadBalancingPolicy="Round-Robin" Name="odhDistributedQueue_1"
              Targets="odhCluster_1">
              <JMSDistributedQueueMember JMSQueue="odhQueue_1"
              Name="DistributedQueueMember_1"/>
              <JMSDistributedQueueMember JMSQueue="odhQueue_2"
              Name="DistributedQueueMember_2"/>
              </JMSDistributedQueue>
              <JMSJDBCStore ConnectionPool="odhMessagePool"
              Name="odhJMSJDBCStore_1" PrefixName="Order1_"/>
              <JMSJDBCStore ConnectionPool="odhMessagePool"
              Name="odhJMSJDBCStore_2" PrefixName="Order2_"/>
              <JMSServer Name="odhJMSServer_1" Store="odhJMSJDBCStore_1"
              Targets="odhManagedServer_1">
              <JMSQueue CreationTime="1076439896999"
              JNDIName="com.neoforma.odhQueue_1" Name="odhQueue_1"
              StoreEnabled="true"/>
              </JMSServer>
              <JMSServer Name="odhJMSServer_2" Store="odhJMSJDBCStore_2"
              Targets="odhManagedServer_2">
              <JMSQueue CreationTime="1076439664343"
              JNDIName="com.neoforma.odhQueue_2" Name="odhQueue_2"
              StoreEnabled="true"/>
              </JMSServer>
              <JDBCConnectionPool
              DriverName="oracle.jdbc.xa.client.OracleXADataSource"
              Name="odhConnectionPool" Password="...."
              Properties="user=..." Targets="odhCluster_1"
              TestTableName="SQL SELECT 1 FROM DUAL" URL="................."/>
              <JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver"
              Name="odhMessagePool" Password="....."
              Properties="user=....." Targets="odhCluster_1"
              TestTableName="SQL SELECT 1 FROM DUAL" URL="............."/>
              <JDBCMultiPool AlgorithmType="High-Availability"
              Name="odhJDBCMultiPool_1"
              PoolList="odhConnectionPool,odhMessagePool"
              Targets="odhCluster_1"/>
              <JDBCTxDataSource EnableTwoPhaseCommit="false"
              JNDIName="com.neoforma.order.orderDS" Name="odhJDBCDataSource_1"
              PoolName="odhConnectionPool" Targets="odhCluster_1"/>
              <Security Name="odh" PasswordPolicy="wl_default_password_policy"
              Realm="wl_default_realm" RealmSetup="true"/>
              <!--
              <EmbeddedLDAP
              Credential="{3DES}j+xkS9y1EYJUfic+M9ZJ+5DqGjiwTaVnt+Ti0TQWxXg="
              Name="odh"/>
              <SecurityConfiguration
              Credential="{3DES}OiyDMEOJS4gPLumKeKYWC+Kj9xWib6MhbmrNjeBmjJ7bpJypNb6Z7bUtAQF/bvi2RrFMs+3kqKerWNyD3NyT3QsrsyPoBDT0"
              Name="odh" RealmBootStrapVersion="1"/>
              -->
              <Realm FileRealm="wl_default_file_realm" Name="wl_default_realm"/>
              <FileRealm Name="wl_default_file_realm"/>
              <PasswordPolicy Name="wl_default_password_policy"/>
              <Application Deployed="true" Name="odh.ear"
              Path="D:\bea\user_projects\domains\odh\applications\odh.ear"
              StagedTargets="odhManagedServer_1,odhManagedServer_2"
              StagingMode="stage" TwoPhase="true">
              <EJBComponent Name="odh.jar" Targets="odhCluster_1" URI="odh.jar"/>
              </Application>
              <StartupClass ClassName="com.neoforma.startup.JMXMBeanStartup"
              DeploymentOrder="1" Name="ODH MBean Startup Class"
              Notes="ODH MBean Startup Class - Note" Targets="odhAdmin"/>
              <EmbeddedLDAP
              Credential="{3DES}YFY55/dsdxI9HL/AKGRXHuR1VwyJewNFdAHdrtk/WMM="
              Name="odh"/>
              <SecurityConfiguration
              Credential="{3DES}ZCPa1Bsrj3z2DhVKVUbq32zTYipDVff+LDB9+1b2Dr4VLhz5yjZyHgPheqS/kum4VVZamDYN07Hyb6rALiCTHhwt1EzK5+M+"
              Name="odh" RealmBootStrapVersion="1"/>
              </Domain>
              

    Thanks for the Makiey. I am surprise that BEA hasn't come back with any
              info.
              Hien
              On 7 Jul 2004 01:51:01 -0700, makiey <[email protected]> wrote:
              >
              > Hi Hien Luu,
              >
              > We also have a problem with load balancing, tested with WLS 7.0 SP4 and
              > WLS 8.1
              > SP2 (HP UX). The only "working" configuration is load-balancing policy =
              > random
              > (CF deployed to cluster, load balancing enabled, affinity disabled).
              > With the
              > "round-robin" policy we cannot utilize more than 50% dis. queue's
              > members.
              >
              > I'm trying to prepare a reproducer...
              >
              > greetings,
              > makiey
              >
              >
              > "Hien Luu" <[email protected]> wrote:
              >> Hi,
              >>
              >> According to the JMS documentation, I should be able to get the =
              >>
              >> distributed queue to load balance
              >> between each time the message producer calls Message.send(). I was not
              >> =
              >> =
              >>
              >> able to achieve this, however,
              >> I noticed the load balancing happens when a JMS client is stopped and
              >> =
              >>
              >> restarted (meaning totally
              >> exit the JVM and restart the JVM).
              >>
              >> Here is my configuration:
              >>
              >> WLS 8.1 SP2 on XP
              >> One cluster with two nodes (running on the same machine w/ different
              >> por=
              >> t)
              >> Each node hosts one JMS server, which hosts one physical queue and
              >> using=
              >> =
              >>
              >> JDBC store
              >> One distributed queue with two physical members from each of the JMS
              >> =
              >>
              >> server.
              >> JMS Connection Factory is configured with "Load Balancing Enabled" set
              >> t=
              >> o =
              >>
              >> yes,
              >> and "Server Affinity Enabled" to no. This connection factory is target
              >> =
              >> to =
              >>
              >> the cluster.
              >>
              >> The queue session for the queue sender is created with transaction
              >> setti=
              >> ng =
              >>
              >> to false.
              >>
              >> Any hints and ideas would greatly appreciated.
              >>
              >>
              >> Here is the content of config.xml:
              >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
              >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
              >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
              >>
              >> <?xml version=3D"1.0" encoding=3D"UTF-8"?>
              >> <Domain ConfigurationVersion=3D"8.1.0.0" Name=3D"odh">
              >> <Cluster ClusterAddress=3D"localhost:8001,localhost:9001"
              >> MulticastAddress=3D"237.0.0.1" Name=3D"odhCluster_1"/>
              >> <Server ListenAddress=3D"" ListenPort=3D"7001" Machine=3D"localhost=
              >> "
              >> Name=3D"odhAdmin" NativeIOEnabled=3D"true" ServerVersion=3D"8.1=
              >> .2.0">
              >> <SSL Enabled=3D"false" HostnameVerificationIgnored=3D"false"
              >> IdentityAndTrustLocations=3D"KeyStores" Name=3D"odhAdmin"/>=
              >>
              >> </Server>
              >> <Server Cluster=3D"odhCluster_1" ExpectedToRun=3D"false"
              >> IIOPEnabled=3D"false" ListenAddress=3D"" ListenPort=3D"8001"
              >> Machine=3D"localhost" Name=3D"odhManagedServer_1"
              >> NativeIOEnabled=3D"true" ServerVersion=3D"8.1.2.0">
              >> <SSL Enabled=3D"false" IdentityAndTrustLocations=3D"KeyStores"
              >> =
              >> =
              >>
              >> Name=3D"odhManagedServer_1"/>
              >> <ExecuteQueue Name=3D"weblogic.kernel.Default" ThreadCount=3D"1=
              >> 5"/>
              >> </Server>
              >> <Server Cluster=3D"odhCluster_1" ExpectedToRun=3D"false"
              >> IIOPEnabled=3D"false" ListenAddress=3D"" ListenPort=3D"9001"
              >> Machine=3D"localhost" Name=3D"odhManagedServer_2"
              >> NativeIOEnabled=3D"true" ServerVersion=3D"8.1.2.0">
              >> <SSL Enabled=3D"false" IdentityAndTrustLocations=3D"KeyStores"
              >> =
              >> =
              >>
              >> Name=3D"odhManagedServer_2"/>
              >> <ExecuteQueue Name=3D"weblogic.kernel.Default" ThreadCount=3D"1=
              >> 5"/>
              >> </Server>
              >> <MigratableTarget Cluster=3D"odhCluster_1"
              >> Name=3D"odhManagedServer_1 (migratable)"
              >> Notes=3D"This is a system generated default migratable target
              >> f=
              >> or a =
              >>
              >> server. Do not delete manually."
              >> UserPreferredServer=3D"odhManagedServer_1"/>
              >> <MigratableTarget Cluster=3D"odhCluster_1"
              >> Name=3D"odhManagedServer_2 (migratable)"
              >> Notes=3D"This is a system generated default migratable target
              >> f=
              >> or a =
              >>
              >> server. Do not delete manually."
              >> UserPreferredServer=3D"odhManagedServer_2"/>
              >> <Machine Name=3D"localhost">
              >> <NodeManager ListenAddress=3D"localhost" Name=3D"localhost"/>
              >> </Machine>
              >> <JMSConnectionFactory AcknowledgePolicy=3D"All"
              >> DefaultDeliveryMode=3D"Persistent"
              >> JNDIName=3D"com.neoforma.ConnectionFactory"
              >> Name=3D"odhConnectionFactory" ServerAffinityEnabled=3D"false"
              >> Targets=3D"odhCluster_1" XAConnectionFactoryEnabled=3D"true"/>
              >> <JMSDistributedQueue JNDIName=3D"com.neoforma.odhDistributedQueue_1=
              >> "
              >> LoadBalancingPolicy=3D"Round-Robin" Name=3D"odhDistributedQueue=
              >> _1" =
              >>
              >> Targets=3D"odhCluster_1">
              >> <JMSDistributedQueueMember JMSQueue=3D"odhQueue_1" =
              >>
              >> Name=3D"DistributedQueueMember_1"/>
              >> <JMSDistributedQueueMember JMSQueue=3D"odhQueue_2" =
              >>
              >> Name=3D"DistributedQueueMember_2"/>
              >> </JMSDistributedQueue>
              >> <JMSJDBCStore ConnectionPool=3D"odhMessagePool"
              >> Name=3D"odhJMSJDBCStore_1" PrefixName=3D"Order1_"/>
              >> <JMSJDBCStore ConnectionPool=3D"odhMessagePool"
              >> Name=3D"odhJMSJDBCStore_2" PrefixName=3D"Order2_"/>
              >> <JMSServer Name=3D"odhJMSServer_1" Store=3D"odhJMSJDBCStore_1"
              >> =
              >>
              >> Targets=3D"odhManagedServer_1">
              >> <JMSQueue CreationTime=3D"1076439896999"
              >> JNDIName=3D"com.neoforma.odhQueue_1" Name=3D"odhQueue_1"
              >> =
              >>
              >> StoreEnabled=3D"true"/>
              >> </JMSServer>
              >> <JMSServer Name=3D"odhJMSServer_2" Store=3D"odhJMSJDBCStore_2"
              >> =
              >>
              >> Targets=3D"odhManagedServer_2">
              >> <JMSQueue CreationTime=3D"1076439664343"
              >> JNDIName=3D"com.neoforma.odhQueue_2" Name=3D"odhQueue_2"
              >> =
              >>
              >> StoreEnabled=3D"true"/>
              >> </JMSServer>
              >> <JDBCConnectionPool
              >> DriverName=3D"oracle.jdbc.xa.client.OracleXADataSource"
              >> Name=3D"odhConnectionPool" Password=3D"...."
              >> Properties=3D"user=3D..." Targets=3D"odhCluster_1"
              >> TestTableName=3D"SQL SELECT 1 FROM DUAL" URL=3D"...............=
              >> .."/>
              >> <JDBCConnectionPool DriverName=3D"oracle.jdbc.driver.OracleDriver"
              >> Name=3D"odhMessagePool" Password=3D"....."
              >> Properties=3D"user=3D....." Targets=3D"odhCluster_1"
              >> TestTableName=3D"SQL SELECT 1 FROM DUAL" URL=3D"............."/=
              >>>
              >> <JDBCMultiPool AlgorithmType=3D"High-Availability"
              >> Name=3D"odhJDBCMultiPool_1"
              >> PoolList=3D"odhConnectionPool,odhMessagePool" =
              >>
              >> Targets=3D"odhCluster_1"/>
              >> <JDBCTxDataSource EnableTwoPhaseCommit=3D"false"
              >> JNDIName=3D"com.neoforma.order.orderDS" Name=3D"odhJDBCDataSour=
              >> ce_1"
              >> PoolName=3D"odhConnectionPool" Targets=3D"odhCluster_1"/>
              >> <Security Name=3D"odh" PasswordPolicy=3D"wl_default_password_policy=
              >> "
              >> Realm=3D"wl_default_realm" RealmSetup=3D"true"/>
              >> <!--
              >> <EmbeddedLDAP
              >> Credential=3D"{3DES}j+xkS9y1EYJUfic+M9ZJ+5DqGjiwTaVnt+Ti0TQWxXg=
              >> =3D" =
              >>
              >> Name=3D"odh"/>
              >> <SecurityConfiguration
              >> Credential=3D"{3DES}OiyDMEOJS4gPLumKeKYWC+Kj9xWib6MhbmrNjeBmjJ7=
              >> bpJypNb6Z7bUtAQF/bvi2RrFMs+3kqKerWNyD3NyT3QsrsyPoBDT0"
              >> Name=3D"odh" RealmBootStrapVersion=3D"1"/>
              >> -->
              >> <Realm FileRealm=3D"wl_default_file_realm" Name=3D"wl_default_realm=
              >> "/>
              >> <FileRealm Name=3D"wl_default_file_realm"/>
              >> <PasswordPolicy Name=3D"wl_default_password_policy"/>
              >> <Application Deployed=3D"true" Name=3D"odh.ear"
              >> Path=3D"D:\bea\user_projects\domains\odh\applications\odh.ear"
              >> StagedTargets=3D"odhManagedServer_1,odhManagedServer_2"
              >> StagingMode=3D"stage" TwoPhase=3D"true">
              >> <EJBComponent Name=3D"odh.jar" Targets=3D"odhCluster_1" URI=3D"=
              >> odh.jar"/>
              >> </Application>
              >> <StartupClass ClassName=3D"com.neoforma.startup.JMXMBeanStartup"
              >> DeploymentOrder=3D"1" Name=3D"ODH MBean Startup Class"
              >> Notes=3D"ODH MBean Startup Class - Note" Targets=3D"odhAdmin"/>=
              >>
              >> <EmbeddedLDAP
              >> Credential=3D"{3DES}YFY55/dsdxI9HL/AKGRXHuR1VwyJewNFdAHdrtk/WMM=
              >> =3D" =
              >>
              >> Name=3D"odh"/>
              >> <SecurityConfiguration
              >> Credential=3D"{3DES}ZCPa1Bsrj3z2DhVKVUbq32zTYipDVff+LDB9+1b2Dr4=
              >> VLhz5yjZyHgPheqS/kum4VVZamDYN07Hyb6rALiCTHhwt1EzK5+M+"
              >> Name=3D"odh" RealmBootStrapVersion=3D"1"/>
              >> </Domain>
              >
              Using Opera's revolutionary e-mail client: http://www.opera.com/m2/
              

  • Best practice for load balancing on SA540

    Are there some 'best practice' guide to configure out load balancing on SA540 .?
    I've got 2 ADSL lines and would like device to auto manage outgoing traffic .. Any idea ?
    Regards

    Hi,
    SA500 today implements flow based round robin load balancing scheme.
    In the case of two WAN link (over ADSL), by default, the traffic should be "roughly" equally distributed.
    So in general, users should have no need to configure anything further for load balancing.
    The SA500 also supports protocol binding (~PBR) over WAN links. This mechanism offers more control on how traffic can flow.
    For example, if you have 1 ADSL with higher throughput than the other ADSL link offers, you can consider to bind bandwidth-hungry app on the WAN link connecting to the higher ADSL link and the less bandwidth-hungary app on the other one. The other traffic can continue to do round robin.  This way you won't saturate the low bandwidth link and give users better application experiences.
    Regards,
    Richard

  • Mod_oc4j for load-balancing

    Guys,
    Looking for some feedback on DMSMetricCollector when using "metric" as the selectmethod for load-balancing. What i want to know is that whether the DMSMetricCollector can be configured to use multiple metrics such jvm-heapsiize, servlet-processRequestTime etc, Connection-pools FreePoolSize.value etc ? the documentation doesn't explicitly mention that if its possible, apparently it doesn't but want to check from the experts here, Steve you might have something on this...
    Or if there is any other implementation available which supports load-balancing based on multiple performance metrics
    Thanks and Regards

    can i use this loadbalancer.jar or not?
    how to mod_oc4j in standalone app server

Maybe you are looking for