Running wsadmin.sh remotely in a Java 2 Platform, Standard Edition environment
The thin administrative client adds JAR files that support administrative client functions that we can use with IBM Developer Kits For the Java Platform.
Be aware of the following limitations:
- We cannot run a thin administrative client with the -conntype NONE option.
- The Administration Thin Client is supported for the IBM SDKs. The Administration Thin Client is supported for the corresponding Java Development Kit (JDK) with the same major version, provided that the client administration application uses only the SOAP connector.
- The client administration application must use the com.ibm.websphere.management.AdminClientFactory API to get the JMX client.
- Thin administrative clients do not support the installation of SAR files or the editing of applications that use an external JACC provider such as Tivoli Access Manager.
- (zos) Thin administrative clients on z/OS does not use localcomm.
- Thin administrative clients do not support the installation of SAR files or the editing of applications that use an external JACC provider such as Tivoli Access Manager.
For tracing and logging information for the thin administrative client, see the Enable trace on client and stand-alone applications topic .
- Obtain the thin administrative client JAR file and other required files required when security is on from the WAS Network Deployment installation. Refer to the topic Using the administration thin client for details about the files that we need to perform this task.
- Generate the wsadmin.sh or the wsadmin.bat file from the server machine.
- Copy the Java directory from the server installation to your thin client environment.
- Start wsadmin.sh in a non-OSGi environment. Examples of the wsadmin.bat file and the wsadmin.sh file are as follows:
Example: wsadmin.bat
@REM wsadmin launcher @echo off @REM Usage: wsadmin arguments setlocal @REM was home should point to whatever directory you decide for the thin client environment set WAS_HOME=c:\MyThinClient set USER_INSTALL_ROOT=%WAS_HOME% @REM Java home should point to where you installed java for the thinclient set JAVA_HOME="%WAS_HOME%\java" set WAS_LOGGING=-Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Djava.util.logging.configureByServer=true set THIN_CLIENT=-Dcom.ibm.websphere.thinclient=true if exist "%JAVA_HOME%\bin\java.exe" ( set JAVA_EXE="%JAVA_HOME%\bin\java" ) else ( set JAVA_EXE="%JAVA_HOME%\jre\bin\java" ) @REM CONSOLE_ENCODING controls the output encoding used for stdout/stderr @REM console - encoding is correct for a console window @REM file - encoding is the default file encoding for the system @REM other - the specified encoding is used. e.g. Cp1252, Cp850, SJIS @REM SET CONSOLE_ENCODING=-Dws.output.encoding=console @REM For debugging the utility itself @REM set WAS_DEBUG=-Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777 set CLIENTSOAP=-Dcom.ibm.SOAP.ConfigURL=file:"%USER_INSTALL_ROOT%"\properties\soap.client.props set CLIENTSAS=-Dcom.ibm.CORBA.ConfigURL=file:"%USER_INSTALL_ROOT%"\properties\sas.client.props set CLIENTSSL=-Dcom.ibm.SSL.ConfigURL=file:"%USER_INSTALL_ROOT%"\properties\ssl.client.props set CLIENTIPC=-Dcom.ibm.IPC.ConfigURL=file:"%USER_INSTALL_ROOT%"\properties\ipc.client.props set JAASSOAP=-Djava.security.auth.login.config=%USER_INSTALL_ROOT%\properties\wsjaas_client.conf @REM the following are wsadmin property @REM we need to change the value to enabled to turn on trace set wsadminTraceString=-Dcom.ibm.ws.scripting.traceString=com.ibm.*=all=disabled set wsadminTraceFile=-Dcom.ibm.ws.scripting.traceFile="%USER_INSTALL_ROOT%"\logs\wsadmin.traceout set wsadminValOut=-Dcom.ibm.ws.scripting.validationOutput="%USER_INSTALL_ROOT%"\logs\wsadmin.valout @REM this will be the server host that you will connecting to set wsadminHost=-Dcom.ibm.ws.scripting.host=myhost.austin.ibm.com @REM make sure the port number is the server SOAP port number to connect to, in this example the server SOAP port is 8887 set wsadminConnType=-Dcom.ibm.ws.scripting.connectionType=SOAP set wsadminPort=-Dcom.ibm.ws.scripting.port=8887 @REM make sure the port number is the server RMI port number to connect to, in this example the server RMI Port is 2815 @REM set wsadminConnType=-Dcom.ibm.ws.scripting.connectionType=RMI @REM set wsadminPort=-Dcom.ibm.ws.scripting.port=2815 @REM make sure the port number is the server JSR160RMI port number to connect to, in this example the server JSR160RMI Port is 2815 @REM set wsadminConnType=-Dcom.ibm.ws.scripting.connectionType=JSR160RMI @REM set wsadminPort=-Dcom.ibm.ws.scripting.port=2815 @REM make sure the port number is the server IPC port number to connect to, in this example the server IPC Port is 9632 and the host for IPC should be localhost @REM set wsadminHost=-Dcom.ibm.ws.scripting.ipchost=localhost @REM set wsadminConnType=-Dcom.ibm.ws.scripting.connectionType=IPC @REM set wsadminPort=-Dcom.ibm.ws.scripting.port=9632 @REM specify what language to use with wsadmin set wsadminLang=-Dcom.ibm.ws.scripting.defaultLang=jacl @REM set wsadminLang=-Dcom.ibm.ws.scripting.defaultLang=jython set SHELL=com.ibm.ws.scripting.WasxShell :prop set WSADMIN_PROPERTIES_PROP= if not defined WSADMIN_PROPERTIES goto workspace set WSADMIN_PROPERTIES_PROP="-Dcom.ibm.ws.scripting.wsadminprops=%WSADMIN_PROPERTIES%" :workspace set WORKSPACE_PROPERTIES= if not defined CONFIG_CONSISTENCY_CHECK goto loop set WORKSPACE_PROPERTIES="-Dconfig_consistency_check=%CONFIG_CONSISTENCY_CHECK%" :loop if '%1'=='-javaoption' goto javaoption if '%1'=='' goto runcmd goto nonjavaoption :javaoption shift set javaoption=%javaoption% %1 goto again :nonjavaoption set nonjavaoption=%nonjavaoption% %1 :again shift goto loop :runcmd set C_PATH="%WAS_HOME%\properties;%WAS_HOME%\com.ibm.ws.admin.client_8.0.0.jar;%WAS_HOME%\com.ibm.ws.security.crypto.jar" set PERFJAVAOPTION=-Xms256m -Xmx256m -Xj9 -Xquickstart if "%JAASSOAP%"=="" set JAASSOAP=-Djaassoap=off "%JAVA_EXE%" %PERFJAVAOPTION% %WAS_LOGGING% %javaoption% %CONSOLE_ENCODING% %WAS_DEBUG% "%THIN_CLIENT%" "%JAASSOAP%" "%CLIENTSOAP%" "%CLIENTSAS%" "%CLIENTIPC%" "%CLIENTSSL%" %WSADMIN_PROPERTIES_PROP% %WORKSPACE_PROPERTIES% "-Duser.install.root=%USER_INSTALL_ROOT%" "-Dwas.install.root=%WAS_HOME%" %wsadminTraceFile% %wsadminTraceString% %wsadminValOut% %wsadminHost% %wsadminConnType% %wsadminPort% %wsadminLang% -classpath %C_PATH% com.ibm.ws.scripting.WasxShell %* set RC=%ERRORLEVEL% goto END :END @endlocal set MYERRORLEVEL=%ERRORLEVEL% if defined PROFILE_CONFIG_ACTION exit %MYERRORLEVEL% else exit /b %MYERRORLEVEL%Example: wsadmin.sh
#!/bin/bash # example wsadmin launcher # WAS_HOME should point to the directory for the thin client WAS_HOME="/MyThinClient" USER_INSTALL_ROOT="/MyThinClient" # JAVA_HOME should point to where java is installed for the thin client JAVA_HOME="$WAS_HOME/java" WAS_LOGGING="-Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Djava.util.logging.configureByServer=true" if [[ -f ${JAVA_HOME}/bin/java ]]; then JAVA_EXE="${JAVA_HOME}/bin/java" else JAVA_EXE="${JAVA_HOME}/jre/bin/java" fi # For debugging the utility itself # WAS_DEBUG=-Djava.compiler="NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777" CLIENTSOAP="-Dcom.ibm.SOAP.ConfigURL=file:${USER_INSTALL_ROOT}/properties/soap.client.props" CLIENTSAS="-Dcom.ibm.CORBA.ConfigURL=file:${USER_INSTALL_ROOT}/properties/sas.client.props" CLIENTSSL="-Dcom.ibm.SSL.ConfigURL=file:${USER_INSTALL_ROOT}/properties/ssl.client.props" CLIENTIPC="-Dcom.ibm.IPC.ConfigURL=file:${USER_INSTALL_ROOT}/properties/ipc.client.props" # the following are wsadmin property # we need to change the value to enabled to turn on trace wsadminTraceString=-Dcom.ibm.ws.scripting.traceString=com.ibm.*=all=enabled wsadminTraceFile=-Dcom.ibm.ws.scripting.traceFile=${USER_INSTALL_ROOT}/logs/wsadmin.traceout wsadminValOut=-Dcom.ibm.ws.scripting.validationOutput=${USER_INSTALL_ROOT}/logs/wsadmin.valout # this will be the server host that you will be connecting to wsadminHost=-Dcom.ibm.ws.scripting.host=myhost.austin.ibm.com # make sure the port number is the server SOAP port number to connect to, in this example the server SOAP port is 8875 wsadminConnType=-Dcom.ibm.ws.scripting.connectionType=SOAP wsadminPort=-Dcom.ibm.ws.scripting.port=8875 # make sure the port number is the server RMI port number to connect to, in this example the server RMI port is 2811 #wsadminConnType=-Dcom.ibm.ws.scripting.connectionType=RMI #wsadminPort=-Dcom.ibm.ws.scripting.port=2811 # make sure the port number is the server JSR160RMI port number to connect to, in this example the server JSR160RMI port is 2811 #wsadminConnType=-Dcom.ibm.ws.scripting.connectionType=JSR160RMI #wsadminPort=-Dcom.ibm.ws.scripting.port=2811 # make sure the port number is the server IPC port number to connect to, in this example the server IPC port is 9630 #wsadminHost=-Dcom.ibm.ws.scripting.ipchost=localhost #wsadminConnType=-Dcom.ibm.ws.scripting.connectionType=IPC #wsadminPort=-Dcom.ibm.ws.scripting.port=9630 # specify what language to use with wsadmin wsadminLang=-Dcom.ibm.ws.scripting.defaultLang=jacl #wsadminLang=-Dcom.ibm.ws.scripting.defaultLang=jython SHELL=com.ibm.ws.scripting.WasxShell # If wsadmin properties is set, use it if [[ -n "${WSADMIN_PROPERTIES+V}" ]]; then WSADMIN_PROPERTIES_PROP="-Dcom.ibm.ws.scripting.wsadminprops=${WSADMIN_PROPERTIES}" else # Not set, do not use it WSADMIN_PROPERTIES_PROP= fi # If config consistency check is set, use it if [[ -n "${CONFIG_CONSISTENCY_CHECK+V}" ]]; then WORKSPACE_PROPERTIES="-Dconfig_consistency_check=${CONFIG_CONSISTENCY_CHECK}" else WORKSPACE_PROPERTIES= fi # Parse the input arguments isJavaOption=false nonJavaOptionCount=1 for option in "$@" ; do if [ "$option" = "-javaoption" ] ; then isJavaOption=true else if [ "$isJavaOption" = "true" ] ; then javaOption="$javaOption $option" isJavaOption=false else nonJavaOption[$nonJavaOptionCount]="$option" nonJavaOptionCount=$((nonJavaOptionCount+1)) fi fi done DELIM=" " C_PATH="${WAS_HOME}/properties:${WAS_HOME}/com.ibm.ws.admin.client_8.0.0.jar:${WAS_HOME}/com.ibm.ws.security.crypto.jar" #Platform specific args... PLATFORM=`/bin/uname` case $PLATFORM in AIX | Linux | SunOS | HP-UX) CONSOLE_ENCODING=-Dws.output.encoding=console ;; OS/390) CONSOLE_ENCODING=-Dfile.encoding=ISO8859-1 EXTRA_X_ARGS="-Xnoargsconversion" ;; esac # Set java options for performance PLATFORM=`/bin/uname` case $PLATFORM in AIX) PERF_JVM_OPTIONS="-Xms256m -Xmx256m -Xquickstart" ;; Linux) PERF_JVM_OPTIONS="-Xms256m -Xmx256m -Xj9 -Xquickstart" ;; SunOS) PERF_JVM_OPTIONS="-Xms256m -Xmx256m -XX:PermSize=40m" ;; HP-UX) PERF_JVM_OPTIONS="-Xms256m -Xmx256m -XX:PermSize=40m" ;; OS/390) PERF_JVM_OPTIONS="-Xms256m -Xmx256m" ;; esac if [[ -z "${JAASSOAP}" ]]; then JAASSOAP="-Djaassoap=off" fi "${JAVA_EXE}" \ ${PERFJAVAOPTION} \ ${EXTRA_X_ARGS} \ -Dws.ext.dirs="$WAS_EXT_DIRS" \ ${EXTRA_D_ARGS} \ ${WAS_LOGGING} \ ${javaoption} \ ${CONSOLE_ENCODING} \ ${WAS_DEBUG} \ "${CLIENTSOAP}" \ "${JAASSOAP}" \ "${CLIENTSAS}" \ "${CLIENTSSL}" \ "${CLIENTIPC}" \ ${WSADMIN_PROPERTIES_PROP} \ ${WORKSPACE_PROPERTIES} \ "-Duser.install.root=${USER_INSTALL_ROOT}" \ "-Dwas.install.root=${WAS_HOME}" \ "-Dcom.ibm.websphere.thinclient=true" \ "-Djava.security.properties=${WAS_HOME}/properties/java.security" \ ${wsadminTraceFile} \ ${wsadminTraceString} \ ${wsadminValOut} \ ${wsadminHost} \ ${wsadminConnType} \ ${wsadminPort} \ ${wsadminLang} \ -classpath \ "${C_PATH}" \ com.ibm.ws.scripting.WasxShell \ "${nonJavaOption[@]}" exit $?
- (zos) For the z/OS environment, the wsadmin.sh script should have all the properties specified in the wsadmin.bat example listed in Step 4.
Example
%JAVA_EXE% -classpath "%C_PATH%" -Dcom.ibm.websphere.thinclient=true -Duser.install.root=%USER_INSTALL_ROOT% - Dcom.ibm.SSL.ConfigURL=file:%WAS_HOME%/properties/ssl.client.props %SOAPURL% your_class_file ${JAVA_EXE} -classpath "${C_PATH}" -Dcom.ibm.websphere.thinclient=true -Duser.install.root=${USER_INSTALL_ROOT} -Dcom.ibm.SSL.ConfigURL=file:${WAS_HOME}/properties/ssl.client.props ${SOAPURL} your_class_file
Related tasks
Use wsadmin scripting Enable trace on client and stand-alone applications Start the wsadmin scripting client Use the Administration Thin Client