My Oracle Support Banner

Tuxedo 8.1 and 9.1 - WSNADDR Not Balancing Load (Doc ID 777224.1)

Last updated on MAY 19, 2020

Applies to:

Oracle Tuxedo - Version 8.1 and later
Information in this document applies to any platform.
Information in this document applies to any platform


Goal

With a mutli-hosted Tuxedo Application with a WSL Server available on each node, Tuxedo /WS client calls will not be load balanced across the available WSL Servers.

For example by using the "|" syntax to balance the load across these WSL processes (let say 3 WSL Servers), the expected behavior would to see a load balanced between all WSL Servers (with 3 WSL Server means 33% of calls per Server).

However, the load figures with be higher for the 1st WSL Server specified and will decrease to get the last WSL Server with lower load (with a 3 WSL servers list in WSNADDR: the load of the 1st WSL Server > the load of the 2nd > the load of the 3rd)

NOTE: The attribute values used in this article represent fictitious sample names that are made up as example. Any similarity to actual code, is purely coincidental and not intended in any other manner.

 

As example with the WSNADDR string set up for all clients:

WSNADDR=(//mach1:port#|//mach2:port#|//mach3:port#)

The distribution is:

Machine #1 (mach1): 56%
Machine #2 (mach2): 28%
Machine #3 (mach3): 15%

By getting serveral WSNADDR setting per group of Tuxedo /WS CLient it could be workarounnd, but it will not be feasible for all configuration.

If you look at the distribution, it is almost exactly that machine #1 receives twice as many requests as machine #2, and machine #2 receives twice as many requests as machine #3.

It is as if the semantics for the /WS balancing using the "|" is using some sort of preference algorithm where each successive machine receives 1/2 of the previous from the list.

Here is a quick test with about 150 executions, 50 each from 3 different machines, to show the distribution:

> d -m all

all> psr

Totals for all machines:

Prog Name Queue Name  Grp Name      ID RqDone Load Done Machine
--------- ----------  --------      -- ------ --------- -------
WSL       00300.03100 GROUP3      3100      0         0 mach3
WSL       00200.02100 GROUP2      2100      0         0 mach2
WSL       00100.01100 GROUP1      1100      0         0 mach1
simpserv  MACH3Q      GROUP3      3000     11       550 mach3
simpserv  MACH2Q      GROUP2      2000     21      1050 mach2
simpserv  MACH1Q      GROUP1      1000     42      2100 mach1
BBL       30004.00000 mach3          0     38      1900 mach3
BBL       30003.00000 mach2          0     41      2050 mach2
BBL       30002.00000 mach1          0     55      2750 mach1
DBBL      122222      mach1          0    188      9400 mach1
simpserv  MACH3Q      GROUP3      3001     11       550 mach3
simpserv  MACH2Q      GROUP2      2001     20      1000 mach2
simpserv  MACH1Q      GROUP1      1001     39      1950 mach1
BRIDGE    908654      mach3          1      0         0 mach3
BRIDGE    646510      mach2          1      0         0 mach2
BRIDGE    384366      mach1          1      0         0 mach1

Solution

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Goal
Solution
References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.