Input redirection needs to be from a file, a here document or -string, or a process substitution (latter in recent shells), which none of your positional parameters is. Try using either of above.
Unless you find a way to massage the function/effect/output of the MQ command into any of the above, you're doomed.
IF you want redirection, that is. From your wording I infer you might need sth else. Do you?
Do you mean those arguments are things you'd usually be typing into the script? < expects a filename, to feed text into it you'll want a pipe. Maybe something like:
echo "Welcome to $1"
# Put $2 and $3 inside double quotes to prevent them splitting upon spaces
echo "$3" | runmqsc "$2"
It's also important to note that your requirements are broken, these won't work:
Requirement 2:
./hi.sh "xclx111" "QASSSSS" 'DISPLAY QS("hi")'[/code] ...as long as you're aware that variables don't expand inside single quotes. You couldn't do 'DISPLAY QS("$shellvariable")' and expect $shellvariable to be substituted.
If you can do "DEFINE QL('$shellvariable')" that's quite okay.
You can also escape things with \ inside double-quotes like "DEFINE QL(\"value\")"