# HP DCE for OpenVMS VAX and OpenVMS Alpha
Release Notes

Previous | Contents

# 9 Using TCP/IP Services for OpenVMS (UCX) with DCE

Version 3.1 of HP DCE for OpenVMS VAX and OpenVMS Alpha requires installation of HP TCP/IP Services for OpenVMS Version 5.0 or above.

## 9.1 cdsLib Service Definition

CDS uses a TCP service definition in the UCX services database. This service defines the port number for CDS client and clerk communication. The DCE$SETUP CONFIGURE operation should properly define this service for you. By default, port number 1234 is used. If your site has another application that has defined a service using port 1234, the CONFIGURE operation will ask you to choose another port number for use with the cdsLib service.

After HP DCE for OpenVMS is configured, should you need to change the port number assigned to the cdsLib service (for example, you want to install an application that needs port 1234), use the following commands:

    $ UCX SET NOSERVICE "cdsLib"

The current service definition is displayed and you are asked if you wish to delete it. Answer YES and enter the following command:

    $ UCX SET SERVICE "cdsLib" /PORT=nnnn /file=NL: -
      /USER=DCE$SERVER /PROTOCOL=TCP
      /PROCESS=DCE$CDSCLERK

Where nnnn is an unused port number to be used by CDS. Note that four additional ports are defined:

- cdsAdver uses port number 1235 for process DCE$CDSADV
- cdsDiag uses port number 1236 for process DCE$CDSD
- kerberos5 uses port number 88 for process DCE$SECD
- ntp uses port number 123 for process DCE$DTS_NTP_PROVIDER

      $ UCX SHOW SERVICE

  This command lets you examine the current UCX service definitions.
  The State for all of the DCE services should be Disabled.

Also note that the service definitions in UCX are permanent settings; that is, once defined, they will still be set if UCX is restarted. For this reason, you do not need to put changes to the service definitions in your UCX startup procedure.

# 10 Using MultiNet with DCE

Version 3.1 of HP DCE for OpenVMS can be used with TGV, Inc.’s MultiNet product in place of HP’s TCP/IP Services for OpenVMS. If you want to use MultiNet with HP DCE for OpenVMS, you must contact TGV, Inc. for a copy of MultiNet, which contains support for DCE1.

Then, follow the installation procedure and choose MULTINET when the installation process prompts you for the specific.

Define the following logical for using MultiNet product for TCP/IP communications.

    $ DEFINE /SYSTEM DCE$INTERNET MULTINET

Otherwise, DCE will expect TCP/IP communications to be provided by UCX.

Add or replace the following command to the system startup command procedure (SYS$MANAGER:SYSTARTUP.COM) after the startup commands for the network transports, DECnet and/or HP TCP/IP Services:

    $ @SYS$MANAGER:DCE$SETUP START

To configure DCE with MultiNet, enter the following command:

    $ @SYS$MANAGER:DCE$SETUP CONFIG

The SYSGEN parameter MAXBUF must be set to a value greater than the maximum message size to be transferred between the CDS Clerk and CDS clients. If MAXBUF is not large enough, client processes will hang in an I/O wait state. If this happens, other CDS clients will continue to function and the hung process may be aborted without affecting them. The recommended setting for MAXBUF is 20,000 bytes or greater. (If you have a large CDS database with many directories, you may have to set it even higher.) If DCE processes hang while performing name service requests that transfer larger amounts of data, you probably need to increase the value of MAXBUF as follows:

    $ RUN SYS$SYSTEM:SYSGEN
    SYSGEN> USE ACTIVE
    SYSGEN> SET MAXBUF nnnn  ! nnnn = new value for MAXBUF
    SYSGEN> WRITE ACTIVE
    SYSGEN> USE CURRENT
    SYSGEN> SET MAXBUF nnnn  ! nnnn = new value for MAXBUF
    SYSGEN> WRITE CURRENT
    SYSGEN> EXIT

Note that this setting will remain in effect until the next time AUTOGEN is invoked. Make the changes permanent by editing SYS$SYSTEM:MODPARAMS.DAT and adding MIN_MAXBUF = nnnn and then invoking AUTOGEN as described in the installation and configuration guide.

For further information on modifying SYSGEN parameters or on AUTOGEN, refer to the OpenVMS system management documentation.

Note ##### 1 HP is not responsible for third-party application support. Any issues around third-party IP applications should be directed to those third-party companies and not to HP.

# 11 Using PathWay with DCE

Version 3.1 of HP DCE for OpenVMS has been designed to be used with Wollongong’s PathWay product in place of HP’s TCP/IP Services for OpenVMS DCE1.

If you want to use PathWay with HP DCE for OpenVMS, you must contact Wollongong for availability information and for a copy of PathWay, which contains support for DCE.

Then, follow the installation procedure and choose PATHWAY when the installation process prompts you for the specific TCP/IP product you want to use.

Define the following logical for using PATHWAY product for TCP/IP communications.

    $ DEFINE /SYSTEM DCE$INTERNET PATHWAY

Otherwise, DCE will expect TCP/IP communications to be provided by UCX.

Add the following command to the system startup command procedure (SYS$MANAGER:SYSTARTUP.COM) after the startup commands for the network transports, DECnet and/or HP TCP/IP Services:

    $ @SYS$MANAGER:DCE$SETUP START

To configure DCE with PathWay, enter the following command:

    $ @SYS$MANAGER:DCE$SETUP CONFIG

# 12 Using TCPware with DCE

Version 3.1 of HP DCE for OpenVMS can also be used with Process Software’s TCPware product in place of HP’s TCP/IP Services for OpenVMS. If you wish to use TCPware with HP DCE for OpenVMS, you must contact Process Software for a copy of TCPware, which contains support for DCE1.

Then, follow the installation procedure and choose TCPWARE when the installation process prompts you for the specific TCP/IP product you want to use.

Define the following logical for using TCPWARE product for TCP/IP communications.

    $ DEFINE /SYSTEM DCE$INTERNET TCPWARE

Otherwise, DCE will expect TCP/IP communications to be provided by UCX.

Add the following command to the system startup command procedure (SYS$MANAGER:SYSTARTUP.COM) after the startup commands for the network transports, DECnet and/or HP TCP/IP Services:

    $ @SYS$MANAGER:DCE$SETUP START

To configure DCE with TCPware, enter the following command:

    $ @SYS$MANAGER:DCE$SETUP CONFIG

# 13 Kerberos

The DCE Security Server makes UDP port 88 (service name "kerberos5") available for use by native Kerberos clients for authentication.

By default, both DCE Security Server and native Kerberos5 KDC server cannot co-exist in the same system.

Support for native kerberos5 clients has undergone minimal interoperability testing.

# 14 Windows NT LAN Manager

Another mechanism to provide Authenticated RPC has been added to DCE for OpenVMS from Version 3.0 onwards. Support for NTLM (Microsoft’s NT LAN manager protocol) has been added in OpenVMS Alpha Version 7.2-1 and higher.

To use Authenticated RPC, a client passes its user security information (credentials) to the client’s runtime. The client runtime forwards these credentials to the server runtime through 3-legged protocol exchange. This provides a secure mechanism for authenticating the client, and also allows server impersonation of that client.

To select NTLM security, set the authn_svc parameter of the `rpc_binding_set_auth_info` call to rpc_c_authn_winnt. More information about manipulation of the data structures involved can be found in Section 18.

# 15 Linking RPC Stub Modules into Shareable Images

If you build shareable images that contain RPC generated stub modules, you should use a linker options file. PSECT statements in the linker options file are used to resolve differences in the PSECT attributes between the RPC generated object file and the new shareable image. The following sections discuss how to solve problems that can arise when you create, link against, or activate a shareable image that contains RPC generated stub modules.

This section can be summarized as follows:

- Program sections (PSECTs) in shareable images should be SHR,NOWRT or NOSHR,WRT unless the image is installed with privileges.
- Program sections in modules linked against shareable images must match exactly or conflicting PSECT errors will occur.
- Until the program runs, you may have to correct PSECT attributes as far back as the shareable image.

The PSECT attributes of the RPC generated interface specifications (IFspecs) should be set to the following:

    (GBL,SHR,NOWRT)

RPC interface specs usually do not change, so it is rarely required that they be set to a writable PSECT attribute. RPC interface specs are frequently shared. If your shareable image contains more than one cluster and the same interface spec is defined in multiple object modules, these interface specs can be effectively collected into the same global cluster with the GBL PSECT attribute. Note that, in this case, the first module encountered by the linker that defines the IFspec will be used to initialize the value of the IFspec in the shareable image. A map file can help you identify and correct problems with PSECTs and their contents. The contents of any PSECT should be nonzero.

If you find a zero byte PSECT, you may need to explicitly specify the module name in the options file. The module name can be specified directly on its own or as part of the /library/include=( ) statement associated with an object library. PSECTs should not be zero unless they are initialized at runtime, and this presumes that the PSECT is writable (WRT).

## 15.1 Errors Creating a Shareable Image

The following examples show some of the errors that might occur when you try to create a shareable image with RPC stub object modules.

    $ link/share/exe=myshr.exe/map=myshr.map -
    _$ test1_mgr,test1_sstub,dce:dce.opt/opt
    %LINK-I-BASDUERRS, basing image due to errors in relocatable references
    %LINK-W-ADRWRTDAT, address data in shareable writeable section in
    psect TEST1_V0_0_S_IFSPEC offset %X00000000
    in module TEST1_SSTUB file USER:[MY.CODE.DCE]TEST1_SSTUB.OBJ;
    $

The PSECT name is causing the linker problem. To correct this problem, create an option file including the following line, and place it on your link command line as follows:

    $ create myopt.opt
    PSECT= TEST1_V0_0_S_IFSPEC, shr,nowrt,gbl
    ctrl-z
    $
    $ link/share/exe=myshr.exe/map=myshr.map -
    $_ test1_mgr,test1_sstub,dce:dce.opt/opt,myopt.opt/opt

This will remove the link problems so that you can create a shareable image. There are still errors in this shareable image whose solutions are shown in the following examples.

## 15.2 Errors Linking Against a Shareable Image

Once you have a shareable image, you may still see linker problems related to the PSECT attributes between the shareable image and new object files. In the following example, a main routine is linked against the same shareable image from the previous example. The new object module references some of the same variables defined by the RPC stub module.

    $ link/exec=test1d/map=test1d.map test1_main,sys$input/opt
    myshr.exe/share
    ctrl-z
    %LINK-W-MULPSC, conflicting attributes for psect
    TEST1_V0_0_S_IFSPEC
    in module TEST1_MAIN file USER:[MY.CODE.DCE]TEST1_MAIN.OBJ;
    $

If you search the map files of both myshr.map and test1d.map for the PSECT TEST1_V0_0_S_IFSPEC, you will see that the PSECT attributes for this PSECT match; however, the map files are incorrect. The solution to this link problem is to include the PSECT directive in a linker options file for the offending PSECT name. The previous example simply typed in the options from the command line, but you should place these linker statements in a linker option file. The options are typed in from SYS$INPUT in the following example:

    $ link/exec=test1d/map=test1d.map test1_main,sys$input/opt
    PSECT= TEST1_V0_0_S_IFSPEC, shr,nowrt,gbl
    myshr.exe/share
    ctrl-z
    $

## 15.3 Errors Activating Shareable Images

When you run this program, the following results occur:

    $ run test1d
    %DCL-W-ACTIMAGE, error activating image MYSHR
    -CLI-E-IMAGEFNF, image file not found SYS$LIBRARY:MYSHR.EXE
    $

To allow the image activator to check a directory other than SYS$LIBRARY for your new shareable image, you must define a logical name or you must copy your new shareable image into SYS$LIBRARY. In the following example, a logical name is defined and the program is run again with the following results.

    $ define MYSHR sys$disk:[]myshr.exe;
    $
    $ run test1d
    %DCL-W-ACTIMAGE, error activating image MYSHR
    -CLI-E-IMGNAME, image file USER:[MY.CODE.DCE]MYSHR.EXE;
    -SYSTEM-F-NOTINSTALL, writable shareable images must be installed
    $

The problem is in the myshr.exe image: myshr.exe has PSECTs whose PSECT attributes specify both SHR and WRT. The solution is to add the correct PSECT attributes to the myshr.opt options file which is used to build the myshr.exe shareable image. This can be done on the command line, as follows:

    $ link/share/exe=myshr.exe/map=myshr.map -
    $_ test1_mgr,test1_sstub,dce:dce.opt/opt,sys$input/opt
    psect= TEST1_V0_0_S_IFSPEC, shr,nowrt,gbl
    psect= RPC_SS_ALLOCATE_IS_SET_UP, noshr,wrt,gbl
    psect= RPC_SS_CONTEXT_IS_SET_UP, noshr,wrt,gbl
    psect= RPC_SS_SERVER_IS_SET_UP, noshr,wrt,gbl
    psect= RPC_SS_THREAD_SUPP_KEY, noshr,wrt,gbl
    psect= RPC_SS_CONTEXT_TABLE_MUTEX,noshr,wrt,gbl
    psect= TEST1_V0_0_C_IFSPEC, shr,nowrt,gbl
    <ctrl-z>
    $

All of the PSECTs that existed in the myshr.map mapfile that had SHR and WRT attributes were changed so that the PSECT was either SHR,NOWRT or NOSHR,WRT. The choice depends upon your use of the data item. IFspecs are usually shared and nonwritable. The RPC_SS PSECTs are written and not generally shared among program images linked against the shareable image.

The following example tries to relink the main program again, but another problem occurs:

    $ link/exec=test1d/map=test1d.map test1_main,sys$input/opt
    PSECT= TEST1_V0_0_S_IFSPEC, shr,nowrt,gbl
    myshr.exe/share
    ctrl-z

    %LINK-W-MULPSC, conflicting attributes for psect
    TEST1_V0_0_C_IFSPEC
    in module TEST1_MAIN file USERE:[MY.CODE.DCE]TEST1_MAIN.OBJ
    $

Because the PSECT attributes of the TEST1_V0_0_S_IFSPEC PSECT were changed in the shareable image, its reference in test1_main.obj is not correct. To solve this problem, add the correct PSECT attribute. For example:

    $ link/exec=test1d/map=test1d.map test1_main,sys$input/opt
    PSECT= TEST1_V0_0_S_IFSPEC, shr,nowrt,gbl
    PSECT= TEST1_V0_0_C_IFSPEC, shr,nowrt,gbl
    myshr.exe/share
    <ctrl-z>
    $

In the final example, the test1d program is run and the desired results occur.

    $ run test1d
    ncacn_ip_tcp 16.32.0.87 3314
    ncacn_dnet_nsp 63.503 RPC270002590001
    ncadg_ip_udp 16.32.0.87 1485

Previous | Next | Contents