+

Search Tips   |   Advanced Search

Administrative problems with the wsadmin scripting tool

If we do not see our problem here:

If none of these steps fixes our problem, check to see if the problem has been identified and documented by looking at the available online support (hints and tips, technotes, and fixes). If we don't find our problem listed there please contact IBM support.


WASX7016E, WASX7017E, or WASX7209I: Jython scripting language error

The following errors may occur when we run this Jython script:

Jython script

Error Messages

These errors can occur because there are UTF-8 characters in the file that are not valid. The default codepage for RHEL 3 is UTF-8 (en_US.UTF-8). When doing a text file read through Java code, the program assumes all characters are UTF-8 encoded. There might be one or more characters in the file that are not part of the UTF-8 specification, causing the load to fail. An way to determine if a character that is not valid is causing the error is to enter export LANG=C and run the script again. If we determine that the problem is a character that is not valid:

  1. Open a new text reader on the file.

  2. Read it one character at a time.

  3. Print the character that is not valid.

  4. When we press the back characters, we get the exception and will then know which of the characters is causing the error.

  5. Remove any characters that are not valid, then run the script again


"WASX7023E: Error creating "SOAP" connection to host" or similar error trying to launch wsadmin command line utility

By default, the wsadmin utility attempts to connect to an application server at startup. This is because some commands act upon running application servers. This error indicates that no connection could be established.

To resolve this problem:


"com.ibm.bsf.BSFException: error while eval'ing Jacl expression: no such method command name in class com.ibm.ws.scripting.AdminConfigClient" returned from wsadmin command.

This error is usually caused by a misspelled command name. Use the $AdminConfig help command to get information about what commands are available. Note that command names are case-sensitive.

WASX7022E returned from running wsadmin -c ... command, indicating invalid command

If the command following -c appears to be valid, the problem may be caused by the fact that on Unix, using wsadmin -c to invoke a command that includes dollar signs results in the shell attempting to do variable substitution. To confirm that this is the problem, check the command to see if it contains an unescaped dollar sign, for example: wsadmin -c "$AdminApp install ....".

To correct this problem, escape the dollar sign with a backslash. For example: wsadmin -c "\$AdminApp install ...".


(ZOS) WASX7022E returned from running "wsadmin -c ..." command, indicating invalid command

If the command following -c appears to be valid, the problem may be caused by the shell attempting to do variable substitution. Variable substitution can occur on Unix System Services if wsadmin -c invokes a command that is enclosed in double quotes and includes dollar signs. To confirm that this is the problem, check the command to see if it contains an unescaped dollar sign, for example: wsadmin -c "$AdminApp install ....".

To correct this problem, escape the dollar sign with a backslash. For example: wsadmin -c "\$AdminApp install ...".

When the command is enclosed in single quotes, the shell does not attempt to do variable substitution. Therefore, we do not need to escape the dollar sign. Example: wsadmin.sh -c "$AdminApp install ..."


com.ibm.ws.scripting.ScriptingException: WASX7025E: String """"is malformed; cannot create ObjectName

One possible cause of this error is an empty string was specified for an object name. This can happen if we use one scripting statement to create an object name and the next statement to use that name, perhaps in an "invoke" or "getAttribute" command, but we don't check to see if the first statement really returned an object name. For example (the following samples use basic Jacl commands in addition to the wsadmin Jacl extensions to make a sample script):

To correct this error, make sure that object name strings have values before using them. For example:

For details on Jacl syntax beyond wsadmin commands, refer to the Tcl developers' site, http://www.tcl.tk.


"The input line is too long" error returned from the wsadmin command on a Windows platform

This error indicates that the Windows command line limit of 2048 characters has been exceeded, probably due to a long profile path used within the wsadmin.bat command. You may get this error when running wsadmin in a Windows command prompt or calling wsadmin from a .bat file, an ant build file, or Profile Management Tool. If this error results in running wsadmin other than from the Profile Management Tool, avoid the problem using the Windows subst command, which allows us to map an entire path to a virtual drive. To see the syntax of the subst command, enter help subst from a Windows command prompt.

For example, if the product resides in the app_server_root directory, edit...

...and set...

Then edit the setupCmdLine.bat file residing in the bin directory of our profile as follows:

If this error occurred while running the Profile Management Tool, we have to rerun the Profile Management Tool to provide a shorter profile path with a shorter profile name. If this does not fix the problem, follow the same instructions to edit the setupCmdLine.bat file in the bin directory of our WAS installation. After editing the file, rerun the Profile Management Tool. If the same problem persists, reinstall WAS with a shorter installation root directory path.

IBM Support has documents that can save you time gathering information needed to resolve this problem. Before opening a PMR, see the IBM Support page.


WASX701E: Exception received while running file "scriptName.jacl"; exception information: com.ibm.bsf.BSFException: error while evaluating Jacl expression: missing close-bracket

This error is caused by a mix-up between the code page that the scripting client expects to see and the code page in which the Jacl script was written.

To fix this problem, set the -Dscript.encoding=script codepage option in the wsadmin.sh or wsadmin.bat file to the code page of the Jacl script. The following guideline will help you to determine the code page of the script:

WASX7015E: Exception running command: "source c: ..."; exception information: com.ibm.bsf.BSFException: error while evaluating Jacl expression: couldn't read file "c: ..."

This error is caused using a backslash ( \ ) instead of a forward slash ( / ) when running the wsadmin command to source a Jacl script in a Windows environment. The file path cannot contain the backslash ( \ ); for example, wsadmin > source c:\temp\test.jacl. The file path must use the forward slash ( / ) as the path separator; for example, wsadmin > source c:/temp/test.jacl.

To correct this problem use the forward slash ( / ) in the file path when using the wsadmin command to source a Jacl script in a Windows environment:


Unexpected error CWSIV0806E in WebSphere log following deletion of an outbound service

This error occurs when an exception is issued for destination MPOutBoundServicePortDestination, on messaging engine trueliesNode01.server1-FVTSIBus01, on bus FVTSIBus01, for endpoint activation:

We can ignore this error; it is benign.


Separator exception

We must use forward slashes (/) as your path separator. Backward slashes (\) will not work.


Enable authentication in the file transfer service

The file transfer service provides role-based authentication. Two versions of the file transfer web application are provided. By default, the version that does not authenticate its caller is installed. This default supports compatibility between the WAS ND, v5.0 and v5.0.1 or later. Turning the file transfer authentication on is recommended to prevent unauthorized use of the file transfer application. However, if we have any v5.0 clients in the WAS ND environment, they will not be able to communicate with the secured file transfer application if global security is turned on.

In WAS v6.x, mixed cells are supported and file transfer has become a system application. If all of the nodes in the cell are of v5.0.1 or later, we can activate authentication in the file transfer service by redeploying the file transfer application at the deployment manager. The compatible version is shipped in the ${app_server_root}/systemApps/filetransfer.ear directory. The secured version is provided in the ${app_server_root}/systemApps/filetransferSecured.ear directory.

A wsadmin Jacl script is provided to help you redeploy file transfer. The script is redeployFileTransfer.jacl and we can find it in the ${app_server_root}/bin directory. After the deployment manager and all the nodes are at v5.0.1 or later, we can deploy the secured file transfer service by running the script. The syntax for running the script from the bin directory includes the following:

where "Xxx" is "On" or "Off".

For example, when running the script to enable use of the filetransferSecured.ear, the syntax is similar to the following example:

...or...

To go back to run the file transfer service without authentication, we can run the script as shown in the following example:

...or...


The format of "$AdminConfig list" output changed in V6.0

If we have a script that parses the output of $AdminConfig list, such as $AdminConfig list Node, we might receive errors, such as "Node not found". Scripts should not parse the output of $AdminConfig; however, if we have a script that does this parsing, it must be updated for WAS V6.0 to reflect changes to the output format.


We are not prompted for user ID and password after applying V6.0.2 service if we use an existing 6.0 profile

If security is enabled, executing a .bat file requires a user ID and password. On V6.0.2, a new feature is introduced to prompt you for a user ID and password if they are not supplied in the command line. However, this feature is not available for profiles that were created at the 6.0 level.

Property files for profiles created at the V6.0 level are not updated after applying the V6.0.2 refresh pack.

There are two solutions to this problem:

  1. Create a new profile after applying the V6.0.2 service. This new profile contains all the updated property files and we will then be prompted for a user ID and password.

  2. To keep the existing V6.0 profile and use the new prompt feature, we must manually update three files:

    • for app_server_root/properties/soap.client.props, add the following line:

      com.ibm.SOAP.loginSource=prompt

    • for app_server_root/properties/wsjaas_client.conf, add the following lines:

        WSAdminClientLogin {com.ibm.ws.security.common.auth.module.proxy.WSLoginModuleProxy required delegate=com.ibm.ws.security.common.auth.module.WSAdminClientLoginModuleImpl;};

    • for app_server_root/bin/setupCmdLine.bat add the following line:

        SET JAASSOAP=-Djava.security.auth.login.config=app_server_root/properties/wsjaas_client.conf


When running the $AdminApp searchJNDIReferences command with the JNDI name of a message destination, the message destination reference is not returned

This problem occurs when the command $AdmnApp searchJNDIReferences is run with the JNDI name of a message destination. The command cannot collect the message destination reference defined in the application deployment descriptor. The message destination that we configured for the application server is defined with a message destination link on not one element, but two: both a message-driven bean (MDB) and a message destination reference.

Currently there is no workaround for this problem. The $AdmnApp searchJNDIReferences command cannot return a reference for a message destination that is defined on two elements.


AWXJR0006E: The file, {0}, was not found.

This problem occurs when we attempt to configure a JACC provider for the ISAM using the wsadmin tool in a deployment manager environment with or without nodes added. You enter a deployment manager node name, for example, t54Manager, instead of an asterisk (*) for all nodes. The wsadmin command finishes successfully but when we try to add a new node and start the node, or start an existing node, we receive an error in the nodeagent SystemOut.log file similar to the following:

To workaround this problem, unconfigure the existing ISAM configuration and configure it again using an asterisk (*) for the node name, for example:

(UNIX)

WASX7022E: Problem running command "import sys" -- exception information: com.ibm.bsf.BSFException: unable to load language

This problem may be caused by a limitation on some UNIX platforms, for example, Linux, when attempting to use the Jython language.

To workaround this problem...

  1. Check the number of open files that we are allowed to have on the machine, for example: ulimit -a

  2. Check the number of open files that we have set on the machine. The default is 1024.

  3. Change it to a higher number, for example: ulimit -n 2048
  4. Try to use the wsadmin tool again with the Jython language.


(ZOS) WASX7017E: Exception received while running file "<application stopping script>"

WASX7017E: Exception received while running file "<application stopping script>"; exception information: javax.management.MBeanException com.ibm.ws.exception.RuntimeWarning: Application <appname> not started

While using scripting, this error is issued when you stop an application already stopped or start an application already running.


Related:

  • Troubleshoot and support
  • Troubleshoot administration