Preface |
Preface
|
Preface
|
Chapter 1 |
1
|
COM for OpenVMS Release Notes
|
1.1
|
COM for OpenVMS Versions
|
1.2
|
Upgrading from Earlier Versions of COM for OpenVMS to Version 1.4
|
1.2.1
|
Upgrading from COM Version 1.0 or 1.1 for OpenVMS Requires You to Repopulate the OpenVMS Registry
|
1.2.2
|
DECwindows Motif Requirement Removed
|
1.2.3
|
C Compiler Requirement Removed
|
1.2.4
|
Previously Registered Applications That Use Logical Names for the Local Server Path
|
1.2.5
|
Changes to the Examples
|
1.3
|
Problems Fixed in This Release
|
1.3.1
|
New NTA$LOGON.EXE Fixes Data Corruption in Password File
|
1.3.2
|
Access Violation When Compiling Very Large IDL Files
|
1.3.3
|
Windows 2000 Interoperability Requires Windows 2000 SP4 and Latest DCERPC
|
1.3.4
|
ERROR_ACCESS_DENIED (C0000005 or 80070005)
|
1.4
|
Known Problems in the Current Release
|
1.4.1
|
Fatal Exception in DCOM$RPCSS While Launching Multiple Instances of COM Applications
|
1.4.2
|
COM Version 1.4 Fails with Microsoft MS04-012 (KB 828741) Patch
|
1.4.3
|
Kernel Threads and Upcalls Not Supported
|
1.4.4
|
Errors Seen Between OpenVMS Systems Running COM Version 1.3 Under Heavy Load
|
1.5
|
Limitations and Restrictions
|
1.5.1
|
Windows XP Not Supported
|
1.5.2
|
NetBEUI as Listed Protocol in DCOMCNFG
|
1.5.3
|
COM Version 1.0 for OpenVMS and COM Version 1.4 for OpenVMS Not Supported in the Same Cluster
|
1.5.4
|
Threading Model Supported by COM for OpenVMS
|
1.5.5
|
Enhanced NTLM in Windows NT SP4 and Later Versions Not Supported
|
1.5.6
|
Specifying Activation Security in CoCreateInstanceEx
|
1.5.7
|
RPC Communication Failures Caused by Advanced Server
|
1.5.8
|
RPC Cannot Support Failure (800706E4) Error Message
|
Chapter 2 |
2
|
OpenVMS Registry Release Notes
|
Part 1 |
Part 1
|
COM for OpenVMS
|
Chapter 3 |
3
|
Overview of COM for OpenVMS
|
3.1
|
What is COM?
|
3.1.1
|
Suggested Reading
|
3.2
|
Overview of COM for OpenVMS
|
3.2.1
|
How COM for OpenVMS Uses the OpenVMS Registry
|
3.3
|
Using COM for OpenVMS
|
3.3.1
|
Developing New Applications
|
3.3.2
|
Encapsulating Existing Applications
|
Chapter 4 |
4
|
Installing the COM for OpenVMS Kit
|
4.1
|
Contents of the COM Version 1.4 for OpenVMS Kit
|
4.2
|
Prerequisites
|
4.3
|
Supported COM for OpenVMS Installations
|
4.4
|
Installing COM for OpenVMS on an OpenVMS Standalone System
|
4.5
|
Upgrading COM for OpenVMS on an OpenVMS Standalone System
|
4.6
|
Installing COM for OpenVMS on an OpenVMS Cluster
|
4.7
|
Upgrading COM for OpenVMS in an OpenVMS Cluster
|
4.8
|
Defining Shortcut Commands for COM for OpenVMS
|
4.9
|
Checking the COM for OpenVMS Version
|
4.10
|
Understanding the COM for OpenVMS Environment
|
4.10.1
|
COM for OpenVMS Service Control Manager (SCM)
|
4.10.2
|
OpenVMS Registry Server
|
4.10.3
|
HP Advanced Server for OpenVMS Server
|
4.10.4
|
ACME Server
|
4.10.5
|
RPC Endpoint Mapper
|
4.10.6
|
RPC and SSPI/NTLM Layers
|
4.10.7
|
OpenVMS Events
|
4.11
|
Installing COM for OpenVMS
|
4.12
|
COM for OpenVMS Postinstallation Procedures
|
4.13
|
Starting COM for OpenVMS (COM for OpenVMS Service Control Manager)
|
4.13.1
|
Starting COM for OpenVMS Automatically after a Reboot
|
4.14
|
Shutting Down COM for OpenVMS (COM for OpenVMS Service Control Manager)
|
4.14.1
|
Suppressing the DCOM$SHUTDOWN Confirmation Request
|
Chapter 5 |
5
|
COM for OpenVMS Security
|
5.1
|
System Configuration
|
5.1.1
|
LOGINOUT.EXE Use of External Authentication
|
5.1.2
|
DCE Integrated Login Restriction
|
5.2
|
Cross-Domain Configuration
|
5.3
|
Acquiring Windows Credentials
|
5.4
|
Application Security
|
5.4.1
|
Launch Security
|
5.4.2
|
Activation Security
|
5.4.3
|
Server Process Identity
|
5.4.4
|
Domain Issues
|
5.4.5
|
Disabling Authentication
|
5.4.6
|
Access Denied Problems (80070005)
|
5.5
|
Server Run-Time Environment
|
Chapter 6 |
6
|
COM for OpenVMS Utilities for Application Development and Deployment
|
6.1
|
DCOM$SETUP Utility
|
6.2
|
Running DCOM$SETUP
|
6.2.1
|
Creating and Configuring DCOM$RPCSS Accounts
|
6.2.2
|
Starting and Stopping the COM Server (DCOM$RPCSS Process)
|
6.2.3
|
Registering an Application
|
6.3
|
Running DCOM$CNFG
|
6.3.1
|
The DCOM$CNFG Application List Submenu
|
6.3.2
|
Registry Value Permissions Submenus
|
6.3.3
|
Registry Key Permissions Submenus
|
6.3.4
|
Application Identity Submenu
|
6.3.5
|
The DCOM$CNFG System-wide Default Properties Submenu
|
6.3.6
|
System-wide Default Security Submenu
|
6.4
|
Registering In-Process Servers: DCOM$REGSVR32 Utility
|
Chapter 7 |
7
|
Developing a COM for OpenVMS Application
|
7.1
|
Step 1: Generate Unique Identifiers
|
7.2
|
Step 2: Build an Application Using the MIDL Compiler
|
7.2.1
|
Running the MIDL Compiler
|
7.2.2
|
Running the MIDL Compiler with DCOM$RUNSHRLIB
|
7.2.3
|
Modifying Your Applications To Use the C++ Only MIDL Compiler
|
7.2.4
|
Required MIDL Switches
|
7.2.5
|
Required Include Directories
|
7.3
|
Step 3: Compile the COM Application
|
7.3.1
|
Required Header File: VMS_DCOM.H
|
7.3.2
|
Required Macro Definitions
|
7.3.3
|
Required Include Directories
|
7.3.4
|
Required C++ Qualifiers
|
7.4
|
Step 4: Link the COM Application
|
7.4.1
|
Linking the Client and the Out-of-Process Component
|
7.4.2
|
Linking the In-Process Component Shareable Image
|
7.4.2.1
|
Creating a Symbol Vector
|
7.4.3
|
Linking the Proxy/Stub Shareable Image
|
7.4.3.1
|
Creating a Symbol Vector
|
7.5
|
Required OpenVMS Registry Entries
|
7.5.1
|
HKEY_CLASSES_ROOT\CLSID
|
7.5.1.1
|
Component CLSIDs
|
7.5.1.2
|
Proxy/Stub CLSIDs
|
7.5.2
|
HKEY_CLASSES_ROOT\Interface
|
7.6
|
Converting OpenVMS and Windows Error Codes to Text
|
7.6.1
|
NTA$VMSGetMessage
|
Command 1
|
NTA$VMSGetMessage
|
7.6.2
|
DCOM$TOOL SHOW ERROR
|
7.6.2.1
|
DCOM$TOOL Optional Qualifiers
|
Chapter 8 |
8
|
Authentication
|
8.1
|
Authentication Overview
|
8.2
|
Acquiring Windows Credentials Using NTA$LOGON
|
8.2.1
|
NTA$LOGON Optional Qualifiers
|
8.2.2
|
Examples of Using NTA$LOGON to Acquire Windows Credentials
|
8.3
|
The Authentication and Credential Management (ACM) Authority
|
8.3.1
|
Windows Authentication on OpenVMS
|
8.3.2
|
Managing the ACME_SERVER Process (ACME Server Commands)
|
8.3.3
|
Configuring the MSV1_0 ACME Agent
|
Chapter 9 |
9
|
Active Template Library
|
9.1
|
COM for OpenVMS and ATL
|
9.2
|
Developing a COM for OpenVMS Application Using ATL
|
9.2.1
|
Step 1: Create the ATL Component in Microsoft Visual Studio
|
9.2.2
|
Step 2: Modify Generated Files for ATL Applications on OpenVMS
|
9.2.2.1
|
Remove _ATL_MIN_CRT
|
9.2.2.2
|
Include ATLMAIN.CXX
|
9.2.2.3
|
Modify Registration Procedure
|
9.2.2.4
|
Remove Calls to Windows Message Functions for OpenVMS V7.3-2
|
9.2.3
|
Step 3: Build an Application Using the MIDL Compiler
|
9.2.4
|
Step 4: Compile the ATL COM Application
|
9.2.4.1
|
Required Header File: ATLBASE.H
|
9.2.4.2
|
Required Macro Definitions
|
9.2.4.3
|
Required Include Directories
|
9.2.4.4
|
Required C++ Qualifiers
|
9.2.5
|
Step 5: Link the ATL COM Application
|
9.2.5.1
|
Linking the Client and the Out of Process Component
|
9.2.5.2
|
Linking the In Process Component Shareable Image
|
9.2.5.3
|
Creating a Symbol Vector
|
9.3
|
ATL Samples
|
9.3.1
|
Out of Process COM Sample (TESTATL_OUTPROC)
|
9.3.1.1
|
Creating the Application on Windows
|
9.3.1.2
|
Building, Registering, and Running the Application on OpenVMS
|
9.3.2
|
In-Process COM Sample (TESTATL_INPROC)
|
9.3.2.1
|
Creating the Application on Windows
|
9.3.2.2
|
Building, Registering, and Running the Application on OpenVMS
|
9.4
|
Suggested Reading
|
Chapter 10 |
10
|
COM for OpenVMS and DLL Surrogates
|
10.1
|
Running Your Components in the Context of a DLL Surrogate
|
10.2
|
Developing a Surrogate Application
|
Chapter 11 |
11
|
COM for OpenVMS and IEEE Floating Point
|
11.1
|
Running Sample Programs with IEEE Floating Point Values
|
11.2
|
Restrictions Using IEEE Floating-Point Values in COM for OpenVMS Applications
|
Part 2 |
Part 2
|
OpenVMS Registry
|
Chapter 12 |
12
|
Overview of OpenVMS Registry
|
12.1
|
What is the Registry?
|
12.1.1
|
Suggested Reading
|
12.2
|
OpenVMS Registry Concepts and Definitions
|
12.2.1
|
Keys, Subkeys, and Values
|
12.2.1.1
|
Key and Value Volatility
|
12.2.1.2
|
Key Write-through and Write-behind
|
12.2.1.3
|
Linking a Key to Other Keys and Values
|
12.2.1.4
|
Rules for Creating OpenVMS Registry Keys and Value Names
|
12.2.2
|
Class
|
12.2.3
|
Hive
|
12.3
|
OpenVMS Registry Structure
|
12.4
|
OpenVMS Registry Restrictions and Limitations
|
12.4.1
|
Registry Data Transfer Size Restriction Eased
|
12.5
|
Reading and Writing to the OpenVMS Registry
|
12.5.1
|
$REGISTRY System Services
|
12.5.2
|
REG$CP Server Management Utility
|
12.6
|
OpenVMS Registry Security
|
12.6.1
|
OpenVMS Security Model
|
12.6.1.1
|
Granting OpenVMS Registry Access Rights Using the AUTHORIZE Utility
|
12.6.2
|
Windows Security Model
|
12.7
|
Controlling the OpenVMS Registry Server Operations
|
12.7.1
|
Defining Maximum Reply Age/Age Checker Interval Settings
|
12.7.2
|
Defining the Database Log Cleaner Interval/Initial Log File Size Settings
|
12.7.3
|
Defining Default File Quota/File Quota Interval Settings
|
12.7.4
|
Defining the Scan Interval Setting
|
12.7.5
|
Defining the Log Registry Value Error Setting
|
12.7.6
|
Defining the Operator Communications Interval Setting
|
12.7.7
|
Defining the Process Time Limit Setting
|
12.7.8
|
Defining the Reply Log Cleaner Interval Setting
|
12.7.9
|
Defining Snapshot Interval/Snapshot Location/Snapshot Versions Settings
|
12.7.10
|
Defining the Write Retry Interval Setting
|
Chapter 13 |
13
|
OpenVMS Registry System Management
|
13.1
|
Installing the OpenVMS Registry
|
13.1.1
|
Configuring OpenVMS Registry Values
|
13.1.2
|
Registry Database Conversion and Compaction
|
13.1.2.1
|
Converting an Existing Database
|
13.1.2.2
|
Determining the Registry Database Version
|
13.1.2.3
|
Reclaiming the Database
|
13.1.2.4
|
Manual Conversion and Reclamation
|
13.2
|
Starting the OpenVMS Registry
|
13.2.1
|
Starting the OpenVMS Registry Manually
|
13.3
|
Shutting Down the OpenVMS Registry
|
13.4
|
OpenVMS Registry Server Commands
|
Command 2
|
SHOW SERVER REGISTRY_SERVER
|
Command 3
|
SET SERVER REGISTRY_SERVER
|
13.5
|
OpenVMS Registry Failover in a Cluster
|
13.5.1
|
Changing the Priority of OpenVMS Registry Server Processes
|
13.6
|
Connecting to the OpenVMS Registry from a Windows System
|
13.7
|
OpenVMS Registry Quotas
|
13.8
|
OpenVMS Registry Security
|
13.9
|
Backing Up and Restoring the OpenVMS Registry Database
|
13.10
|
Internationalization and Unicode Support
|
Chapter 14 |
14
|
OpenVMS Registry Server Management
|
14.1
|
Managing the OpenVMS Registry Server from the Command Line
|
14.2
|
Backing Up and Restoring the OpenVMS Registry Database
|
14.2.1
|
Creating a Snapshot of the OpenVMS Registry Database
|
14.2.2
|
Restoring a Snapshot of the OpenVMS Registry Database
|
14.3
|
OpenVMS Registry Server Management Utility Syntax
|
Command 4
|
CREATE DATABASE
|
Command 5
|
CREATE KEY
|
Command 6
|
CREATE SNAPSHOT
|
Command 7
|
CREATE VALUE
|
Command 8
|
DELETE KEY
|
Command 9
|
DELETE TREE
|
Command 10
|
DELETE VALUE
|
Command 11
|
EXIT
|
Command 12
|
EXPORT DATABASE
|
Command 13
|
EXPORT KEY
|
Command 14
|
HELP
|
Command 15
|
IMPORT
|
Command 16
|
LIST KEY
|
Command 17
|
LIST SECURITYDESCRIPTOR
|
Command 18
|
LIST VALUE
|
Command 19
|
MODIFY KEY
|
Command 20
|
MODIFY TREE
|
Command 21
|
MODIFY VALUE
|
Command 22
|
SEARCH KEY
|
Command 23
|
SEARCH VALUE
|
Command 24
|
SHOW
|
Command 25
|
SPAWN
|
Command 26
|
START MONITORING
|
Command 27
|
STOP MONITORING
|
Command 28
|
WAIT
|
Command 29
|
ZERO COUNTERS
|
Part 3 |
Part 3
|
OpenVMS Events
|
Chapter 15 |
15
|
OpenVMS Events
|
15.1
|
What are Events?
|
15.1.1
|
Suggested Reading
|
15.2
|
Overview of OpenVMS Events
|
15.2.1
|
Viewing OpenVMS Events Using Windows Event Viewer
|
15.2.2
|
Viewing OpenVMS Events Using HP Advanced Server for OpenVMS Event Viewer
|
15.2.3
|
Event Logging on OpenVMS Only
|
Command 30
|
NTA$EVENTW
|
15.3
|
Writing Your Own Events
|
15.4
|
Troubleshooting OpenVMS Events
|
Part 4 |
Part 4
|
Appendixes
|
Appendix A |
Appendix A
|
MIDL Compiler Options
|
A.1
|
Mode
|
A.2
|
Input
|
A.3
|
Output File Generation
|
A.4
|
Output File Names
|
A.5
|
C Compiler and Preprocessor Options
|
A.6
|
Environment
|
A.7
|
Error and Warning Messages
|
A.8
|
Optimization
|
A.9
|
Miscellaneous
|
Appendix B |
Appendix B
|
Troubleshooting
|
B.1
|
RPC Troubleshooting
|
B.2
|
Troubleshooting the ACME server
|
B.3
|
Troubleshooting the DCOM$RPCSS Process
|
B.4
|
Troubleshooting the Advanced Server for OpenVMS
|
B.5
|
Troubleshooting COM for OpenVMS Application Failures
|
B.5.1
|
Access Denied Failures
|
Appendix C |
Appendix C
|
Cookbook Examples: Building a Sample Application on OpenVMS
|
C.1
|
COM Example (Sample1)
|
C.1.1
|
OpenVMS Instructions
|
C.1.1.1
|
Building the Application on OpenVMS
|
C.1.1.2
|
Registering the Application on OpenVMS
|
C.1.1.3
|
Running the Application on OpenVMS as an Out-of-Process Server
|
C.1.1.4
|
Running the Application on OpenVMS and Specifying a Remote Server
|
C.1.1.5
|
Running the Application on OpenVMS as an In-Process Server
|
C.1.2
|
Windows Instructions
|
C.1.2.1
|
Building the Application on Windows
|
C.1.2.2
|
Registering the Application on Windows
|
C.1.2.3
|
Running the Application on Windows
|
C.2
|
Automation Example (Dispatch_Sample1)
|
C.2.1
|
OpenVMS Instructions
|
C.2.1.1
|
Building the Application on OpenVMS
|
C.2.1.2
|
Registering the Application on OpenVMS
|
C.2.1.3
|
Running the Application on OpenVMS as an Out-of-process Server
|
C.2.1.4
|
Running the Application on OpenVMS and Specifying a Remote Server
|
C.2.1.5
|
Running the Application on OpenVMS as an In-Process Server
|
C.2.2
|
Windows Instructions
|
C.2.2.1
|
Building the Application on Windows
|
C.2.2.2
|
Registering the Application on Windows
|
C.2.2.3
|
Running the Application on Windows
|
C.3
|
Cross-Domain Security Example (CLIENTAUTH)
|
C.3.1
|
OpenVMS Instructions
|
C.3.1.1
|
Registering the Application on OpenVMS
|
C.3.1.2
|
Running the Application on OpenVMS as an Out-of-Process Server
|
C.3.1.3
|
Running the Application on OpenVMS and Specifying a Remote Server
|
C.3.1.4
|
Running the Application on OpenVMS as an In-Process Server
|
C.3.2
|
Windows Instructions
|
C.3.2.1
|
Building the Application on Windows NT
|
C.3.2.2
|
Registering the Application on Windows
|
C.3.2.3
|
Running the Application on Windows
|