managesdk command
The managesdk command provides the names of software development kits that are used by the product.
- List the software development kit (SDK) names that are available to a product installation.
- List the SDK names that a specified profile is currently configured to use.
- For each profile in a product installation, list the SDK names that the profile is currently configured to use.
- Enable a profile to use a specified SDK name.
- Enable all profiles in an installation to use a specified SDK name.
- Get the SDK name that is used to configure new profiles.
- Change the default SDK name that profiles use.
- Get the SDK name that is used by scripts called from a product bin directory.
- Change the SDK name that scripts in a product bin directory use by default. The SDK name is used when no existing profile name is specified and the default profile name is not applicable.
The command file is located in the app_server_root/bin directory and app_client_root/bin directory.
See the Usage scenario section in this topic for an example sequence of managesdk commands to use to list profiles and the SDKs they use, list available SDKs, change the default SDK to a different SDK version, and enable the profiles to use the other SDK version.
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 WebSphere® Application Server product, including the IBM WebSphere Relational Resource Adapter, the IBM® 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.
The managesdk command provides function that replaces the enableJvm command. The enableJvm command is deprecated. Use the managesdk command, instead of the enableJvm command.
- If you use the managesdk command in a federated cell, and enable an SDK on a node, the SDK isn't found by the command unless the node agent has been restarted while the deployment manager is running.
If you install a new SDK onto an existing copy of WebSphere Application Server for z/OS, each application server node or management node must be restarted before you can use the SDK on that node. When the node is restarted, the postinstaller creates the required symbolic links from the configuration file system to the product file system that contains the new SDK.
- If a root user runs the managesdk command against a non-root profile,
non-root users might encounter a
Permission denied
error when they attempt to start the server or run the managesdk command. To resolve this error, reassign profile ownership to the non-root user. For more information, see Assigning profile ownership to a non-root user.
Syntax
Use the following command syntax with the managesdk command:
managesdk -task [-parameter] [value]
The command-line tool validates that the requested task contains the required parameters and values. Parameters are not case-sensitive. However, values are case-sensitive. You must type values with the correct capitalization because the command-line tool does not validate the capitalization of the parameter values. Incorrect results can occur when the parameter value is not typed correctly.
Parameters
The following -task options are available for the managesdk command:
- -help
- Displays detailed information about the parameters or values of each
managesdk task. The following example uses the help parameter with the
managesdk command:
app_server_root/bin/managesdk.sh -help
app_server_root/bin/managesdk -help
app_server_root\bin\managesdk.bat -help
The output from the help option describes the required and optional parameters.
- -listAvailable [-verbose]
- Displays a list of all SDK names available to the product installation. When the -verbose option
is also specified, a list of properties for each SDK name also is displayed. The following example
uses the -listAvailable -verbose parameters with the managesdk command:
app_server_root/bin/managesdk.sh -listAvailable -verbose
app_server_root/bin/managesdk -listAvailable -verbose
app_server_root\bin\managesdk.bat -listAvailable -verbose
The output is a list of all SDK names that the product installation can use, along with a list of the properties associated with each SDK name.
- -listEnabledProfile [-profileName profile_name] [-verbose]
- Displays a list of all SDK names that a specified profile, and its node and servers, is
currently configured to use. When the -verbose option is also specified, a list of properties for
each SDK name also is displayed. The following example uses the -listEnabledProfile -profileName and
-verbose parameters with the managesdk command:
app_server_root/bin/managesdk.sh -listEnabledProfile -profileName AppSrv02 -verbose
app_server_root/bin/managesdk -listEnabledProfile -profileName AppSrv02 -verbose
app_server_root\bin\managesdk.bat -listEnabledProfile -profileName AppSrv02 -verbose
The output is a list of all SDK names that the specified profile can use, along with a list of the properties associated with each SDK name.
- -listEnabledProfileAll [-verbose]
- Displays a list of all profiles in an installation and the SDK names that each profile, and its
node and servers, is currently configured to use. When the -verbose option is also specified, a list
of properties for each SDK name also is displayed. The following example uses the
-listEnabledProfileAll and -verbose parameters with the managesdk command:
app_server_root/bin/managesdk.sh -listEnabledProfileAll -verbose
app_server_root/bin/managesdk -listEnabledProfileAll -verbose
app_server_root\bin\managesdk.bat -listEnabledProfileAll -verbose
The output is a list of all profiles in a product installation with all SDK names that each profile can use, along with a list of the properties associated with each SDK name.
- -enableProfile [-profileName profile_name] [-sdkname sdkName] [-enableServers] [-user user_name] [-password password_value]
- Enables a profile to use a specified SDK name. The -profileName parameter specifies the profile
and the -sdkname parameter specifies the SDK name. The command enables the profile and the
node-level default SDK of the profile to use the specified SDK name. WebSphere Application Server profiles have a profile wide (node) JDK setting. If
no specific Server-level JDK is set, the WebSphere Application Servers
inherit the JDK configured at the profile (node) level.
If a specific server-level JDK is set from a specific profile's client scripts and tools, you can change this specific server-level JDK setting to be the server-level JDK setting at the profile (node) level. To make this change, you use the managesdk command with the -enableProfile and -enableServers parameters. Using the -enableServers parameter clears out all the SDK configuration settings for the client's profile and allows the client server to inherit the JDK configured at the profile (node) level. If you do not use the -enableServers option in the managesdk command, the server-level SDK settings are not changed.
Attention: In the system, there exists a node-scoped JDK and a server-scoped JDK. If no server-scoped JDK is configured, then the servers inherit the node-scoped JDK. If the servers define the server-scope JDK then the servers will use that server-scoped JDK instead of the node scoped JDK.The following conditions apply when the managesdk command is run:The following example uses -enableProfile, -profileName, -sdkname, and -enableServers with the managesdk command:
app_server_root/bin/managesdk.sh -enableProfile -profileName AppSrv02 -sdkname 1.6_32 -enableServers
app_server_root/bin/managesdk -enableProfile -profileName AppSrv02 -sdkname 1.6_32 -enableServers
app_server_root\bin\managesdk.bat -enableProfile -profileName AppSrv02 -sdkname 1.6_32 -enableServers
app_server_root/bin/managesdk.sh -enableProfile -profileName AppSrv02 -sdkname 1.6_64 -enableServers
The output is a message that indicates whether the specified profile was successfully updated and is now enabled to use the specified SDK, or whether problems were encountered that prevented the profile from being successfully updated.
- -enableProfileAll [-sdkname sdkName] [-enableServers] [-user user_name] [-password password_value]
- Enables all profiles in an installation to use a specified SDK name. The -sdkname parameter
specifies the SDK name. The command enables all profiles and the node-level default SDK of each
profile to use the specified SDK name. WebSphere Application Server profiles
have a profile wide (node) JDK setting. If no specific Server-level JDK is set, the WebSphere Application Servers inherit the JDK configured at the profile (node)
level.
If a specific server-level JDK is set from a specific profile's client scripts and tools, you can change this specific server-level JDK setting to be the server-level JDK setting at the profile (node) level. To make this change, you use the managesdk command with the -enableProfile and -enableServers parameters. Using the -enableServers parameter clears out all the SDK configuration settings for the client's profile and allows the client server to inherit the JDK configured at the profile (node) level. If you do not use the -enableServers option in the managesdk command, the server-level SDK settings are not changed.
Attention: In the system, there exists a node-scoped JDK and a server-scoped JDK. If no server-scoped JDK is configured, then the servers inherit the node-scoped JDK. If the servers define the server-scope JDK then the servers will use that server-scoped JDK instead of the node scoped JDK.The following conditions apply when the managesdk command is run:The following example uses -enableProfileAll, -sdkname, and -enableServers with the managesdk command:
app_server_root/bin/managesdk.sh -enableProfileAll -sdkname 1.6_32 -enableServers
app_server_root/bin/managesdk -enableProfileAll -sdkname 1.6_32 -enableServers
app_server_root\bin\managesdk.bat -enableProfileAll -sdkname 1.6_32 -enableServers
app_server_root/bin/managesdk.sh -enableProfileAll -sdkname 1.6_64 -enableServers
The output is a message for each profile that indicates whether the profile was successfully updated and is now enabled to use the specified SDK, or whether problems were encountered that prevented the profile from being successfully updated.
- -getNewProfileDefault [-verbose]
- Displays the SDK name that is currently configured for all profiles that are created with the
manageprofiles command. When the -verbose option is also specified, properties
information for the single SDK name also is displayed.
The following example uses the -getNewProfileDefault -verbose parameters with the managesdk command:
app_server_root/bin/managesdk.sh -getNewProfileDefault -verbose
app_server_root/bin/managesdk -getNewProfileDefault -verbose
app_server_root\bin\managesdk.bat -getNewProfileDefault -verbose
After the command runs, the new profile default SDK name is displayed.
- -setNewProfileDefault [-sdkname sdkName]
- Changes the SDK name that is currently configured for all profiles that are created with the
manageprofiles command. The -sdkname parameter specifies the default SDK name to
use. The sdkName value must be an SDK name that is enabled for the product
installation.
The following example uses the -setNewProfileDefault -sdkname parameters with the managesdk command:
app_server_root/bin/managesdk.sh -setNewProfileDefault -sdkname 1.6_32
app_server_root/bin/managesdk -setNewProfileDefault -sdkname 1.6_32
app_server_root\bin\managesdk.bat -setNewProfileDefault -sdkname 1.6_32
app_server_root/bin/managesdk.sh -setNewProfileDefault -sdkname 1.6_64
After the command runs, the new profile default SDK name is displayed.
- -getCommandDefault [-verbose]
- Displays the SDK name that script commands in the
app_server_root/bin,
app_client_root/bin, or
plugins_root/bin directory are enabled to use when no
profile is specified by the command and when no profile is defaulted by the command. When the
-verbose option is also specified, properties information for the single SDK name also is displayed.
The following example uses the -getCommandDefault -verbose parameters with the managesdk command:
app_server_root/bin/managesdk.sh -getCommandDefault -verbose
app_server_root/bin/managesdk -getCommandDefault -verbose
app_server_root\bin\managesdk.bat -getCommandDefault -verbose
- -setCommandDefault [-sdkname sdkName]
- Changes the SDK name that script commands in the
app_server_root/bin,
app_client_root/bin, or
plugins_root/bin directory are enabled to use when no
profile is specified by the command and when no profile is defaulted by the command. The -sdkname
parameter specifies the SDK name to use for commands. The sdkName value must be
an SDK name that is enabled for the product installation.
The following example uses the -getCommandDefault -sdkname parameters with the managesdk command:
app_server_root/bin/managesdk.sh -setCommandDefault -sdkname 1.6_32
app_server_root/bin/managesdk -setCommandDefault -sdkname 1.6_32
app_server_root\bin\managesdk.bat -setCommandDefault -sdkname 1.6_32
app_server_root/bin/managesdk.sh -setCommandDefault -sdkname 1.6_64
The following special parameter options are available with task parameters of the managesdk command:
- -debug
- Use this option with any -task parameter to enable additional debugging information in the command output.
- -quiet
- Use this option with any -task parameter to suppress most messages in the command output.
- -sdkname
- Use this option with a -set task parameter to specify an SDK name that is enabled for the
product installation; for example:
-sdkname 1.6_32
-sdkname 1.6_31
- -verbose
- Use this option with any -list or -get task parameter to provide additional information, such as SDK properties in the command output.
Usage scenario
The following examples demonstrate correct syntax when you run the managesdk command:
managesdk -listAvailable -verbose
managesdk -listEnabledProfile -profileName AppSrv02 -verbose
managesdk -listEnabledProfileAll
managesdk -listEnabledProfileAll -verbose
managesdk -enableProfile -profileName AppSrv02 -sdkname 1.8_32 -enableServers
managesdk -enableProfileAll -sdkname 1.8_32 -enableServers
managesdk -getNewProfileDefault -verbose
managesdk -setNewProfileDefault -sdkname 1.8_32
managesdk -getCommandDefault -verbose
managesdk -setCommandDefault -sdkname 1.8_32
The following example demonstrates the sequence of commands to use to list profiles and the SDKs they use, list available SDKs, change the default SDK to a Version 8.0 SDK and, if profiles exist already, enable the profiles to use the Version 8.0 SDK.
- Optionally, view a list of all profiles in an installation and the SDK names that each profile,
and its node and servers, is currently configured to
use:
managesdk -listEnabledProfileAll
- Optionally, view a list of available SDK names for the product
installation:
managesdk -listAvailable
- Set the command default to the Version 8.0
SDK:
managesdk -setCommandDefault -sdkname 1.8_32
- Set the new profile default to the Version 8.0
SDK:
managesdk -setNewProfileDefault -sdkname 1.8_32
- If profiles already exist, enable the profiles to use the Version 8.0
SDK:
managesdk -enableProfileAll -sdkname 1.8_32 -enableServers
To change federated profiles in a Network Deployment installation, the deployment manager must be running. The managesdk command updates the master configuration repository. After the command runs, a synchronization operation must occur before the new SDK can be used for the federated profiles.