CMVC FREQUENTLY ASKED QUESTIONS: CLIENT FOR UNIX, OS/2 AND WINDOWS 3.1 Document Number TR 29.xxxx Angel Rivera, Lee Perlov CMVC/TeamConnection Development IBM Software Solutions Research Triangle Park, North Carolina Copyright (C) 1997 IBM Corp. All rights reserved. ii CMVC FAQ: client ABSTRACT This technical report provides answers to frequently asked questions made by CMVC users with respect to the CMVC client (GUI and line commands) for UNIX, OS/2 and Windows 3.1 ITIRC KEYWORDS o CMVC o CMVC client o line commands o UNIX o OS/2 o Windows 3.1 ABSTRACT iii iv CMVC FAQ: client ABOUT THE AUTHOR ANGEL RIVERA Mr. Rivera is an Advisory Software Engineer and team lead for the development of CMVC 2.3. He joined IBM in 1989 and since then has worked in the development and support of library systems. Mr. Rivera has an M.S. in Electrical Engineering from The Univer- sity of Texas at Austin, and B.S. in Electronic Systems Engi- neering from the Instituto Tecnologico y de Estudios Superiores de Monterrey, Mexico. LEE R. PERLOV Mr. Perlov is a Staff Software Engineer in the TeamConnection/CMVC development group. He started working for IBM in 1985 in Gaithersburg, Md, working in the Federal Systems Division on various projects for the United States intelligence community. He then moved to RTP to work on library development and support. Mr. Perlov received a B.S.Acc degree in Accounting from the Uni- versity of Florida in 1983. He also completed two years of grad- uate work in the Department of Computer Science at the University of Florida. ABOUT THE AUTHOR v vi CMVC FAQ: client CONTENTS ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . III ITIRC KEYWORDS . . . . . . . . . . . . . . . . . . . . . iii ABOUT THE AUTHOR . . . . . . . . . . . . . . . . . . . . . . V Angel Rivera . . . . . . . . . . . . . . . . . . . . . . . v Lee R. Perlov . . . . . . . . . . . . . . . . . . . . . . . v FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . X 1.0 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Acknowledgements . . . . . . . . . . . . . . . . . . . 1 2.0 OVERVIEW OF THE CMVC CLIENT: LINE COMMANDS AND GUI . . . 3 2.1 Relationship between the CMVC GUI and the CMVC Line Commands . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 CMVC GUI, line command, server model . . . . . . . . . 4 2.2.1 Client-Server Communication . . . . . . . . . . . . 5 2.2.2 Security Concerns . . . . . . . . . . . . . . . . . 5 2.3 Interaction of the UNIX CMVC client and the iFOR server 6 2.4 What is the startup sequence for the UNIX CMVC GUI? 7 2.5 What is the processing done with the CMVC line commands? . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.6 Difference between CMVC User and system login . . . 10 2.7 Details on the printing operations . . . . . . . . . 12 2.7.1 From a CMVC main window . . . . . . . . . . . . . 12 2.7.2 From an error dialog . . . . . . . . . . . . . . 12 2.7.3 From Treeviews . . . . . . . . . . . . . . . . . 12 2.8 Show File Differences . . . . . . . . . . . . . . . 13 2.9 Directory Prefix and Symbolic Links . . . . . . . . 14 2.10 Handling error messages . . . . . . . . . . . . . . 14 2.11 How the GUI obtains the information about configurable fields . . . . . . . . . . . . . . . . . . . 14 3.0 FREQUENTLY ASKED QUESTIONS: GENERIC CMVC CLIENT . . . 17 3.1 Using the Report command to test the NLS settings . 17 3.2 How to test the name resolution: ping, host, nslookup 18 3.2.1 Using the nslookup command . . . . . . . . . . . 20 3.3 I cannot capture the help output from a CMVC line command . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4 Using environment variables with the CMVC client . . 21 3.5 How to use the CMVC_CASE environment variable . . . 21 3.6 Operational details on the cmvc log file . . . . . . 22 3.7 Can I create a task to display the tree view of components? . . . . . . . . . . . . . . . . . . . . . . . 23 3.8 How do I enter multi-line remarks from the line commands? . . . . . . . . . . . . . . . . . . . . . . . . 23 3.9 Could I specify a relevant window when starting the CMVC GUI? . . . . . . . . . . . . . . . . . . . . . . . . 24 Contents vii 3.10 Is it possible to bypass the hosts and services files? . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.11 File path name with forward or backward slashes . . 25 3.12 What is the difference between "choices" and "import" buttons? . . . . . . . . . . . . . . . . . . . . . . . . 26 3.13 Possible problems when pressing the "Choices" button 27 3.14 How do I use the "Import" button in the GUI? . . . 28 3.15 Performance differences between OS/2 and UNIX clients 28 3.16 Can I create a user exit in my CMVC client? . . . . 29 3.17 Strange error messages caused by using wrong message catalog . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.18 Can I alter the order of the columns in the GUI? . 31 4.0 FREQUENTLY ASKED QUESTIONS ABOUT THE CMVC CLIENT FOR UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1 Sample profile for a CMVC UNIX user . . . . . . . . 33 4.2 Incomplete section between pages 14/15 of CMVC Client manual 2.3 . . . . . . . . . . . . . . . . . . . . . . . 33 4.3 Is there an API to the CMVC client? . . . . . . . . 34 4.4 An error occurred while converting a multi-byte string (2059-056) . . . . . . . . . . . . . . . . . . . . . . . 34 4.5 How to provide a customized CMVC resource file . . . 36 4.6 Could I have more than one .cmvcrc file and use merge options? . . . . . . . . . . . . . . . . . . . . . . . . 37 4.7 What are some common usage errors when using Motif resources? . . . . . . . . . . . . . . . . . . . . . . . 38 4.8 How to set the colors for the CMVC GUI . . . . . . . 39 4.9 My *fontList settings are ignored for the headings in the GUI . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.10 What are the Motif resources for the fonts used in CMVC? . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.11 How could the windows with entries look like tables? 41 4.12 Which resource is used: doubleClickTime or multiClickTime? . . . . . . . . . . . . . . . . . . . . . 41 4.13 Cannot make a connection to the X server. . . . . . 42 4.14 How do I get the best X-Windows performance? . . . 42 4.15 mesg: 0803-003 Cannot find the terminal . . . . . . 43 4.16 How to verify Motif key bindings for SunOS and Solaris . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.17 How to query for the release of X11 in your system 44 4.18 CMVC GUI integration with the Emacs editor . . . . 45 4.19 Is there a Linux version of the CMVC line commands? 45 4.20 Use /usr/bin instead of /bin for ksh or sh . . . . 46 4.21 CMVC File command adds (dot) files at extract or check-out . . . . . . . . . . . . . . . . . . . . . . . . 46 4.22 What is the command used to print PostScript images in CMVC? . . . . . . . . . . . . . . . . . . . . . . . . 46 4.23 What is the difference between standalone and integrated client? . . . . . . . . . . . . . . . . . . . 47 4.24 What is the difference between the Cmvc and .cmvcrc resource files? . . . . . . . . . . . . . . . . . . . . . 47 4.25 What is the search path for the Motif resources? . 48 4.26 Are there any hints on how to isolate resource problems? . . . . . . . . . . . . . . . . . . . . . . . . 49 viii CMVC FAQ: client 4.27 Considerations when using telnet to access the CMVC GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.28 Which window managers can be used with the CMVC GUI? 50 4.29 Known problems with the CMVC GUI in SunOS and Solaris 50 4.30 What are the line command arguments for the standalone CMVC GUI? . . . . . . . . . . . . . . . . . . 51 4.31 What are the line command arguments for the integrated CMVC GUI? . . . . . . . . . . . . . . . . . . 52 4.32 Problem with error "socket operation on non-socket" 53 4.33 How to customize the Motif environment for left-handed users . . . . . . . . . . . . . . . . . . . . 53 5.0 FREQUENTLY ASKED QUESTIONS ABOUT THE CMVC CLIENT FOR OS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.1 File command adds $ to the file suffix at extract or check-out . . . . . . . . . . . . . . . . . . . . . . . . 55 5.2 Restriction on file extracts into DOS or OS/2 FAT drives . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.3 How to change the font in the CMVC client for OS/2 . 55 5.4 Which is the file used to keep the settings for the CMVC GUI? . . . . . . . . . . . . . . . . . . . . . . . . 56 5.5 How to extract files to OS/2 from a release/level without using NFS . . . . . . . . . . . . . . . . . . . . 56 5.6 CMVC and TCP/IP from Novell . . . . . . . . . . . . 57 5.7 Problems with APM drivers when named pipes are suspended . . . . . . . . . . . . . . . . . . . . . . . . 57 5.8 How to have multiple instances of the GUI to work with different families . . . . . . . . . . . . . . . . . . . 58 5.9 NFS 2.0 on TCP/IP 3.0 . . . . . . . . . . . . . . . 59 6.0 FREQUENTLY ASKED QUESTIONS ABOUT THE CMVC CLIENT FOR WINDOWS 3.1 . . . . . . . . . . . . . . . . . . . . . . 61 6.1 What are the Windows platforms supported by CMVC? . 61 6.2 How to find the Newshell in Windows NT 3.51 CD-ROMs 62 6.3 File command adds $ to the file suffix at extract or check-out . . . . . . . . . . . . . . . . . . . . . . . . 62 6.4 How to better use the 122 bytes limit on the contents of PATH . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.4.1 Approach 1 . . . . . . . . . . . . . . . . . . . 63 6.4.2 Approach 2 . . . . . . . . . . . . . . . . . . . 64 6.4.3 Approach 3 . . . . . . . . . . . . . . . . . . . 65 6.5 Auto Token Ring card on DOS 7.0, TCP/IP for DOS . . 65 6.6 How to deal with CMVC and TCP/IP from Novell . . . . 65 6.7 Use long family name if using Novell Netware in Windows . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.8 Restriction on file extracts into DOS or OS/2 FAT drives . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.9 How to change the font in the CMVC client for Windows? 67 6.10 Which is the file used to keep the settings for the CMVC GUI? . . . . . . . . . . . . . . . . . . . . . . . . 67 APPENDIX A. CODE SEGMENTS SAMPLES . . . . . . . . . . . . 69 A.1 Long version of code to run a command . . . . . . . 69 A.2 Short version of code to run a command . . . . . . . 71 Contents ix APPENDIX B. BIBLIOGRAPHY . . . . . . . . . . . . . . . . . 73 B.1 How to get electronic copies of manuals and technical reports . . . . . . . . . . . . . . . . . . . . . . . . . 73 B.1.1 IBM Intranet . . . . . . . . . . . . . . . . . . 73 B.1.2 Internet . . . . . . . . . . . . . . . . . . . . 74 APPENDIX C. COPYRIGHTS, TRADEMARKS AND SERVICE MARKS . . . 77 FIGURES 1. CMVC GUI - line command - server Model . . . . . . . . . 4 2. Interaction of CMVC client and iFOR server . . . . . . . 7 3. cmvc line command arguments. . . . . . . . . . . . . . 52 4. softcmvc line command arguments. . . . . . . . . . . . 52 5. Simple C++ function used to call a line command . . . 72 x CMVC FAQ: client 1.0 INTRODUCTION This technical report provides answers to frequently asked questions made by CMVC users with respect to the CMVC client (GUI and line commands) for UNIX, OS/2 and Windows 3.1 This technical report is organized as follows: o Overview of the CMVC client: line commands and GUI. o Frequently asked questions: generic CMVC client. o Frequently asked questions about the CMVC client for UNIX. o Frequently asked questions about the CMVC client for OS/2. o Frequently asked questions about the CMVC client for Windows 3.1. 1.1 NOTES This document reflects the questions of our users. Because our UNIX users tend to do more customization of their environments through tools, such as shell scripts, many of the answers are primarily for Unix. We recognize that X-Servers exist for non-UNIX platforms. However, we only tested using the X-Servers that come with each UNIX operating system. You may be able to apply our suggestions to X-Servers that run on Intel platforms, such as IBM's PMX. 1.2 ACKNOWLEDGEMENTS Many of the questions and answers that are compiled in this tech- nical report were obtained from the CMVC forum in the IBMPC con- ferencing disk and from the CMVC6000 forum in the IBMUNIX conferencing disk. We want to thank the main participants in these electronic forums for their support! Also, we want to thank Dodde Stark for editing this technical report. Introduction 1 2 CMVC FAQ: client 2.0 OVERVIEW OF THE CMVC CLIENT: LINE COMMANDS AND GUI 2.1 RELATIONSHIP BETWEEN THE CMVC GUI AND THE CMVC LINE COMMANDS The CMVC GUI is just a fancy way to prepare the CMVC line com- mands. The CMVC GUI stores the actual line command that is invoked at the bottom of the file "cmvc.log" which is specified in the UNIX GUI in "Options->Set Log Filename", and in the OS/2 and Windows GUI in "Settings->Setup page -> Log file". This log file contains the exact CMVC line command that is exe- cuted, but the CMVC Family Name and the CMVC Become User Name are setup in the environment for the GUI, and it is not shown in the cmvc.log file. The environment that surrounds the line commands is different than the environment used by the GUI. That is, the CMVC environ- ment variables defined in the .profile or the AUTOEXEC.BAT are used only by the line commands, and the Settings defined by the GUI are only used by the GUI. However, when the GUI is invoked for the first time, then the default values for the Settings for the GUI are taken from the corresponding CMVC environment vari- ables defined for the line commands, if any. This means that you can use family-1 as user-1 in the line com- mands and use family-2 as user-2 in the GUI, if you wish. In this case, if you want to reuse a CMVC command that was con- structed with the GUI, then you may need to use the -family and -become parameters in order to match the ones used by the GUI (such as family-2 and user-2), otherwise you may be using the incorrect ones (such as family-1 and user-1) and the results will be different. Using the CMVC Command Line Interface, commands are typed on one or more lines and finished with the Enter key. Commands, action flags, attribute flags and arguments are case sensitive. From the OS/2 and UNIX shells you can control: o wildcard substitution o background/foreground processing o input and output redirection o pipelining o shell variable substitution o command aliasing (except when using the Bourne shell) Overview of the CMVC client: line commands and GUI 3 2.2 CMVC GUI, LINE COMMAND, SERVER MODEL The CMVC GUI interacts with the user and behind the scene uses the CMVC line commands. In other words, the CMVC GUI is an application that sends CMVC line commands on behalf of the user. The CMVC GUI logs all commands it sends into a file called, by default, "cmvc.log". The GUI never communicates directly with the CMVC server. No code or library is shared between the CMVC GUI and the CMVC line command either. The GUI is therefore isolated from the rest of the CMVC. If the proper command has been issued, there is no way for the GUI to interfere with the processing of the command. The output from the "stdout" pipe from the CMVC line command is routed to the main CMVC GUI windows. The output from the "stderr" pipe from the CMVC line command is routed to a CMVC Error box. The GUI also uses other UNIX commands like "diff" (for showing differences between versions of a file) and "lpr" (for printing) or user written shell scripts defined in the task main window. ------------------------- | CMVC GUI | ------------------------- | | stdin | | stdout | | ------------------------- | Shell | ------------------------- | | stdin | | stdout | | ------------------------- ---------------------- | CMVC | TCP/IP | | | line |----------| family | | command | | server | ------------------------- ---------------------- Figure 1. CMVC GUI - line command - server Model 4 CMVC FAQ: client 2.2.1 Client-Server Communication __________________________________ The client-server communication is implemented using TCP/IP sockets. The CMVC Client creates packets of data depending on the user's request and the CMVC Server creates packets of data depending on the result of the user's request. For each CMVC action there is a defined protocol between the client and server. o When servicing a request, the client knows how many packets of data it must create and the server knows how many packets of data to receive. o When sending request results, the server knows how many packets of data it must create and the client know how many packets of data to receive. Transmission of files between the client and server is handled by the file transfer interface. o The file is divided into blocks and transmitted as packets of data through the socket interface. o Both the client and the server make use of temporary files created in the /tmp directory on their respective machines. These temporary files hold the contents of the file being transmitted. 2.2.2 Security Concerns ________________________ Several customers have asked if there is a security exposure in CMVC because the CMVC daemon is a "setuid" process with root per- missions and we use a known socket for sending and receiving data. The CMVC daemon sends and receives all data across the socket defined in /etc/services. The CMVC daemon may only receive a limited set of packet formats, corresponding to CMVC actions. Anything that does not conform to this packet structure causes the "... is not compatible ..." error message. Therefore, there is no security exposure. Overview of the CMVC client: line commands and GUI 5 2.3 INTERACTION OF THE UNIX CMVC CLIENT AND THE IFOR SERVER Only the CMVC client for UNIX needs to obtain runtime licenses from an iFOR license management system. The CMVC clients for OS/2 and Windows do not use this licensing mechanism. The interaction between the UNIX CMVC client and the iFOR server that has the CMVC licenses is shown in Figure 2 on page 7. The numbers in the figure indicate the interactions between the com- ponents. 1. The CMVC GUI gathers information from the user and invokes a CMVC line command. The CMVC GUI does not interact directly with the iFOR server nor with the CMVC family server. 2. The CMVC line command requests a valid license for CMVC from the iFOR server in order to interact with the CMVC family server. The CMVC line command waits for the iFOR server to respond. If there are problems with the network and/or the iFOR server is not available, then the CMVC line command will "hang". 3. The iFOR server process the request from the CMVC line command. If there are valid licenses for CMVC, then it will assign one to the CMVC client. If there are no valid licenses for CMVC, then it will send an error message. 4. If the CMVC line command receives a valid license, then it will interact with the CMVC server 6 CMVC FAQ: client -------------- | CMVC | | GUI | -------------- | | 1 | -------------- -------------- | CMVC | 2 | iFOR | | line | --------------------->| server | | command | <---------------------| | -------------- 3 -------------- | | 4 | -------------- | CMVC | | server | -------------- Figure 2. Interaction of CMVC client and iFOR server NOTE: The CMVC family server does not interact at all with the iFOR server. For more details on how the CMVC client for UNIX interacts with the iFOR server, see the technical report "CMVC frequently asked questions: license management with NetLS/iFOR". 2.4 WHAT IS THE STARTUP SEQUENCE FOR THE UNIX CMVC GUI? This section describes the sequence of events that takes place when the CMVC GUI for UNIX starts. It can help you in doing problem determination when the GUI cannot be invoked success- fully. 1. The 2 message catalog files are opened: cmvchelp.cat and cmvcui.cat. No errors or warnings are issued if the files cannot be opened. In that case, the hard-coded English mes- sages will be used which are identical to the ones in the message catalog files. 2. The X Toolkit is initialized. 3. Initialize the handler for warnings and errors (which are also written in the log file). 4. Open the display. This parses line command arguments and sets the resource database. If the display can not be Overview of the CMVC client: line commands and GUI 7 opened, it sends an error on stderr and the GUI exits. This is usually due to a bad display name, like: -display notExist:0 5. The CMVC application main window is now posted on the screen. 6. The CMVC application specific resources are read from the database and their values are stored internally. 7. The CMVC_BECOME environment variable is set to the values from a previous session. If this is the first time the GUI is being used, a dialog will popup up, asking the user to specify the user ID. 8. The CMVC_FAMILY environment variable is set to the values from the previous session. A "Report -help" command is sent to ping the server. If it fails, an error box is posted. Otherwise the CMVC_FAMILY environment variable is set. If the family was set to NULL from the previous session, then the "Set Family" dialog box is posted. 9. The CMVC_TOKEN_EXPIRY environment variable is set to the values specified in the last session. Note that if the user set this value smaller than 15 minutes, then 15 minutes will be used. 10. The GUI will then request the configurable information from the server for the current family by issuing commands such as "Defect -configInfo -raw". 11. The log file is opened. If it fails, an error box is posted and operation resumes normally. 12. Put cmvc process in the background (for standalone only). 13. Enter the Xt Application main loop. Events are dispatched to the proper window. NOTE: During the validation of the family or the request for configurable field information, the GUI appears hung if the server is slow to respond or the network is down. You can kill the commands being issued. This is also true for any action the user invokes from the GUI. The GUI waits for the response from the server and the cursor displays the "hourglass" bitmap while waiting. 8 CMVC FAQ: client 2.5 WHAT IS THE PROCESSING DONE WITH THE CMVC LINE COMMANDS? 1. Open the message catalog. If the message catalog cannot be opened, the default messages (in English) will be used. 2. Check for input parameters If no input parameters are provided, the command usage state- ment is displayed (on stderr). 3. the identity of the user is obtained In UNIX, the identify of the user is obtained with the getuid and getpwuid system calls. These system calls make use of the /etc/passwd file. The /etc/passwd file must have at least 664 permission so that the user's identity can be prop- erly obtained. In OS/2, the USER environment variable is used. 4. Read applicable environment variables All CMVC environment variables that are applicable for the specific command are read. 5. Validate input parameters o There can only be one action flag per command. o All attribute flag arguments must be valid. o All required flags must be specified or their value must be obtainable from CMVC environment variables. 6. Connect to the server The client connects to the server using the server's address and port number. The gethostbyname system call is used to obtain the server's host entry. If the port number is given, it is used; otherwise the getservbyname system call is used to find the family's port number in the client's "/etc/services" file. The client creates a socket to talk to the server and then the connection is established. 7. The user is authenticated. The user is authenticated as a valid CMVC user from the spe- cific client machine by means of a host list entry. If the authentication fails, an error is displayed and the client disconnects from the server. 8. Send request to the server and wait for response. Overview of the CMVC client: line commands and GUI 9 The request is sent to the server and the client waits for the request to complete. If any of the attribute flags contain more than one argument, a separate request is sent to the server for each. All requests are processed sequen- tially. If any of them fail, an error message will be stored and the next request will be handled. 9. Issue verbose or error messages if applicable. If the request completed successfully and the verbose option was specified, a message is displayed via stdout on the client machine. If the request completed with errors, a message is display via stderr on the client machine. If a report was requested, the contents of the report are routed to stdout. 10. Disconnect from the server. The client disconnects from the server by closing the TCP/IP socket. 2.6 DIFFERENCE BETWEEN CMVC USER AND SYSTEM LOGIN The purpose of this section is to try to clarify the differences between the CMVC User and the system login. The CMVC User is an object that is known only to CMVC. It is represented by the variable CMVC_BECOME and by the field "Become user" in the Settings page of the OS/2 and Windows GUI. The system login is the actual identification used when inter- acting with the UNIX login shell. Because OS/2 and Windows 3.1 do not have a login mechanism, it was necessary to allow the user to explicitly specify the equiv- alent of the system login by means of the USER environment vari- able, which is shown as the "User id" in the Settings. Let's see an example which will illustrate the difference between these concepts. A user has 2 CMVC user names but only one system login: o One CMVC user is "su_angel" (a superuser, which is not used too frequently). Notice the use of the prefix "su_" which indicates that is a superuser. It is recommended to use something like this to quickly identify a CMVC superuser. 10 CMVC FAQ: client o The other CMVC user is "rivera" (a normal user, with no superuser powers). o When the user logs into the UNIX host "carcps06", the system login is "rivera". The user can login into UNIX as the system user "rivera" and then use the CMVC user of "rivera" (using the environment variable CMVC_BECOME=rivera) to interact with CMVC as a normal guy. In case the user needs CMVC superuser powers, then as system login "rivera" the user can specify the CMVC user "su_angel" (CMVC_BECOME=su_angel). Notice that the user employs the same system login "rivera" but the user can choose which CMVC user to "become". In order to be able to interact with CMVC as mentioned above, the user needs the following CMVC host list entries: o System login=rivera from host=carcps06, CMVC userid=rivera. o System login=rivera from host=carcps06, CMVC userid=su_angel. To extend this scheme a bit more, let's suppose that in order to do extractions from CMVC, the user needs to login into the host "carcps21" as system login "build", but using the CMVC user "rivera". This means that the user needs the following CMVC host list entry: o System login=build from host=carcps21, CMVC userid=rivera. In short, CMVC allows the ability to use the same UNIX login and then you can specify which CMVC role you want to play (and vice versa, to use the same CMVC role from different system logins/hosts). SIDE TRIP: One cause of confusion is that the CMVC Host command does not use the correct terminology (but fortunately the CMVC Host GUI dialog uses the correct one). For example, if you need to create a host entry for the system login=build from host=carcps06, as CMVC user=rivera, then you need to use the CMVC Host command as follows (it would be nice if the "-login" flag was changed to "cmvcUserId" to reflect the correct usage, but this is not pos- sible now): Host -create build@carcps06 -login rivera ************* CMVC User ******** host ***** system login of the UNIX account Overview of the CMVC client: line commands and GUI 11 2.7 DETAILS ON THE PRINTING OPERATIONS There are 2 ways in which print operations are performed. One involves redirection and the other involves writing files in /tmp. Note that the shell will not give an error message back to CMVC if the filesystem is full. A file with size 0 will get created and the user will not be notified. In OS/2 and Windows, the PRINT command is invoked, and the syntax for this command is: PRINT filename 2.7.1 From a CMVC main window ______________________________ When the print operation is invoked in a main window, a dialog will appear in which the user can specify a print device name and a title for the output. The information will then be written into a file in /tmp. The filename is "PrintWindowXXXXXX" where XXXXXX is a random alphanumeric sequence. The file is then sent to the printer using the following command: /BIN/CAT PRINTWINDOWXXXXXX | LP -DYY. The output of /bin/cat is piped into the print device (yy) that the user specified in the print dialog. This command is also written in the log file. 2.7.2 From an error dialog ___________________________ When an error message consist of more than 25 lines, the message will be displayed in a scrolled window. The contents of this message can be printed through the Print Button located at the bottom of the dialog. This buffer will then be written into a file in /tmp named "InfoWindowXXXXXX" where XXXXXX is a random alphanumeric sequence. The file is then sent to the printer using the following command: /BIN/CAT INFOWINDOWXXXXXX | /BIN/LPR. The output of /bin/cat is piped into the print command set through the "Set Print Command" dialog. This command is also written in the log file. 2.7.3 From Treeviews _____________________ Users can print the "VISIBLE" contents of the treeviews. In order to accomplish this graphic printing task, the GUI makes use of the "xwd" and "xpr" utilities that are part of the X distrib- ution. The GUI assumes that these utilities can be found in: 12 CMVC FAQ: client For AIX and HP-UX: /usr/bin/X11 For SunOS and Solaris: /usr/openwin/bin When the user invokes print from the treeviews, a dialog will appear in which the user can specify the print options. Once OK is pressed in this dialog, a beep will sound to indicate that xwd is taking a snap shot of the visible contents. When it is com- pleted, a second beep will be heard. The result will then be sent to xpr for processing. Once completed, the final image will then be piped to the printer command specify in the "Set Print Command" dialog. This command, as always, is written in the log file. 2.8 SHOW FILE DIFFERENCES In the CMVC - Files window, a user can compare the content of a CMVC file with another CMVC file or a file on his workstation. This is done by extracting the CMVC files into /tmp and running a compare command against the 2 files; in UNIX the default is "diff" and in OS/2 is the CMVC utility "cmvccomp". As usual, any stdout and stderr is directed to dialog boxes. The default /bin/diff compare command does not produce any stdout or stderr when the 2 files are identical. However, the GUI will display "The files are identical" message. Here is the sequence of events: 1. The first CMVC file is extracted using the File command and the "-stdout" flag. This flag sends the content of the file to stdout instead of writing it to the filesystem. The output from stdout is redirected to a file in /tmp. The name of the file is SHOWDIFFERENCES1XXXXXX where XXXXXX is a random alphanumeric sequence. A typical command would be (using 2 lines for clarity): FILE -STDOUT -TOP /CODE -EXTRACT MAIN.C \ -RELEASE PROJECTA > /TMP/SHOWDIFFERENCES1FUT8YL 2. If a second CMVC file is specified, it will be extracted the same way. The file name in /tmp is "ShowDifferences2XXXXXX." If a workstation file is specified, nothing more is done. 3. The 2 files are then compared using the Compare Command: Overview of the CMVC client: line commands and GUI 13 cd /code; \ /bin/diff /tmp/ShowDifferences1UN40J /tmp/ShowDifferences2DFGM5D cd /code; \ /bin/diff /tmp/ShowDifferences1UN40J main.c 2.9 DIRECTORY PREFIX AND SYMBOLIC LINKS The CMVC GUI has to evaluate if the Directory Prefix is a valid leading portion of the Source Directory (in File Create). The GUI will resolve symbolic links when performing the evalu- ation. File Name: main.c Source Directory: /u/user/src Directory Prefix: /home/user/src In the above example the resulting file, main.c, is created because "/u" is linked to "/home" This is also true for softcmvc. However, in the SoftBench envi- ronment, the symbolic links are not resolved. The context /u/user/src is different from the context /home/user/src. The GUI does not attempt to resolve a symbolic link in the file names received from tool messages. 2.10 HANDLING ERROR MESSAGES These error messages are obtained from the file /USR/LIB/NLS/MSG/EN_US/CMVCUI.CAT provided the LANG environment variable is set to EN_US. Otherwise the error messages will come from the English hard coded defaults. Messages beginning with "0010" come from the Server over TCP/IP to the Client side. They are sent as a string through the stderr pipe. The CMVC GUI blindly dumps them in an error box with no intervention. 2.11 HOW THE GUI OBTAINS THE INFORMATION ABOUT CONFIGURABLE FIELDS o The CMVC GUI sends commands to the CMVC server to obtain information about the configurable fields: - Defect -configInfo -raw 14 CMVC FAQ: client - Feature -configInfo -raw - File -configInfo -raw - User -configInfo -raw o GUI requests configurable fields information only at: - GUI startup - switching a CMVC family Overview of the CMVC client: line commands and GUI 15 16 CMVC FAQ: client 3.0 FREQUENTLY ASKED QUESTIONS: GENERIC CMVC CLIENT In this section several frequently asked questions are presented which are common to the different CMVC clients: UNIX, OS/2 and to a certain degree, Windows 3.1. 3.1 USING THE REPORT COMMAND TO TEST THE NLS SETTINGS QUESTION: How could I test that the NLS settings (and the message catalog) being used by the client are the correct ones? ANSWER: You can use the command "Report -testServer" to verify if the CMVC server is accessing the message catalogs and the command "Report -testClient" to verify if the CMVC client is also accessing the message catalogs. Some examples are shown below (the actual values might be dif- ferent): From OS/2: c:\ Report -testServer "The message catalog is available (1.285.2.118)" From OS/2: c:\ Report -testClient "The message catalog is available (1.3)" From AIX: $ Report -testServer "The message catalog is available (1.285.2.118)" From AIX: $ Report -testClient "The message catalog is available (1.285.2.118)" For more information about the message catalogs, see the file /usr/lpp/cmvc/bin/README.nls_dbcs Frequently asked questions: generic CMVC client 17 3.2 HOW TO TEST THE NAME RESOLUTION: PING, HOST, NSLOOKUP QUESTION: How to test the name resolution: ping, host, nslookup In some cases, the host name is not fully resolved by the domain name server, and even though the "ping" command shows that the host is reachable, CMVC does not seem to reach that host name. What else can we do to verify that the host name is properly con- figured? ANSWER: The use of "ping" is the first step to ensure that a host name is properly defined in the network and that the specified host is connected and operational. However, in some situations (mainly due to aliases and incomplete TCP/IP configurations) it is possible for the "ping" command to provide a valid output, even though the host name is not fully configured. In this case, we have to take a second step in the verification process: to use the command "host", which is avail- able in AIX, in OS/2 and in IBM TCP/IP for DOS. This command is not provided by TCP/IP in SunOS, Solaris and HP-UX; but we provide in CMVC the command "cmvchost" in /usr/lpp/cmvc/bin, which is a reduced version of the AIX "host" command. The "host" command is used to ensure that a specified host name can be resolved to an IP address, and correspondingly, that the same IP address is resolved to the specified host name. We have seen cases in which a host name is resolved to an IP address, but this IP address is resolved to a different host. In these cases, it is important to first fix the TCP/IP configura- tion problem and do NOT attempt to use CMVC until the TCP/IP problem is fixed. The recommended verification sequence is: 1. Using the command "ping". In this example the host "oem-ppc1" is up and running: $ ping oem-ppc1 PING oem-ppc1.raleigh.ibm.com: (9.67.163.37): 56 data bytes 64 bytes from 9.67.163.37: icmp_seq=0 ttl=254 time=70 ms 64 bytes from 9.67.163.37: icmp_seq=1 ttl=254 time=7 ms Ctrl-C 2. Using the command "host". In this example the host name resolves to one IP address: 18 CMVC FAQ: client In AIX: $ host oem-ppc1 oem-ppc1.raleigh.ibm.com is 9.67.163.37 In HP-UX, SunOS or Solaris: $ cmvchost oem-ppc1 oem-ppc1.raleigh.ibm.com In OS/2 and/or DOS: C:\> host oem-ppc1 oem-ppc1.raleigh.ibm.com resolves to 9.67.163.37 3. Using the command "host". In this example the IP address resolves to one host name: In AIX: $ host 9.67.163.37 oem-ppc1.raleigh.ibm.com is 9.67.163.37 In HP-UX, SunOS or Solaris: $ cmvchost 9.67.163.37 oem-ppc1.raleigh.ibm.com In OS/2 and/or DOS: C:\> host 9.67.163.37 9.67.163.37 resolves to oem-ppc1.raleigh.ibm.com 4. Ensure that the output from the above steps indicate the same host name and the same IP address. Other examples of using the ping and host commands in different situations are shown below: o Ping example: the host "rivera" is defined in the network but it is not operational (it is not powered on): $ ping rivera PING rivera.raleigh.ibm.com: (9.37.194.163): 56 data bytes Ctrl-C ----rivera.raleigh.ibm.com PING Statistics---- 49 packets transmitted, 0 packets received, 100% packet loss o Ping example: the host "xyz123" is not defined in the network: $ ping xyz123 0821-062 ping: host name xyz123 NOT FOUND o Host example: the host "rivera" is defined in the network but it is not operational (it is not powered on): Frequently asked questions: generic CMVC client 19 $ host rivera rivera.raleigh.ibm.com is 9.37.194.163 $ host 9.37.194.163 rivera.raleigh.ibm.com is 9.37.194.163 o Host example: the host "xyz123" is not defined in the network: $ host xyz123 host: 0827-801 Host name xyz123 does not exist. o Host example: the IP address "1.2.34.5" is not defined in the network: $ host 1.2.34.45 host: 0827-803 Cannot find address 1.2.34.45. 3.2.1 Using the nslookup command _________________________________ Another TCP/IP command that can be used in the diagnostic process is the command "nslookup" (Name Server Look Up) which skips the local hosts file and queries directly the network name server. It provides the host name and IP address of the name server, fol- lowed by the target host name and IP address. 3.3 I CANNOT CAPTURE THE HELP OUTPUT FROM A CMVC LINE COMMAND QUESTION: When I try to get the help output from a CMVC line command (such as when entering the "File" command by itself), I see the resulting text scrolling off the screen, but I cannot pipe it to the "more" utility (that is, "File | more") to see one screen at a time. ANSWER: The help text from a CMVC line command goes to stderr, and not stdout. To do what you want, you need to do the following: File > file.out 2>&1 The "2>&1" redirects stderr ("2>") to the same place as stdout (in this case, test.out) 20 CMVC FAQ: client 3.4 USING ENVIRONMENT VARIABLES WITH THE CMVC CLIENT QUESTION: Can I use environment variables with the CMVC line commands and inside the CMVC GUI? ANSWER: In the CMVC OS/2 GUI and the CMVC UNIX GUI it is possible to use environment variables such as CMVC_RELEASE or CMVC_BECOME in the task list or in the Open List or Filter dialogs, or on the space for the line command in the OS/2 GUI (above the footer). In the same way, you can use environment variables with the CMVC line commands. In OS/2, you will need to specify the environment variable between % and %, such as: login in ('%CMVC_BECOME%') In UNIX, you will need to specify the environment variable by using a prefix of $, such as: login in ('$CMVC_BECOME') NOTE: The CMVC Windows GUI cannot handle this substitution of environment variables. 3.5 HOW TO USE THE CMVC_CASE ENVIRONMENT VARIABLE QUESTION: How can I use the CMVC_CASE environment variable? ANSWER: CMVC was born in the UNIX environment and therefore, it is sensi- tive to lower and upper case file names. When the workstation client for CMVC was developed (OS/2 and Windows, which are NOT case sensitive), an environment variable was added called CMVC_CASE (it is also in the settings notebook), to allow customers to control how to map the file names to the client portion of CMVC. o If the value is "ignore", then the CMVC client will NOT change the file names. Frequently asked questions: generic CMVC client 21 This is the only option that allows you to handle file names in mixed mode. o If the value is "upper", then the CMVC client will change the file names to upper case. Thus, the CMVC server will see the request that comes from the CMVC client as being with file names in uppercase. o If the value is "lower", then the CMVC client will change the file names to lower case. Thus, the CMVC server will see the request that comes from the CMVC client as being with file names in lowercase. This variable does NOT change the response that comes back from the CMVC server. 3.6 OPERATIONAL DETAILS ON THE CMVC LOG FILE QUESTION: Operational details on the cmvc log file ANSWER: The CMVC GUI will try to open a log file at start-up. The name of this file will be what the user has specified in the option "Set Log File" dialog in UNIX or in the "Log File" entry on the Setup page in the Settings notebook for OS/2 and Windows 3.1. If the absolute path is not specified, then the log file will be opened relative to the directory set throughout the "Set Direc- tory" dialog in UNIX or in the "Relative directory" entry in the Environment page in the Settings notebook in OS/2 and in Windows 3.1. The default file name is CMVC.LOG. If the log file can not be opened, a warning message is posted. The log file stores all the commands that the CMVC GUI has been sending through a shell. It could be a Client command (Defect -open ...) or any shell executable. In UNIX, the log file will also store the warnings and errors from X Windows that are sent to stderr. If the standalone CMVC GUI (cmvc) was invoked from the window manager root menu, the stderr is lost. The same is true for the Softbench integrated CMVC GUI (softcmvc) when invoked from the Tool Manager. Note that for Client commands that have a -REMARKS flags, the text of the remarks is not stored in the log file. The text is sent directly through the pipe. The log would show, for example, 22 CMVC FAQ: client DEFECT -NOTE 1234 -REMARKS - 3.7 CAN I CREATE A TASK TO DISPLAY THE TREE VIEW OF COMPONENTS? QUESTION: Does anyone know of a way to create a task that displays a tree view of the component structure without having to manually display a tree view, then use Expand Downward to see the rest of the tree? ANSWER: In the CMVC GUI for UNIX and Windows 3.1, it is not possible to have a task that invokes the CMVC Tree window. However, in the GUI for OS/2, you can select that the Tree view as the default view for the Component Windows. The CMVC Tree view can only remember the name of the top compo- nent to be displayed; it does not recall what actions you applied in your previous sessions, such as expanding the children compo- nents. 3.8 HOW DO I ENTER MULTI-LINE REMARKS FROM THE LINE COMMANDS? QUESTION: How do I put multiple-line remarks, as opposed to one long line, into, say, a Feature -open command? ANSWER: Look up "Using standard input for arguments" on page 4 of the CMVC Commands Reference 2.2 manual. You are allowed one "-" for which CMVC substitutes the value of stdin. In UNIX you can use the following: defect -open -remarks - < this is a long > description of the problem > ! You will be prompted with the character ">", but the line will continue. To end the remark, you need to enter "!" o In OS/2, the escape character is a caret, &caret.. In order to continue a remarks you must do the following: Frequently asked questions: generic CMVC client 23 defect -open -remarks "this is a long"&caret. More? "description of my problem" You will be prompted with "More?", but the line will con- tinue. You will find that the escape feature in OS/2 is more limited than the one in UNIX, but the basic capability is there. 3.9 COULD I SPECIFY A RELEVANT WINDOW WHEN STARTING THE CMVC GUI? QUESTION: Is it possible to start the CMVC GUI directly into a relevant object windows? ANSWER: No, the CMVC Tasks window is the window that always appear when invoking CMVC. However, in the CMVC client for OS/2 and Windows we provide the Action pulldown that allow users to manipulate CMVC objects from the Tasks window. 3.10 IS IT POSSIBLE TO BYPASS THE HOSTS AND SERVICES FILES? QUESTION: Is it possible to bypass the hosts and services files when speci- fying a CMVC family name from the CMVC client? ANSWER: You can always use the long family name that has a format: familyName@hostName@portNumber such as: octo@carcps21@1311 This will bypass the need to update the etc/hosts and etc/services files when using the CMVC client. However, for the CMVC family server, you must update the services file in order to properly assign the port number to the CMVC family. 24 CMVC FAQ: client NOTE: In UNIX, the hosts file is in the /etc directory. In OS/2, the location is dependent upon the TCP/IP product you are using; for IBM's TCP/IP the file resides in %ETC%/HOSTS. However, if you want to avoid using the long family name, then you must update the etc/services file and optionally the etc/hosts file in case your family is not registered in the name server. Finally, if you specify the long family name with the 3 fields, then you should know that the 1st field is really ignored, because with the hostName and the portNumber the system has all the information to connect to the socket used by the family. 3.11 FILE PATH NAME WITH FORWARD OR BACKWARD SLASHES QUESTION: How CMVC handles the file path names with forward or backward slashes ANSWER: The CMVC client and server will take into account the usage of the slashes, both backward (for DOS, OS/2 and Windows) and forward (for UNIX). The file will be treated according to the target platform. That is, you can extract the file tmp\file.dos into a UNIX directory and the end result will be a file in tmp/file.dos. The reverse is also true, you can extract the file tmp/file.aix into a DOS directory and the end result will be a file in tmp\file.aix. You can use the GUI to specify the relative directory to store the code. In the UNIX GUI it is called "Set Directory", in the OS/2 and Windows GUI is called "Relative directory" on the first settings page. When using the line commands the CMVC_TOP environment variable can be used. For more details on this topic, please see page 51 in the CMVC Commands Reference, Chapter 10, Files. NOTE: text="TeamConnection note". We improved the explanation in the TeamConnection Commands Reference, page 98, Chapter 18, Parts (same concept). Finally, we added this explanation in the technical report "CMVC frequently asked questions: handling file, release and level extract problems". An example of the relative directory is shown next: if the user specifies the relative directory to C:\pages, and the file Frequently asked questions: generic CMVC client 25 tmp\file.dos is extracted, then the file will be located in C:\pages\tmp\file.dos. Another point to consider is the difference between "path name" and "base name" when doing queries. The base name is the file name with NO directory information, such as file.dos, while the path name is the complete file name with the directory informa- tion, such as tmp\file.dos. 3.12 WHAT IS THE DIFFERENCE BETWEEN "CHOICES" AND "IMPORT" BUTTONS? QUESTION: What is the difference between "choices" and "import" buttons? ANSWER: All the fields in the CMVC GUI that have a box titled "choices" get the list of available choices from the Config table from the database, which in turn is populated by running the chcfg command that uses the config.ld. The CMVC family administrator is able to modify this file. All the fields in the CMVC GUI that have a box titled "import" get the respective data from other opened CMVC windows. For example, if I select release-A from the Release window, and then do a Level Create from the Levels window, I will see that there is a Release field in the Level Create dialog, and that there is a button "import" in the right hand side of that field. Then if I press the import button, the release-A string will be placed in the field, and I do not have to type it by hand. In the CMVC dialogs for OS/2 and Windows, the import button is at the bottom of the dialog and it "knows" which field is being used by means of tracking the position of the cursor. Thus, if the cursor is in field-A, then the import button will be enabled if it is possible to import something in that field. 26 CMVC FAQ: client 3.13 POSSIBLE PROBLEMS WHEN PRESSING THE "CHOICES" BUTTON QUESTION: Possible problems when pressing the "Choices" button ANSWER: o GUI Choices button returns no information The CMVC GUI submits the following command to obtain informa- tion about a configuration type: Report -vi config -raw -where "type = 'TypeName'" If TypeName is not defined in the Config database table, then no information will be provided to the CMVC client. In this case, the family administration needs to do the following: 1. Check the config.ld file at the server. 2. Add TypeName in the config.ld file if not already there 3. Run chcfg at the server o Line command with type error - When using a configuration type with the line commands, if you get the following error message: 0010-281 The name ChoiceName is not valid for type TypeName. Then, TypeName is defined in the Config database table, but ChoiceName is not defined. In this case, the family administration needs to do the following: 1. Check the config.ld file at the server. 2. If ChoiceName is associated with TypeName, then run the chcfg program to update the database. 3. If ChoiceName is not found in config.ld, then update config.ld file and run chcfg program to update the database. Frequently asked questions: generic CMVC client 27 3.14 HOW DO I USE THE "IMPORT" BUTTON IN THE GUI? QUESTION: How do I use the "Import" button in the GUI? ANSWER: It is possible to go to the Release windows, select a release, then go to the Open Defects dialog, move the cursor into the Release field and click on "Import". Then the selected release name will be added in the release field in the dialog. In the OS/2 GUI we added the facility to "remember" the last 10 releases that the user has specified, and thus, when the user is in the Open Defects dialog, the release field becomes a drop down field where the user can select any of the last 10 releases used before. There are no plans to incorporate the new features from the OS/2 GUI into the existing GUIs for Windows and UNIX. NOTE: text="TeamConnection note". The TeamConnection GUI has this feature in all the supported platforms. 3.15 PERFORMANCE DIFFERENCES BETWEEN OS/2 AND UNIX CLIENTS QUESTION: Performance differences between OS/2 and AIX client: 1. Why the CMVC OS/2 File command seems slower than the CMVC UNIX client? 2. Overall, why the CMVC OS/2 client seems faster than the CMVC UNIX client? ANSWER: 1. The CMVC OS/2 client needs to issue a couple of Report com- mands in order to find out what is the type of the file to be extracted; this information is needed to properly extract the file. In contrast, the CMVC UNIX client does not need to issue these Report commands. Thus, this additional Report commands make the CMVC OS/2 File command slower than then CMVC UNIX one. 28 CMVC FAQ: client 2. The CMVC client for UNIX interacts with the iFOR (NetLS) server in order to obtain a license to work with the CMVC server. In contrast, the CMVC clients for OS/2 and Windows do not interact with the iFOR server; instead, these clients contact the CMVC server in a direct fashion. Unfortunately, the performance of the iFOR server degrades overtime if there are hardware failures or changes in the configuration of the network. The system administrator needs to perform a procedure (periodically) to reset the configura- tion of the iFOR server in order to bring the performance to its original status. For more details on this procedure, see the Technical Report "CMVC frequently asked questions: license management with NetLS and iFOR". 3.16 CAN I CREATE A USER EXIT IN MY CMVC CLIENT? QUESTION: Can I create a user exit in my CMVC client? ANSWER: The usual reason for requesting client side user exits is to overcome the limitation of CMVC that no value may be changed in a server side user exit. CMVC cannot permit changes in user exits because data validation is distributed throughout each command, beginning on the client side (before user exit 0) and not com- pleting until right before the action is committed in the data- base (the last command before user exit 2 in most cases). The next question is usually a request for a client side user exit. While there are no client side user exits in CMVC, it is possible to simulate client side exits. A client user exit may be simulated by: 1. Creating a wrapper shell script or executable of the same name as the CMVC command, before the CMVC command in the PATH. 2. Processing the input parameters in this wrapper. 3. If necessary issuing CMVC commands, such as report, to get more information. 4. Updating the parameters as appropriate. 5. Calling the CMVC command using an explicit PATH. Frequently asked questions: generic CMVC client 29 If you are concerned about users changing your tool, thereby defeating your goal, there are a few more things you can add to maintain some control: 1. Put your wrapper in a directory where the user cannot update the file or mount the commands using a read-only file system. 2. Use a rexec command to the server in order to set a semaphore before the CMVC command is issued. 3. In a user exit in the CMVC server, verify that the semaphore is set. 4. After the CMVC command is complete, release the semaphore before exiting the wrapper. In most cases, you will likely use a wrapper to aid the user and all of this extra effort and overhead will not be necessary; however, the workaround is possible if needed. NOTE: If you are wrappering a CMVC command, it will be necessary to set signal handlers to insure that the wrapper runs to com- pletion even if the user interrupts the CMVC command. 3.17 STRANGE ERROR MESSAGES CAUSED BY USING WRONG MESSAGE CATALOG QUESTION: Strange error messages caused by using wrong message catalog ANSWER: If your family is experiencing strange error messages, they are likely to be the result of an incompatibility between the message catalogs and the executables for CMVC. This could happen if you have an older version of CMVC installed in your computer and the NLSPATH variable is pointing to the older one. We provide messages catalogs only for the locale En_US (default in AIX 3) and NOT for en_US (default in AIX 4). Thus, if you are using AIX 4, then the message catalogs were installed in /usr/lib/nls/msg/En_US as cmvc.cat (for server and line commands) and cmvcui.cat and cmvchelp.cat (for the GUI). However, the problem might be that the NLSPATH variable points simply to /usr/lib/nls/%L/%N and that the LANG variable is en_US and not En_US. You have these choices to overcome the problem: 30 CMVC FAQ: client o Change the LANG variable from en_US to En_US, logoff and login again to refresh the environment. o Add to the beginning of the NLSPATH the following: NLSPATH=/usr/lib/nls/msg/En_US/%N:$NLSPATH o If any of the above fixes the problem, then you may need to reinstall the product to ensure that you are using the correct message catalog. o Ensure that both the CMVC client and CMVC server code that are installed in the same host are at the same level. 3.18 CAN I ALTER THE ORDER OF THE COLUMNS IN THE GUI? QUESTION: Can I alter the order of the columns in the GUI? ANSWER: Only the CMVC client for OS/2 allows you to reorder the fields of the windows. The configurable fields are kept together in the order in which they were created and they can be reordered only as a group. In the other GUIs (UNIX and Windows) the configurable fields are shown at the right hand end (again, as a complete block). Frequently asked questions: generic CMVC client 31 32 CMVC FAQ: client 4.0 FREQUENTLY ASKED QUESTIONS ABOUT THE CMVC CLIENT FOR UNIX In this section several frequently asked questions are presented which are specific to the CMVC client for UNIX. 4.1 SAMPLE PROFILE FOR A CMVC UNIX USER QUESTION: Is there a sample profile ready-to-use for a CMVC UNIX user? ANSWER: Starting with CMVC 2.3.0.18, we are providing an excellent sample profile for a CMVC UNIX user. We strongly recommend that for every new user, regardless of their expertise, the CMVC sample profile should be used as the profile (or at least to be used as the basis for the profile). We are constantly adding new envi- ronment variables and adding new hints and tips. Furthermore, each sample profile has variables that are dependent on the operating system and they are commented out; it is the responsibility of the CMVC user to review the entire profile and uncomment those variables that are appropriate. The CMVC user sample profile is located in: /usr/lpp/cmvc/samples/profile.user 4.2 INCOMPLETE SECTION BETWEEN PAGES 14/15 OF CMVC CLIENT MANUAL 2.3 After the section "Setting Your Client Address" in page 14, the following text is missing: Frequently asked questions about the CMVC client for UNIX 33 Setting the Path to the CMVC Executables You must set the path to the CMVC client executable programs and copy the Cmvc file for the CMVC client to your home directory, as follows: 1. Log in to your system with your operating system login. 2. Add /usr/lpp/cmvc/bin to the PATH environment variable in the login profile. 3. Copy the CMVC client application resource file, Cmvc, from /usr/lib/X11/app-defaults directory to your home directory. The rest of the section follows at the top of page 15. 4.3 IS THERE AN API TO THE CMVC CLIENT? QUESTION: Is there an API (preferable in C) to the CMVC client? ANSWER: The only interface is thru the line commands. However, you can invoke line commands from a C program with varying degrees of sophistication. The following code segments are provided: A.1, "Long version of code to run a command" on page 69 and A.2, "Short version of code to run a command" on page 71. NOTE: text="TeamConnection note". TeamConnection, the suc- cessor product for CMVC, provides such API. 4.4 AN ERROR OCCURRED WHILE CONVERTING A MULTI-BYTE STRING (2059-056) QUESTION: When I tried to start up cmvc on AIX, I got the following error message: 2059-056 An error occurred while converting a multi-byte character string The characters may have been encoded in a different locale. How can I fix this? 34 CMVC FAQ: client ANSWER: The problem might be due to the following problems: o Usage of different locales during the input and output of the data. This problem is due to the usage of different locales between the CMVC client that was used to enter the data into the CMVC family and the CMVC client that is used now to get the data from the CMVC family. You may try the following: 1. Make sure that your locale is identical to the one used to enter the original data in your family; it is possible that someone else has used a different locale to enter new data. 2. Take a look at the end of the cmvc.log file to determine what is the baseline. 3. Invoke the GUI by issuing "cmvc" and interact with the CMVC windows that are giving you trouble, until the men- tioned error message appears. 4. Look again at the end of the cmvc.log and take note of the CMVC line commands that were issued from the GUI; repeat them manually via the line commands and check for their contents to make sure that you can read the infor- mation. 5. If you detect something different, then you can modify it by using the CMVC line commands and make sure that you use the current locale. o If you are sure that the same locale is being used during the input and output of the data, then check if you have a "cd" (change directory) command in your .profile or .kshrc; the ksh "cd" function updates the xterm/aixterm title bar with the name of the current directory. We cannot fully explain why, but by eliminating the "cd" call from your .profile or .kshrc, the conversion error is not shown anymore. Frequently asked questions about the CMVC client for UNIX 35 4.5 HOW TO PROVIDE A CUSTOMIZED CMVC RESOURCE FILE QUESTION: How to provide a customized CMVC resource file (.cmvcrc). The CMVC family administrator has identified a set of required tasks that every CMVC user should have in the CMVC GUI, and a set of optional tasks which the user could modify. This is in UNIX. ANSWER: 1. Situation 1: The tasks lists are kept in a hidden file called .cmvcrc which in normal situations the CMVC development team strongly suggest to not modify directly; instead, just adjust and cus- tomize the CMVC GUI and this action in turn will modify the .cmvcrc file. It is possible to copy this .cmvcrc file from one place to another, and this could be the mechanism for providing some standardization of the initial tasks. Suggestion 1: Select one CMVC user login which is going to be the standard .cmvcrc with the required tasks for everybody. Login into that user login and invoke the CMVC GUI. Customize the task list with all the required tasks and the placeholders for optional ones. Once you are satisfied with the results, then you can copy this .cmvcrc to other people. It might be possible that in some cases the GUI will complain about directory locations when it uses the new .cmvcrc, just provide the proper locations to continue. Hint 1: You can add "blank" tasks lists and "separators" to provide a better look and feel, for example: Entry Description Task Query | Executable Number 1 X 2 ----- Set 1 ----- X 3 List files for release releaseName in X where means 0 (zero) characters. 2. Situation 2: 36 CMVC FAQ: client The suggestion in 1 (above) works well in the initial setup for a CMVC customer, but later on the user may add new tasks to the list and then if the CMVC family administrator wants to add more required tasks into the list, how could she do that? Explanation 2: This is one of the drawbacks of the current implementation, because there is no easy solution to this situation 2. Once the user has added tasks to her list, it is not possible to easily migrate them into a new task list or to automatically add tasks into the .cmvcrc. 4.6 COULD I HAVE MORE THAN ONE .CMVCRC FILE AND USE MERGE OPTIONS? QUESTION: Could I have more than one .cmvcrc file and use merge options? ANSWER: The code for the GUI supports only 1 .cmvcrc file that will be located in the $HOME directory of each user. See 4.5, "How to provide a customized CMVC resource file" on page 36 for more details. The workaround for this is another wrapper tool. By creating a script or program named "cmvc" that is before the GUI on the path, you can do some processing before and after running the CMVC GUI. Such a wrapper would typically do the following: 1. Prompt the user for a family; typically through a menu. 2. Based on user selection, copy a Cmvc and .cmvcrc file to the user's home directory. 3. Invoke the CMVC GUI using an explicit path or by renaming the "cmvc" executable and then calling it. 4. Upon exit of the CMVC GUI, copy the Cmvc and .cmvcrc files back and erase the file in $HOME. Another function of the wrapper (one that will not save user's changes to their configuration) can be to do the following: 1. Make sure Cmvc and .cmvcrc are erased. 2. Set the CMVC_* variables. 3. Run the CMVC GUI. Frequently asked questions about the CMVC client for UNIX 37 4.7 WHAT ARE SOME COMMON USAGE ERRORS WHEN USING MOTIF RESOURCES? QUESTION: What are some common usage errors when using Motif resources? ANSWER: Here are some difficulties users have encountered: o Specifying *FONTLIST: ROM17 in the .Xdefaults file. This setting overrides any setting done in the $HOME/Cmvc file. Moreover, it applies to all applications since a wildcard, the asterisk, is specified. It is recommended that there should be no resource specification beginning with a "*". o Specifying proportional fonts instead of monospaced. Information in the CMVC main windows does not align nicely. The user has set proportional fonts but only monospaced fonts should be used in order to align the columns of data. In addition, the font called VARIABLE has a bug, the under- score is displayed as a right arrow (>). o User changes the one line *FONTLIST: ROM22 in the Cmvc file and expects the fonts in all part of the GUI to be changed. General resource settings do not override specific setting. It is the other way around. For example, *XMTEXT*FONTLIST: ERG14 will override *FONTLIST: ROM22. o Changing the value of a resource has no effect: it may be possible that the resource is defined more than once and the second instance of the resource in the file will be the winner. o Users expect that commenting out a resource in $HOME/Cmvc will set it to blank. However, if the resource is set to some value in the app-defaults file, then this value will take effect. The app-defaults file is there to supply a value to resources in case no values are supplied in the $HOME/Cmvc file. o User gets the following warning on stdout and in the log file: X Toolkit Warning: Cannot convert string erg14 to type FontList Note the 2 blanks after erg14. X Window does not remove trailing blanks. An editor like vi will save the file with 38 CMVC FAQ: client trailing blanks. This affects all resources and most of them are not within Cmvc scope. o User gets the following error: SH: LPR: NOT FOUND. The user forgot to set the complete path to the command when setting the print command. If the search path was not set properly when the GUI was invoked, then the GUI will not be able to find the command o The CMVC pulldown is missing on the SoftBench Development Manager. The user failed to add SOFTDM*MENUDIRSELECT_CM: SOFTCMVC in the Softdm resource file or .Xdefaults file. 4.8 HOW TO SET THE COLORS FOR THE CMVC GUI QUESTION: How could I set the background/foreground colors for the CMVC GUI? ANSWER: You can copy the file /usr/lpp/cmvc/samples/Cmvc into your UNIX $HOME directory. This is the resource file that sets some attri- butes for the CMVC GUI and these attributes override other system-wide settings. You can customize the resource definitions listed in the section that deals with colors. 4.9 MY *FONTLIST SETTINGS ARE IGNORED FOR THE HEADINGS IN THE GUI QUESTION: I'm using the following setting in my $HOME/Cmvc file to change the font size in my CMVC windows in the GUI: *fontList: Rom14 However, it seems that these settings are ignored for the column headings, resulting in misalignment between the headings and the data. Frequently asked questions about the CMVC client for UNIX 39 Is there any way to retain the flexibility of selecting a spe- cific font for CMVC and get the headers to agree with the data? Are there other settings in the Cmvc file for the heading fonts? ANSWER: The following resources can be added to the $HOME/Cmvc resource file for finer control of the fonts: o For the column headings in the window that handles lists of objects (underneath the menu bar): *work_region.title_window*fontList: Rom14 o For the font used in the Information window: *XmText*fontList: Rom14 o For the font used for the text in the lists shown in other windows: *XmList*fontList: Rom14 4.10 WHAT ARE THE MOTIF RESOURCES FOR THE FONTS USED IN CMVC? QUESTION: What are the Motif resources for the fonts used in CMVC? ANSWER: You can specify the following resources for fonts in the $HOME/Cmvc resource file. For AIX, Erg14.iso1 or Rom14 are good fonts, and for Solaris, 9x15bold is a good one. Unix provides the "xlsfonts" tool to list all of the fonts avail- able from your X-Server. You may have to go looking for it, as it is often not on the PATH provided when your user account is created. 40 CMVC FAQ: client ! Defining the font for the Text and List matter ! *XmText*fontList: Erg14.iso1 *XmList*fontList: Erg14.iso1 ! To setup the font for the title above the scrolled list ! *work_region.title_window*fontList: Erg14.iso1 ! A mono-spaced font is required for list and text display *fontList: Erg14.iso1 ! Notes: ! + For DBCS locales, you can specify the following (please note ! that the : "colon" is needed at the end of the font specification): ! *fontList: *gothic-*-19*: 4.11 HOW COULD THE WINDOWS WITH ENTRIES LOOK LIKE TABLES? QUESTION: How could the windows with entries look like tables? ANSWER: The default fonts for the CMVC GUI are monospaced fonts. In this way, all the columns are properly aligned. If you use the proper fonts in the $HOME/Cmvc file but the actual fonts in the windows are not the correct ones, then it might be possible that you may have *fontlist specifications that use pro- portional (no monospaced) fonts in your .Xdefaults; if so, then you may comment out these specifications from that file, in order for the CMVC resources to take precedence. 4.12 WHICH RESOURCE IS USED: DOUBLECLICKTIME OR MULTICLICKTIME? QUESTION: What is cmvc using to set the double click time? Apparently it is ignoring the attributes I have in my .Xdefaults file. Is there a cmvc specific resource that I can set? ANSWER: CMVC does not set the doubleClickInterval resource for the lists. It uses the Motif default value (500 or 1/2 sec). Frequently asked questions about the CMVC client for UNIX 41 Either of the following settings works fine (setting the value to 2,000 milliseconds or 2 seconds): o In the Cmvc resource file: *doubleClickInterval: 2000 o In the .Xdefaults file *multiClickTime: 2000 4.13 CANNOT MAKE A CONNECTION TO THE X SERVER. QUESTION: If you get the following error messages: 2059-023 Cannot make a connection to the X server. If the X server is not running, run the xinit command. If the X server is running, check the specified display number. or Error: Can't Open display ANSWER: Then do the following: xhost +$TARGET export DISPLAY=hostname:0 Where "hostname" is the actual name of the hostname in which you want to see the CMVC windows (the X server). 4.14 HOW DO I GET THE BEST X-WINDOWS PERFORMANCE? QUESTION: How do you set the DISPLAY variable to get the best possible X-Windows performance? ANSWER: When the DISPLAY variable is set to :0.0, X-Windows uses shared memory for communications between the X-Server (the application that manages your display) and X-Client (the CMVC GUI) on the same workstation. 42 CMVC FAQ: client NOTE: This only works when the user that started the X-Server is the same user that is starting the X-Client. If you are communicating between workstations, you must set DISPLAY=hostname:0.0 (or a variation on this). By specifying a hostname, X-Windows uses a socket. Sockets are much slower than shared memory. 4.15 MESG: 0803-003 CANNOT FIND THE TERMINAL QUESTION: When using the CMVC GUI (cmvc.x11r5), I keep getting the fol- lowing message: mesg: 0803-003 Cannot find the terminal ANSWER: We received similar reports when a user upgraded his AIX 3.2.5 to AIX 4.1: the customer had a line "mesg" (with parameters) in his alias.file. It seems not to be a problem in AIX 4.1.2, but when he upgraded to AIX 4.1.3, that line caused cmvc not to work. He removed the line with "mesg" and cmvc is working again. Other customers had the same problem when they were using this "mesg" command from their .profile or .kshrc. The mesg command permits or refuses messages and we do not know why it is causing a problem with the CMVC GUI. 4.16 HOW TO VERIFY MOTIF KEY BINDINGS FOR SUNOS AND SOLARIS QUESTION: I am using the CMVC GUI for SunOS (or Solaris) and when I press a function key, such as page down, nothing happens. Why? ANSWER: For the SunOS and Solaris client, a XKeysymDB file is shipped with the CMVC product. This file provides the key bindings that refer to the mapping of a "key" to an "action". SunOS and Solaris do not have a native support for Motif. Thus, they need to have additional files in order to work with Motif. Verify that the Motif keysyms file is available before running the CMVC for SunOS systems or CMVC for Solaris systems client. Frequently asked questions about the CMVC client for UNIX 43 These keysyms reside in the resource file "XKeysymDB". The CMVC version of this file is in the /usr/lib/X11/XKeysymDB.cmvc file. If you do not already have an XKeysymDB file, copy the CMVC version into one of the following paths: o For CMVC for SunOS systems, into the $OPENWINHOME/lib path (for OpenWindows Version 3.0) o For CMVC for Solaris systems, into the $OPENWINHOME/lib/X11 path (for OpenWindows Version 3.0) If you already have an XKeysymDB file, place it in the appro- priate directory and add the CMVC version information to it. The Motif Style Guide is a complete reference to key bindings. Since the CMVC GUI is OSF/Motif compliant, the Style Guide can be used to find out what keys does. It also possible for a user to modify the Motif virtual key bindings. Check for a .motifbind file in the $HOME directory. 4.17 HOW TO QUERY FOR THE RELEASE OF X11 IN YOUR SYSTEM QUESTION: How to query for the release of X11 in your system. ANSWER: To find out which version of X11 your system is using, do: xrdb -symbols For example, in my AIX 3.2.5 system, I got the following results: -DHOST=angelito.raleigh.ibm.com -DSERVERHOST=angelito.raleigh.ibm.com -DCLIENTHOST=carcps06 -DVERSION=11 -DREVISION=0 -DVENDOR="International Business Machines" -DRELEASE=5 -DWIDTH=1280 -DHEIGHT=1024 -DX_RESOLUTION=3596 -DY_RESOLUTION=3606 -DPLANES=8 -DBITS_PER_RGB=8 -DCLASS=PseudoColor -DCOLOR The important data is "-DRELEASE=5", which tells me that it is X11R5. Therefore, I need to run "cmvc.x11r5", which is the X11R5 version of the CMVC GUI and which is linked by default to the command "cmvc". This is important to know because if you use X11R4 in your host, then you have to use the X11R4 version of the CMVC GUI. 44 CMVC FAQ: client 4.18 CMVC GUI INTEGRATION WITH THE EMACS EDITOR QUESTION: CMVC GUI integration with the Emacs editor ANSWER: Matt Brozowski and Ken Chambers have some Emacs lisp code that integrates CMVC with the xemacs editor running on AIX. This allows for checking in/out, creating files, defects, integrating tracks, from directly within the editor. If interested, you can get the emacs code at: http://aixnm014.raleigh.ibm.com/cmvc-mode.tar This code is only for IBM internal use. 4.19 IS THERE A LINUX VERSION OF THE CMVC LINE COMMANDS? QUESTION: Is there a Linux version of the CMVC line commands? ANSWER: The CMVC 2.3.0 client for Linux is provided AS-IS to the internal CMVC community in IBM and its subsidiaries. Thanks to Joe Garvey for his efforts in this porting. Please, do not deliver this code to external customers. Keep in mind that this is NOT an officially supported platform, thus we will NOT accept a problem report or APAR in RETAIN for the actual porting. Of course, if the problem is related to CMVC in general (platform independent problem), then we will consider it. You can get the code from the IBM internal FTP site. Frequently asked questions about the CMVC client for UNIX 45 4.20 USE /USR/BIN INSTEAD OF /BIN FOR KSH OR SH QUESTION: Use /usr/bin instead of /bin for ksh or sh. ANSWER: Because AIX 4.1, HP-UX 10 and Solaris use /usr/bin as the new location for ksh or sh, all the samples and related code in CMVC in 2.3.0.21 have been changed from the obsolete /bin location. If you use AIX 3.2.5, HP-UX 9 and SunOS, and if you do not have /usr/bin, then it is recommended that the superuser should create a link to the new location: ln -s /bin /usr/bin 4.21 CMVC FILE COMMAND ADDS (DOT) FILES AT EXTRACT OR CHECK-OUT QUESTION: CMVC File command adds (dot) files at extract or check-out ANSWER: To preserve any potential changes that users could have made to the files on their workstation, the CMVC File command creates a copy of a file being extracted or checked out, and this copy is renamed with a prefix of . (dot) in order to keep it hidden during a normal "ls" query. In order to see these dot files, you have to issue the command "ls -a". 4.22 WHAT IS THE COMMAND USED TO PRINT POSTSCRIPT IMAGES IN CMVC? QUESTION: What is the command used to print PostScript images in CMVC? ANSWER: The command used by the CMVC GUI for printing PostScript images is: xwd -xy -nobdrs | xpr -device ps | qprt 46 CMVC FAQ: client NOTES: 1. For non-PostScript printers that support graphics there should be different device definitions for xpr (such as 3816). 2. You may have a preference for a different print command than qprt, or you can redirect the output into a file for editing or inclusion in a document. 3. With some devices and/or displays, different options will be necessary on xwd. 4.23 WHAT IS THE DIFFERENCE BETWEEN STANDALONE AND INTEGRATED CLIENT? QUESTION: What is the difference between the standalone and the integrated client? ANSWER: Several years ago there was a strong movement in the industry towards using an integrated software platform for CASE tools, and the HP product "Softbench" was used as the basic mechanism. The CMVC Integrated client is a set of programs and files that com- plement the CMVC Standalone client to be used with Softbench. However, the Common Desktop Environment (CDE) is now the latest "standard" and it is replacing Softbench. By the way, AIX 4 does not support Softbench and thus, only the CMVC Standalone can be used in that environment. 4.24 WHAT IS THE DIFFERENCE BETWEEN THE CMVC AND .CMVCRC RESOURCE FILES? QUESTION: What is the difference between the Cmvc and .cmvcrc resource files? ANSWER: Both the CMVC standalone and the CMVC integrated client use the "$HOME/Cmvc" resource file. Note that this file is used to specify X and Motif resources only; for example, geometry, fonts, and colors. Advance users can customize this resource file. Frequently asked questions about the CMVC client for UNIX 47 All other application specific resources for CMVC are put in the database file "$HOME/.cmvcrc. If this file does not exist when a CMVC GUI session starts up, it will be created automatically. As you work with the GUI, various options and configurations will be retrieved from and saved to this file. The database is designed to work transparently to the user. As such, although it is edit- able, users are not encouraged to modify it directly. 4.25 WHAT IS THE SEARCH PATH FOR THE MOTIF RESOURCES? QUESTION: What is the search path for the Motif resources? ANSWER: A common problem is that users change their resource file but do not get the expected results. One must understand the search path for the resources to isolate the problem. This is how X Window System selects resource files and merges them in the data base. Read the resources from one of the following files: /usr/lib/X11/$LANG/app-defaults/Cmvc OR /usr/lib/X11/app-defaults/Cmvc Merge those resources with the ones in the following file: $XUSERFILESEARCHPATH/Cmvc OR $XAPPLRESDIR/$LANG/Cmvc OR $XAPPLRESDIR/Cmvc OR $HOME/$LANG/Cmvc OR $HOME/Cmvc Merge those resources with the ones: defined by xrdb (RESOURCE_MANAGER) OR in $HOME/.Xdefaults Merge those resources with the ones in the following file: $XENVIRONMENT (/anywhere/Cmvc.mine) OR $HOME/.Xdefaults-hostname Merge those resources with the ones specified in the line command, such as: cmvc -xrm '*background: white' 48 CMVC FAQ: client 4.26 ARE THERE ANY HINTS ON HOW TO ISOLATE RESOURCE PROBLEMS? QUESTION: Are there any hints on how to isolate resource problems? ANSWER: If you suspect that the CMVC GUI has a problem that might be due to a resource specification problem, here are some different sets of hints to isolate the problem. o Set 1: 1. Rename .Xdefaults. Quit cmvc and restart. 2. Rename $HOME/Cmvc. Quit cmvc and restart. 3. Rename /usr/lib/X11/app-defaults/Cmvc. Quit cmvc and restart. 4. Rename .mwmrc. Restart window manager and try again. 5. Rename .xinitrc. Kill the X session and try again. 6. Echo the environment variables and watch for XENVIRONMENT, XAPPLRESDIR, and XUSERFILESEARCHPATH. Unset any of these you may find. o Set 2: 1. Kill the CMVC GUI 2. Rename .Xdefaults, Cmvc, and Cmvc in app-defaults (or change XENVIRONMENT, XAPPLRESDIR, and XUSERFILESEARCHPATH). 3. xrdb -remove -all 4. xrdb -load Cmvc.new (if you want to try something else) 5. Start the CMVC GUI If the problem is introduced by one of these files, try to isolate which resource is causing the problem. As a last resort, reboot the workstation. Do not make early conclusions. Removing a resource sometimes drastically changes memory usage and the relationship with other resources. It may not be the one in error, it may just change the environment enough so the problem goes away. 4.27 CONSIDERATIONS WHEN USING TELNET TO ACCESS THE CMVC GUI QUESTION: Considerations when using telnet to access the CMVC GUI. ANSWER: Frequently asked questions about the CMVC client for UNIX 49 As with any X application, a user may telnet from an OEM display into another system. In theory, due to the Client/Server archi- tecture of X Window System, there should be no problem. The CMVC Client, the cmvc or softcmvc executable is running on one system and the windows are displayed on another OEM X Server. Problems that are caused by Motif and/or X server are beyond the control of our application. Chances are that the default fonts are not available on the OEM display. The user should change all instances of the fonts in the Cmvc resource file to a font name that exists on the local workstation. For example, SunOS has "r14" but no "rom14". For low resolution monitors, the user must choose fonts that are small enough to show the entire dialog box. With the use of scrollable entry fields in the dialogs, this may not be a problem. For the Integrated version, the defaults fonts in the Softcmvc resource file are custom fonts shipped with SoftBench. The user may change the Cmvc fonts as it is designed to work with any monospaced fonts. The CMVC GUI uses the SoftBench fonts only for visual consistency. 4.28 WHICH WINDOW MANAGERS CAN BE USED WITH THE CMVC GUI? QUESTION: Which window managers can be used with the CMVC GUI? ANSWER: The CMVC GUI has been developed and tested under the Motif window manager (mwm), Sun OPEN LOOK (openwin), and HP-UX VUE. These are the only window managers we officially support. It has been run under the Tab Window Manager (twm). 4.29 KNOWN PROBLEMS WITH THE CMVC GUI IN SUNOS AND SOLARIS QUESTION: Known problems with the CMVC GUI in SunOS and Solaris ANSWER: Here are some known problems when using the CMVC GUI in SunOS and Solaris in OpenWindows: 50 CMVC FAQ: client o The CMVC icons are not used. o The relationship between a main window and its associated dialogs is disconnected. The user may close the main window while an associated dialog remains on the screen. Note that when using the Motif Window Manager this problem does not occur. o The default resource path is $OPENWINHOME/lib/app-defaults instead of /usr/lib/X11/app-defaults, where $OPENWINHOME is the environment variable that contains the home directory of OpenWindows. The administrator will need to create a sym- bolic link to the "Cmvc" resource file. o There is a problem printing treeviews on Sun 4.1.2 and SUN 4.1.3. In order to print the visible contents of the treeviews, the CMVC GUI makes use of the "xwd" and "xpr" utilities. It is found that xwd on these versions of the SunOS operating system cannot take a window id as an option. The following error will be generated: X Error of failed request: BadWindow (invalid window parameter) The workaround would be to type the command from a xterm. Refer to the cmvc logfile for the exact syntax of the command, but omit the -id option. And when the pointer changes to a cross, click on the treeview to be printed. The user can also try to copy xwd from a SUN 4.1.1 system. When you telnet into another system to run the GUI, the "DISPLAY" environment variable must be set. Otherwise, the print function for the treeviews will not work. This is because the CMVC GUI invokes the xwd utility without the -display option. 4.30 WHAT ARE THE LINE COMMAND ARGUMENTS FOR THE STANDALONE CMVC GUI? QUESTION: What are the line command arguments for the standalone CMVC GUI? ANSWER: These are the line command arguments supported for cmvc. Frequently asked questions about the CMVC client for UNIX 51 Usage: cmvc µ-bg BackgroundColorº µ-fg ForegroundColorº µ-bw OuterBorderWidthº µ-bd BorderColorº µ-display [Hostº{:Number}] µ-geometry {WidthxHeight|{+|-}xoff{+|-}yoff}º µ-iconicº µ-name Nameº µ-xrm Stringº Figure 3. cmvc line command arguments. 4.31 WHAT ARE THE LINE COMMAND ARGUMENTS FOR THE INTEGRATED CMVC GUI? QUESTION: What are the line command arguments for the integrated CMVC GUI? ANSWER: These are the line command arguments supported for softcmvc. Usage: softcmvc -scope HOST|host µ-bg BackgroundColorº µ-fg ForegroundColorº µ-bw OuterBorderWidthº µ-bd BorderColorº µ-display [Hostº{:Number}] µ-geometry {WidthxHeight|{+|-}xoff{+|-}yoff}º µ-iconicº µ-name Nameº µ-xrm Stringº µ-host Hostnameº µ-class Stringº µ-nowindowsº Figure 4. softcmvc line command arguments. 52 CMVC FAQ: client 4.32 PROBLEM WITH ERROR "SOCKET OPERATION ON NON-SOCKET" QUESTION: Problem with error "socket operation on non-socket" ANSWER: There are several possible explanations for this problem, among them, in order of likelihood: o The port number mentioned in the error message is already in use in the network. Try to use another port number, such as 3124. The higher the number the more likely that the port number is not used by other applications. Also, avoid using "nice and round" numbers such as 3000. o There is not enough space in /tmp. Also /tmp has old files that are associated with the port mentioned in the error message. Try to cleanup /tmp o There is a remote possibility that there are no more avail- able inodes in your system. Issue "df" to find out if there are inodes. 4.33 HOW TO CUSTOMIZE THE MOTIF ENVIRONMENT FOR LEFT-HANDED USERS QUESTION: How to customize the Motif environment for left-handed users. ANSWER: Even though this question is not related to the CMVC GUI, we have received this question several times, and that is the reason we are including the answer: o If using CDE, then use the "Style Manager", select the "Mouse" and then select the desired mode: right hand (default) or left hand. o If not using CDE, then add the following entries in your .profile: xmodmap -pp xmodmap -e 'pointer=4 3 2 1' Frequently asked questions about the CMVC client for UNIX 53 54 CMVC FAQ: client 5.0 FREQUENTLY ASKED QUESTIONS ABOUT THE CMVC CLIENT FOR OS/2 5.1 FILE COMMAND ADDS $ TO THE FILE SUFFIX AT EXTRACT OR CHECK-OUT QUESTION: File command adds $ to the file suffix at extract or check-out. ANSWER: To preserve any potential changes that users could have made to the files on their workstation, the CMVC File command creates a copy of a file being extracted or checked out, and this copy is renamed with a suffix that begins with a $ (dollar). 5.2 RESTRICTION ON FILE EXTRACTS INTO DOS OR OS/2 FAT DRIVES QUESTION: Restriction on file extracts into DOS or OS/2 FAT drives ANSWER: Files from the CMVC server that do not conform to the 8.3 naming convention (file name longer than 8 characters or file extensions longer than 3 characters) cannot be extracted to a FAT drive. 5.3 HOW TO CHANGE THE FONT IN THE CMVC CLIENT FOR OS/2 QUESTION: How to change the font in the CMVC client for OS/2. ANSWER: In the CMVC client for OS/2, select "Options", then "Settings". Select the "GUI" page from the notebook and at the bottom of the page you can specify the font height. Frequently asked questions about the CMVC client for OS/2 55 5.4 WHICH IS THE FILE USED TO KEEP THE SETTINGS FOR THE CMVC GUI? QUESTION: Which is the file used to keep the settings for the CMVC GUI? ANSWER: In the CMVC client for OS/2, the task list and the settings are stored in the file "CMVC23.INI" which is stored in the directory where OS/2 is stored (default is C:\OS2). WARNING: We recommend that the users should not modify the CMVC23.INI file. However, if you really want to modify it, please make a backup copy of the original one, just in case you need to go back to this version. The READ.ME file in the CMVC\BOOKS directory explains where to find in the installation diskettes, the ori- ginal version of the INI file. 5.5 HOW TO EXTRACT FILES TO OS/2 FROM A RELEASE/LEVEL WITHOUT USING NFS QUESTION: How to extract files to OS/2 from a release/level without using NFS. ANSWER: This is discussed at length in the new file in CMVC: /usr/lpp/cmvc/doc/README.fix.release.extract.problems The method is to use a single file extract for each file. To facilitate this task, you can use the OS/2 REXX samples for CMVC. This will extract all the files in a brute force fashion by directly using the File command to bypass the problems with NFS when using the Release/Level extracts. Store the samples in C:\CMVC\EXE\SAMPLES and add this directory into your PATH. The total extraction time will be a bit longer than a pure Release/Level extract, though. o XFILRELC - eXtract all the FILes for a RELease, committed. This is equivalent to perform the full extract of the latest committed level for a release. o XFILLEVU - eXtract all the FILes for a LEVel, Uncommitted. 56 CMVC FAQ: client This is equivalent to perform a delta extract of the latest uncommitted level for a release. The above 2 files are all that you need, but for completeness sake: o XFILLEVC - eXtract all the FILes for a LEVel, Committed. This is equivalent to perform a delta extract of a committed level for a release. o XFILTRK - eXtract the latest FILe changes for all the files in a TRacK. o XFILCOMP - eXtract the latest FILe changes for all the files in a COMPonent. 5.6 CMVC AND TCP/IP FROM NOVELL QUESTION: CMVC and TCP/IP from Novell ANSWER: At the client end, the version of Novell that supports TCP/IP and Winsock at the standardized 1.1 level is: LAN WorkPlace for DOS Version 4.2. This includes TCP/IP, NFS, FTP support. LAN WorkGroup for DOS also supports server end. Novell Netware users can get the Winsock DLL from the internet (but will not have the other upgrades for TCP/IP support). The file name is LWP208.exe which contains the update. 5.7 PROBLEMS WITH APM DRIVERS WHEN NAMED PIPES ARE SUSPENDED QUESTION: The PMR 5X399 was opened against the OS/2 operating system to report a problem with the named pipes used by the CMVC GUI in machines that use the Advance Power Management (APM) option. The symptom is that after several uninterrupted hours of using CMVC, the lists in the GUI are truncated and the user is not warned about this, for example, instead of the usual 100 entries in the defect list, only 10 show up. When using the CMVC line commands directly (that is, bypassing the GUI) then the problem is not shown (thus, this is a possible short-term workaround to the problem). Frequently asked questions about the CMVC client for OS/2 57 ANSWER: Here is an easy test to find out if you have this problem: NOTE: In most cases, this easy test confirms the problem, but if the test does not behave as described here, it does not mean that you do not have the problem. You could do the following test to verify if you have the problem: 1. Bring down the CMVC client. 2. Bring up the CMVC client 3. Select "Actions, Defects, Open...". If the Defect screen appears, cancel it - No Problem. If CMVC client dies, you have the problem. This test is more definitive than getting a list that you think might be too short, but you do not have any way to know for certain. Summary of the workaround: A medium-term workaround is to REMark out the drivers for the Advance Power Management (APM) from the CONFIG.SYS: APM.SYS and VAPM.SYS. This workaround might not be acceptable to all cus- tomers, in that case, they need to contact the support for their hardware to get the latest versions of these drivers which have the fix for this problem. 5.8 HOW TO HAVE MULTIPLE INSTANCES OF THE GUI TO WORK WITH DIFFERENT FAMILIES QUESTION: How to have multiple instances of the CMVC GUI to work with dif- ferent families. ANSWER: 1. Set up CMVC for family ABC, including the Settings, Window Views, Window Sizes & Positions, etc. Then copy the C:\OS2\CMVC23.INI to C&colon\CMVC\CMVC23.ABC, where C&colon\CMVC is the CMVC "working" directory. 2. Change the corresponding settings for family XYZ and copy the new C:\OS2\CMVC23.INI to C:\CMVC\CMVC23.XYZ. 58 CMVC FAQ: client 3. Create a command file, C:\CMVC\FAMILY.CMD, which takes the family name as an argument and contains the following: COPY D:\CMVC\CMVC23.%1 C:\OS2\CMVC23.INI CMVC.EXE 4. Create a copy of the CMVC icon and give it a different name (indicating one of the two families). 5. Open the Settings for both CMVC icons (not the Settings on CMVC menu) and specify the following: Program: Path and file name: C:\CMVC\FAMILY.CMD Parameters: (family name) Working directory: C&colon\CMVC Session: OS/2 window: X Start minimized: X Close window on exit: X General: Title: CMVC (family name) If you want to be fancier, you can have separate icons for each family. Now you can even have both instances active at the same time. You just have to be careful when you make changes that affect your CMVC23.INI file: do not change settings for either family while the other family is active, and remember to save the modi- fied CMVC23.INI to C:\CMVC\CMVC23.(family name). 5.9 NFS 2.0 ON TCP/IP 3.0 QUESTION: I just got a workstation with TCP/IP 3.0, but it does not have NFS on it. Can I put the NFS 2.0 plus CSD on the machine without messing up the TCP/IP that is there and working? ANSWER: Yes, you can install the NFS 2.0 with TCP/IP 3.0. The latest NFS 2.0 csd is UN57064, and can be downloaded via anonymous ftp from: ftp ps.boulder.ibm.com cd /ps/products/tcpip/fixes/v2.0os2/un57064 The latest fixes above CSD UN57064 can be downloaded from the above same site, under: Frequently asked questions about the CMVC client for OS/2 59 /ps/products/tcpip/fixes/v2.0os2/nfslatest You should first apply the csd then the nfslatest. 60 CMVC FAQ: client 6.0 FREQUENTLY ASKED QUESTIONS ABOUT THE CMVC CLIENT FOR WINDOWS 3.1 6.1 WHAT ARE THE WINDOWS PLATFORMS SUPPORTED BY CMVC? QUESTION: What are the Windows platforms supported by CMVC? ANSWER: 1. The CMVC client for Windows (Native 16-bit code) works well under the following configurations: o Windows 3.1 o Windows for WorkGroups 3.11 2. The CMVC client for Windows (Native 16-bit code) works fine under the following configurations, but there are certain limitations due to the 32-bit nature of the platform: o Windows NT 3.5 o Windows NT 3.51 using the newshell (see section b, below) o Windows 95 (The Printing function is not adequate) NOTE: The code in all these cases is a native Windows 3.1 (16-bit) application which uses only 8.3 file names. This means that long file names are not recognized when working on Windows 32-bit. 3. The CMVC client for Windows (Native 16-bit) has problems with the following configurations: o Windows NT 3.51 using the default shell (the one that looks like Windows 3.1 and not the newshell that looks like Windows 95). The problem is due to a change by Microsoft from 3.5 to 3.51. The workaround is to install the newshell, which is beta code in 3.51 but which is the standard shell in Windows NT 4. 4. The CMVC client for Windows (Native 16-bit) does not have DOS line commands. 5. There is an informal attempt to provide a native CMVC client for Windows 32-bit, but there is NO formal support for the code. Frequently asked questions about the CMVC client for 3.1do61 6.2 HOW TO FIND THE NEWSHELL IN WINDOWS NT 3.51 CD-ROMS QUESTION: How to find the Newshell in Windows NT 3.51 CD-ROMs ANSWER: The workaround for the problems with the CMVC client for Windows 3.1 (16-bit) when working on Windows NT 3.51 is to install the Newshell. The shell technology preview (also known as Newshell or New Shell) is being provided to Microsoft Development Network (MSDN) Level 2 subscribers. It is intended to enable software devel- opers and vendors to test their applications on both Windows 95 and Windows NT version 3.51 platforms. The Newshell is found in the directory \NEWSHELL in the 2nd CD-ROM in the January 1996 release of the MSDN Development Plat- form, "SDKs and Operating Systems" (in other editions it might be in another CD-ROM or directory). Follow the instructions according to the documentation available in that directory. 6.3 FILE COMMAND ADDS $ TO THE FILE SUFFIX AT EXTRACT OR CHECK-OUT QUESTION: File command adds $ to the file suffix at extract or check-out. ANSWER: To preserve any potential changes that users could have made to the files on their workstation, the CMVC File command creates a copy of a file being extracted or checked out, and this copy is renamed with a suffix that begins with a $ (dollar). 62 CMVC FAQ: client 6.4 HOW TO BETTER USE THE 122 BYTES LIMIT ON THE CONTENTS OF PATH QUESTION: How to better use the 122 bytes limit on the contents of PATH ANSWER: PROBLEM DOS has a default size of 256 bytes in the environment space that is used for the environment variables. Furthermore, each envi- ronment variable has a limit of up to 127 bytes. This combina- tion poses a problem to the CMVC Client for Windows in which the CMVC paths are properly appended to the PATH variable in the AUTOEXEC.BAT, but when the size of the PATH exceeds 127 files and the PATH is truncated and the CMVC directories are not really part of the PATH! The symptom is that CMVC will display errors such as "Cannot find the file IPF.DLL" or "message catalog is not available". HOW TO SOLVE THE PROBLEM All DOS environment variables have a limit of 127 bytes; thus, the PATH variable and the equal sign take up 5 of these 127 bytes, and therefore you have only 122 characters to specify the directory names. Hints on how to better use the 122 characters for PATH o Remove any spaces from the PATH command. o Remove seldom-used directories from the PATH command. o Use short directory names. o Use batch programs to set and reset the path according to your current needs. 6.4.1 Approach 1 _________________ Ensure that the CMVC directories are within the first 127 charac- ters of the PATH statement in AUTOEXEC.BAT Do the following to correct the problem: 1. Exit the CMVC client for Windows. 2. Exit the Windows Program Manager. 3. Issue the following command from the DOS prompt: SET Frequently asked questions about the CMVC client for 3.1do63 4. Verify that the PATH environment variable contains the entry for the directory where the CMVC client for Windows is installed (the default is C:\CMVCWIN\EXE). If the directory is not completely shown or not shown at all, change the PATH statement in your AUTOEXEC.BAT. To do this: a. Edit the AUTOEXEC.BAT file to eliminate unnecessary directory entries from the PATH statement, or move the entry for the CMVC client for Windows directory to the left within the first 127 characters of the statement. b. Save the file. c. Exit the editor. d. At the DOS prompt, type "AUTOEXEC" to establish the changes made to your AUTOEXEC.BAT file. e. Issue again the SET command from the DOS prompt; if the PATH statement shows the entire directory for the CMVC client for Windows, you can start the CMVC client; other- wise, repeat the previous steps. 6.4.2 Approach 2 _________________ Use the SUBST command to use less space in the PATH. You can use the SUBST command to substitute a drive letter for a long directory path, if necessary. You can then use that drive letter instead of the full path in the PATH command. You can use the SUBST command in your AUTOEXEC.BAT file, and if you do, it must precede the PATH command. For example, to shorten a path named C:\USER\FULANO\FORMS to Q:, you could include the following commands in your AUTOEXEC.BAT file: SUBST Q: C:\USER\FULANO\FORMS PATH=C:\DOS;Q: 64 CMVC FAQ: client 6.4.3 Approach 3 _________________ Increase the environment space. The default environment space is 256 bytes, but you can allocate more space by specifying the /e switch with the SHELL command in your CONFIG.SYS file, as follows (assuming to have an environment space of 1,024 bytes): SHELL=C:\COMMAND.COM /P /E:1024 6.5 AUTO TOKEN RING CARD ON DOS 7.0, TCP/IP FOR DOS QUESTION: Procedure to deal with the problems caused by the Auto Token Ring card on DOS 7.0, TCP/IP for DOS. ANSWER: For those people who have a problem with the Auto Token Ring card using TCP/IP for DOS on DOS 7.0, here is how to fix it. 1. Delete all subdirectories and files from \tcpdos 2. Reinstall the original TCP/IP 2.1.1. WARNING: do not install any CSDs. 3. Run CUSTOM to configure your installation. 4. Copy IBMTOK.DOS from the LAN AID diskette to \tcpdos\bin 5. Copy DOSTCP.SYS from the BBS of the IBM PC Company to \tcpdos\bin. 6.6 HOW TO DEAL WITH CMVC AND TCP/IP FROM NOVELL QUESTION: How to deal with CMVC and TCP/IP from Novell. ANSWER: At the client end, the version of Novell that supports TCP/IP and Winsock at the standardized 1.1 level is: LAN WorkPlace for DOS Version 4.2. This includes TCP/IP, NFS, FTP support. LAN WorkGroup for DOS also supports server end. Novell Netware users can get the Winsock DLL from the internet (but will not have the other upgrades for TCP/IP support). The file name is LWP208.exe which contains the update. Frequently asked questions about the CMVC client for 3.1do65 6.7 USE LONG FAMILY NAME IF USING NOVELL NETWARE IN WINDOWS QUESTION: Use long family name if using Novell Netware in Windows. The CMVC Windows GUI has problems handling the short family name, but it works OK when using the long family name (family@host@port). TCP/IP from Novell Netware LAN Workplace is used. ANSWER: Not all the TCP/IP implementations of the WinSock API are created equal. One implementation that differs from the original WinSock specification is TCP/IP from Novell Netware LAN Workplace. It cannot resolve properly a host and port number, even when the proper entries are done to the Hosts and Services files. Using a debug version of the CMVC Windows client in a customer's network, we were able to trace the problem in the WINSOCK.DLL provided by Novell. We are not users of Novell, and we do not have access to their support services, and thus, we are not able to determine if Novell has fixed this problem. The workaround in CMVC is to use the long family name with the three components separated by the "@" sign and with no spaces in between: familyName@hostName@portNumber 6.8 RESTRICTION ON FILE EXTRACTS INTO DOS OR OS/2 FAT DRIVES QUESTION: Restriction on file extracts into DOS or OS/2 FAT drives ANSWER: Files from the CMVC server that do not conform to the 8.3 naming convention (file name longer than 8 characters or file extensions longer than 3 characters) cannot be extracted to a FAT drive. 66 CMVC FAQ: client 6.9 HOW TO CHANGE THE FONT IN THE CMVC CLIENT FOR WINDOWS? QUESTION: How to change the font in the CMVC client for Windows? ANSWER: In the CMVC client for Windows, select "Options", then "Set- tings". Select the "GUI" page from the notebook and at the bottom of the page you can specify the font height. 6.10 WHICH IS THE FILE USED TO KEEP THE SETTINGS FOR THE CMVC GUI? QUESTION: Which is the file used to keep the settings for the CMVC GUI? ANSWER: In the CMVC client for Windows, the task list and the settings are stored in the file "CMVCWIN.INI" which is located in the directory where Windows is installed (default is C:\WINDOWS. In case the customer is using a workstation that does not have Windows installed in a local directory but it is using the Windows product that is installed in a network directory, then the user has to specify the variable CMVC=local-directory in the AUTOEXEC.BAT to tell the GUI where to find the read-write copy of CMVCWIN.INI. WARNING: We recommend that the users should not modify the CMVCWIN.INI file. However, if you really want to modify it, please make a backup copy of the original one, just in case you need to go back to this version. The READ.ME file in the CMVCWIN\BOOKS directory explains where to find in the installation diskettes, the ori- ginal version of the INI file. By the way, we know that several customers have their CMVCWIN.INI modified by their family administrators as the last step in installation; however, the changes are limited in scope and well defined, and these do not present a problem. Frequently asked questions about the CMVC client for 3.1do67 68 CMVC FAQ: client APPENDIX A. CODE SEGMENTS SAMPLES A.1 LONG VERSION OF CODE TO RUN A COMMAND The following sample code provide the thorough C functions used to call a line command. int run(cmd) char *cmd; { int rc; /*----------------------------------------------+ | Use system() to run a shell to run the | | command. | +----------------------------------------------*/ rc = cmvcSystem(cmd); /*----------------------------------------------+ | Check for failure in the fork() or exec(). | +----------------------------------------------*/ if (rc == -1 || rc == 127) return error(msgGet(msgErrno, ERRNO, "system")); /*----------------------------------------------+ | Otherwise, return the return value of the | | command we just ran. | +----------------------------------------------*/ return rc; } int cmvcSystem(const char *string) { int status; int rc; int i; struct sigaction ointact,oquitact,ignact; sigset_t savemask; int setuidRc; if(string == NULL) /* ANSI if command processer available */ return(1); /* return non zero */ ignact.sa_handler = SIG_IGN; sigemptyset(&(ignact.sa_mask)); ignact.sa_flags = 0 ; sigaction(SIGINT,&ignact,&ointact); sigaction(SIGQUIT,&ignact,&oquitact); sigaddset(&ignact.sa_mask,SIGCHLD); sigprocmask(SIG_BLOCK,&ignact.sa_mask,&savemask); Appendix A. Code segments samples 69 #if defined(sun4) || defined(HP) || defined(solaris) || defined(AIX4) /* Sun4 or HP */ if((gc_pid = fork()) == 0) #else /* AIX 3 */ if((gc_pid = kfork()) == 0) #endif { sigaction(SIGINT,&ointact,NULL); sigaction(SIGQUIT,&oquitact,NULL); sigprocmask(SIG_SETMASK,&savemask,NULL); /*----------------------------------------------+ | Close all the open file and socket | | descriptors. If this child process waits | | forever for execl to complete, the CMVC daemon| | can not be killed and restarted if the child | | process is tying up the socket. | +----------------------------------------------*/ /* on Sun4, if all the open file are close, mount cannot be done properly */ #if !defined(sun4) /* Sun4 */ for (i = 0; i < NOFILE; i++ ) close(i); #endif /*----------------------------------------------+ | 1761 : get root authority to do such things | | as mount and umount. | +----------------------------------------------*/ #ifdef HP setuidRc = setresuid(0,0,-1); #elif defined(solaris) setuidRc = setuid(0); setuidRc = setegid(0); #else setuidRc = setreuid(0,0); #endif #if defined(sun4) || defined(HP) || defined(solaris) /* Sun4 and HP */ (void) execl("/usr/bin/sh", "sh", "-c", string, NULL); #else /* AIX */ rc = execl("/usr/bin/bsh", "bsh", "-c", string, NULL); #endif _exit(127); } 70 CMVC FAQ: client if(gc_pid == -1) /* fork failed */ status = -1; else while (waitpid(gc_pid,&status,0) == -1) if (errno != EINTR) { status = -1; break; } if (status != -1 && status != 0) status = status>>8; /* Shift bits if non-zero code from system() */ /* Restore original signal states */ sigaction(SIGINT,&ointact,NULL); sigaction(SIGQUIT,&oquitact,NULL); sigprocmask(SIG_SETMASK,&savemask,NULL); return(status); } A.2 SHORT VERSION OF CODE TO RUN A COMMAND Appendix A. Code segments samples 71 int runCommand(IString &_command) { _command += " 1>nul"; _command += " 2>nul"; TRACE(_command); return (system(_command)); } Figure 5. Simple C++ function used to call a line command 72 CMVC FAQ: client APPENDIX B. BIBLIOGRAPHY For more information on how to use CMVC, you can consult the fol- lowing manuals and publications: SC09-1596-01 IBM CMVC Client Installation and Configuration SC09-1597-01 IBM CMVC User's Reference SC09-1631-02 IBM CMVC Server Administration and Installation SC09-1633-00 IBM CMVC Concepts SC09-1635-01 IBM CMVC Commands Reference The following Redbooks offer practical advice on CMVC: GG24-4178-00 Did you say CMVC? GG24-4345 CMVC: Customer's Perspective The following technical reports describe in detail useful hints on using CMVC: 29.2130 Diagnosing and solving Release -extract problems with CMVC 29.2169 How to use CMVC with National Language Support (NLS) and Double-Byte Character Sets (DBCS) 29.2180 How to do routine tasks in the OEM Platforms for CMVC 29.2183 Using CMVC for Products with Multiple National Language Versions (NLVs) 29.2232 How to do migration tasks with CMVC 29.2244 How to build and package the CMVC client for Windows 3.1 29.2245 How to build and package the CMVC client for OS/2 29.2253 Comparison between CMVC 2.3 and TeamConnection 2 29.2254 Migrating from CMVC 2.3 to TeamConnection 2 B.1 HOW TO GET ELECTRONIC COPIES OF MANUALS AND TECHNICAL REPORTS Many of the manuals and technical reports mentioned in this docu- ment can be downloaded as follows: o From the IBM intranet (only for IBM employees). o From the Internet (open to everyone). B.1.1 IBM Intranet ___________________ Appendix B. Bibliography 73 B.1.1.1 Web Home Page You can access the CMVC Service/Development Home Page at: http://keithp.raleigh.ibm.com/&tilde.cmvcsupt From the index at the top of the page, select: o Technical Reports and related tools o Copies of ALL the archived versions for the forums CMVC and CMVC6000 o Documentation in PostScript files o Documentation in ASCII text files B.1.1.2 FTP You can download the code from our internal FTP site, by doing: 1. ftp keithp.raleigh.ibm.com 2. login as 'anonymous' and for password give your email address. 3. cd pub/cmvc/doc 4. binary 5. get fileName 6. quit B.1.2 Internet _______________ B.1.2.1 Web Home Page Not available. 74 CMVC FAQ: client B.1.2.2 FTP You can download the code from our external FTP site, by doing: 1. ftp ftp.software.ibm.com 2. login as 'anonymous' and for password give your email address. 3. cd ps/products/cmvc/doc 4. binary 5. get fileName 6. quit Appendix B. Bibliography 75 76 CMVC FAQ: client APPENDIX C. COPYRIGHTS, TRADEMARKS AND SERVICE MARKS The following terms used in this technical report, are trademarks or service marks of the indicated companies: +---------------------+-------------------------------------------+ | TRADEMARK, | COMPANY | | REGISTERED | | | TRADEMARK OR | | | SERVICE MARK | | +---------------------+-------------------------------------------+ | IBM | IBM Corporation | | AIX | | | OS/2 | | | PC-DOS | | | CMVC | | | TeamConnection | | | TCP/IP for DOS | | +---------------------+-------------------------------------------+ | PostScript | Adobe Systems Incorporated | +---------------------+-------------------------------------------+ | NetLS | Gradient Technologies, Inc. | | iForLS, iFor | | +---------------------+-------------------------------------------+ | HP-UX | Hewlett-Packard Company | | SoftBench | | | VUE | | +---------------------+-------------------------------------------+ | X Window System | Massachusetts Institute of Technology | +---------------------+-------------------------------------------+ | Microsoft | Microsoft Corporation | | Windows | | | Windows NT | | | Windows 95 | | | MSDN | | | Windows for | | | Workgroups | | | MS-DOS | | +---------------------+-------------------------------------------+ | Novell | Novell Inc. | | Netware | | | LAN WorkPlace | | | LAN WorkGroup | | +---------------------+-------------------------------------------+ | OSF | Open Software Foundation, Inc. | | Motif | | +---------------------+-------------------------------------------+ | NFS | Sun Microsystems Inc. | | SunOS | | | Solaris | | | OpenWindows | | +---------------------+-------------------------------------------+ Appendix C. Copyrights, Trademarks and Service marks 77 | OPEN LOOK | UNIX System Laboratories, Inc. | +---------------------+-------------------------------------------+ | UNIX | X/Open Co., Ltd. | | CDE | | +---------------------+-------------------------------------------+ END OF DOCUMENT 78 CMVC FAQ: client