Troubleshooting
Problem
Collecting data for problems with the WebSphere® Application Server Edge component, Load Balancer packet-forwarding process (the executor) is described. This information applies only to the Load Balancer Dispatcher component. Unless directed by IBM® support to collect an executor trace, use caution increasing logging to ensure load balancer performance is not adversely affected.
Environment
The executor module interacts with the operating system network layer and interface cards. Each operating system designed the network layer in a different fashion so the load balancer executor tracing has differences on each operating system.
If the load balancer is running on a Linux™ operating system, executor tracing is written to /var/log/messages with the operating system syslog API. Messages might not be reported with the default Linux™ rate limiting settings. If there are reports of lost or suppressed messages in the log, tune the operating system rsyslog.conf and journald.conf rate limit settings.
If the load balancer is running on the Windows™ operating system, executor tracing is written to the ibmlb2.log file located in the %IBMULBPATH%\servers\logs\dispatcher directory. Data in the file is only accessible after the executor is stopped.
If the load balancer is running on the AIX™ operating system, executor trace information is not written to a file until requested. The executor runs as a kernel extension on AIX™ so it stores the trace information in an internal 64kb memory buffer. The load balancer provides a tool, lb_kext, to write this buffer to a file. The lb_kext tool is located in the /opt/IBM/WebSphere/Edge/ULB/servers/bin directory.
Syntax:
./lb_kext -l -t <secs> -n <collections>
A collection of the data in the executor buffer is collected every "-t" second until the "-n" number of collections completes. Each collection is written to a file called ibmulb_log<collection> file located in the working directory. The first collection filename is appended with the value specified (-n) and the last collection has the file name ibmulb_log1.
Diagnosing The Problem
The executor component is responsible for receiving and analyzing every packet on each interface of the Load Balancer machine. The executor tracing provides details about these packets. By default, executor logging is sparse to prevent excessive log growth and performance degradation. IBM® support might request executor logging increased to resolve a reported problem or a user can increase logging to investigate load balancer operations in more detail.
The lbcommand (lbcommand.sh on unix) tool provided in the IBMULB_ROOT\servers\bin directory configures different tracing specifications for the executor.
To enable all tracing (not recommended unless directed by IBM® for problem determination), set the logmask value to -1. The output of this command lists the individual trace specifications that are enabled.
When the logmask value is set to -1, the list of trace specifications enabled is all available specifications.
This example is taken from the Windows™ operating system:
C:\Program Files\IBM\WebSphere\Edge\ULB\servers\bin>lbcommand 0 set logmask -1
LBStackCommand: 0 set logmask -1
executor key: (CONFIG) 0/0/0/0 action: 4(SET) rc: 1(SUCCESS)
children: 9.42.6.103/0/0/0
addable: n/a
setable:
logmask: 0xffffffffffffffff ( ipv4 ipv6 ip tcpudp linkedlist executor command
LBStackCommand: 0 set logmask -1
executor key: (CONFIG) 0/0/0/0 action: 4(SET) rc: 1(SUCCESS)
children: 9.42.6.103/0/0/0
addable: n/a
setable:
logmask: 0xffffffffffffffff ( ipv4 ipv6 ip tcpudp linkedlist executor command
cluster port server config iface ifcollection ifinstance os semaphore arp hashtable
neigh select icmpv6 ha icmp fragment memory rule useserver srvset nat err intact
discard forward held pstats rmreap error warn )
(ha)role: 1 (SOLO)
(ha)takeoverstrategy: 3 (undef)
(ha)replicatestrategy: 0 (NOREP)
(ha)reachscore: 0
(ha)timeout: 2
(ha)reachaddrs: 0 0 0 0 0 0 0 0 0 0 0 0
(ha)reachstatus: 0 0 0 0 0 0 0 0 0 0 0 0
(ha)port: 0
(ha)manualtakeoverrequested: 0
nfa: 1.2.3.4
clientgateway: 1.2.3.1
clientgateway_ipv6: 0:0:0:0:0:0:0:0
clientcollocate: 0
Legacy: cps: 0 Legacy: bps: 0 Legacy: maxclusters: 0 Legacy: maxports: 0
Legacy: maxservers: 0
Legacy: fintimeout: 20
Legacy: staletimeout: 300
Legacy: stickytime: 0
Legacy: weightbound: 20
Legacy: configfilename:
getable:
starttime: 01 Sep 2020 04:02:10 EDT
version: 8.5.5-18 - 20200901-002637 [WSBLD346] NT/amd64/cl
stats/ipv4: in:6148 [ fwd:0 err:0 notforus:6124 discard:16 ]:6140 gen:8
stats/ipv6: in:65 [ fwd:0 err:0 notforus:65 discard:0 ]:65 gen:0
stats/arp: in:4405 [ fwd:13 err:0 notforus:4392 discard:0 ]:4405 gen:13
stats/icmp: in:16 [ fwd:0 err:0 notforus:0 discard:0 ]:0 gen:8
stats/icmpv6: in:15 [ fwd:0 err:0 notforus:15 discard:0 ]:15 gen:0
clientgwneighstat: 0x1 ( RXOK )
clientgwneighstat_ipv6: 0x0 ( undef )
(ha)state: 3 (NA)
(ha)substate: 1 (NA)
(ha)lastevent: 0
(ha)role: 1 (SOLO)
(ha)takeoverstrategy: 3 (undef)
(ha)replicatestrategy: 0 (NOREP)
(ha)reachscore: 0
(ha)timeout: 2
(ha)reachaddrs: 0 0 0 0 0 0 0 0 0 0 0 0
(ha)reachstatus: 0 0 0 0 0 0 0 0 0 0 0 0
(ha)port: 0
(ha)manualtakeoverrequested: 0
nfa: 1.2.3.4
clientgateway: 1.2.3.1
clientgateway_ipv6: 0:0:0:0:0:0:0:0
clientcollocate: 0
Legacy: cps: 0 Legacy: bps: 0 Legacy: maxclusters: 0 Legacy: maxports: 0
Legacy: maxservers: 0
Legacy: fintimeout: 20
Legacy: staletimeout: 300
Legacy: stickytime: 0
Legacy: weightbound: 20
Legacy: configfilename:
getable:
starttime: 01 Sep 2020 04:02:10 EDT
version: 8.5.5-18 - 20200901-002637 [WSBLD346] NT/amd64/cl
stats/ipv4: in:6148 [ fwd:0 err:0 notforus:6124 discard:16 ]:6140 gen:8
stats/ipv6: in:65 [ fwd:0 err:0 notforus:65 discard:0 ]:65 gen:0
stats/arp: in:4405 [ fwd:13 err:0 notforus:4392 discard:0 ]:4405 gen:13
stats/icmp: in:16 [ fwd:0 err:0 notforus:0 discard:0 ]:0 gen:8
stats/icmpv6: in:15 [ fwd:0 err:0 notforus:15 discard:0 ]:15 gen:0
clientgwneighstat: 0x1 ( RXOK )
clientgwneighstat_ipv6: 0x0 ( undef )
(ha)state: 3 (NA)
(ha)substate: 1 (NA)
(ha)lastevent: 0
The individual trace specifications:
Specification | Details |
ipv4 | Debugging IPv4 TTL, fragment reassembly, checksum calculations |
ipv6 | Debugging IPv6 extension handling, neighbor unknown for clientgateway6 |
ip | Debugging for subnet matching |
tcpudp | Debugging for packets not matching LB configuration |
linkedlist | Debugging of linked list internal containers |
executor | Debugging for executor settings |
command | Debugging of general command failures |
cluster | Debugging for cluster settings |
port | Debugging for port settings |
server | Debugging for server settings |
config | Currently unused |
iface | Currently unused |
ifcollection | Debugging network interface operations |
ifinstance | Debugging IP addresses associated with network interfaces |
os | Debugging operating system specific interfaces |
semaphore | Currently unused |
arp | Debugging ARP handling |
hashtable | Debugging internal hash table structure operations |
neigh | Debugging neighbor discovery processing |
select | Debugging server selection process |
icmpv6 | Debugging icmpv6 protocol handling |
ha | Debugging high availability operations |
icmp | Debugging icmp protocol handling |
fragment | Debugging IP packet fragment operations |
memory | Currently unused |
rule | Debugging for rule settings |
useserver | Debugging for server assignment and use counts for rules |
srvset | Debugging of server set weight verification |
nat | Debugging of NAT specific packet forwarding |
err | Errors detected in packets |
intact | Listing of packets received not matching LB forwarding configuration |
discard | Listing of packets discarded and not forwarded |
forward | Listing of packets forwarded |
held | Listing of packets buffered, waiting for additional data (currently unused) |
pstats | Packet statistics (reported every 1/2 second) |
rmreap | Debugging of memory releases (garbage collection) |
error | Forwarding errors, default trace specification |
warn | Issues which may prevent forwarding but are currently not causing errors |
Usage examples:
Individual trace specification:
lbcommand<.sh> 0 set logmask pstat
Multiple trace specifications:
lbcommand<.sh> 0 set logmask pstat+rmreap
Add trace specification to existing tracing:
lbcommand<.sh> 0 set logmask +warn
Remove trace specification from existing tracing:
lbcommand<.sh> 0 set logmask -pstat
Restore tracing to default:
lbcommand<.sh> 0 set logmask error
Disable all executor tracing:
lbcommand<.sh> 0 set logmask 0
View current executor tracing:
lbcommand<.sh> 0 get
Unix example:
/opt/IBM/WebSphere/Edge/ULB/servers/bin> ./lbcommand.sh 0 get
LBStackCommand: 0 get
executor key: (CONFIG) 0/0/0/0 action: 3(GET) rc: 1(SUCCESS)
addable: n/a
setable:
logmask: 0x200 ( error )
(ha)role: 1 (SOLO)
(ha)takeoverstrategy: 3 (undef)
(ha)replicatestrategy: 0 (NOREP)
(ha)reachscore: 0
(ha)timeout: 2
(ha)reachaddrs: 0 0 0 0 0 0 0 0 0 0 0 0
(ha)reachstatus: 0 0 0 0 0 0 0 0 0 0 0 0
(ha)port: 0
(ha)manualtakeoverrequested: 0
nfa: 1.2.3.4
clientgateway: 0.0.0.0
clientgateway_ipv6: 0:0:0:0:0:0:0:0
clientcollocate: 0
LBStackCommand: 0 get
executor key: (CONFIG) 0/0/0/0 action: 3(GET) rc: 1(SUCCESS)
addable: n/a
setable:
logmask: 0x200 ( error )
(ha)role: 1 (SOLO)
(ha)takeoverstrategy: 3 (undef)
(ha)replicatestrategy: 0 (NOREP)
(ha)reachscore: 0
(ha)timeout: 2
(ha)reachaddrs: 0 0 0 0 0 0 0 0 0 0 0 0
(ha)reachstatus: 0 0 0 0 0 0 0 0 0 0 0 0
(ha)port: 0
(ha)manualtakeoverrequested: 0
nfa: 1.2.3.4
clientgateway: 0.0.0.0
clientgateway_ipv6: 0:0:0:0:0:0:0:0
clientcollocate: 0
Legacy: cps: 0 Legacy: bps: 0 Legacy: maxclusters: 0 Legacy: maxports: 0
Legacy: maxservers: 0
Legacy: fintimeout: 30
Legacy: staletimeout: 300
Legacy: stickytime: 0
Legacy: weightbound: 20
Legacy: configfilename:
getable:
starttime: 0
version: 8.5.5-17 - 20200624-072128 [paix614] AIX/ppc64/xlc80
stats/ipv4: in:194 [ fwd:0 err:0 notforus:194 discard:0 ]:194 gen:0
stats/ipv6: in:0 [ fwd:0 err:0 notforus:0 discard:0 ]:0 gen:0
stats/arp: in:879 [ fwd:0 err:0 notforus:1052 discard:0 ]:1052 gen:0
stats/icmp: in:0 [ fwd:0 err:0 notforus:0 discard:0 ]:0 gen:0
stats/icmpv6: in:0 [ fwd:0 err:0 notforus:0 discard:0 ]:0 gen:0
clientgwneighstat: 0x0 ( undef )
clientgwneighstat_ipv6: 0x0 ( undef )
(ha)state: 3 (NA)
(ha)substate: 1 (NA)
(ha)lastevent: 0
Legacy: maxservers: 0
Legacy: fintimeout: 30
Legacy: staletimeout: 300
Legacy: stickytime: 0
Legacy: weightbound: 20
Legacy: configfilename:
getable:
starttime: 0
version: 8.5.5-17 - 20200624-072128 [paix614] AIX/ppc64/xlc80
stats/ipv4: in:194 [ fwd:0 err:0 notforus:194 discard:0 ]:194 gen:0
stats/ipv6: in:0 [ fwd:0 err:0 notforus:0 discard:0 ]:0 gen:0
stats/arp: in:879 [ fwd:0 err:0 notforus:1052 discard:0 ]:1052 gen:0
stats/icmp: in:0 [ fwd:0 err:0 notforus:0 discard:0 ]:0 gen:0
stats/icmpv6: in:0 [ fwd:0 err:0 notforus:0 discard:0 ]:0 gen:0
clientgwneighstat: 0x0 ( undef )
clientgwneighstat_ipv6: 0x0 ( undef )
(ha)state: 3 (NA)
(ha)substate: 1 (NA)
(ha)lastevent: 0
Trace specifications are valid only when the executor is started. The lbcommand or lb_kext (AIX™ only) command fail when the executor is not running.
When the executor is stopped and restarted, executor tracing is reset to the default of error tracing.
Document Location
Worldwide
[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSAW57","label":"WebSphere Application Server Network Deployment"},"ARM Category":[{"code":"a8m50000000Cd9WAAS","label":"Edge LoadBalancer->Dispatcher issues"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.5.0;9.0.0"}]
Was this topic helpful?
Document Information
Modified date:
02 September 2020
UID
ibm16325369