Nothing inside BAW routes requests between cluster members - that is the job of the web tier in front of the cluster:
- IBM HTTP Server + WebSphere plug-in (the standard topology): the plug-in reads plugin-cfg.xml, which lists every cluster member, and load-balances new requests (round robin with weights) while keeping session affinity: the JSESSIONID cookie carries the clone id of the member that created the session, and the plug-in sends later requests of that session to the same member. If that member is down, the plug-in marks it unavailable (retry interval) and fails the session over to another member (the HTTP session data is lost unless session replication / database persistence is configured).
- A hardware / software load balancer (F5, NGINX, HAProxy, the OpenShift router on CP4BA) in front of IHS or directly in front of the members: it must be configured for sticky sessions (cookie-based), otherwise coaches break.
- Inside the cluster: the BPM engine work (event manager, timers, UCA, BPD navigation) is not routed at all - every member runs its own event manager scheduler that picks tasks from the shared database tables; the "active server" question is answered by the database, not by routing.
How you tell which member served a request: the response header X-Powered-By is not per member, so enable the plug-in trace or look at SystemOut.log of the members, or log the member from a service flow with java.lang.System.getProperty("was.install.root") / java.net.InetAddress.getLocalHost().getHostName().
References