AdminSDKCmds (AdminTask)
We can use commands and parameters in the AdminSDKCmds group in the Jython or Jacl scripting languages to manage software development kit configurations.
Use commands in the AdminSDKCmds group (AdminTask), we can see what software development kits are not used by a node, get or set the default software development kit (SDK) for a node, and get or set an SDK for a server.
The AdminSDKCmds (AdminTask) includes the following commands:
Every WebSphere Application Server version and operating system has a default SDK. For example, the default SDK for WebSphere Application Server Version 8 on workstations might be 1.6_32 for 32-bit operating systems and 1.6_64 for 64-bit operating systems. The name of an SDK installed at a particular computer location must be unique. On workstations, the default SDK is installed in a directory name that starts with ${WAS_HOME}/java for both 32- and 64-bit operating systems; for example, ${WAS_HOME}/java, ${WAS_HOME}/java_1.6_32, or ${WAS_HOME}/java_1.6_64.
(zos) The z/OS operating system has 64-bit and 31-bit modes, and does not have a 32-bit mode. An SDK name on 31-bit systems resembles 1.6_31.
(iseries) For the OS/400 operating system, the software development kits are part of the operating system installation and are not part of the WAS installation. For the OS/390 operating system, symbolic links to the software development kits are in ${WAS_HOME}/java* directories.
The AdminSDKCmds wsadmin commands pertain to SDKs used by nodes or servers. To list and change the default SDK for a profile, use the managesdk command-line utility.
Attention: If the managesdk command is used to change the SDK for a profile from a 31-bit (z/OS) or 32-bit (IBM i) SDK to a 64-bit SDK, and you are using third-party resource adapters, consider the following information to avoid potential problems. This information does not apply to any of the built-in resource adapters shipped with the WAS product, including the IBM WebSphere Relational Resource Adapter, the WebSphere MQ Resource Adapter, or the IBM SIB JMS Resource Adapter as they have been fully tested to work with all IBM SDKs. Because resource adapters can use non-Java libraries containing platform-specific native code, it is possible that changing the SDK from 31-bit (z/OS) or 32-bit (IBM i) to 64-bit, or from 64-bit to 31-bit or 32-bit, might result in the resource adapter not functioning properly. If a third-party resource adapter is installed, either stand-alone or embedded in an enterprise application, on a server for which you intend to change the SDK, verify with the supplier of that resource adapter that any native libraries it uses are compatible with the selected SDK.
getNodeDefaultSDK
Use the getNodeDefaultSDK command to return the values of the default SDK for a node. The returned values include the Java home and SDK name.
Target object: None
Required parameters
- -nodeName
- Name of the node whose default SDK values we want returned. (String, required)
Optional parameters
None
Batch mode example
- Jacl:
$AdminTask getNodeDefaultSDK {-nodeName myNode}
- Jython string...
AdminTask.getNodeDefaultSDK('[-nodeName myNode]')
- Jython list:
AdminTask.getNodeDefaultSDK(['-nodeName', 'myNode'])
Interactive mode
- Jacl:
$AdminTask getNodeDefaultSDK {-interactive}
- Jython:
AdminTask.getNodeDefaultSDK('[-interactive]')
getSDKVersion
Run the getSDKVersion command to return the version number of the software development kit in use.
To get the SDK version in use in the cell, do not specify values for -nodeName, -serverName, or -clusterName.
Target object: None
Required parameters
None
Optional parameters
- -nodeName
- Name of the node whose SDK version we want returned. Do not specify a -clusterName value with a -nodeName value. (String, optional)
- -serverName
- Name of the server whose SDK version we want returned. If we specify a -serverName value, specify a -nodeName value as well and do not specify a -clusterName value. (String, optional)
- -clusterName
- Name of the cluster whose SDK version we want returned. If we specify a -clusterName value, do not specify a -nodeName or -serverName value. (String, optional)
- -highest
- Whether to return the highest SDK version number. By default, the lowest SDK version number is returned. (Boolean, optional)
Batch mode example
- Jacl:
$AdminTask getSDKVersion {-nodeName myNode -serverName myServer}
- Jython string...
AdminTask.getSDKVersion('[-nodeName myNode -serverName myServer]')
- Jython list:
AdminTask.getSDKVersion(['-nodeName', 'myNode', ' -serverName', 'myServer'])
Interactive mode
- Jacl:
$AdminTask getSDKVersion {-interactive}
- Jython:
AdminTask.getSDKVersion('[-interactive]')
getServerSDK
Use the getServerSDK command to return the values of the software development kit for a server. If a valid SDK value is set for the server, the returned values include the Java home and SDK name of the default SDK for the server.
If no SDK value is set for the server, the command returns nothing for the Java home value because a variables.xml file does not exist for the server or a JAVA_HOME entry does not exist in the variables.xml file. For the SDK name value, the command returns the node SDK name because the node SDK is the default SDK for a server when a valid SDK has not yet been set using the setServerSDK command.
Target object: None
Required parameters
- -nodeName
- Name of the node on which the server runs. (String, required)
- -serverName
- Name of the server whose SDK values we want returned. (String, required)
Optional parameters
- -checkOnly
- Whether to check only the variable. (Boolean, optional)
Batch mode example
- Jacl:
$AdminTask getServerSDK {-nodeName myNode -serverName myServer}
- Jython string...
AdminTask.getServerSDK('[-nodeName myNode -serverName myServer]')
- Jython list:
AdminTask.getServerSDK(['-nodeName', 'myNode', '-serverName', 'myServer'])
Interactive mode
- Jacl:
$AdminTask getServerSDK {-interactive}
- Jython:
AdminTask.getServerSDK('[-interactive]')
getUnusedSDKsOnNode
Run the getUnusedSDKsOnNode command to return a list of the names of software development kits that a node is not using.
Target object: None
Required parameters
- -nodeName
- Name of the node whose unused SDK names we want returned. (String, required)
Optional parameters
None
Batch mode example
- Jacl:
$AdminTask getUnusedSDKsOnNode {-nodeName myNode}
- Jython string...
AdminTask.getUnusedSDKsOnNode('[-nodeName myNode]')
- Jython list:
AdminTask.getUnusedSDKsOnNode(['-nodeName', 'myNode'])
Interactive mode
- Jacl:
$AdminTask getUnusedSDKsOnNode {-interactive}
- Jython:
AdminTask.getUnusedSDKsOnNode('[-interactive]')
setNodeDefaultSDK
Use the setNodeDefaultSDK command to assign a default software development kit for a node. For the command, specify either the SDK Java home or the SDK name, but not both.
Avoid trouble:
- If we change the node SDK, ensure that the options and properties for the Java command are compatible with the new SDK. See Configuring the JVM.
- If the SDK you are assigning as the default SDK is installed on a managed node, ensure that the node agent on that managed node has been restarted at least once since the SDK was installed. The deployment manager is not aware of a newly installed SDK until after the node agent is restarted.
gotcha
Target object: None
Required parameters
- -nodeName
- Name of the node for which to set a default SDK. (String, required)
Optional parameters
To set a node default SDK, specify the required -nodeName parameter with either -javahome or -sdkName. Both the -javahome and -sdkName parameters are optional but specify either one of the parameters.
To clear all SDK settings for all servers on a node, specify the required -nodeName parameter with either -javahome or -sdkName and with the optional -clearServerSDKs parameter set to true.
- -javahome
- Specifies the Java home of the SDK we want the node to use. If we specify a -javahome value, do not specify a value for the -sdkName parameter. (String, optional)
- -sdkName
- Name of the SDK we want the node to use. If we specify a value for this -sdkName parameter, do not specify a value for the -javahome parameter. (String, optional)
- -clearServerSDKs
- Specifies to clear any SDK value settings for all servers on a node. (Boolean, optional)
To clear SDK value settings for all servers on a node, specify true for -clearServerSDKs. After the server SDK value settings are cleared, servers use the SDK value setting for the node.
Batch mode example
- Jacl:
$AdminTask setNodeDefaultSDK {-nodeName myNode -sdkName 1.6_32}
$AdminTask setNodeDefaultSDK {-nodeName myNode -sdkName 1.6_32 -clearServerSDKs true}
- Jython string...
AdminTask.setNodeDefaultSDK('[-nodeName myNode -sdkName 1.6_32]')
AdminTask.setNodeDefaultSDK('[-nodeName myNode -sdkName 1.6_32 -clearServerSDKs true]')
- Jython list:
AdminTask.setNodeDefaultSDK(['-nodeName', 'myNode', '-javahome', '${JAVA_LOCATION_1.6_32}'])
AdminTask.setNodeDefaultSDK(['-nodeName', 'myNode', '-sdkName', '1.6_32', '-clearServerSDKs', 'true'])
Interactive mode
- Jacl:
$AdminTask setNodeDefaultSDK {-interactive}
- Jython:
AdminTask.setNodeDefaultSDK('[-interactive]')
setServerSDK
Use the setServerSDK command to assign a software development kit for a server. The command creates a variables.xml file for the server that designates the SDK. For the command, specify either the cluster or both the node and server. Optionally specify either the SDK Java home or the SDK name, but not both.
To clear the server SDK assignment, do not specify values for SDK Java home or the SDK name. For example, if server1 is assigned SDK 1.6_32, run setServerSDK without the -javahome and -sdkName parameters to have no SDK assigned for server1.
Avoid trouble: If we change the server SDK, ensure that the options and properties for the Java command are compatible with the new SDK. See Configuring the JVM.gotcha
Target object: None
Required parameters
None
Optional parameters
- -nodeName
- Name of the node on which the server runs. If we specify a -nodeName value, specify a -serverName value as well and do not specify a -clusterName value. (String, optional)
- -serverName
- Name of the server for which to set an SDK. If we specify a -serverName value, specify a -nodeName value as well and do not specify a -clusterName value. (String, optional)
- -clusterName
- Name of the cluster for which to set an SDK. When the parameter is specified, the cluster member template for the cluster is also set to use the new SDK name or SDK Java home. Any subsequent cluster member created in the cluster uses the new SDK name or Java home. If we specify a -clusterName value, do not specify a -nodeName or -serverName value. (String, optional)
- -javahome
- Specifies the Java home of the SDK we want the server to use. If we specify a -javahome value, do not specify a value for the -sdkName parameter. (String, optional)
- -sdkName
- Name of the SDK we want the server to use. If we specify a value for this -sdkName parameter, do not specify a value for the -javahome parameter. (String, optional)
Batch mode example
- Jacl:
$AdminTask setServerSDK {-nodeName myNode -serverName myServer -sdkName 1.6_32}
- Jython string...
AdminTask.setServerSDK('[-nodeName myNode -serverName myServer -sdkName 1.6_32]')
- Jython list:
AdminTask.setServerSDK(['-nodeName', 'myNode', '-serverName', 'myServer', '-javahome', '${JAVA_LOCATION_1.6_32}'])
Interactive mode
- Jacl:
$AdminTask setServerSDK {-interactive}
- Jython:
AdminTask.setServerSDK('[-interactive]')
Related tasks
Use the wsadmin scripting AdminTask object for scripted administration Configure the JVM
ManagedObjectMetadata (AdminTask) Commands (AdminTask) managesdk command