Table 1‑1 defines each component of an OpenVMS file specification.
Table 1‑1 OpenVMS Components OpenVMS has several naming conventions. Table 1‑2 lists valid file extensions and how they are interpreted by OpenVMS and Oracle Tuxedo.
Table 1‑2 Valid File Extensions
Note: The .EXE extension is not required for server names listed in the UBBCONFIG file. If the extension is required to make a server executable, Oracle Tuxedo adds it to the server name at runtime.All environment variables needed by Oracle Tuxedo applications should be defined as logical names. For example, the TUXCONFIG, FLDTBLDIR32, FIELDTBLS32, VIEWDIR32, and VIEWFILES32 variables need to be defined as logical names. These names should be specified in the native OpenVMS format and must be defined in the process table of the process running the Oracle Tuxedo commands. Most of the processes spawned by Oracle Tuxedo utilities inherit logical names from the current process table.If you are using the Oracle Tuxedo Workstation feature, the WSNADDR and WSTYPE variables must be defined as logical names. All UNIX system environment variables are logical names in OpenVMS.For example, you can set the TUXCONFIG environment variable with the following DCL command:The DCL$PATH should include the path names for the Oracle Tuxedo installation directory and Tuxedo application servers, as shown in the following example:All upper-case arguments to Oracle Tuxedo commands (such as tmboot and tmshutdown) must be enclosed in double quotes on the command line. If they are not, they will be converted to lower case by OpenVMS and misinterpreted by the system.Any command that might run a shell script is run through the DCL interpreter, and hence should be a proper DCL script. An example of a Oracle Tuxedo service that might run scripts is the qmadmin threshold command.You must enter the name by which your machine is known to the network (your network node name) in the MACHINES section of the UBBCONFIG file. Use the hostname utility to determine your machine node name. An example of the output of the hostname utility is:You must enclose a network node name in quotes when you enter it in the MACHINES section of the UBBCONFIG file. (Quotes are not required if a network node name does not contain any periods.)Use the id utility to determine the values of UID and GID that you must enter in the UBBCONFIG file.
• OPENINFO strings
• DMTYPE filesWhen an Oracle Tuxedo application needs to identify or locate resources (such as SQL statements, databases, and libraries), the application refers to a resource manager file, or RM file. At build time, when you use the buildclient(1) or buildserver(1) command with the -R option, the command parses the RM file and puts the library names in a temporary option file. This temporary file is appended to the list of option files read by the linker. When the build is complete, the temporary file is removed.The RM file for OpenVMS platforms is located in the UDATAOBJ directory (created when you installed Oracle Tuxedo).A Oracle Tuxedo application opens a database for transactions by invoking the tpopen(3c) function. tpopen(), in turn, looks up the setting of the OPENINFO string (in the application code) to find out the name and location of the database to be opened.Fields within the value of the OPENINFO string are separated by commas, as shown in the following example (from the OPENINFO string in the bankapp sample application):An Oracle Tuxedo application builds a Domains gateway process by invoking the build_dgw(1) command. This command requires, as an argument, a file called DMTYPE, which contains a list of the libraries to be linked to the new gateway.The buildclient(1) and buildserver(1) utilities are fully supported on the OpenVMS platform. We recommend using these utilities to ensure that the proper options and libraries are used.
The buildclient(1) and buildserver(1) utilities automatically use these qualifiers for any files they compile.
Note: Since only 64-bit binary generating on OpenVMS platform is currently supported, buildclient(1) and buildserver(1) default to add option like "/po=lo=argv" to compiler. You should follow this rule to create your own obj files as well as to link with Oracle Tuxedo.When linking Oracle Tuxedo clients and servers, you must include the linker option file, TUXLIB.OPT (in the LIB directory of the Oracle Tuxedo installation) in the link line. Both the buildclient(1) and buildserver(1) utilities automatically append the TUXLIB.OPT file to the link line. Remember that option files must be qualified for the linker with the /OPT switch. For an example of how to use an option file in a Oracle Tuxedo link line, see the compile and link line in Example 2.As on the UNIX platform, the CFLAGS logical name allows you to add options to the compile phase of the build. The LINK phase of the OpenVMS build may need different options. You can supply options to the LINK phase of the build with the logical name TMLKFLAGS.buildclient(1) and buildserver(1) sometimes produce warnings about the Oracle Tuxedo libraries. These warnings should be ignored. The Oracle Tuxedo libraries have circular references, and when they are built warnings are produced.Option files provide a useful way to specify a large number of files on the link line. In the following example, an option file is used to specify a set of object files (ECHO.OBJ, PROCESS.OBJ, and SECD.OBJ) that have been compiled and will be linked into our server.
• TUX_LIBTMIB is a logical name that should point to the Oracle Tuxedo LIBTMIB_1030.EXE shared library in the LIB directory of your Oracle Tuxedo installation.
• If your server or client needs to access the MIB through tpadmcall(3c), then the TUX_LIBTMIB library should be linked into your client or server.
• The /SHARE qualifier tells the linker that this file is a shared library. (Another option available for the type qualifier is /LIB, which tells the linker to expect a non-shared library file.)
• This line defines simpcl as a symbolic name. The SIMPCL.EXE executable can now be run with arguments:If the DCL$PATH variable includes the directory in which the SIMCL.EXE executable is located, you do not need to define a symbolic name for the executable.To run a DCL script from the command line, enter the @ symbol before the name of the script.If your code invokes programs that take input from standard input (such as qmadmin or tmadmin), then you will probably want to redirect standard input. Oracle Tuxedo allows you to do so.To redirect standard input, standard output, and standard error on an OpenVMS platform, redefine the logical names SYS$STDIN, SYS$STDOUT, and SYS$STDERR.The following example shows how a qmadmin script generates queue spaces and redirects its output to two files: qmadmin.stdout and qmadmin.stderr.