Attempts to use the IBM Rational Integration Tester (RIT) Run Command test action result in a "not found" error or hang.
Commands that run correctly when using interactive login programs do not run through the RIT Run Command test action.
Most likely the user environment has incorrect settings when RIT connects with Run Command and SSH. When RIT connects to a server, RIT connects in a non-interactive way. The login is different from logging in with an interactive application such as Putty. The non-interactive connection does not run all of the user's login scripts.
As a consequence environment variables such as
$PATH might have incorrect values. This means that RIT cannot locate and run programs.
Possibly one of the commands invokes another shell or logs into another system. This subsequent shell takes keyboard input which Run Command is unable to pass through. You need to run all Run Command steps in the same shell.
Resolving the problem
The following steps will help you to resolve the issue, although it might not be possible to automate every remote command using RIT for the reasons mentioned above.
- Verify that the command works as expected when logging into the remote system using an interactive SSH client such as Putty.
- Look at the Run Command information in the Rational Integration Tester Knowledge Center.
- Speak to your system administrator who can help you to debug this issue.
- Log in and verify the settings of the environment variables with an SSH client program against those in Run Command.
You can use test commands such as
echo $PATHin the Run Command window.
Run the user's profile commands before running the actual command.
The following example runs a shell script
$ . ~/.profile ; my_command.sh
Note: Depending on the type of shell configured for the user, you might need to run different profile files.
If you try to use a command that opens another shell or logs into another system, you need to convert both into a single command. This command must invoke the shell and the program together. Speak to your system administrator to see if this is possible.
For example, FTP requires a password to be entered and does not have a command option to pass it.
It also requires commands to be entered.
Create a file containing the FTP login and commands as follows:
user ftp_user ftp_password
cd whatever directory
Run this from the Run Command with:
ftp -n server < myFTPScript