MQSeries for Compaq NonStop Kernel supports the languages and environments
described in Table 17. The table also describes whether the application can
use FASTPATH or STANDARD bindings.
Table 17. Summary of supported languages and environments
Language
| Runs on Guardian?(NOTHREAD)
| Runs on OSS?
| Can use STANDARD binding?
| Can use FASTPATH binding?(NOTHREAD)
|
C native
| Yes
| Yes
| Yes
| Yes
|
C non-native
| Yes
| No
| Yes
| No
|
COBOL native
| Yes
| Yes
| Yes
| Yes
|
COBOL non-native
| Yes
| No
| Yes
| No
|
C++ native
| Yes
| Yes
| Yes
| Yes
|
TAL non-native
| Yes
| No
| Yes
| No
|
NonStop Java(NSJAVA)
| No
| Yes
| Yes
| No
|
Notes:
- The Guardian environment and FASTPATH-bound OSS applications
cannot use threads. Only OSS STANDARD-bound and Java can use
threads. For more information on using threads in your application, see
Considerations for creating applications with threads.
- NonStop Java applications use the Java Transaction Services
(JTS) for transactions.
- A native application that uses FASTPATH binding may resolve the MQI only
through MQSeries for Compaq NonStop Kernel's Shared Resource
Library. A native application that uses STANDARD bindings is able to
resolve the MQI using either MQSeries for Compaq NonStop Kernel's Shared
Resource Library or a static Native MQI library. For more information
about FASTPATH and STANDARD binding, see FASTPATH versus STANDARD bindings.
Guardian applications do not support threads. They may implement
their own cooperative threading mechanism, but the rules for using the MQI
from the Guardian environment must be obeyed for the process that is using
it.
In the OSS environment, a thread emulation package based on POSIX threads
is available. The emulation implements a cooperative scheduling
mechanism where a thread must give up execution control before the code in any
other thread can execute. Applications can use this threading package
to organize processing into threads, but the following restrictions
apply:
- The MQI does not support cooperative scheduling between threads.
This means that when the MQI is called from an application thread, no other
thread can obtain execution control, regardless of how long it takes.
For example, if a thread calls MQGET with the "wait indefinitely" option,
no other thread can execute in the application process until the MQGET
returns.
- FASTPATH-bound applications running in an OSS environment cannot use
threads.
- The queue manager does not support multi-threaded Local Queue Manager
Agents (LQMA or MQLQMAG processes) or Message Channel Agents (MCAs).