Troubleshooting
Problem
IBM WebSphere Application Server wsadmin with SOAP connector leads to performance issue on federated configuration with even a single wsadmin command taking a very long time to complete.
Cause
Some machines have both IPv6 and IPv4 protocol enabled and due to this the SOAP protocol defaults to attempt data transmission through IPv6, but this has performance overhead.
Resolving The Problem
The solution is to use IPv4 by passing the following Java system property on the Java runtime:
-Djava.net.preferIPv4Stack=true |
- To set it on wsadmin, edit the wsadmin.sh file (note, you might want to make a backup copy first). Add "-Djava.net.preferIPv4Stack=true \" (without quotes) after the line of "$JAVA_HOME/bin/java" \.
Your resulting wsadmin.sh file should have the following:
- To set it on the dmgr process, you can add a custom property from the administrative console:
System administration > Deployment manager > Java and Process Management > Process Definition > Java Virtual Machine > Custom Properties
Add a new property:
Name: java.net.preferIPv4Stack
Value: true
"$JAVA_HOME/bin/java" \ -Djava.net.preferIPv4Stack=true \ -Xbootclasspath/p:"$WAS_BOOTCLASSPATH" \ |
Save the change and restart dmgr
Important: Make this changes to all the servers including the NodeAgents and the AppServers (for example: server1) in that cell.
If this is not helping, send IBM Support wsadmin and the server traces (dmgr/node/AppServer process where the wsadmin is connected). If you are using -conntype NONE, then send us only wsadmin trace.
- Setting traces for server process that wsadmin is connected (for example: dmgr). From the administrative console:
- Select Troubleshooting > Logs and Trace.
- Select the server (for example, dmgr) Diagnostic Trace Service.
- Under Additional Properties select > Change Log Detail Levels.
- Select Runtime tab.
- Enter following in the trace window:
- Set the traces for wsadmin: MustGather: wsadmin problems in WebSphere Application Server
*=info:com.ibm.ws.management.*=all:com.ibm.websphere.management.*=all |
Notes:
- An alternate approach is to use RMI connector instead default SOAP
- Instead of setting it in the wsadmin.bat/sh file, this -Djava.net.preferIPv4Stack=true property can be passed thru wsadmin -javaoption during wsadmin start.
For example:
- In version 6.1, set -Djava.net.preferIPv4Stack=true in the following file:
./wsadmin.sh/bat -conntype RMI |
bin>wsadmin -javaoption -Djava.net.preferIPv4Stack=true |
For more details, see wsadmin tool in the information center. |
install_root/bin/wsadmin.bat/sh |
All the profiles level wsadmin.bat/sh (for example: profile_root/dmgr/bin/wsadmin.bat/sh) actually calls install_root/bin/wsadmin.bat/sh. Example: The following code snippet is from the profile_root/dmgr/bin/wsadmin.bat file: |
---- @echo off SETLOCAL set WAS_USER_SCRIPT=C:\websphere\v61nd\profiles\Dmgr01\bin\setupCmdLine.bat call "C:\websphere\v61nd\bin\wsadmin.bat" %* ENDLOCAL & set MYERRORLEVEL=%ERRORLEVEL% if defined PROFILE_CONFIG_ACTION (exit %MYERRORLEVEL%) else exit /b %MYERRORLEVEL% ---- |
Related Information
[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Administrative Scripting Tools (for example: wsadmin or ANT)","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"8.5.5;8.5;8.0;7.0;6.1","Edition":"Base;Network Deployment","Line of Business":{"code":"LOB45","label":"Automation"}},{"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Java SDK","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21239790