Search code examples
weblogiccluster-computingheartbeat

Customize WebLogic's heartbeat message


I'm currently developing a system to ensure high performance, availability and scalability; fail-over and crash recovery on a WebLogic integration scenario.

Does anybody know if it is possible to customize WebLogic's native heartbeat messages, to add some additional information such as current CPU usage and/or network load?

The purpose is to allow load-balancing algorithms that use that "custom" information, to avoid overloading a struggling server with more requests.


Solution

  • To my knowledge, this is not possible. First, heartbeats are used by a server instance to advertise its availability - and only its availability - (by monitoring heartbeat messages, server instances in a cluster determine when a server instance has failed). Second, WebLogic's load balancing algorithms are not plugable and don't use heartbeats (at least not directly).

    So, you can use:

    • Round-robin load balancing for HTTP requests when using a proxy plugin.
    • Round-robin, weight-based (for not homogeneous clusters), or random load balancing for EJBs and RMI Objects.

    If you want to use a (more advanced) load-based balancing strategy for HTTP requests, you'll have to use another solution - most likely an hardware load balancer - supporting this algorithm.

    Note that a load-based strategy is not something I've seen frequently, even for huge websites. Most of time, a simple round-robin algorithm provides a very satisfying distribution of requests and consequently a balanced utilization of resources.