OSH program

Orchestrate® Shell (OSH) is a program that is patterned on a UNIX shell that implements a text-based command language (also called OSH), and that controls the parallel processes that implement a job.

When you run a job in the IBM® InfoSphere® DataStage® and QualityStage® Designer client or the InfoSphere DataStage and QualityStage Director client, two events occur:
  1. The client generates several internal text files and sends them to the parallel engine.
  2. After the text files are delivered, the client signals the server to start a program that is called OSH.

The OSH program implements all the functions of the parallel engine, such as process synchronization, messaging, performance logging, and monitoring.

You can start the OSH program from a command line if all required environment variables are set. You can use the OSH command line for job development and debugging or when you want to use other command-line tools to control the parallel engine.

The OSH command-line displays messages for syntax errors. These OSH messages are not usually displayed unless you are using the command line directly.

Many messages from the parallel engine explain errors about the OSH syntax or parameter values. Because a job compilation typically produces the correct OSH code, you do not see these types of error messages. However, the following situations might cause you to see the OSH-related messages:
  • You can write OSH code directly or change the .osh files that the Designer client generates when a job is complied. If changes to the OSH code introduce errors, then the parallel engine generates these messages. It is possible that you can correct the changes that you wrote in the OSH code or changes in the .osh file to resolve these errors.
  • You can use job parameters to insert values into Designer client that cannot be validated until a job is run. For example, suppose that a stage property page requires a value be an integer. If you use a job parameter that specifies a text string, the parallel engine generates an error that normally would not be shown in the Designer client.
  • You can use the Generic stage, which is a processing stage, to call an Orchestrate operator from within a stage and pass its options as required. Because you can pass options with the Orchestrate operator, an error can occur if option names, option values, or both, are not specified correctly. It is possible to resolve these errors by correcting the changes that you made in the OSH code.
  • You can implement OSH code directly by using the Specification property of the Modify stage in the Designer client. Much like the Generic stage, implementing your own OSH code can cause errors if the correct options and values are not specified. It is possible to resolve these errors by correcting the changes that you made in the OSH code.

If you receive an OSH-related message, but you are confident that a job is not modifying the OSH code that the Designer client generated, then follow the procedures for reporting an internal program error to IBM Software Support.