CCINAMPU is supported on UNIX systems only.
In order to enable CCI support for UNIX Named Pipes, one shared object executable module is supplied
The CCINAMPU module is used to connect processes on single UNIX machines using UNIX named pipes (FIFO pipes). Any process running on a machine which has CCINAMPU installed can access any service on that same machine. CCINAMPU cannot communicate with CCINAMP for OS/2.
For a given machine CCINAMPU may perform faster than using CCITCP in loopback mode (communicating on a single machine). This is entirely dependant upon the priorities given to each method of communication by the UNIX kernel design on any given system, it is recommended that users try both CCITCP and CCINAMPU and select whichever performs quicker in their own system.
Unlike many other CCI protocol modules, there are no CCI.INI configuration options available when using CCINAMPU.
CCI Client/Server applications use the CCI Server Name and Machine Name parameters to enable the CCI Client to specify the CCI Server with which to communicate.
The CCI Server identifies itself on the network by using the Server Name parameter. The CCI Client also specifies the CCI Server using the Server Name. Additionally, if it only wants to find this Server running on a particular location within the UNIX machine, it needs to specify the Machine Name parameter.
In other protocols Machine Name is used to specify the individual machine hosting a service, with CCINAMPU Machine Name is used to denote the directory location of the service's listening Named Pipe, as such within a single UNIX system there may be several Services using the same Server Name but residing in different areas of the system.
The Server Name specified in the creation of a CCINAMPU server can be one of the following:
A relative pipe-name is equivalent to an absolute pipe-name composed of a concatenation of the path /usr/spool/uucppublic/.CCI/ together with a period and the given server name. A relative pipe-name must be at least one character less than the maximum allowed length of a filename for the operating system.
For example, a Server Name consisting of
would generate a named-pipe with the name
which would be unique on the machine in use.
The only restriction for using an absolute pipe-name is that the pipe name must be of a file layout supported by the host machine's file system.
An example of an absolute pipe-name is:
This creates a pipe at the exact location specified. If the user attempting to create the pipe does not have permissions to use the requested directory, CCINAMPU issues an error.
All absolute pipe-names must start with a leading slash (/).
The CCINAMPU client initialization function always assumes that a Server Name is a relative pipe-name when it is passed an empty Machine Name parameter. When CCI-Initclient is passed a non-empty Machine Name parameter, the pipe-name searched for is composed of the absolute Server Name with the Machine Name preceding it to form the complete absolute path.
Thus if Server Name is passed as:
and Machine Name is passed as:
the resultant pipe that is searched for would be:
and would connect with the example of an absolute servername used in the description for starting a CCINAMPU server given above.
An absolute pipe-name must be consistent with any limitations of the file system in use on the host machine at all times. You should be aware that file permissions apply to named-pipes as well as to files.
Absolute pipe-names cannot be used across network file systems (NFS) successfully. Therefore, we recommend that relative pipe-names are used for simplicity in the majority of applications.
Unlike CCITCP, there is no central registration module for CCINAMPU. Any Server Name given to CCINAMPU as a relative pipe name, for example, "SRVS" appears as a pipe-file in the directory /usr/spool/uucppublic/.cci/.SRVS.
These are not normal files but they are affected by access permissions. So, if a server doesn't respond to a client's request, the first check should be made on access permissions. All files, and the directory itself, should have READ and WRITE permissions for all processes.
When running an application which uses CCINAMPU, if an error occurs when starting either the client or the server components, and the error status indicates that the system was too busy to create a new pipe, then it is most likely that the access permission set in the service location directory - for default service locations /usr/spool/uucppublic - is incorrect. The permission must be set to 777 for CCINAMPU to function correctly for all users at all times.
Copyright © 2001 Micro Focus International Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.