The following sections describe how to develop ATMI application clients and/or servers in the Microsoft Visual C++ Integrated Development Environment (
msdev) on a Windows XP, or Windows Server 2008 R2 system:
Because Oracle Tuxedo ATMI client but not server components can be installed on Windows XP, you can use the Microsoft Visual C++ IDE on these platforms to develop only ATMI application clients. In contrast, because both Oracle Tuxedo ATMI client and server components can be installed on Windows Server 2008 R2, you can use the Microsoft Visual C++.Net IDE on the Windows Server 2008 R2 platform to develop both ATMI application clients and servers.
Oracle Tuxedo ATMI integrates into the Microsoft Visual C++.Net IDE (
msdev) and emulates the functionality of
msdev when integration is not possible. This integration makes it easier for you to develop Oracle Tuxedo ATMI applications for 16-bit and 32-bit Windows operating systems.
The coding required to create Oracle Tuxedo ATMI service requests, send requests, set up conversational connections, and get replies is fundamentally the same in both UNIX and Windows Server 2008 R2 environments.
BuildTuxedo is a single tool, tightly integrated with the
msdev build environment, that developers can use instead of the
buildclt commands. (Of course, these commands are still available for those who prefer to use them.) The
BuildTuxedo system operates seamlessly on all currently supported Windows environments.
buildserver() commands are available to Windows Server 2008 R2 but not to Windows XP. Only the
buildclient() command is available to Windows XP, meaning that only Tuxedo application clients can be built on a Windows XP system. For more information about the build commands, see buildclient and buildserver in Oracle Tuxedo Command Reference.
There are differences between how the options to the
buildserver() commands work on non-integrated development environments and on integrated development environments, as indicated in the following table.
To modify the build environment in an integrated development environment, follow these steps:
|Note:||CC and CFLAGS are no longer needed.|
To specify the library and include paths in an integrated development environment, follow these steps:
BuildTuxedo to the MSDEV Tools menu, follow these steps:
msdev) graphical user interface (GUI), choose Tools External Tools. The External Tools window displays.
&BuildTuxedoin the empty field.
|Note:||To enable a letter key as a hot key, put an ampersand (&) before the appropriate letter.|
|Note:||To modify an item, highlight it and type over it. To move any item, highlight it and select the up or down arrow at the top of the Menu Contents box.|
BuildTuxedo is now part of the MSDEV Tools menu.
BuildTuxedo maintains a separate project file in the current directory for each Oracle Tuxedo ATMI application using it. When
BuildTuxedo begins, it searches for a valid project file in the current directory. If one is found, the various dialog controls are set to the values stored in the file and the dialog is displayed. The title bar displays the following information:
BuildTuxedo project is closely associated with the
msdev project in the current directory,
BuildTuxedo also searches for two other files:
BuildTuxedo cannot find either of these files, it displays a warning and/or fails to activate. If the directory contains multiple
BuildTuxedo project files, or multiple
msdev project files or make files, menu items that contain appropriate target names are added to the System menu.
To save the current project file, select OK or Apply. To cancel any changes that you make to the project file or any file maintained by the Oracle Tuxedo system, click Cancel or Esc.
Before you can build your Oracle Tuxedo ATMI application in an IDE, you must set the following fundamental parameters in your environment:
To provide this information, access the
BuildTuxedo project_name dialog box in the
To specify the build type, header file, and filename, follow these steps:
|Note:||Windows XP users can select only Workstation Client type.|
The Initialization and Cleanup options allow you to override the default init/exit functions by specifying valid function names. The Entry Point option allows you to specify the name of the function generated by
BuildTuxedo. After specifying its name, you can call the function from anywhere in the application.
In the header file,
BuildTuxedo adds the necessary pragma statements to build the current Oracle Tuxedo ATMI project correctly.
BuildTuxedo opens the file specified in the Header File field of the Build page, if the file is present; otherwise, it creates a new one. A section starting with:
//Begin Tuxedo Section*****DO NOT EDIT*****
and ending with:
//End Tuxedo Section
designates the area in the header file in which pragma statements are written. This area is maintained by
BuildTuxedo does not locate this section in the file, it appends it to the end of the header file. Because all other text within the file remains unchanged, you can specify
stdafx.h as the header file.
|Note:||If your project is new, and you select OK or Apply, you must select Files into Project from the MSDEV Insert menu. You then add the file generated by
Select the Services tab to display the Services page, in which you specify function and service names.
In the Services page, two lists are used to maintain the service dispatch table:
|Note:||To scroll up and down either list, use the arrow keys.|
Generally, the service and the function that performs the service are represented by the same name. For example, function
x performs service
x. In some cases, the function may have a different name from the service it performs. For example, in one case, function
abc performs services
z. In another case, the service name may not be known until run time.
You must specify any function associated with a service when you build the server. For any function associated with a service, you must specify the service, the appropriate prototype, a C linkage, a void return, and a single
TPSVCINFO pointer parameter. To specify a function to which a service name can be mapped, you must add the function to the Function Name list. This information is required for the service dispatch table.
|Note:||If you are using the buildserver(1)command, you can provide this information with the
To add or edit names on the Function Names list, follow these steps:
To specify a resource manager, follow these steps:
|Note:||The Tuxedo Resource Manager field contains a list of Oracle Tuxedo resource managers available on the system, as defined in the
You should use the following procedure only if you have built the ATMI server application using the Debug configuration for your project.
To debug a server that has not been booted, follow these steps.
tmboot -n -d 1 -s
servernameto display the command-line options used by tmboot(1)to start
tmboot -Mcommand to boot the BBL. (If necessary, boot additional application servers or machines.)
msdev, select Project Settings.
|Note:||Because Oracle Tuxedo libraries are not built with debugging information and source code is not provided, you cannot access the Oracle Tuxedo code directly.|
tmshutdownat any Windows command prompt.
|WARNING:||Do not stop the server by selecting Debug Stop; the Oracle Tuxedo system may subsequently attempt to restart the server.|
|Note:||To debug a server that is already running, type
If you must develop an Oracle Tuxedo ATMI application using the command line instead of the Microsoft Visual C++ IDE GUI, use the buildserver(1)and buildclient(1)commands. To do this, specify the compiler and link options necessary to build an Oracle Tuxedo ATMI application. For information about using these tools, see the following documents:
To build a debug version of your ATMI application using
buildclient, you must compile all source files with the
/Od options. The
/Zi option enables debugging; the
/Od option disables optimization. In addition, you may need to define the
_DEBUG preprocessor directive. To complete the process, indicate the link option as follows:
For information about the Oracle Tuxedo ATMI, see the following documents: