Rocket UniData

Installation Guide

Version 8.2.1

July 2017 UDT-821-INST-1 Notices

Edition Publication date: July 2017 Book number: UDT-821-INST-1 Product version: Version 8.2.1

Copyright © Rocket Software, Inc. or its affiliates 1996-2017. All Rights Reserved.

Trademarks Rocket is a registered trademark of Rocket Software, Inc. For a list of Rocket registered trademarks go to: www.rocketsoftware.com/about/legal. All other products or services mentioned in this document may be covered by the trademarks, service marks, or product names of their respective owners.

Examples This information might contain examples of data and reports. The examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental.

License agreement This software and the associated documentation are proprietary and confidential to Rocket Software, Inc. or its affiliates, are furnished under license, and may be used and copied only in accordance with the terms of such license.

Note: This product may contain encryption technology. Many countries prohibit or restrict the use, import, or export of encryption technologies, and current use, import, and export regulations should be followed when exporting this product.

2 Corporate information

Rocket Software, Inc. develops enterprise infrastructure products in four key areas: storage, networks, and compliance; servers and tools; business information and analytics; and application development, integration, and modernization. Website: www.rocketsoftware.com Rocket Global Headquarters 77 4th Avenue, Suite 100 Waltham, MA 02451-1468 USA To contact Rocket Software by telephone for any reason, including obtaining pre-sales information and technical support, use one of the following telephone numbers.

Country Toll-free telephone number United States 1-855-577-4323 Australia 1-800-823-405 Belgium 0800-266-65 Canada 1-855-577-4323 China 400-120-9242 France 08-05-08-05-62 Germany 0800-180-0882 Italy 800-878-295 Japan 0800-170-5464 Netherlands 0-800-022-2961 New Zealand 0800-003210 South Africa 0-800-980-818 United Kingdom 0800-520-0439

Contacting Technical Support The Rocket Community is the primary method of obtaining support. If you have current support and maintenance agreements with Rocket Software, you can access the Rocket Community and report a problem, download an update, or read answers to FAQs. To log in to the Rocket Community or to request a Rocket Community account, go to www.rocketsoftware.com/support. In addition to using the Rocket Community to obtain support, you can use one of the telephone numbers that are listed above or send an email to [email protected].

3 Contents

Notices...... 2 Corporate information...... 3 Chapter 1: Introduction...... 6 The UniData environment...... 6 Installation types...... 6 Concurrent installation considerations...... 6 Patch installation considerations...... 7 The XDEMO account...... 8 Product configuration...... 8 About licensing...... 9 UniData device licensing...... 9 How UniData counts licenses...... 9 Updating a UniData license...... 10 Chapter 2: Installing UniData on ...... 11 requirements (UNIX)...... 11 Disk space requirements...... 12 Memory requirements...... 13 Prerequisite tasks for all UNIX installation types...... 13 Determining the location of log files for RFS on UniData for UNIX...... 14 Directory structure on UniData for UNIX...... 15 International installation...... 16 Determining NUSERS...... 16 Installing using the udtsetup script...... 16 udtsetup...... 17 Prerequisite tasks for the udtsetup script installation...... 20 Retrieving the location of the tar file...... 21 Getting files from URI resources using curl...... 22 udtsetup customizations...... 23 Custom configuration files...... 24 Custom commands...... 28 Backing up and restoring files...... 30 Installing or upgrading UniData on UNIX using udtsetup...... 31 Examples...... 45 Full example: basic or advanced installation...... 45 Full example: upgrade installation...... 49 Full example: concurrent installation...... 52 Installing using the udtinstall script...... 55 udtinstall...... 55 Prerequisite tasks for basic, advanced, and concurrent installations on UNIX...... 55 Installing as a basic, advanced, or concurrent installation...... 56 Installing using the updatesys script...... 63 updatesys...... 63 Prerequisite tasks for upgrades and patches on UNIX...... 63 Upgrading or patching UniData on UNIX...... 65 Installing or upgrading using a parameter file...... 73 Installing or upgrading using the parameter file...... 73 Installing using the install.param file...... 75 Post-installation tasks...... 77 Licensing UniData on UNIX...... 78 Reauthorizing UniData...... 80 Setting udtconfig parameters for shared memory...... 81

4 Contents

Accessing globally cataloged programs...... 82 Handling permission fixes...... 83 Restoring files after a udtsetup upgrade...... 84 Updating the VOC files...... 84 Uninstalling UniData on UNIX...... 85 Chapter 3: Installing UniData on Windows...... 86 Operating system requirements (Windows)...... 86 Preinstallation tasks for UniData on Windows platforms...... 86 Directory structure on UniData for Windows platforms...... 87 Installing UniData on Windows...... 88 Upgrading UniData on Windows...... 89 Post-installation tasks...... 91 Licensing UniData on Windows...... 91 Obtaining an authorization code...... 92 Restoring a backup...... 93 Uninstalling UniData on Windows...... 93 Chapter 4: Upgrading UniData and U2 Data Replication...... 94 Appendix A: Troubleshooting and more...... 95 Problem: Installation completes, but UniData does not start...... 95 Problem: The smm.errlog contains a message about semaphores...... 95 Problem: Ranlib command error...... 95 Problem: Shared memory segment size error...... 96 Problem: udtsetup fails for an account that has a LOGIN paragraph...... 96 Question: How do I configure a language group?...... 96 Full parameter list...... 97 Prompted parameters...... 97 Prompted parameters – authorization...... 98 Prompted parameters – authorization – RBC contact details...... 98 CLO parameters...... 99 Prompted and command line options parameters...... 99

5 Chapter 1: Introduction

This manual describes how to install Rocket UniData 8.2.1. UniData can be installed on both UNIX and Windows platforms. Different installation types are available, such as basic, advanced, concurrent, path, or upgrade installations. The UniData environment

UniData is a relational database management system (RDBMS) designed specifically for business users. A database management system is software that enables users to control the organization, storage, retrieval, security, and integrity of data in a database. The UniData technology is based on the nested relational database model. This nested design extends the standard relational model from a redundant, flat structure to a three-dimensional database. For more information about how to use UniData, see Using UniData. Installation types

The following types of installation procedures are available with UniData: ▪ Basic installation – You are installing UniData for the first time on this machine, and you want to use the default directories. ▪ Advanced installation – You are installing UniData for the first time on this machine, and you want to choose directories other than the default directories. ▪ Concurrent installation – You already have a previous version of UniData running on the machine where you are installing UniData 8.2.1, and you want to run these two versions concurrently. Some limitations exist for concurrent execution of UniData 8.2.1, which are described in Concurrent installation considerations, on page 6. ▪ Upgrade installation – You are upgrading to UniData 8.2.1 from a previous version of UniData. ▪ Patch installation – You have a version of UniData 8.1 running on your system and are installing a patch version of UniData 8.2.1. Some limitations exist for patch installations, which are described in Patch installation considerations, on page 7.

Concurrent installation considerations

There are limitations for concurrent execution of UniData 8.2.1 and previous versions of UniData. These limitations are discussed in this section.

Static hashed file considerations Each UniData version uses its own locking mechanism, and the versions do not communicate. If two versions of UniData access the same files, you could have database integrity problems because a user can lock a record in one version that was already locked by another version. This should not cause physical file corruption problems.

6 Patch installation considerations

Dynamic file considerations Accessing the same dynamic files from two versions of UniData is not supported for the following reasons: ▪ Each lock mechanism uses a “scan lock” to prevent dynamic files from splitting and merging during certain operations. If you access the same file from two versions of UniData, a user process could trigger a split when they should not be able to. This could result in physical file corruption. ▪ Each versions shared memory manager (smm) keeps its own current modulo table for dynamic files. With two smm processes, a user could write a record to the wrong group because the modulo in its smm is wrong. This results in file corruption.

Recoverable file considerations If you want to run UniData 8.2.1 with RFS concurrently with a previous version of RFS, consider locating your log files and archive files on different devices, or at least in different file systems. The default log file names at UniData 8.2.1 are the same as they were in previous versions, so you are in danger of overwriting the log from a previous version if you use the same log directory at UniData 8.2.1. Locating the log files and archive files separately for UniData 8.2.1 is also desirable for distributing I/O load across your file systems.

Telnet, SSL, and UniRPC considerations The default port number for the telnet port is 23 when UniData is installed. The default port number for SSL is 992. If you are running concurrent installations of UniData, you must change these port numbers for one of the UniData versions to avoid a conflict and ensure that the port numbers are unique. The unirpc service (or unirpcd on UNIX) uses port 31438. This port is shared across UniVerse & UniData versions.

Patch installation considerations

Although you can run UniData 8.2.1 concurrently with previous versions of UniData, such as Release 7.2 and Release 7.1, you cannot run two versions of UniData 8.2.1 simultaneously. A patch installation overwrites the existing version UniData 8.2.1 on your system.

Overwritten files A patch installation overwrites the following files and/or directories:

▪ The contents of udtbin. ▪ The udtconfig file located in /usr/ud82/include. ▪ The logconfig file located in /usr/ud82/include. ▪ The arch_backup and arch_restore files located in /usr/ud82/include. ▪ The contents of the /usr/ud82/ods directory. ▪ The base.mk, cfuncdef, and callbas.mk files in udthome/work. ▪ The files provided by UniData in the udthome/demo directory (for example, the CLIENTS, ORDERS, and INVENTORY files). ▪ The log files, if you are running the Recoverable File System.

7 Chapter 1: Introduction

During the patch installation process, you have the opportunity to choose whether to back up the /usr/ud82/include, udthome/work and udthome/log directories as part of the upgrade process. If you choose to backup these files, UniData creates a directory called backup in udtbin, which contains the include, log, and work directories as they existed before the upgrade process started. You may want to additionally backup these files in an area outside of the UniData directory structure in case you have to rerun the upgrade process. If you want to restore a file that was saved in the backup directory, you can copy the file from the udtbin/backup directory to the current file. In the following example, the udtconfig file is copied from the backup directory to /usr/ud82/include using the UNIX cp command:

# pwd /usr/ud82/include # cp /disk1/ud82/bin/backup/include/udtconfig udtconfig #

In addition to the backup directory, a copy of the udtconfig file, called udtconfig.bak, is written to usr/ud82/include directory. The upgrade process also prompts you to indicate whether or not you want to overwrite the existing udthome/work directory. If you have linked C routines with UniData, do not overwrite the directory during the upgrade process.

Updated files A patch installation updates the following files and/or directories:

▪ The VOC file in each UniData account after running updatevoc. ▪ The global catalog space located in udthome/sys. You do not have to recompile or recatalog your globally cataloged programs after a patch installation. The XDEMO account

Starting at UniVerse 11.3.1 and UniData 8.2.0, you can use the XDEMO account to test and use database commands. The XDEMO account is a group of test files that are installed automatically with UniVerse and UniData on Windows. For UNIX platforms, the XDEMO account is optional. For more information about how to use XDEMO, see the Using UniData. The minimum generally available database releases required for U2 Python support are: ▪ UniData: 8.2.0 ▪ UniVerse: 11.3.1

Note: If moving to a UniVerse or UniData version prior to 11.3.1 or 8.2.0, respectively, the U2 Python examples will be included but cannot be used.

For UniVerse UNIX/, the XDEMO account is included with the XD cpio file. For UniData UNIX/Linux, the xdemo.tar file is in $UDTBIN/tarfiles after the installation. On Windows, the account is included by default. If you are moving XDEMO to another system, it is recommended to run updatevoc (UniData) or UPDATE.ACCOUNT (UniVerse) on the new system. Product configuration

A UniData Product Configuration sheet was delivered with your UniData product. This sheet lists customer information, hardware information, and the products and number of users you are

8 About licensing

authorized to install. Verify that all the information on the Product Configuration sheet is correct. You need this sheet when authorizing UniData. About licensing

You can license UniData products from XAdmin, or by entering the confprod command from the command line. The licensing process allows you to define a software license expiration date based on the license you purchase. UniData begins to issue warnings to the console every hour, beginning 10 days before the expiration date. This warning process and the grace period allow you to get a new authorization before UniData terminates. Rocket Software offers the following types of licenses for the UniData product: ▪ The UniData Workstation edition is for a single user license on Windows platforms, and Linux using 1-2 Intel processors. This edition includes device licensing. ▪ The UniData Workgroup edition is for 3-24 users on Windows platforms or Linux using 1-2 Intel- based processors. ▪ The UniData Server edition is for 4 users or more on any platform. Device licensing is not available with the UniData Server edition, unless purchased on a per-additional-seat basis as an add-on option. ▪ The UniData Enterprise edition is for 25 or more users on any platform. This edition includes Device Licensing.

UniData device licensing

Device licensing enables you to have multiple UniData sessions from the same device, normally your PC, while consuming only one UniData license. UniData sessions can be connections through client/ server middleware, such as UniData ODBC, UniObjects, UniObjects for Java, UniOLEDB, and InterCall, or they can be connections through the wIntegrate and/or SBClient telnet clients. These sessions can be established using one or more user ID and password combinations, but will only consume one UniData license as long as they come from the same physical device. You specify the maximum number of concurrent sessions allowed from a single device when licensing UniData. The number of connections you can specify is 0-10, depending on the number for which you are licensed. You can connect more than ten times, but each connection over ten consumes a full UniData license. Device licensing is available on the UniData Workstation, Workgroup, Server and Enterprise editions.

How UniData counts licenses

Each of the following processes consumes one UniData license:

▪ A UniData session (executing udt). ▪ A connection made to UniData through ODBC. ▪ A connection made to UniData through ObjectCall.

Note: ObjectCall is not available beginning at UniData 8.1.0.

▪ Using bang (!) to execute another UniData session.

9 Chapter 1: Introduction

▪ Interactive phantom processes ▪ The Extensible Administration Tool (XAdmin) if you do not connect using the Connect As Admin option. Device licensing enables you to have multiple UniData sessions from the same device, normally your PC, while consuming only one UniData license. A phantom process does not consume a UniData license, unless the phantom process is interactive.

Updating a UniData license

You must update your UniData authorization in the following situations: ▪ You upgrade to a later release level of UniData. ▪ You purchase an additional UniData product (for instance, the Recoverable File System or NFA Service). ▪ You purchase additional user licenses for your UniData RDBMS. ▪ You make any change to any of the user-modifiable fields on the confprod screen.

10 Chapter 2: Installing UniData on UNIX

Install UniData on UNIX platforms as a basic, advanced, concurrent, or upgrade installation. Before installing UniData on UNIX, review the following sections: ▪ Operating system requirements (UNIX), on page 11 ▫ Disk space requirements, on page 12 ▫ Memory requirements, on page 13 ▪ Prerequisite tasks for all UNIX installation types, on page 13 The following sections describe the steps on UNIX for basic, advanced, concurrent, upgrades, and patch installations of UniData. There are three scripts you can choose to use to install UniData: ▪ Installing using the udtsetup script, on page 16 (recommended) ▪ Installing using the udtinstall script, on page 55 ▪ Installing using the updatesys script, on page 63 You can edit a parameter file to customize your installation, then use the customized file as part of the installation process without having to provide input to the installation prompts. If you want to use this option, see Installing or upgrading using a parameter file, on page 73.

Note: If installing UniData on a Solaris zone, the UUID (Universally Unique Identifier) is required. If the command zoneadm list -pic returns no value in the 5th field then UniData will become unlicensed on a reboot of the server. If the UUID is blank, then confirm that the /etc/zones/index file on the child zone matches the information for this server in the /etc/zones/index file on the global zone. Following is an example of the command output:

# zoneadm list -pic 4:myhostname:running:/:ae5c8850-64df-e846-f452-e2c81c063064:native:shared Operating system requirements (UNIX)

Rocket Software ports UniData for UNIX products to many versions of UNIX. Verify that the product you have received matches your UNIX operating system, and verify that the installation media is appropriate for your system. UniData requires that certain kernel parameters have adequate settings in order for UniData to accommodate the full number of licensed users. The following table lists some recommended kernel parameters.

Description HPUX Solaris Recommended value Semaphore semmnu semmnu NUSERS * 3.25 undo structures system wide Shared shmmni shmmni Must be greater than SHM_GNTBLS memory max-shm-ids segments (Solaris 10+) Number of msgmni msgmni Non-RFS: 10 + the number of concurrent journal message processes if you are using UniData Journaling. max-msg-ids queues (Solaris 10+) RFS: ((number of authorized users / 4) * 2) + 10

11 Chapter 2: Installing UniData on UNIX

Description HPUX Solaris Recommended value Semaphore semmni semmni For UniData 8.1+ and later: identifiers max-sem-ids Standard Systems: (Solaris 10+) semmni >= ((NUSERS / NSEM_PSET) * 2) + 5 Systems with Replication: semmni >= ((NUSERS / NSEM_PSET) * 3) + 10 For UniData 7.3.x and prior: Standard Systems: semmni >= (NUSERS / NSEM_PSET) + 5 Systems with Replication: semmni >= ((NUSERS / NSEM_PSET) * 2) + 10 Number of semmns semmns semmni * (NSEM_PSET or semmsl) semaphores available Note: NSEM_PSET in these formulas are from the system wide udtconfig file, and the corresponding kernel parameter is semmsl.

Warning: If semmni or semmns is not tuned high enough, the error in the smm.errlog file will be similar to the following:

Exit: smm: cannot allocate semaphore for udtno xx errno 28. Exit: SMM can’t setup Control Table List When this message displays, UniData will fail to start.

Note: On Red Hat Linux, running telnet in SSL mode will not work when SELINUX is enabled.

Disk space requirements

On most systems, you must have at least 250 MB of free disk space under one mount point for the UniData installation to run. Depending on the type of installation, some space — as much as 10 MB — may be released after installation.

If you decide to install UniData on a partition other than the default /usr partition, you will still need to have approximately 2 MB available on /usr. This space is used for the /usr/ud82/include directory

If you are installing using the udtsetup script, you need approximately 10-25 MB of space for the / tmp directory for the installation files. If you are planning to use the Recoverable File System (RFS), use the following formula to determine the minimum disk space you need for logging:

8 MB + 4096 * (NUSERS + 1)

These requirements are based on the default of two before-image and after-image logs per set. Each archive should be a minimum of 8 MB to contain two sets of after-image logs.

Note: If you turn on archiving, you need to plan for additional resources (either disk or tape) to handle regular backup of archive files.

12 Memory requirements

To determine the space available on your system, use the UNIX df or du command at the shell prompt. See your host operating system documentation for help with these commands.

Tip: Most UNIX systems provide an online manual, also known as the “man pages.” At the UNIX prompt, enter the man man command to see if your system provides an online manual, and if so, refer to the man pages about the specific syntax for df or du commands.

Memory requirements

The exact memory needs for a UniData installation are highly platform and application specific. Aside from the memory required by other applications on your system, if any, you can use the following guidelines to estimate the memory required for your UniData installation: ▪ Approximately 10-20 MB of free memory for the operating system. Consult your host operating system documentation for the amount of memory needed for your operating system. ▪ 2 MB of free memory per UniData session if you do not use RFS, just to run UniData. ▪ 3-5 MB of free memory per UniData session if you do use RFS, just to run UniData. Remember that more memory is required if you use Transaction Processing, if you have a large number of writes in one transaction, and if you are using archiving. ▪ Any additional memory required by your application. ▪ Compute your memory needs, then add 10 percent more memory for the UNIX file system buffer. The following example illustrates how to calculate the amount of memory necessary for 50 users running an application that requires 1 MB of memory per session. In this example, RFS is not considered:

Memory needed for OS 10 MB Memory needed for UniData (2 MB * 50 users) 100 MB Additional memory needed for application (1 MB * 50 users) 50 MB Subtotal 160 MB 10 percent for file system buffer 16 MB Total memory required 176 MB

In the next example, memory is calculated for the same scenario running RFS:

Memory needed for OS 10 MB Memory needed for UniData (4 MB * 50 users) 200 MB Additional memory needed for application (1 MB * 50 users) 50 MB Subtotal 260 MB 10 percent for file system buffer 26 MB Total memory required 286 MB

Prerequisite tasks for all UNIX installation types

Some prerequisite tasks for the UNIX installation types are the same. This section describes those tasks. The basic preparatory steps are: ▪ Download your UniData products. Visit https://rbc.rocketsoftware.com for the United States and Canada or https://rbcint.rocketsoftware.com if not in the United States or Canada.

13 Chapter 2: Installing UniData on UNIX

▪ Verify operator knowledge. The operator must know how to log on as root and how to edit a UNIX text file. Additionally, the operator must know the serial number or a descriptive name you want to use to identify the CPU, as well as the type of shell with which you are working. (If you are not sure, try the UNIX echo $SHELL command.) ▪ Assemble materials. You will need the UniData .zip file and the Product Configuration Sheet that is shipped with the UniData software. ▪ Review dynamic library changes. Starting with the UniData 8.2.0 release, the core libraries for UniData on UNIX/Linux were changed from being statically linked to being dynamically linked. For details about this change, review the information regarding dynamic linking in UniData, and dynamic library search method and tools in Administering UniData on Windows and UNIX Platforms. ▪ Verify system requirements. For more information, see Operating system requirements (UNIX), on page 11. ▪ Understand the UniData directories. You need to determine the UniData locations for your installation. For more information, see Directory structure on UniData for UNIX, on page 15. ▪ Determine NUSERS. Use the suggested methods provided in Determining NUSERS, on page 16. ▪ Determine the location of the log files for RFS. See Determining the location of log files for RFS on UniData for UNIX, on page 14. ▪ Determine whether you are installing UniData as an international installation. Before you proceed with an international installation, first read the International Reference guide. Additionally, see International installation, on page 16.

Note: UniData telnet services will not work if SELINUX is enabled. We recommend disabling SELINUX if you are planning to use the UniData telnet services. Responses are blocked in non- secure and secure modes if SELINUX is enabled. Use echo 0 >/selinux/enforce to disable SELINUX temporarily to verify that UniData telnet services work correctly. To re-enable SELINUX, use echo 1 >/selinux/enforce.

Determining the location of log files for RFS on UniData for UNIX

This preparation is applicable if you plan to install RFS as part of your UniData 8.2.1 installation process. You can also enable RFS after you have installed UniData 8.2.1. For detailed information on the log files and RFS, see Administering the Recoverable File System on UNIX. The types of log files are: ▪ Before-image log files ▪ After-image log files ▪ File-level log file If you include RFS when you install UniData 8.2.1, UniData automatically creates a set of log files in the destination you specify by using a default log configuration table. You can use the default files for testing, but you might need to reconfigure if you want to use RFS in production.

Note: If you are upgrading or patching from a previous release of UniData with RFS to UniData 8.2.1 with RFS, and you want to keep your log files in the same location, be aware that the upgrade process or patch will overwrite existing log files. Make sure you backed up your data files, and stop UniData with stopud before you begin the upgrade.

14 Directory structure on UniData for UNIX

Tip: We recommend that you create the log files on a different physical device than your UniData data files. You can create log files on a raw disk or UNIX file system.

Directory structure on UniData for UNIX

When you use the basic installation instructions, all the directories are under /usr/ud82 and have the default names. The advanced and other installation processes allow you to specify other names for some directories:

Default directory Description /usr/ud82 or By default, contains the bin, demo, lib, log, objcall, sys, and work udthome subdirectories. Can contain other subdirectories. This important directory can have any valid UNIX directory name. For that reason, this publication sometimes refers to it as udthome. /usr/ud82/bin Contains the UniData binary (executable) files. It is the directory into which you or udtbin load the software from the tape. The directory does not have to be in udthome, and it can have any name. In this document, it is sometimes referred to as udtbin. usr/ud82/work Contains files needed to rebuild the UniData “kernel,” which is an executable or udtwork called udt. The files are required if you ever intend to use CallBasic or CALLC. The work directory is loaded into udthome unless you specify another path during installation. If the directory is not named “work,” you must create the environment variable WORKPATH to define the path. In this document, the work directory is sometimes referred to as udtwork. /usr/ud82/lib Contains libraries for all UniData executables. It is loaded into udthome unless or udthome/lib you specify another path during installation. The directory can have any name. If you change its location or name, also change libpath in udtwork/base.mk and udtwork/callbas.mk. /usr/ud82/ Contains the files path81, udtconfig, sysconfig, repconfig, repsys, include and files needed for RFS. Also contains header files needed to link the libraries in /lib. The name of this directory cannot be changed. /usr/ud82/ A demonstration account created by default in udthome/demo; may be demo or moved, removed, or renamed any time after installation. udthome/demo /usr/ud82/sys Contains UniData compiled programs provided with UniData, including the or udthome/sys Alternative Editor (AE), and files used by AE. Also contains the default global catalog, which includes globally cataloged UniBasic object code. This directory also contains the master VOC file for your installation, and other system files such as the error message files. This directory must reside under the udthome directory. /usr/ud82/ Contains control files, client demo, and include directories for ObjectCall. The bin/ods name of this directory cannot be changed. /usr/ Contains information necessary for the unirpcd daemon. unishared

15 Chapter 2: Installing UniData on UNIX

International installation

The UNIX LANG environment variable affects the behavior of UniData. Before you install UniData, you should be aware of the consequences of using a LANG setting other than “C.” If you use a LANG setting other than “C,” note that certain UniData commands might cause unpredictable results, such as the UniBasic UPCASE and DOWNCASE commands, and the MCU and MCL conversion codes. If you are installing UniData in an environment that does not support ASCII characters 250 through 255, and ASCII character 192 as internal markers, read International Reference before proceeding with the installation.

Determining NUSERS

Use the following suggested methods to determine the amount of NUSERS. ▪ Determine Average # of connections per device. If you are not using device licensing, this value will be 1. If you are using device licensing, this value can be a maximum of 10 but is usually 2 or 3 on average. ▪ Determine Average # of phantoms. If you use phantoms, then you can have a number for this value. If not, the suggested value is 20. ▪ Determine Total # of database sessions (NUSERS) using the following formula: ((Average # of connections per device * # of devices) + Average # of phantoms) * 1.25 The 1.25 is to multiply the value by 25% to accommodate for heavy loads and possible small increases in licenses. If a large increase in users is done, then this formula should be reevaluated. ▪ Set NUSERS to the value determine above for Total # of database sessions. The NUSERS value can be higher than the licensed user count. Installing using the udtsetup script

Use the udtsetup script to install UniData on UNIX as any installation type. Starting at UniData 8.1.0, the udtsetup script has been included with the UniData media for UNIX and Linux platforms.

Note: The udtsetup script has only been tested with UniData 7.2.x and later, but it might work back to UniData 4.1.x, as the required files that the script uses were added at the 4.1.x release.

The udtsetup script is an improvement over the existing udtinstall and updatesys utilities in many ways. With udtsetup, all major installation types are supported in one script. Checks are done to verify the installation type (install, upgrade, or concurrent), so if UniData is being upgraded, the catalog space will not be cleared. On installations, initial permissions can be logged so that after the installation, if a permission change occurs, then the script can reset the permissions back to the values at installation. For upgrades, sites do change the default permissions, so this permissions feature allows for the existing permissions to be logged, then changed during the normal upgrade process and, if selected, fixed back to the original values. New files would be using the default values. The permissions for the following files and directories are logged if found:

▪ /usr/ud82 ▪ $UDTHOME/sys

16 udtsetup

▪ $UDTHOME/lib ▪ $UDTHOME/demo ▪ $UDTHOME/log ▪ $UDTHOME/logs ▪ $UDTHOME/objcall ▪ $UDTHOME/Sybase ▪ $UDTHOME/work ▪ /.unishared and its related path ▪ /.udlibs* The udtsetup script allows recording answers to the installation prompts with a parameter file for use later. There are 40+ parameters available. If the installation or upgrade prompt does not have a value for the question encountered, the script will prompt you for the information. For more information, see Installing or upgrading using the parameter file, on page 73.

Unlike the udtinstall and updatesys scripts, udtsetup allows you to enter quit at any of the prompts to quit the process without error, up until the files are extracted to the bin directory. If you exit early a message displays about how to restart the udtsetup process using the existing values, for example:

If you want to restart this process with the same settings later, run: udtsetup -r /tmp/udtsetup.param Various files are removed when quitting early, including:

▪ The temporary files needed during the installation (systest, accessory, port.note, patch.note, hostinfo, and license.txt). ▪ Files in the /tmp directory that start with udtsetup* except the udtsetup.param file (if no parameter file was selected previously)

▪ Files in the /tmp directory that follow the format udt*.info. These are parameter files used for permissions, backup, and licensing.

▪ UniData home and bin directory, if they were created during the udtsetup script.

Note: The /tmp/udtsetup.partial.log and /tmp/udtsetup.warning.log files, if not empty, will remain to help troubleshoot installation issues. These files are moved to $UDTBIN/saved_logs if the installation or upgrade completes normally.

If the -f or -uf options are used instead of -r or -ur options when restarting the script, each parameter that was missed will have a message similar to the following:

The 'LibDir' parameter was not found, prompting for input. udtsetup

The system-level udtsetup script installs UniData.

Note: This command is supported on UniData for UNIX only.

The udtsetup script can use URI operations. Uniform Resource Identifier (URI) support allows the udtsetup process to download the binary installation file (bin.tar) and custom configuration files from an external web resource (like a web server) and use them during the installation or upgrade

17 Chapter 2: Installing UniData on UNIX

process. The udtsetup script will need to be local to the UNIX or Linux system where UniData is being installed. You cannot run the udtsetup script from the / or /etc directory.

Syntax

udtsetup [-h|ah][-c directory_path][-exthelp][-f|uf|r|ur param_file][- t fname][-dd][-hs][-kd][-ku|ru][version_options][exit_early_options] [URI_options]

Parameters The following table describes each parameter of the syntax.

Parameter Description -h Displays help about only the commonly used parameters. -ah Shows all the command options available. -c directory_path Custom configuration directory path. -exthelp Displays extended/additional options available -f|uf|r|ru param_file Use a parameter file and specifies how to sort the parameters. -f sorts alphabetically. -uf sorts unordered. -r is the same as the -f option without missing parameter message. -ur is the same as the -uf option without missing parameter message. -t fname Specifies tar file to use for the installation or upgrade. -dd Deletes extra directories in the bin directory. -hs Hush systest output even if echo is enabled. -kd If debug files are used, new versions will use debug files. -ku|ru -ku keeps the udtsetup script (default) after it finishes the installation or upgrade. -ru removes the script. version_options See the version table for descriptions of the version options. exit_early_options These options exit the script early. See the exit early table for descriptions. URI_options See the URI table for descriptions of the URI options.

The following table described the URI options. The URI options use curl to download files.

Parameter Description -uri url Download and use custom files (parameter file, bin.tar). This parameter requires a URI option that points to the location where any custom files are located. Only one path is allowed, so all custom files need to be located in that directory. The exceptions to this are the parameter file and bin.tar file; these options use the -urif (or -uriuf) or - urit options to specify a different location. You can use the URI parameter to specify the location of the URI path (need to have local parameter file for this).

Warning: If this option is used, the custom directory check in the parameter file is not done. If -urit or -urif were previously used, then param_file and bin.tar checks are not done again if this option is used afterward.

18 udtsetup

Parameter Description -urif|uriuf url/param Download parameter file from web path given. The -urif option specifies the parameter file to download first, then will search a local version of the file for remaining parameters. The -uriuf option tells the script to not use a sorted parameter file when updating values because the default is sorted. There is no parameter file value for this command line option. If the -uri option was used previously, you can use this option and specify just a different file name to use instead. For example if the -uri http://1.2.3.4/udt –urif my.param.file options are used, the file that is downloaded is http://1.2.3.4/ udt/my.param.file. -urit url/my.tar Download media tar file from web path given. This option specifies the location of the tar file to use. This option is helpful if the tar file is not called bin.tar. There is no parameter file value for this command line option. If the -uri option was used previously, you can use this option and specify a different file name to use instead. For example if the -uri http://1.2.3.4/udt –urit my.tar.file options are used, the file that is downloaded is http://1.2.3.4/udt/my.tar.file. -kuri Keeps URI temporary files. This option keeps the local copies of any files downloaded from the URI site specified. The default for this is to remove these temporary files. Use the -kuri option to enable this from a parameter file.

The following table descriptions the version options.

Option Description -sb Shows the build number in the version display message. -tv|gtv Shows the port.note file from the tar file, then exits. -udt # Sets the major version used in the script. -udtv Reports the UniData version used in script, then exits. -v Shows the version of script.

The following table describes the options that exit the script early. These options can be used during a backup or restore scenario. The -rp, -up, and -lp options are used during permission checks.

Option Description -lb Lists backup files from the last installation or upgrade. -rb|removebackups Removes backup files from the last installation or upgrade. -restore Restores UniData to a saved version. -restore -force Same as the -restore option, but with no prompts. -udtdiag Runs udtdiag v3+. Used with -restore option. -rp Reset permissions back to stored values. -up Update permissions logged on version installed. -lp Upgrades only: Show diff log (must check perms in upgrade).

Instead of using command options, you can use the following environment variables.

19 Chapter 2: Installing UniData on UNIX

Option Description UDTCUSTOM Local custom directory path. UDTURI Extra options for URI calls. UDTTARFILE Local tar file path.

Logging and exit codes

The udtsetup script allows for up to ten levels of logging. Usually the default level of 1 is sufficient. The log file is written to /tmp/udtsetup.partial.log. If the script exits normally, then the file is moved to $UDTBIN/saved_logs/udtsetup.log. This is done in case the $UDTBIN directory is removed or restored and Technical Support needs to look at the partial log file. If you want to increase the logging levels, they are defined in the following tables.

Level Description 1 Standard logging 2 Version checks 3 Section headers (major sections defined inside script) 4 File checks 5 Command output 6 Permissions 7 Custom command debugging 8 Function calls 9 Debug info 10 Everything/developer messages

UNIX and Linux allow for exit codes up to a value of 255. Each location in udtsetup where the process can exit has a unique exit value. This is helpful if the process is started by another script that can check exit status codes. The following table describes the exit codes.

Exit code Description 0 Normal exit (can be reported from multiple spots if the function selected works correctly) 2 - 99 Main program code 100 Mkdir failure 101 Quit entered at prompt 110 - 199 Functions 200 - 255 Other 200 - 202 Used for -tv command line option exits 203 Exit from URI function if not root user 210 - 211 Setup of temporary install files 254 Command line option that exits script early, but did not set to exit code 0 properly 255 Unknown exit

Prerequisite tasks for the udtsetup script installation

To install using the udtsetup script, a number of tasks need to be completed.

20 Retrieving the location of the tar file

The basic preparatory steps for the udtsetup script installation are: ▪ Read Prerequisite tasks for all UNIX installation types, on page 13. ▪ Download your UniData products. Visit https://rbc.rocketsoftware.com for the United States and Canada or https://rbcint.rocketsoftware.com if not in the United States or Canada. Unzip these files and copy the bin.tar file to your UNIX or Linux server (not $UDTBIN). It is recommended to place the file outside your planned $UDTHOME or $UDTBIN directories. ▪ Extract the tar file from the script. For more information, see Retrieving the location of the tar file, on page 21. ▪ Determine whether you will use a custom installation. For more information, see udtsetup customizations, on page 23. ▪ Determine whether you will create backup files. For more information, see Backing up and restoring files, on page 30.

Retrieving the location of the tar file

The udtsetup script requires use of the tar file. There are several ways to retrieve the location of the tar file. The udtsetup script finds the tar file in the following order:

▪ Using the -t or -tf udtsetup options ▪ Downloaded from the URI command line options (see Getting files from URI resources using curl, on page 22)

Note: URI support in the udtsetup script is currently only available with command line options and the parameter file. There are no prompts that request information. If the information is included in the parameter file, it is read during initialization tasks.

The script searches the local directory where it was executed from for the following files:

▪ bin.tar ▪ bin.tar.Z and bin.tar.z ▪ bin.tar.zip, bin.tar.ZIP, and bin.tar.Zip ▪ bin.tar.gz, bin.tar.GZ, and bin.tar.Gz ▪ The TarFile parameter in the supplied parameter file ▪ A UDTTARFILE environment variable Otherwise, the script prompts you for the path. If the path is not found, then the process aborts.

If using the .Z, .Zip, and .Gz options, the tar file will be uncompressed before use and re- compressed after the extraction is done. If using the compressed versions of bin.tar, make sure you do not have another file in the same directory called bin.tar, as this is the name that is used after decompressing the files.

At the start of the udtsetup script before the software licensing screen, the path to the tar file being used is displayed. For example:

Welcome to the Rocket UniData RDBMS, performing startup tasks... Extracting files needed during setup process... Validating tar file. Using /disk1/u2install/bin.tar during this process. If you add the -tv or -gtv option to the udtsetup command line, it will report the port.note file contents of the tar file being used, then exit. An example for UniData 7.3.6 is:

21 Chapter 2: Installing UniData on UNIX

# ./udtsetup -tf bin.tar.Z -tv Welcome to the Rocket UniData RDBMS, performing startup tasks...

Expanding /disk1/u2install/bin.tar.Z

Extracting files needed during setup process... Validating tar file. Using /disk1/u2install/bin.tar during this process.

Tar file port.note contents:

Platform : Red Hat Enterprise Linux Server release 5.8 (Tikanga) Operating System : Linux sitka 2.6.18-308.el5 #1 SMP Fri Jan 27 17:21:15 EST 201 2 i686 i686 i386 GNU/Linux Porting Date : Fri Oct 4 19:51:25 MDT 2013 UniData Release : 7.3.6 73_131003_6560 Ported by : srcman Compilers Used : gcc-4.1.2-52.el5 LINUX Information: RHEL 5.8: Linux version 2.6.18-308.el5 Source RPM: glibc-2.5- 81.src.rpm RHEL 6.0/64-Bit: Linux version 2.6.32-81.el6.x86_64 Source RP M: glibc-2.12-1.7.el6.src.rpm SuSE 11/64-Bit: Linux version 2.6.32.12-0.7-default Source RP M: glibc-2.11.1-0.18.1.src.rpm

Special tar version option used, exiting. /disk1/u2install/bin.tar.Z was 'gunzip'ed for installation. Recompressing tar file.

Getting files from URI resources using curl

Uniform Resource Identifier (URI) support allows the udtsetup process to download the binary installation file (bin.tar) and custom configuration files from an external web resource (like a web server) and use them during the installation or upgrade process. The udtsetup script will need to be local to the UNIX or Linux system where UniData is being installed.

About this task

The files are downloaded to a local directory called udtsetup.uri.tmp in the directory where you execute udtsetup. Only the curl command is supported to get files from URI resources. The curl command is available on all UNIX and Linux platforms where UniData is supported. Usually, no extra setup is needed to get curl installed. If curl is not on your system, please refer to your OS vendor documentation or Curl’s website: http://curl.haxx.se/.

Support for an environment variable called UDTURI is included in udtsetup. This variable allows the user to set any additional parameters that curl needs for commands used in the script. No validation is done on these options.

22 udtsetup customizations

Note: The .unisecurity and .udscrfile files might not be reachable with curl. For these two files, the non-dot versions of the files are checked first and if not found, then the dot versions are checked. For example, the unisecurity file is checked first, and if found, moved locally to .unisecurity. If the unisecurity file is not found, then a call is made with curl to get unisecurity.

If using Internet Information Services (IIS) or possibly other web servers, all extension types should be supported as the list of custom files has many different options. For instance, in IIS, update the MIME Types option for each extension being used, otherwise, a 404 error can occur. If you want the extension to be text-based, then set the MIME type value to text/plain. Curl will be unable to download files if you browse the file path and cannot open the file with the browser.

Test that curl works on your system first before using it with the udtsetup script.

Procedure

1. Create a test.txt file on the external URI/web server. 2. From the operating system command prompt, run the following command: curl -f http://my-ip-address/udt/test.txt -o test.txt If the local (to UNIX/Linux server) test.txt file does not exist, then udtsetup is unable to download files with curl.

Example

The following is a combined parameter example. First, the udtsetup file is downloaded from the web server (previously extracted from the bin.tar file stored on the server:

curl -f http://192.168.71.218/udt/udtsetup -o udtsetup chmod 755 udtsetup

There is no option with curl to set permissions on a downloaded file, so permissions will need to be set manually for udtsetup before you can execute it. For files downloaded inside udtsetup, the permissions will be adjusted during the script.

Next, the -uri option of the udtsetup script is used to specify the location to download the bin.tar file and a udtconfig file. The -urif option is used for a custom named parameter file, and -kuri is used to keep the files after the UniData upgrade is completed:

./udtsetup -uri http://192.168.71.218/udt -urif udtsetup.parameters – kuri udtsetup customizations

You can customize files and commands before you use the udtsetup script. Customizing files saves you time reconfiguring files on new systems. Customizing commands allows udtsetup to perform additional actions. For custom configuration files or the custom commands functionality, the search path for these files are in this order:

▪ If the -uri udtsetup option is used, the file is checked in the local directory for URI files ▪ $UDTHOME/custom directory ▪ If $UDTCUSTOM environment variable is set ▪ CustomDir parameter in parameter file

23 Chapter 2: Installing UniData on UNIX

Note: The custom directory path cannot be $UDTHOME or $UDTBIN.

See the following sections for information about udtsetup customizations:

• Custom configuration files With udtsetup you can apply custom configuration files to a UniData installation/upgrade. • Custom commands Call a custom commands list in the udtsetup script to perform additional actions that are needed during installations or upgrades for your own application accounts.

Custom configuration files

With udtsetup you can apply custom configuration files to a UniData installation/upgrade. If custom versions of the UniData configuration files are found, these can be retrieved by the udtsetup script and copied into place. This saves time configuring these files on new systems. Most of the configuration files used by UniData are supported (common files being udtconfig, ud_database, logconfig, and so on). Some of the files are copied directly, others have keywords that can be updated without being copied. This will help save time when configuring the system manually after the installation/upgrade process completes in several ways including: ▪ Consistent configuration files between installs of UniData ▪ Lower chance of typos that cause UniData to not start or connect properly ▪ Automate manual steps The custom configuration files are checked after the new installation files have been copied to the $UDTBIN path and when certain files were previously updated using the udtinstall method. This includes files like repsys, repconfig, udtconfig, ud_database, and so on. Any new files that are supported in this installation that were not updated during the udtinstall/updatesys process are copied into place and have the "Save Directories" prompt.

When a custom version of the repsys and ud_database files is found, the original file is backed up then removed. If a merge functionality is needed for these files in the future, contact [email protected] to request this change. Every configuration file has a different set of customizations that are allowed. See the list below for full details on customizations allowed. Some configuration files will be copied into place. When these custom configuration files are processed, the original version of the configuration file is copied into the /usr/ud82/include/custom.bk.configs folder. The modified versions of the configuration files are in /usr/ud82/include/custom.configs folder and the standard places where they should be located after the installation/upgrade process. If the new custom file is different than the current custom file, the file in the custom.bk.configs folder will be replaced. If the new file is the same as the current file, then the current file is not copied to the custom.bk.configs folder. This distinction is needed so that if an upgrade is repeated and the configuration files do not change, then the last configuration file is not replaced. If the original file exists but is zero bytes, then it will not be backed up. As each custom file is processed, a processing message is displayed to the screen. The files are processed a strategic points throughout the script. All of these message will not appear together. An example of this output is: "Processing custom config file: unirpcservices" Permissions on most configuration files are changed to default permission values during the script. If you want to maintain permissions, then use the check and fix permissions option. Otherwise, the

24 Supported configuration files

check and fix permissions option is not used and permission on a configuration file is not used, and permissions on that file will be set to the previous value or a default of 644 (rw-r--r--).

Parent topic: udtsetup customizations

Supported configuration files The current files that are supported are broken into two sections: files that have logic in the udtsetup script that can modify the configuration files with values specific to the system (for example, set UDTHOME in ud_database correctly) and files that are just copied into place without the extra dynamic values supported.

Note: The sysconfig file is not supported because it is a copy of the port.note file and the serial number. Additionally, any files not listed in this section are not supported configuration files.

The following table describes the files that are currently supported and have logic in the udtsetup script that can modify the values.

File Description logconfig This file is rebuilt from the custom file and the last field for the file log is set to NUSERS + 1. This will avoid "File log too small" errors. repsys The existing file is backed up then removed. All lines are kept the same, with the following exceptions: ▪ SYSTEM, if blank or set to DEFAULT, will set ID to hostname_MajorVersion, for example, Myhost_81. ▪ HOSTNAME is set to the current host name; can use DEFAULT. If using DEFAULT, it will have the fully qualified host name, for example myhostname.myco.com. ▪ VERSION is always set to the current major version (for example 82); can use DEFAULT.

Note: If the HOSTNAME value in the custom file exactly matches the current system, then VERSION will be set to the current version value in the script. If repsysid was set through another manner (parameter file or user prompts), that ID will be used instead. ▪ EXCEPTION_ACTION: If the file name exists in the custom directory path, then it is copied to the location specified in the repsys file. If the exception action script is in the custom directory and repsys is not there, the exception action script is not copied. Since this is a custom file name, it is not supported through the URI options. The directory path referenced in this line will be created if it does not exist. The permissions on this script is set to 814. Unless SYSTEM, HOSTNAME, or VERSION is set to DEFAULT, only one server set will be changed in this file since usually multiple system configurations are listed (for example, publisher and subscriber system info).

25 Chapter 2: Installing UniData on UNIX

File Description ud_database The existing file is backed up then removed. The "demo" ID will be replaced with the default value. The rest of the lines are copied.

If the UDTHOME= line is set to DEFAULT, then the udtsetup script will replace it with the correct $UDTHOME path. Otherwise, UDTHOME is checked to see whether the account is not set to the current udthome or does not exist (if so, a warning is displayed in the log file). No other checks are done on the file.

26 Supported configuration files

File Description udtconfig The systest utility in the script may change the values for the NUSERS, N_PGQ, N_TMQ and SHM_GNTBLS parameters, so if a custom udtconfig file is used, these settings might change. Also, if using the web authorization feature, these values might change. Systest defaults NUSERS to ((number of UDT + number of Connection Pool Licenses) * 1.25).

Note: Starting at the 8.1.0 release, the default values for several existing udtconfig parameters have changed. The new values are: ▪ NUSERS: 256 ▪ SHM_GNPAGES: 64 ▪ SHM_GPAGESZ: 2048 ▪ SHM_LMINENTS: 128 ▪ SHM_LMINENTS: 128 ▪ SHM_LPAGESZ: 16 ▪ SBCS_SHM_SIZE: 4 MB (4194304)

Checking against the udtconfig file uses the operating system command bc. If bc is not found, the NUSERS, N_PGQ, N_TMQ and SHM_GNTBLS udtconfig parameters will be updated from systest. Checks are only done for LOG_OVERFLOW, PART_TBL, REP_LOG_PATH, and UDT_LANGGRP. All other lines or commented-out versions of these variables are copied into place. The default value scripted are: ▪ LOG_OVERFLO=$UDTHOME/log/log_overflow_dir ▪ PART_TBL=$UDTHOME/parttbl ▪ REP_LOG_PATH=$UDTHOME/log/replog ▪ UDT_LANGGRP=255/192/129

A full or partial udtconfig file is supported. For the variables listed in the previous bullet point, if DEFAULT is the value, the default values used in the install script will be used.

If a custom archconfig file is found, udtconfig is updated to have N_ARCH match the number of lines (that start with /).

ARCH_FLAG is not enabled if an archconfig file is found. If a custom logconfig file is found, N_BIMG and N_AIMG are adjusted to match the number of logs.

Note: If the user incorrectly defines this file, these parameters may be set incorrectly and cntl_install might report an error. If a custom udtconfig file is found, but N_ARCH, N_BIMG, or N_AIMG are not found, the default values will be added to the custom udtconfig file. This is done so that if a custom archconfig or logconfig file is found, these files will be properly updated.

27 Chapter 2: Installing UniData on UNIX

File Description unirpcservices The file is copied to cat /.unishared/unirpc directory. The same checks done for the default services types are done and paths will be modified. If there are any custom service names, those paths will not be modified.

Note: For these files that accept DEFAULT as a value, the case of the value does not matter. The script will uppercase the value to check for DEFAULT.

The following table describes the files that are currently supported but are just copied into place without the extra dynamic values supported.

File Description base.mk This file is copied to $workdir. The same libpath check is done on the custom file as is done on the standard install file. *.cfg UniData 7.3+ U2 logging files all have a *.cfg extension. Each file is copied into place, and no validation is done. All of the copied files are set to a permission of 777. If using the URI options, include all of these *.cfg files in a tar file called u2logging.tar.

Note: The curl command does not support wildcards in file names. acct_licn.def arch_backup These files are copied into with no validation checks. arch_restore /usr/ud82/include archconfig If the archconfig file is not found, then the N_ARCH value in the file is adjusted to match the number of lines in loglevelconfig udtconfig archconfig starting with a slash (/). However, the ARCH_FLAG in udtconfig is not mediaconfig changed. msglevelconfig repconfig repacct.def vvtermcap These files are copied into $UDTBIN with no validation checks. udt_lic_exp _notify parttbl This file is copied into either default location or location specified by custom udtconfig, file is copied over with no validation checks. UD.ACCOUNT This file is directly copied into $UDTHOME/sys/UD.ACCOUNT. Because this is a database file, no checks are done on the values in the records. UDTSPOOL.CONFIG The directories $UDTHOME/sys/UDTSPOOL.CONFIG.current and $UDTHOME/sys/UDTSPOOL.CONFIG.default are deleted, and the custom copy of this file is copied into place. .udscrfile These files are copied to the cat /.unishared/unitelnet directory with no validation checks. udtelnetd.conf Note: The .udscrfile has been replaced by the .unisecurity file. .unisecurity This file is copied to the cat /.unishared directory with no validation checks

Custom commands

Call a custom commands list in the udtsetup script to perform additional actions that are needed during installations or upgrades for your own application accounts.

28 Available parameters

Warning: This functionality allows a user to execute udt in directories. If there LOGIN paragraphs that ask for input, then this functionality might not work properly. For more information, see Problem: udtsetup fails for an account that has a LOGIN paragraph, on page 96.

The ability to run a custom script is controlled by the commands file. Logging for the custom commands output is written to the udtsetup log file ($UDTBIN/ saved_logs/udtsetup.log) and to the custom log file ($UDTBIN/saved_logs/ udtsetup.custom.log). The custom log file is removed before each execution of udtsetup (when custom commands are used). Commands or accounts processed will be executed in order of the script. The process is also single threaded, so you cannot update multiple accounts concurrently. However, you can use PHANTOM (UniData level) and & (operating system level) in commands to help. Lines starting with # are skipped. For accounts in parameter 1, each command after is split by a tilde (~). These commands are loaded into a temporary file and then passed to the UniData shell in the foreground.

The $UDTBIN/udt.d executable is used first if it is found; otherwise, $UDTBIN/udt is used to start the UniData shells.

For updatevoc and account path options, if the first character in the account path is not a slash (/), then $UDTHOME is checked for the account, and if it is not found, then it is skipped. If a timeout value is reached, the process will be killed and a kill message would be shown to the screen, as shown in the following example.

Timeout from 'ECL Commands For /disk1/ud82/demo', process 29627 killed. ./udtsetup: line 955: 29626 Done cat $ecltmpcmds 29627 Killed | $myudtcmd > ${ecltmpout} 2>&1

Parent topic: udtsetup customizations

Available parameters Checks in udtsetup are based on the first parameter. Parameters are broken up by tilde (~) characters. If you want to use a different field mark, set line one of the commands file to fm=! where ! is the character you want to use. Do not use bracket characters { } as the special field mark value. The following table describes the format of the commands.

Parameter Description Fully Qualified The remaining parameters will be ECL commands to run. Users should check log for Account Path results.

Note: The account path cannot have spaces in it. script The second parameter will be the shell script to run. Users will have to use their own scripting to switch accounts, if using this option. Only one script can be set for each of these lines. If the first character is not a slash (/), then customdir and the starting directory are checked for the script. If found valid and has execute permissions, the script will run. This file is not transferred with curl (if used). timeout The second parameter is the number of seconds for a timeout. This is used by an internal function to kill the custom command if the timeout was reached. This timeout will remain for all remaining custom commands unless another timeout line is found. Do not set timeout to zero (0) as some commands might not work. If a timeout of 0 is set, the script will change it to one hour. The default is two minutes. If the value is not numeric, then the previous value is used.

29 Chapter 2: Installing UniData on UNIX

Parameter Description updatevoc If using options for updatevoc, include them with the first parameter. All remaining parameters will be the fully-qualified accounts to run the command in. The language group is checked; if it does not match the UDT_LANGGRP value in the udtconfig value, then the updatevoc command is skipped. This will avoid core dumps on some platforms. fm=~ Change field mark separator. The default value is a tilde (~). Do not use brackets ( { or } ) and do not use value set in any commands. Only the first fm definition is used.

Example commands file The following example is a commands file that was used during testing. # 'commands' - Custom commands list for udtsetup # Look at $UDTBIN/saved_logs/udtsetup.custom.log for results #fm=! ; # Only one character is checked on this line #

#updatevoc's first updatevoc~/disk1/ud82/demo~/disk1/accounts/udt updatevoc -OC~/disk1/ud82/sys

# Set timeout once (value is in seconds) timeout~30

# Run commands # This line runs LISTUSER,PORT.STATUS, a COUNT of File pointers and VERSION /disk1/ud82/demo~LISTUSER~PORT.STATUS~COUNT VOC WITH F1 = "F"~VERSION

# Using different 'fm' in sys, same as line above #/disk1/ud82/demo!LISTUSER!PORT.STATUS!COUNT VOC WITH F1 = "F"!VERSION

# This account does not exist, and should report message /disk1/ud82/bad_account~VERSION

# Set Timeout to confirm kill timeout~1 /disk1/ud82/demo~SLEEP 10

# Set Timeout again timeout~180

# Run shell script script~/tmp/runudtscript -test script~/tmp/notfound_script # End of commands

Backing up and restoring files

If you are upgrading, the udtsetup script will prompt you to decide whether it should backup files and where to save the backed up files.

Note: The backup prompt is described in step 25 of Installing or upgrading UniData on UNIX using udtsetup, on page 31.

The backup option in udtsetup backs up an entire UniData environment so that if an upgrade has issues, the restore option can be used to restore UniData to the last version used and allow the system to continue running. There is no need to reinstall the old version.

30 Installing or upgrading UniData on UNIX using udtsetup

Backup files are stored in tar format. Key directories are backed up to either a designated directory or the parent directory of each path. Key directories/files for the core UniData product can be backed up. User directories will not be backed up within this functionality. The following files directories/files are backed up: Required Files/Directories:

▪ /usr/ud82 ▪ $UDTBIN ▪ $UDTHOME/sys ▪ $UDTHOME/lib ▪ $UDTHOME/parttbl (or PART_TBL location in udtconfig) ▪ /.unishared and its related directory ▪ /.udlibs## Optional Files/Directories:

▪ $UDTHOME/demo ▪ $UDTHOME/lobs ▪ $UDTHOME/objcall ▪ $UDTHOME/Sybase ▪ $UDTHOME/work The $UDTHOME/log directory is not backed up. This directory is used for RFS and U2 Data Replication logs and would be out of sync with your applications if this directory was restored. If restoring to a previous version and running RFS, run cntl_install to refresh the logs.

Note: Only one backup is maintained in the UniData environment. The backup files can still remain from old upgrades but are no longer tracked by the udtsetup script.

The backup procedure uses the tar file format only. Each directory/file noted previously is stored in its own tar file, so you might see several tar files when reviewing the backup files. The number of tar files created is usually a minimum of 10.

Installing or upgrading UniData on UNIX using udtsetup

You can install as any installation type (basic, advanced, concurrent, upgrade, or patch) with the udtsetup script. Starting at UniData 8.1.0, the udtsetup script has been included with the UniData media for UNIX and Linux platforms.

Prerequisites You must be logged in as root to perform the installation. Review the following sections before you begin this procedure. ▪ Operating system requirements (UNIX), on page 11 ▪ Disk space requirements, on page 12 ▪ Memory requirements, on page 13 ▪ International installation, on page 16

31 Chapter 2: Installing UniData on UNIX

▪ Prerequisite tasks for all UNIX installation types, on page 13 ▪ Prerequisite tasks for the udtsetup script installation, on page 20

About this task If UniData is being moved on the system to a new location, the original data is copied first before an installation or upgrade is performed.

The recommended method of installing UniData with udtsetup is to extract the udtsetup file from that tar file, then allow the udtsetup script to extract the remaining files (included in the tar file only with UniData 8.1.0 and later). However this method is not supported when performing an upgrade because if files are extracted to $UDTBIN before starting the udtsetup process, the effectiveness of the permissions validation and backup/restore features is negated. The udtsetup script validates before doing the full tar file extraction to avoid unnecessary downtime if there are problems with the installation media. Any warnings are displayed before the software licensing message and in the $UDTBIN/saved_logs/udtsetup.warning.log file.

Note: If you are upgrading from an older major UniData version, the archconfig and logconfig files in the configuration path are renamed to avoid starting up two versions of the database and corrupting RFS information. This does not apply to concurrent or new installations.

Note: If you are doing an upgrade and the UDTHOME/UDTBIN environment variables are already set (and are set to /usr/ud82 and /usr/ud82/bin), the udthome and udtbin prompts are skipped.

If upgrading, the udtsetup process confirms that UniData is not running, including the UniRPC daemon. The fuser utility confirms that no UniData bin files are in use. If a file is found to be in use, the upgrade aborts. This is done to ensure all files that are extracted are copied into place as expected. In previous versions of UniData, if UniData processes were still running, those files would not be updated and would cause errors when trying to use those outdated files later. The following example shows how the script aborts when a file is in use:

Verifying /disk1/ud82/bin files are not in use. Some /disk1/ud82/bin files are still in use, these are: libodbc.so: 8419m

This UniData upgrade will not continue! Resolve the above errors and then restart the upgrade. The second parameter of the file outputted is the pid plus an alpha code. If you then run ps and grep for the pid, you will see which process is using the file, for example, on a server with both U2 installed:

# ps -ef |grep 8419 root 8419 1 0 Mar24 ? 00:00:00 bin/usd /usr/spool/uv root 24203 21787 0 11:17 pts/2 00:00:00 grep 8419 The process holding the file open needs to be stopped, then the udtsetup process needs to be restarted.

Procedure

1. Extract the udtsetup script from the media. 2. Execute the script with the following command: tar –xvf bin.tar udtsetup 3. Execute the ./udtsetup script by entering ./udtsetup at the system prompt. This begins the installation process:

32 Installing or upgrading UniData on UNIX using udtsetup

# ./udtsetup Welcome to the Rocket UniData RDBMS, performing startup tasks... Extracting files needed during setup process... Validating tar file. Using /disk1/u2install/bin.tar during this process. After the validations are done, the screen is cleared and the software license agreement prompt is displayed:

Welcome to the Rocket UniData RDBMS. http://www.rocketsoftware.com/u2 License files are located in /license. Do you accept the terms of the Software License Agreement (SLA)? Enter Yes/No or D to display agreement [No]: Yes 4. Enter Yes to accept the Software License Agreement. UniData prompts for the full path of the udthome directory. UniData displays the following warning message because the udthome environment variable is not set.

Enter the full path name of UniData home directory [/usr/ud82]: /disk1/ud82 Creating ud82 directory in the /disk1 path. WARNING: The path you selected does not equal UDTHOME. The environment variable UDTHOME will be ignored and it needs to be changed after the installation. If the value used in this prompt does not exist as a directory, then it will be created. The parent directory of UDTHOME is not created here. 5. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the full path to the UniData bin directory. Enter the full path name of UniData bin directory [/disk1/ud82/ bin]: 6. If the default directory is correct, press Enter. To use a different location, enter the full path. If the value used in this prompt does not exist as a directory, then it will be created. The bin path is created. Creating bin directory in the /disk1/ud82 path. For basic and advanced installations, a warning message displays as well as the type of installation and the version:

WARNING: The path you selected does not equal UDTBIN. The environment variable UDTBIN will be ignored and it needs to be changed after the installation. Starting the installation of UniData 8.2.1. If installing as a basic or advanced installation, proceed to step 8. For upgrades or concurrent installations, UniData prompts you to answer whether you are upgrading or installing as concurrent.

Do you want to upgrade UniData (type No for Concurrent)? [Yes]: 7. Enter No if installing as concurrent. Press Enter or type Yes if upgrading. This prompt is skipped if updating to a patch version within the same major version. If you answered Yes, you are upgrading, and more than one major version of UniData is found on the system, UniData prompts you to answer which version you want to upgrade from:

Previous major versions installed are: 72,73

33 Chapter 2: Installing UniData on UNIX

Enter the UniData version to be upgraded [73]: Only the versions found will be listed and the latest version found will be the default value. If only one major version was found on the system, then this prompt is skipped. Press Enter to accept the default value, or enter the major version you are upgrading from. The upgrade process begins:

Starting the upgrade of UniData from 7.3.6 to 8.2.1. 8. If a warning message appears, and you are prompted to decide to continue, press Enter to continue. During the installation process, UniData changes the LANG environment variable to “C” for installation processing and displays the following message:

WARNING: -- Environment variable LANG is not set to 'C'. -- It will be set to 'C' by UniData during this installation. -- See the Rocket UniData Installation Guide for more details. Would you like to continue? [Yes]: If you press Enter to accept the default answer of Yes, UniData continues the process using the LANG group of “C.” If desired, you can change your LANG environment variable after the installation process is complete. If you are installing UniData as an international installation, choose a LANG setting now.

Tip: If you are installing UniData in an environment that does not support ASCII characters 250 through 255, and ASCII character 192 as internal markers, read International Reference before proceeding with the installation. We strongly recommend that the value of LANG is consistent for all users. Consider setting the LANG environment variable in the .profile or .login script.

When choosing a LANG setting for your system, make sure the LANG setting you choose is supported by UniData. To find the supported LANG settings for your system, execute the locale -a command, as shown in the following example: # locale -a C POSIX C.iso88591 C.utf8 univ.utf8 ar_DZ.arabic8 ar_SA.arabic8 ar_SA.iso88596 bg_BG.iso88595 cs_CZ.iso88592 da_DK.iso88591 da_DK.roman8 nl_NL.iso88591 nl_NL.roman8 ... # UniData displays a request for the serial number.

Enter the 'Install Serial Number' [serial_number]: 9. Enter the serial number found on your Software Product Configuration sheet. For example, if your license number is 12345678-UDT, enter 12345678 without the -UDT extension.

34 Installing or upgrading UniData on UNIX using udtsetup

Note: This information is not required as part of the installation.

UniData displays a request for an authorization method.

Authorization methods available: N - None (Default) W - Web Authorization C - Confprod CW - Confprod with Web Authorization 10. Enter the letter to select the authorization method. There are four methods available: ▪ N – None (Default). No licensing prompts are shown including request for confprod. ▪ W – Web Authorization. Follow-up questions are shown for each of the licensing items after this question. At the end of the script, UniData is started and a call is made to the RBC website to validate the licensing. If an authorization code is returned, UniData will be authorized.

▪ C – Confprod. Confprod is called to do licensing. If this mode is used, a warning is displayed if your term type does not work properly. Confprod needs vt100 emulation to work properly. ▪ CW – Confprod with Web Authorization. Still uses confprod (see other options for term type warning), then makes the same calls that the W – Web Authorization option uses. The W and CW options will only display if the UniData version being installed or upgraded to is UniData 7.2.0 or later. If the W option is used and the authorization process fails, the licensing values are still set on the system and a message is displayed about how to correct the problem. If using Personal Edition, all of the authorization methods are skipped.

For upgrades or concurrent installations, UniData displays the default work directory where it will load the files to rebuild UniData:

Enter the full path name of work directory [/usr/ud82/work]: If upgrading or installing as concurrent, proceed to step 17. For basic and advanced installations, UniData displays a request for the license count.

Enter the UniData base license count [32]: 11. Enter the UniData base license user count. This will be the "authorizable" amount. UniData displays a request for the connection pooling license count.

Enter the UniData 'Connection Pooling' license count [0]: 12. Enter the UniData Connection Pooling user count. This is a purchased add-on. Enterprise licenses have a couple of connection pooling licenses included. UniData displays a request for the device license count.

Enter the UniData 'Device Licensing' license count [0]: 13. Enter the UniData device licensing user count. Device licensing allows for sessions to share a license if started from the same workstation and using approved Telnet/UniRPC Clients. This value is different depending on your license type. With this prompt, 0 and 1 mean the same thing. The defaults for each edition are as follows: ▪ Workgroup and Enterprise Edition: the default is set to 10. ▪ Server Edition: Default is 0, unless an add-on is configured on your license. Maximum value is 10. UniData prompts you to enable a series of add-on licenses such as NFA, RFS, and so on. For example:

Do you want to enable 'NFA' licensing [No]: 14. Enter Yes to these prompts if you have the add-ons. Otherwise, press Enter to accept the default of No.

35 Chapter 2: Installing UniData on UNIX

UniData prompts you to enter the license expiration date.

Enter the UniData license expiration date [01/01/4000]: 15. Press Enter to accept the default value for a permanent license. Otherwise, enter the expiration date of your temporary/trial license. 16. If you are using the W or CW option from step 10, additional information is needed for web authorization. Enter the information to the prompts. The following example shows the prompt with answers input already:

Additional information is needed for web authorization. Enter Company Name: My Company Enter Your Name: My Name Enter Your Email Address: [email protected] Enter a reason for the authorization request: Upgrading to UniData 8.2.0 Do you want to authorize seasonal users [No]: Additional licensing information prompts are complete. UniData displays the default work directory where it will load the files to rebuild UniData: Enter the full path name of work directory [/usr/ud82/work]: 17. If the default directory is correct, press Enter. To use a different location, enter the full path. If upgrading and the directory existed previously, an overwrite message is displayed for you to confirm. Press Enter if you want to overwrite the existing directory. UniData displays the default lib directory where all UniData executables will be contained: Enter the full path name of lib directory [/usr/ud82/lib]: 18. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the location of the log files. This directory contains the location where UniData will build the log files for RFS: Enter the full path name of log directory [/usr/ud82/log]:

Warning: On concurrent installations, make sure the path of the log directory is different than the log directory for the concurrent version of UniData.

19. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the location of the unishared directory. The unishared directory contains files necessary for the unirpcd daemon: Enter the full path name of unishared directory [/usr/unishared]: 20. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the default group name. UniData uses the group name associated with the root login name:

Enter a valid group name for changing files' group [sys]: 21. If the group name displayed is correct, press Enter. If the default is not correct, enter the correct group name. UniData prompts you to install the Recoverable File System (RFS):

Turn on the Recoverable File System? [No]: 22. If you do not want to install RFS at this time, press Enter to accept the default of No. If you choose to install RFS at this time, enter Yes. The process creates a default log configuration table, creates the log files, and turns on RFS.

36 Installing or upgrading UniData on UNIX using udtsetup

Note: You must purchase the RFS product separately. If you are not sure whether you have purchased RFS, check the Product Configuration Sheet. You can install RFS at a later time without rerunning the installation process. To enable RFS post-installation, see Administering the Recoverable File System on UNIX.

UniData prompts you to install U2 Data Replication:

Turn on the Replication System? [No]: 23. If you do not want to install U2 Data Replication at this time, press Enter to accept the default of No. If you choose to install U2 Data Replication at this time, enter Yes. The installation process creates a default configuration file, creates the log files, and turns on U2 Data Replication.

Note: You can install U2 Data Replication at a later time without rerunning the installation process. To enable U2 Data Replication post-installation, see the U2 Data Replication User Guide.

The script asks whether you want to start UniData at the end of the installation or upgrade.

Do you want to start UniData at the end of the install? [Yes]: or

Do you want to start UniData at the end of the upgrade? [Yes]: 24. Press Enter to accept the default of Yes, start UniData at the end. Otherwise, enter No. For basic, advanced, or concurrent installations, the script asks whether you want to log default permissions.

Do you want to log default permissions after the install? [No]: If installing as a basic or advanced installation, proceed to step 26. For upgrades, UniData asks whether you want to backup the existing directories.

Backup the existing directories? [No]: 25. Press Enter to accept the default of No, do not backup directories. Otherwise, enter Yes. If you choose to backup the existing directories, the script prompts you to enter a location to backup UniData to. Enter a location, as shown in the following example. By default, press Enter to accept the default of "parent" and the files will be stored in the parent directory. Otherwise, a directory path that you enter must exist. The udtsetup script will not create the directory path. Where do you want to backup UniData to? [parent]: /disk1/backups Backup files will be created in tar format. The script prompts you to enter a prefix for the backup files:

What prefix should the backup files use? [udtbackup_20140131_]: Press Enter to accept the default, or specify the prefix that should be included on the front of each file name backed up. The script asks whether you want to check default permissions.

Do you want to check permissions after the upgrade? [No]: 26. Press Enter to accept the default of No, do not check or verify permissions. Otherwise, enter Yes. On upgrades, if you enter Yes at this prompt, another prompt asks if you want to fix any differences, if found:

If differences are found, do you want to fix the permissions? [No]:

37 Chapter 2: Installing UniData on UNIX

Press Enter to accept the default of No. Otherwise, enter Yes. If you enter Yes, the fixing segment may take a few minutes because it needs to compare the permission values on a minimum of 2,000 files between the old and new environments. When fixing the permissions, a status report of every 500 files is displayed. For information about how to handle these after the upgrade is complete, see Handling permission fixes, on page 83. For basic, advanced, or concurrent installations, default permissions can be logged during the installation so that if a permissions issue arises later, an option can be ran with udtsetup to restore the permissions from the CheckPerms parameter at the time of the next installation or upgrade. The following file permissions are logged: ▪ File type ▪ Owner ▪ Group ▪ Permissions (stored in octal format) 27. UniData displays a summary of the information input at each prompt before proceeding with the installation. Review the summary carefully: Basic and advanced example:

Summary of your inputs CheckLang Yes CheckPerms No ConfProduct W Group sys LibDir /disk1/ud82/lib LogDir /disk1/ud82/log REPflag No RFSflag No ScriptVersion 82 Serial 12345678 Startud Yes UdtBin /disk1/ud82/bin UdtHome /disk1/ud82 UnisharedDir /disk1/unishared WorkDir /disk1/ud82/work Are these values correct? [Yes]: Upgrade example:

Summary of your inputs Backup Yes BackupDir /disk1/backups BackupPrefix udtbackup_20140131_ CheckPerms Yes ConfProduct N FixPerms Yes Group sys LibDir /disk1/unidata/lib LogDir /disk1/unidata/log OverWrite Yes PreviousVer 73 REPflag No RFSflag No ScriptVersion 82 Serial 12345678 Startud Yes UdtBin /disk1/unidata/bin UdtHome /disk1/unidata UnisharedDir /disk1/unishared

38 Installing or upgrading UniData on UNIX using udtsetup

Upgrade Yes WorkDir /disk1/unidata/work Are these values correct? [Yes]: Concurrent example:

Summary of your inputs CheckPerms Yes ConfProduct N Group sys LibDir /disk1/ud82/lib LogDir /disk1/ud82/log REPflag Yes REPsysid den-vm-t08_82 RFSflag Yes ScriptVersion 82 Serial 12345678 Startud Yes UdtBin /disk1/ud82/bin UdtHome /disk1/ud82 UnisharedDir /disk1/unishared Upgrade No WorkDir /disk1/ud82/work Are these values correct? [Yes]: If all the values are correct, press Enter to accept the values and proceed with the installation process. If some information is incorrect, enter No. UniData exits the installation process. You need to restart the installation and make any corrections to prompt responses. 28. For basic or advanced installations: If you accept the default of Yes to the summary of inputs prompt, the script provides a summary of the licensing input. Review the summary carefully:

Summary of your licensing inputs LicCompany My Company LicContact My Name LicEDA Yes LicEmail [email protected] LicExpiryDate 01/01/4000 LicNFA Yes LicNumCP 0 LicNumDL 10 LicNumUsers 25 LicRFS Yes LicReason Upgrading to UniData 8.2.1 LicSeasonal No LicSubKey Yes Serial 12345678 Are these values correct? [Yes]: If you accept the default of Yes, the script finalizes the installation: Performing final udtsetup checks...

Final udtsetup checks are complete. Proceeding with install. Extracting tar file to /disk1/ud82/bin.

Changing files' ownership and group name ...

Creating /usr/ud82 directory... Creating /usr/ud82/include directory... Creating /disk1/ud82/work directory... Creating /disk1/ud82/lib directory... Creating /disk1/ud82/log directory... Creating /disk1/ud82/license directory... Creating /disk1/ud82/edadrv_exam directory...

39 Chapter 2: Installing UniData on UNIX

Testing system configuration ... < systest results shown here are suppressed from this example >

Updating /usr/ud82/include directory... Updating /usr/ud82/ods directory... Updating /disk1/ud82/lib directory... Updating /disk1/ud82/sys directory... Creating /disk1/ud82/demo directory... Updating /disk1/ud82/work directory... Updating /disk1/ud82/objcall directory...

Creating default root certificate store...

Checking UNIX system configuration for running UniData ...

Updating VOC files in /disk1/ud82/sys /disk1/ud82/demo ...

Updating Licensing Information...

Licensing changed, checking system configuration again.

< systest results shown here are suppressed from this example >

Updating linux shared libraries to include /disk1/ud82/bin.

Installing unishared components... Installed /disk1/unishared/icsdk version 3.0.8. Installed /disk1/unishared/unirpc version 11.2.3. Updating /disk1/unishared/sharedby... Updating /disk1/unishared/unirpc/unirpcservices... Completed Unishared/UniRPC installation.

Creating logs directory. Creating logs/output directory. Creating logs/config directory. Creating logs/sample_config directory.

Updating UD.ACCOUNT file... 29. For upgrades: The script skips the licensing input section, and continues with the upgrade. Performing final udtsetup checks...

WARNING: UniData is still running, it will be stopped with force. This may not guarantee the consistency of your database files, so we recommend that you stop the system with 'stopud' before upgrading UniData.

Would you like to continue? [Yes]: Press Enter if you are comfortable with stopping UniData by force. Otherwise, enter No.

Note: If Unirpcd is shared between other U2 Database versions (UniVerse or UniData), the UniRPC can be stopped. This is not shown in the following example. The script does allow the option to proceed even if Unirpcd is running. If that option is selected, a series of steps is displayed explaining how to upgrade the UniRPC file manually.

UniData has been stopped.

Verifying /disk1/unidata/bin files are not in use.

Verifying that the unirpcd file is not in use.

40 Installing or upgrading UniData on UNIX using udtsetup

Backing up UniData to the /disk1/backups directory. Backup files will have this prefix: udtbackup_20140131_

Backing up /usr/ud82... Backing up /disk1/unidata/bin... Backing up /disk1/unidata/lib... Backing up /disk1/unidata/sys... Backing up /disk1/unidata/parttbl... Backing up /disk1/unidata/demo... Backing up /disk1/unidata/logs... Backing up /disk1/unidata/objcall... Backing up /disk1/unidata/work... Backing up /disk1/unishared... Backup process has completed.

Generating existing permissions list...

Final udtsetup checks are complete. Proceeding with upgrade. Extracting tar file to /disk1/unidata/bin.

Changing files' ownership and group name ...

Found license file in current directory, made a copy of it.

If you have previously set up a master key for data encryption, we recommend that you keep it for the new installation.

Do you want to transfer the master key? [No]: The master key is used for Automatic Data Encryption. If this feature is used to encrypt your data files, then this prompt should be answered with Yes. Otherwise, press Enter to continue. You chose not to the transfer master key. You can transfer the master key later by running 'confcmd -t ,'. Creating /usr/ud82 directory... Creating /usr/ud82/include directory... Migrating data from /usr/ud82/include to /usr/ud82/include.

Testing system configuration ...

< systest results shown here are suppressed from this example >

Updating /usr/ud82/include directory... Updating /usr/ud82/ods directory... Updating /disk1/unidata/lib directory... Updating /disk1/unidata/sys directory... Updating /disk1/unidata/demo directory... Updating /disk1/unidata/work directory... Updating /disk1/unidata/objcall directory...

Creating default root certificate store...

Checking UNIX system configuration for running UniData ...

Updating VOC files in /disk1/unidata/sys /disk1/unidata/demo ...

Updating linux shared libraries to include /disk1/unidata/bin.

Installing unishared components... Installed /disk1/unishared/icsdk version 3.0.8. Installed /disk1/unishared/unirpc version 11.2.3. Installed /disk1/unishared/uojsdk version 3.1.0.

41 Chapter 2: Installing UniData on UNIX

Installed /disk1/unishared/jdbc version 1.160.0. Updating /disk1/unishared/sharedby... Updating /disk1/unishared/unirpc/unirpcservices... Completed Unishared/UniRPC upgrade.

Performing permission differences checking... Now passing 500 of 2262 file checks... Now passing 1000 of 2262 file checks... Now passing 1500 of 2262 file checks... Now passing 2000 of 2262 file checks...

Number of file permission differences found: 9 Run udtsetup with '-lp' option to see differences.

Fixing permissions... Generating new permissions list... Updating UD.ACCOUNT file... 30. For concurrent installations: The script skips the licensing input section, and continues with the installation.

Performing final udtsetup checks...

Final udtsetup checks are complete. Proceeding with install. Extracting tar file to /disk1/ud82/bin.

Changing files' ownership and group name ...

Creating /usr/ud82 directory... Creating /usr/ud82/include directory... Creating /disk1/ud82/work directory... Creating /disk1/ud82/lib directory... Creating /disk1/ud82/log directory... Creating /disk1/ud82/license directory... Creating /disk1/ud82/edadrv_exam directory...

Testing system configuration ...

< systest results shown here are suppressed from this example >

Updating /usr/ud82/include directory... Updating /usr/ud82/ods directory... Updating /disk1/ud82/lib directory... Updating /disk1/ud82/sys directory... Creating /disk1/ud82/demo directory... Updating /disk1/ud82/work directory... Updating /disk1/ud82/objcall directory...

Creating default root certificate store...

Checking UNIX system configuration for running UniData ...

Updating VOC files in /disk1/ud82/sys /disk1/ud82/demo ... Creating/Updating log files in /disk1/ud82/log...

RFS is not licensed. SB_FLAG is turned off......

cntl_install utility resets Unidata System after a full database backup (Image Copy). This means, all log (and archive) files will

42 Installing or upgrading UniData on UNIX using udtsetup

also be initialized for re-use.

Do you want to continue?(y/n) Enter y or n if you want to continue. Installing Logs (and Archives) after cntl_install

Updating linux shared libraries to include /disk1/ud82/bin.

Installing unishared components... Installed /disk1/unishared/icsdk version 3.0.8. Installed /disk1/unishared/unirpc version 11.2.3. Updating /disk1/unishared/sharedby... Updating /disk1/unishared/unirpc/unirpcservices... Completed Unishared/UniRPC installation.

Creating logs directory. Creating logs/output directory. Creating logs/config directory. Creating logs/sample_config directory.

Generating new permissions list... Updating UD.ACCOUNT file... 31. If UniData was set to start at the end of the script or performing web authorization or performing custom commands, UniData is started in an unauthorized state.

Starting UniData in an unauthorized state... Tue Jan 28 14:24:50 UniData has not been authorized. Tue Jan 28 14:24:50 UniData RDBMS will stop in 10 days!

UniData has been started. Authorization Mode W or CW only: If the web authorization options W or CW are used, a call is made to the RBC website. If the authorization was successful, then the licensing is refreshed.

Calling Web Authorization API to license UniData.

Authorizing the database with license #12345678. UniData has been authorized. Refreshing UniData Licensing Status... Customized installations: If the custom commands script was found, it will be executed now. For more information, see Custom commands, on page 28. 32. The installation process is now complete. The following message appears:

Congratulations! You have successfully installed Rocket UniData RDBMS 8.2.1. UniData has already been started. The responses to the installation prompts and any messages directed to the terminal screen are captured in the udtsetup.log file located in the $UDTBIN/saved_logs directory. Check the udtsetup.log file to ensure that no error messages appear in the log. If any error messages appear, correct the indicated problems before proceeding.

Warnings are also displayed in the $UDTBIN/saved_logs/udtsetup.warning.log file. There are two other files stored in $UDTBIN/saved_logs from this installation process: ▪ udtsetup.tarfile.out - the screen output for the extraction of the tar file. ▪ udtsetup.param - the parameter file that recorded on the prompts. For more information, see Installing or upgrading using the parameter file, on page 73. 33. Define the environment variables for udthome and udtbin.

43 Chapter 2: Installing UniData on UNIX

You must define these variables before you can test the installation by starting UniData and invoking a UniData session. The following examples show how to do this by using the default names from a basic installation: From the Bourne or Korn shell:

UDTHOME=/usr/ud82;export UDTHOME UDTBIN=/usr/ud82/bin;export UDTBIN From the C shell:

% setenv UDTHOME /usr/ud82 % setenv UDTBIN /usr/ud82/bin From the Bash shell:

export UDTHOME=/disk1/ud82 export UDTBIN=/disk1/ud82/bin export LANG=C If you are using XML, you must also set your library path. The following table shows the library path environment variables by platform:

Platform Library path environment variable AIX LIBPATH=$LIBPATH:$UDTBIN HP SHLIB_PATH=$SHLIB_PATH:$UDTBIN SOLARIS LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$UDTBIN LINUX LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$UDTBIN

Note: For Linux, the udtbin path is automatically added to the system library settings starting with UniData 8.1 during the install script.

34. Run makeudt. If your application links in C routines with CALLC, you need to link the udt executable by running makeudt now. For more information about makeudt, see Administering UniData on Windows and UNIX and Developing UniBasic Applications. 35. If you installed as an upgrade or concurrent installation, after the upgrade has completed, the udtsetup script and bin.tar file can be removed from the system. To reinstall UniData, the media will need to be copied to the server and udtsetup will need to be extracted again.

Results

If you answered Yes to the startud prompt in step 24, UniData will start automatically. If you answered No, start UniData. You can now start UniData with the startud command. The following example shows the output from startud: # ./startud Using UDTBIN=/usr/ud82/bin All output and error logs have been saved to ./saved_logs directory. SMM is started. SBCS is started. CLEANUPD is started. Unirpcd is started UniData Release 8.2.1 has been started. UniData Release 8.2.1 Build: (6101)(c) Copyright Rocket Software, Inc. 1985-2016. All rights reserved. Current UniData home is /usr/ud82/.Current working

44 Examples

directory is /usr/ud82/demo. You can also now run UniData. Change directories using the UNIX cd command to the demo account located in /usr/ud82/demo. Enter the full path name of the bin directory, followed by the udt command (if you have set your environment variables, the default is udtbin/udt, as in the following example). If you have already authorized device licensing, enter udtts. # cd ../demo # udt The following screen appears:

UniData Release 8.2.1 Build: (6101) (c) Copyright Rocket Software, Inc. 1985-2016. All rights reserved. Current UniData home is /usr/ud82/. Current working directory is /usr/ud82/demo.

Note: Before users can access UniData, you must set environment variables for all users. Consider using a .login or .profile script. You can include the full UniData paths there. You also need to make sure each user’s path includes the udtbin path. For detailed information about this, see Administering UniData on Windows and UNIX.

Next step See Post-installation tasks, on page 77 for tasks such as licensing UniData and more.

Examples

See the following sections for full examples of the udtsetup script installing UniData. • Full example: basic or advanced installation • Full example: upgrade installation • Full example: concurrent installation

Full example: basic or advanced installation

# ./udtsetup Welcome to the Rocket UniData RDBMS, performing startup tasks... Extracting files needed during setup process... Validating tar file. Using /disk1/u2install/bin.tar during this process.

Welcome to the Rocket UniData RDBMS.

http://www.rocketsoftware.com/u2

License files are located in /license.

Do you accept the terms of the Software License Agreement (SLA)?

Enter Yes/No or D to display agreement [No]: Yes

Enter the full path name of UniData home directory [/usr/ud82]: /disk1/ud82 Creating ud82 directory in the /disk1 path.

45 Chapter 2: Installing UniData on UNIX

WARNING: The path you selected does not equal UDTHOME. The environment variable UDTHOME will be ignored and it needs to be changed after the installation.

Enter the full path name of UniData bin directory [/disk1/ud82/bin]:

Creating bin directory in the /disk1/ud82 path.

WARNING: The path you selected does not equal UDTBIN. The environment variable UDTBIN will be ignored and it needs to be changed after the installation.

Starting the installation of UniData 8.2.1.

WARNING:

-- Environment variable LANG is not set to 'C'. -- It will be set to 'C' by UniData during this installation. -- See the Rocket UniData Installation Guide for more details.

Would you like to continue? [Yes]:

Enter the 'Install Serial Number' [serial_number]: 12345678

Authorization methods available: N - None (Default) W - Web Authorization C - Confprod CW - Confprod with Web Authorization

Select your authorization method [N]: W Enter the UniData base license count [32]: 25 Enter the UniData 'Connection Pooling' license count [0]:

Enter the UniData 'Device Licensing' license count [0]: 10 Do you want to enable 'NFA' licensing [No]: Yes Do you want to enable 'RFS' licensing [No]: Yes Do you want to enable 'EDA' licensing [No]: Yes

Do you want to enable 'Subkey' licensing [No]: Yes

Enter the UniData license expiration date [01/01/4000]:

Additional information is needed for web authorization.

Enter Company Name: My Company Enter Your Name: My Name Enter Your Email Address: [email protected] Enter a reason for the authorization request: Upgrading to UniData 8.2.1

46 Full example: basic or advanced installation

Do you want to authorize seasonal users [No]:

Additional licensing information prompts are complete.

Enter the full path name of work directory [/disk1/ud82/work]:

Enter the full path name of lib directory [/disk1/ud82/lib]:

Enter the full path name of log directory [/disk1/ud82/log]:

Enter the full path name of unishared directory [/disk1/unishared]:

Enter a valid group name for changing files' group [sys]:

Turn on the Recoverable File System? [No]:

Turn on the Replication Subsystem? [No]:

Do you want to start UniData at the end of the install? [Yes]:

Do you want to log default permissions after the install? [No]:

Summary of your inputs

CheckLang Yes CheckPerms No ConfProduct W Group sys LibDir /disk1/ud82/lib LogDir /disk1/ud82/log REPflag No RFSflag No ScriptVersion 81 Serial 12345678 Startud Yes UdtBin /disk1/ud82/bin UdtHome /disk1/ud82 UnisharedDir /disk1/unishared WorkDir /disk1/ud82/work

Are these values correct? [Yes]:

Summary of your licensing inputs

LicCompany My Company LicContact My Name LicEDA Yes LicEmail [email protected] LicExpiryDate 01/01/4000 LicNFA Yes LicNumCP 0 LicNumDL 10 LicNumUsers 25 LicRFS Yes LicReason Upgrading to UniData 8.2.1 LicSeasonal No LicSubKey Yes Serial 12345678

Are these values correct? [Yes]:

47 Chapter 2: Installing UniData on UNIX

Performing final udtsetup checks...

Final udtsetup checks are complete. Proceeding with install. Extracting tar file to /disk1/ud82/bin.

Changing files' ownership and group name ...

Creating /usr/ud82 directory... Creating /usr/ud82/include directory... Creating /disk1/ud82/work directory... Creating /disk1/ud82/lib directory... Creating /disk1/ud82/log directory... Creating /disk1/ud82/license directory... Creating /disk1/ud82/edadrv_exam directory...

Testing system configuration ... < systest results shown here are suppressed from this example >

Updating /usr/ud82/include directory... Updating /usr/ud82/ods directory... Updating /disk1/ud82/lib directory... Updating /disk1/ud82/sys directory... Creating /disk1/ud82/demo directory... Updating /disk1/ud82/work directory... Updating /disk1/ud82/objcall directory...

Creating default root certificate store...

Checking UNIX system configuration for running UniData ...

Updating VOC files in /disk1/ud82/sys /disk1/ud82/demo ...

Updating Licensing Information...

Licensing changed, checking system configuration again.

< systest results shown here are suppressed from this example >

Updating linux shared libraries to include /disk1/ud82/bin.

Installing unishared components... Installed /disk1/unishared/icsdk version 3.0.8. Installed /disk1/unishared/unirpc version 11.2.3. Updating /disk1/unishared/sharedby... Updating /disk1/unishared/unirpc/unirpcservices... Completed Unishared/UniRPC installation.

Creating logs directory. Creating logs/output directory. Creating logs/config directory. Creating logs/sample_config directory.

Updating UD.ACCOUNT file...

Starting UniData in an unauthorized state... Tue Jan 28 14:24:50 UniData has not been authorized. Tue Jan 28 14:24:50 UniData RDBMS will stop in 10 days!

UniData has been started.

Calling Web Authorization API to license UniData.

48 Full example: upgrade installation

Authorizing the database with license #12345678. UniData has been authorized. Refreshing UniData Licensing Status...

Congratulations! You have successfully installed Rocket UniData RDBMS 8.2.1. UniData has already been started.

Parent topic: Examples

Full example: upgrade installation

# ./udtsetup Welcome to the Rocket UniData RDBMS, performing startup tasks... Extracting files needed during setup process... Validating tar file. Using /disk1/u2install/bin.tar during this process.

Welcome to the Rocket UniData RDBMS.

http://www.rocketsoftware.com/u2

License files are located in /disk1/unidata/bin/license.

Do you accept the terms of the Software License Agreement (SLA)?

Enter Yes/No or D to display agreement [No]: Yes

Enter the full path name of UniData home directory [/disk1/unidata]:

Enter the full path name of UniData bin directory [/disk1/unidata/bin]:

Do you want to upgrade UniData (type No for Concurrent)? [Yes]:

Previous major versions installed are: 72,73

Enter the UniData version to be upgraded [73]:

Starting the upgrade of UniData from 7.3.6 to 8.2.1.

Enter the 'Install Serial Number' [12345678]:

Authorization methods available: N - None (Default) W - Web Authorization C - Confprod CW - Confprod with Web Authorization

Select your authorization method [N]:

Enter the full path name of work directory [/disk1/unidata/work]:

/disk1/unidata/work exists, overwrite it? [Yes]:

Enter the full path name of lib directory [/disk1/unidata/lib]:

Enter the full path name of log directory [/disk1/unidata/log]:

Enter the full path name of unishared directory [/disk1/unishared]:

Enter a valid group name for changing files' group [sys]:

49 Chapter 2: Installing UniData on UNIX

Turn on the Recoverable File System? [No]:

Turn on the Replication Subsystem? [No]:

Do you want to start UniData at the end of the upgrade? [Yes]:

Backup the existing directories? [No]: Yes Where do you want to backup UniData to? [parent]: /disk1/backups Backup files will be created in tar format.

What prefix should the backup files use? [udtbackup_20140131_]:

Do you want to check permissions after the upgrade? [No]: Yes If differences are found, do you want to fix the permissions? [No]: Yes

Summary of your inputs

Backup Yes BackupDir /disk1/backups BackupPrefix udtbackup_20140131_ CheckPerms Yes ConfProduct N FixPerms Yes Group sys LibDir /disk1/unidata/lib LogDir /disk1/unidata/log OverWrite Yes PreviousVer 73 REPflag No RFSflag No ScriptVersion 81 Serial 12345678 Startud Yes UdtBin /disk1/unidata/bin UdtHome /disk1/unidata UnisharedDir /disk1/unishared Upgrade Yes WorkDir /disk1/unidata/work

Are these values correct? [Yes]:

Performing final udtsetup checks...

WARNING: UniData is still running, it will be stopped with force. This may not guarantee the consistency of your database files, so we recommend that you stop the system with 'stopud' before upgrading UniData.

Would you like to continue? [Yes]:

UniData has been stopped.

Verifying /disk1/unidata/bin files are not in use.

Verifying that the unirpcd file is not in use.

Backing up UniData to the /disk1/backups directory. Backup files will have this prefix: udtbackup_20140131_

50 Full example: upgrade installation

Backing up /usr/ud82... Backing up /disk1/unidata/bin... Backing up /disk1/unidata/lib... Backing up /disk1/unidata/sys... Backing up /disk1/unidata/parttbl... Backing up /disk1/unidata/demo... Backing up /disk1/unidata/logs... Backing up /disk1/unidata/objcall... Backing up /disk1/unidata/work... Backing up /disk1/unishared... Backup process has completed.

Generating existing permissions list...

Final udtsetup checks are complete. Proceeding with upgrade. Extracting tar file to /disk1/unidata/bin.

Changing files' ownership and group name ...

Found license file in current directory, made a copy of it.

If you have previously set up a master key for data encryption, we recommend that you keep it for the new installation.

Do you want to transfer the master key? [No]:

You chose not to the transfer master key. You can transfer the master key later by running 'confcmd -t ,'. Creating /usr/ud82 directory... Creating /usr/ud82/include directory... Migrating data from /usr/ud82/include to /usr/ud82/include.

Testing system configuration ...

< systest results shown here are suppressed from this example >

Updating /usr/ud82/include directory... Updating /usr/ud82/ods directory... Updating /disk1/unidata/lib directory... Updating /disk1/unidata/sys directory... Updating /disk1/unidata/demo directory... Updating /disk1/unidata/work directory... Updating /disk1/unidata/objcall directory...

Creating default root certificate store...

Checking UNIX system configuration for running UniData ...

Updating VOC files in /disk1/unidata/sys /disk1/unidata/demo ...

Updating linux shared libraries to include /disk1/unidata/bin.

Installing unishared components... Installed /disk1/unishared/icsdk version 3.0.8. Installed /disk1/unishared/unirpc version 11.2.3. Installed /disk1/unishared/uojsdk version 3.1.0. Installed /disk1/unishared/jdbc version 1.160.0. Updating /disk1/unishared/sharedby... Updating /disk1/unishared/unirpc/unirpcservices... Completed Unishared/UniRPC upgrade.

51 Chapter 2: Installing UniData on UNIX

Performing permission differences checking... Now passing 500 of 2262 file checks... Now passing 1000 of 2262 file checks... Now passing 1500 of 2262 file checks... Now passing 2000 of 2262 file checks...

Number of file permission differences found: 9 Run udtsetup with '-lp' option to see differences.

Fixing permissions... Generating new permissions list... Updating UD.ACCOUNT file...

Starting UniData... Fri Jan 31 15:59:53 UniData has not been authorized. Fri Jan 31 15:59:53 UniData RDBMS will stop in 10 days!

UniData has been started.

Congratulations! You have successfully upgraded to Rocket UniData RDBMS 8.2.1. UniData has already been started.

Parent topic: Examples

Full example: concurrent installation

# ./udtsetup Welcome to the Rocket UniData RDBMS, performing startup tasks... Extracting files needed during setup process... Validating tar file. Using /disk1/u2install/bin.tar during this process.

Welcome to the Rocket UniData RDBMS.

http://www.rocketsoftware.com/u2

License files are located in /disk1/ud82/bin/license.

Do you accept the terms of the Software License Agreement (SLA)?

Enter Yes/No or D to display agreement [No]: Yes

Enter the full path name of UniData home directory [/disk1/ud82]:

Creating ud82 directory in the /disk1 path.

Enter the full path name of UniData bin directory [/disk1/ud82/bin]:

Creating bin directory in the /disk1/ud82 path.

Do you want to upgrade UniData (type No for Concurrent)? [Yes]: No Starting the concurrent installation of UniData 8.2.1.

Enter the 'Install Serial Number' [serial_number]: 12345678

Authorization methods available: N - None (Default) W - Web Authorization

52 Full example: concurrent installation

C - Confprod CW - Confprod with Web Authorization

Select your authorization method [N]:

Enter the full path name of work directory [/disk1/ud82/work]:

Enter the full path name of lib directory [/disk1/ud82/lib]:

Enter the full path name of log directory [/disk1/ud82/log]:

Enter the full path name of unishared directory [/disk1/unishared]:

Enter a valid group name for changing files' group [sys]:

Turn on the Recoverable File System? [No]: Yes Turn on the Replication Subsystem? [No]: Yes Replication system id? [den-vm-t08_81]:

Do you want to start UniData at the end of the install? [Yes]:

Do you want to log default permissions after the install? [No]: Yes

Summary of your inputs

CheckPerms Yes ConfProduct N Group sys LibDir /disk1/ud82/lib LogDir /disk1/ud82/log REPflag Yes REPsysid den-vm-t08_81 RFSflag Yes ScriptVersion 81 Serial 12345678 Startud Yes UdtBin /disk1/ud82/bin UdtHome /disk1/ud82 UnisharedDir /disk1/unishared Upgrade No WorkDir /disk1/ud82/work

Are these values correct? [Yes]:

Performing final udtsetup checks...

Final udtsetup checks are complete. Proceeding with install. Extracting tar file to /disk1/ud82/bin.

Changing files' ownership and group name ...

Creating /usr/ud82 directory... Creating /usr/ud82/include directory... Creating /disk1/ud82/work directory... Creating /disk1/ud82/lib directory... Creating /disk1/ud82/log directory... Creating /disk1/ud82/license directory... Creating /disk1/ud82/edadrv_exam directory...

Testing system configuration ...

< systest results shown here are suppressed from this example >

53 Chapter 2: Installing UniData on UNIX

Updating /usr/ud82/include directory... Updating /usr/ud82/ods directory... Updating /disk1/ud82/lib directory... Updating /disk1/ud82/sys directory... Creating /disk1/ud82/demo directory... Updating /disk1/ud82/work directory... Updating /disk1/ud82/objcall directory...

Creating default root certificate store...

Checking UNIX system configuration for running UniData ...

Updating VOC files in /disk1/ud82/sys /disk1/ud82/demo ... Creating/Updating log files in /disk1/ud82/log...

RFS is not licensed. SB_FLAG is turned off......

cntl_install utility resets Unidata System after a full database backup (Image Copy). This means, all log (and archive) files will also be initialized for re-use.

Do you want to continue?(y/n) [n] Installing Logs (and Archives) after cntl_install

Updating linux shared libraries to include /disk1/ud82/bin.

Installing unishared components... Installed /disk1/unishared/icsdk version 3.0.8. Installed /disk1/unishared/unirpc version 11.2.3. Updating /disk1/unishared/sharedby... Updating /disk1/unishared/unirpc/unirpcservices... Completed Unishared/UniRPC installation.

Creating logs directory. Creating logs/output directory. Creating logs/config directory. Creating logs/sample_config directory.

Generating new permissions list... Updating UD.ACCOUNT file...

Starting UniData... Sat Feb 1 07:01:59 UniData has not been authorized. Sat Feb 1 07:01:59 UniData RDBMS will stop in 10 days!

UniData has been started.

Congratulations! You have successfully installed Rocket UniData RDBMS 8.2.1. UniData has already been started.

Parent topic: Examples

54 Installing using the udtinstall script

Installing using the udtinstall script

Use the udtinstall script to install on UNIX for basic, advanced, and concurrent installations. Prior to 8.1.0, the udtinstall script was the only method to install UniData on UNIX. Starting at 8.1.0, the recommended method is using the udtsetup script, described in Installing using the udtsetup script, on page 16.

If udtinstall is used, then the /usr/ud82/include, $UDTHOME/lib, $UDTHOME/log, or $UDTHOME/sys (including the global catalog space) is removed. udtinstall

The system-level udtinstall script installs UniData. Prior to 8.1.0, the udtinstall script was the only method to install UniData on UNIX. Starting at 8.1.0, the recommended method is using the udtsetup script.

Note: This script is supported on UniData for UNIX only.

Syntax

udtinstall [-f filename][-c]

Parameters The following table describes each parameter of the syntax.

Parameter Description -f filename Indicates that all required user input is included in an ASCII file named filename. -c Automatically invokes confprod after the installation process is complete, using its default options.

Prerequisite tasks for basic, advanced, and concurrent installations on UNIX

For basic, advanced, and concurrent UniData installations on UNIX, a number of tasks need to be completed. The basic preparatory steps for basic, advanced and concurrent installations are: ▪ Read Prerequisite tasks for all UNIX installation types, on page 13. ▪ Download your UniData products. Visit https://rbc.rocketsoftware.com for the United States and Canada or https://rbcint.rocketsoftware.com if not in the United States or Canada. Copy the file to some other location on your system using the UNIX cp command. We suggest that you copy the file into the directory that is your UniData bin directory. By default, this is /usr/ud82/bin. You must extract the file to the udbtin directory and no other location. ▪ Create and verify all needed backups.

55 Chapter 2: Installing UniData on UNIX

It is recommended that you complete a full backup of the device on which you want to install UniData before you begin installation. If you already backed up that device, verify that the backup is complete and valid. If you are upgrading, you should also perform and verify a full backup of all your UniData data files.

Warning: If you are upgrading from a previous version of UniData with RFS to UniData 8.2.1 with RFS, it is important that you create and verify a full backup of all your recoverable data files. We suggest you use only log files or archive files created under UniData 8.2.1 to recover from system or media failures that occur at UniData 8.2.1.

Installing as a basic, advanced, or concurrent installation

Follow the steps in this section for basic, advanced, and concurrent installations.

Prerequisites You must be logged in as root to perform the installation. Review the following sections before you begin this procedure. ▪ Operating system requirements (UNIX), on page 11 ▪ Disk space requirements, on page 12 ▪ Memory requirements, on page 13 ▪ International installation, on page 16 ▪ Prerequisite tasks for all UNIX installation types, on page 13 ▪ Prerequisite tasks for basic, advanced, and concurrent installations on UNIX, on page 55

About this task Basic installations

The installation process uses a default directory called /usr/ud82/bin. You must create this directory and its parent directory, udthome. Enter the following example as shown to create these directories:

# mkdir /usr/ud82 # mkdir /usr/ud82/bin # cd /usr/ud82/bin Advanced and concurrent installations Your current working directory must be the directory where you want the UniData executables installed. Create the directories for udthome and udtbin, then cd to the directory you have specified for udtbin. Verify your location by entering pwd. In the following example, /disk1 is created for udthome and /disk1/ud82/bin is created for udtbin: # pwd /disk1 # mkdir ud82 # cd ud82 # mkdir bin # cd bin # pwd/disk1/ud82/bin #

56 Installing as a basic, advanced, or concurrent installation

Users running different versions of UniData should not try to update the same files at the same time. If you want to test your application by installing UniData 8.2.1 concurrently, set up a separate demo database for your testing. Do not try to update live files with two versions of UniData at the same time. Some limitations exist for concurrent execution of UniData 8.2.1, which are described in Concurrent installation considerations, on page 6.

Procedure

1. Enter ./udtinstall at the system prompt. If you are executing a default non-international installation, the following screen appears after entering ./udtinstall: # cd $UDTBIN #./udtinstall Welcome to the UniData RDBMS. http://www.rocketsoftware.com/software/data/u2 WARNING: If UniData system is still running, it will be stopped with force. This may not guarantee the consistency of your database files, so we recommend that you stop the system with ‘stopud’ before installing/upgrading UniData. Would you like to continue? [Yes]: Press Enter to accept the default of Yes to continue with the installation process.

Note: You must enter Yes, yes, or YES and No, no, or NO rather than Y or N for all prompts in the installation process.

If you are installing UniData as an international installation, choose a LANG setting now.

Tip: If you are installing UniData in an environment that does not support ASCII characters 250 through 255, and ASCII character 192 as internal markers, read International Reference before proceeding with the installation. We strongly recommend that the value of LANG is consistent for all users. Consider setting the LANG environment variable in the .profile or .login script.

When choosing a LANG setting for your system, make sure the LANG setting you choose is supported by UniData. To find the supported LANG settings for your system, execute the locale -a command, as shown in the following example: # locale -a C POSIX C.iso88591 C.utf8 univ.utf8 ar_DZ.arabic8 ar_SA.arabic8 ar_SA.iso88596 bg_BG.iso88595 cs_CZ.iso88592 da_DK.iso88591 da_DK.roman8 nl_NL.iso88591 nl_NL.roman8 ... # During the installation process, UniData changes the LANG environment variable to “C” for installation processing and displays the following message:

57 Chapter 2: Installing UniData on UNIX

# udtinstall Welcome to the UniData RDBMS. http://www.rocketsoftware.com/software/data/u2 WARNING: -- environment variable LANG is not set to ‘C’ -- it will be set to ‘C’ by Unidata for installation -- see Unidata Installation Guide for more details Would you like to continue? [Yes]: If you press Enter to accept the default answer of Yes, UniData continues the process using the LANG group of “C.” If desired, you can change your LANG environment variable after the installation process is complete.

UniData prompts for the full path of the udthome directory. UniData displays the following warning message because the udthome environment variable is not set.

Enter the full path name of udt home directory [/usr/ud82]: WARNING: The path you selected doesn't equal to UDTHOME. The environment variable UDTHOME will be ignored and it needs to be changed after the installation. 2. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the default work directory where it will load the files to rebuild UniData: Enter the full path name of work directory [/usr/ud82/work]: 3. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the default lib directory where all UniData executables will be contained: Enter the full path name of lib directory [/usr/ud82/lib]: 4. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the location of the log files. This directory contains the location where UniData will build the log files for RFS: Enter the full path name of log directory [/usr/ud82/log]:

Warning: On concurrent installations, make sure the path of the log directory is different than the log directory for the concurrent version of UniData.

5. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the location of the unishared directory. The unishared directory contains files necessary for the unirpcd daemon: Enter the full path name of unishared directory [/usr/unishared]: 6. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the default group name. UniData uses the group name associated with the root login name:

Enter a valid group name for changing files' group [sys]: 7. If the group name displayed is correct, press Enter. If the default is not correct, enter the correct group name. UniData displays a request for the serial number:

Enter the Serial Number displayed on your "Software Product Configuration" sheet: [serial_number]: 8. Enter the serial number found on your Software Product Configuration sheet. For example, if your license number is 12345678-UDT, enter 12345678 without the -UDT extension.

58 Installing as a basic, advanced, or concurrent installation

Note: This information is not required as part of the installation.

UniData prompts you to install the Recoverable File System (RFS):

Turn on the Recoverable File System? [No]: 9. If you do not want to install RFS at this time, press Enter to accept the default of No. If you choose to install RFS at this time, enter Yes. The process creates a default log configuration table, creates the log files, and turns on RFS.

Note: You must purchase the RFS product separately. If you are not sure whether you have purchased RFS, check the Product Configuration Sheet. You can install RFS at a later time without rerunning the installation process. To enable RFS post-installation, see Administering the Recoverable File System on UNIX.

UniData prompts you to install U2 Data Replication:

Turn on the Replication System? [No]: 10. If you do not want to install U2 Data Replication at this time, press Enter to accept the default of No. If you choose to install U2 Data Replication at this time, enter Yes. The installation process creates a default configuration file, creates the log files, and turns on U2 Data Replication.

Note: You can install U2 Data Replication at a later time without rerunning the installation process. To enable U2 Data Replication post-installation, see the U2 Data Replication User Guide.

UniData asks whether you want to back up any existing directories:

Backup the existing directories? [No]: 11. Press Enter to accept the default of No.

Note: This option does not apply to a basic, advanced, or concurrent installation since it backs up existing UniData directories.

UniData prompts you to indicate whether you want to configure the product at the end of the installation process:

Config product at the end of installation? [No]: 12. If you enter Yes at this prompt, UniData automatically runs the confprod utility as part of the installation. If you do not want to configure the product at the end of the installation process, press Enter to accept the default of No. UniData will run for 10 days after installation without requiring authorization.

Warning: When licensing UniData, you must be using a terminal supported by vvtermcap. vvtermcap is a special UniData termcap-like file located in the udtbin directory. UniData supports the following terminal types: ANSI, DEC VT100, DEC VT220, VT52, and WYSE 50. If you are installing UniData from a different type of terminal, do not configure the product at the end of the installation process.

13. UniData displays a summary of the information input at each prompt before proceeding with the installation. Review the summary carefully:

Summary of your inputs CheckLang Yes

59 Chapter 2: Installing UniData on UNIX

SaveDir save OverWrite Yes Confirm No StopSys Yes WorkDir /usr/ud82/work LibDir /usr/ud82/lib LogDir /usr/ud82/log UnisharedDir /usr/unishared Group sys Serial serial_number RFSflag No REPflag No Backup No ConfProduct No Are those values correct? [Yes]: If all the values are correct, press Enter to accept the values and proceed with the installation process. If some information is incorrect, enter No. UniData exits the installation process. You need to restart the installation and make any corrections to prompt responses.

If you accept the default of Yes, the installation process first makes sure that the version of UniData identified by udtbin is not running. The installation process then changes the file’s ownership to root, and the group name to the name you specified. Next, the process tests the system configuration by running the systest utility, then creates the include, ods, lib, sys, demo, work, sybase, unishared, and objcall directories: Start installing/upgrading UniData RDBMS Release 8.2.1.

Using UDTBIN=/usr/ud82/bin

UniData is not running. SM has already been stopped. CLEANUPD has already been stopped. SMM is not running. SBCS has already been stopped. SMM is not running. Unirpcd is being shared by other U2 database products

Unidata Release 8.2.1 has been shut down.

Changing files’ ownership and group name ...

Testing system configuration ...

Creating/Updating /usr/ud82/include directory... Creating/Updating /usr/ud82/ods directory... Creating/Updating /usr/ud82/lib directory... Creating/Updating /usr/ud82/sys directory... Creating/Updating /usr/ud82/demo directory... Creating/Updating /usr/ud82/work directory... Creating/Updating /usr/ud82/objcall directory...

You now have completed the installation process. The following directories are not required for running udt, you may either remove them to save some disk space or keep them there for future use:

/usr/ud82/bin/include /usr/ud82/bin/lib /usr/ud82/bin/work /usr/ud82/bin/demo

Do you want to save those directories (save/delete) [save]:

60 Installing as a basic, advanced, or concurrent installation

14. Choose whether to release disk space. Press Enter to accept the default of save; otherwise enter delete. UniData prompts you to save or remove the include, lib, work, and demo directories from udtbin because they are not needed in the udtbin directory for running UniData. If you remove these directories, you free up approximately 10 MB of disk space, but you will have to tar the UniData tape again if you need to reinstall UniData. If you do not remove these directories, you can reinstall UniData without having to tar the tape. 15. Authorize UniData. If you answered Yes to the Config product at the end of installation prompt, UniData automatically runs the confprod utility at this time. (Refer to Licensing UniData on UNIX, on page 78 for information about licensing UniData.) If you answered No at the Config product at the end of installation prompt, proceed to the next step. You have 10 calendar days from the date you install UniData to license the product. If you authorized UniData as part of the installation process, UniData executes the systest command again to determine configuration parameters for the number of authorized users. If your kernel parameters are not adequate to support the number of authorized users, UniData displays messages similar to the following:

You may not be able to run full number of users sessions (1250) as configured due to the current semmnu setting (100) in your Unix system. You need to increase semmnu to 3750 and rebuild your Unix kernel. The number of global tables(SHM_GNTBLS) should not be greater than SHMMNI. Not enough message queue identifiers. Please make N_TMQ and N_PGQ smaller or enlarge MSGMNI. There’s not enough semaphore identifiers in the system. Please decrease NUSERS or enlarge SEMMNI. There’s not enough semaphore undo structures in the system. Please decrease NUSERS or enlarge SEMMNU. If you see messages similar to those in the preceding example, you must change your kernel parameters before you will be able to start UniData. See Administering the Recoverable File System on UNIX and Administering UniData on Windows and UNIX for information about configuration parameters and system tuning. 16. The installation process is now complete. The following message appears:

Install unishared components... Installed /usr/unishared/icsdk version 2.5. Installed /usr/unishared/unirpc version 10.0.0. Installed /usr/unishared/uojsdk version 1.2. Installed /usr/unishared/jdbc version 1.0.0. Updating /usr/unishared/sharedby... Done. Updating /usr/unishared/unirpc/unirpcservices... Done. Congratulations! You have successfully installed/upgraded to UniData RDBMS 8.2.1. Run startud to start UniData 8.2.1. # The responses to the installation prompts and any messages directed to the terminal screen are captured in the install.log file located in /usr/ud82/bin. Check the install.log file to ensure that no error messages appear in the log. If any error messages appear, correct the indicated problems before proceeding. 17. Define the environment variables for udthome and udtbin. You must define these variables before you can test the installation by starting UniData and invoking a UniData session. The following examples show how to do this by using the default names from a basic installation:

61 Chapter 2: Installing UniData on UNIX

From the Bourne or Korn shell:

UDTHOME=/usr/ud82;export UDTHOME UDTBIN=/usr/ud82/bin;export UDTBIN From the C shell:

% setenv UDTHOME /usr/ud82 % setenv UDTBIN /usr/ud82/bin From the Bash shell:

export UDTHOME=/disk1/ud82 export UDTBIN=/disk1/ud82/bin export LANG=C If you are using XML, you must also set your library path. The following table shows the library path environment variables by platform:

Platform Library path environment variable AIX LIBPATH=$LIBPATH:$UDTBIN HP SHLIB_PATH=$SHLIB_PATH:$UDTBIN SOLARIS LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$UDTBIN LINUX LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$UDTBIN

Note: For Linux, the udtbin path is automatically added to the system library settings starting with UniData 8.1 during the install script.

18. Run makeudt. If your application links in C routines with CALLC, you need to link the udt executable by running makeudt now. For more information about makeudt, see Administering UniData on Windows and UNIX and Developing UniBasic Applications.

Results

You can now start UniData with the startud command. The following example shows the output from startud: # ./startud Using UDTBIN=/usr/ud82/bin All output and error logs have been saved to ./saved_logs directory. SMM is started. SBCS is started. CLEANUPD is started. Unirpcd is started UniData Release 8.2.1 has been started. UniData Release 8.2.1 Build: (6101)(c) Copyright Rocket Software, Inc. 1985-2016. All rights reserved. Current UniData home is /usr/ud82/.Current working directory is /usr/ud82/demo. You can also now run UniData. Change directories using the UNIX cd command to the demo account located in /usr/ud82/demo. Enter the full path name of the bin directory, followed by the udt command (if you have set your environment variables, the default is udtbin/udt, as in the following example). If you have already authorized device licensing, enter udtts. # cd ../demo # udt The following screen appears:

62 Installing using the updatesys script

UniData Release 8.2.1 Build: (6101) (c) Copyright Rocket Software, Inc. 1985-2016. All rights reserved. Current UniData home is /usr/ud82/. Current working directory is /usr/ud82/demo.

Note: Before users can access UniData, you must set environment variables for all users. Consider using a .login or .profile script. You can include the full UniData paths there. You also need to make sure each user’s path includes the udtbin path. For detailed information about this, see Administering UniData on Windows and UNIX.

Next step See Post-installation tasks, on page 77 for tasks such as licensing UniData and more. Installing using the updatesys script

Use the updatesys script to install on UNIX as an upgrade or patch installation type. For upgrade installs, the updatesys method has a backup option but it only backs up /usr/ud82/ include, $UDTHOME/work, and $UDTHOME/log. Prior to 8.1.0, the updatesys script was the only method to upgrade or patch UniData on UNIX. Starting at 8.1.0, the recommended method is using the udtsetup script, described in Installing using the udtsetup script, on page 16, which includes a full backup option for /usr/ud82, $UDTHOME, $UDTBIN, /.udlibs*, and more. updatesys

The system-level updatesys script updates the installed version of UniData. Prior to 8.1.0, the updatesys script was the only method to upgrade or patch UniData on UNIX. Starting at 8.1.0, the recommended method is using the udtsetup script.

Note: This script does everything the system-level udtinstall script does, except that it updates your udthome/sys directory instead of creating a new one. This leaves your global catalog space intact.

Note: This script is supported on UniData for UNIX only.

Syntax

updatesys

Prerequisite tasks for upgrades and patches on UNIX

Before you upgrade or patch UniData on UNIX, a number of tasks need to be completed. The basic preparatory steps for an upgrade or patch are: ▪ Read Prerequisite tasks for all UNIX installation types, on page 13. ▪ Create and verify all needed backups.

63 Chapter 2: Installing UniData on UNIX

In UniData, you can link functions written in the C language to UniBasic programs. You can also use CallBasic to access UniData from a C application. UniData uses a group of files in the udtwork directory for these capabilities. The files that are important are: ▪ base.mk ▪ callbas.mk ▪ cfuncdef ▪ cfundef_user Release 8.1 and later provides new base.mk, callbas.mk, and cfuncdef files in the udtwork directory. Additionally, some of the libraries from previous releases of UniData have been renamed. The upgrade or patch installation process installs these new files and libraries, overwriting the files that already exist. Before you upgrade or patch, make backup copies of these three files. If you are using CALLC or CallBasic, you will need to relink your application, using the new make files, after the upgrade or patch process is complete.

Note: If you are upgrading or patching from Release 3.3.2 or later and made your modifications to the cfuncdef_user file, you do not need to make any changes to the cfuncdef file. If you made modifications to the cfuncdef file in the old version of UniData, these changes should be saved to the cfuncdef_user file in the udthome/work directory so you will not have to make the same changes with each upgrade of UniData. See Administering UniData on Windows and UNIXAdministering UniData for information about make files and cfuncdef_user.

Warning: If you are upgrading from a previous version of UniData with RFS to UniData 8.2.1 with RFS, it is important that you create and verify a full backup of all your recoverable data files. We suggest you use only log files or archive files created under UniData 8.2.1 to recover from system or media failures that occur at UniData 8.2.1.

▪ All current users must log off. Enter the listuser command to check for users logged on to UniData. If there are users in UniData, have them log off now. If listuser does not list any UniData users, you can proceed with the installation. In the following example, no users are logged on, and the installation can safely proceed:

# listuser Licensed/Effective # of Users Udt Sql Total 32 / 32 0 0 0 UDTNO USRNBR UID USRNAME USRTYPE TTY TIME DATE # ▪ Stop the existing UniData daemons. Use the stopud command, then verify that all daemons have been stopped by using the showud command. Be sure to use stopud even if your system seems to be down to make certain all processes and ipc structures are cleaned up. Do not run UniData during the upgrade process; doing so could corrupt your UniData software. In the following example, stopud is executed followed by showud to verify that all daemons have stopped:

# ./stopud Using UDTBIN=/disk1/ud82/bin SM has already been stopped. CLEANUPD stopped successfully. SBCS stopped successfully. SMM stopped successfully. Unidata R8.2.1 has been shut down. # ./showud UID PID TIME COMMAND

64 Upgrading or patching UniData on UNIX

#

Upgrading or patching UniData on UNIX

Install as an upgrade or patch installation if you are upgrading to UniData 8.2.1 from a previous version of UniData or patching a previous version of UniData.

Prerequisites You must be logged in as root to perform the upgrade or patch. Review the following sections before you begin this procedure. ▪ Operating system requirements (UNIX), on page 11 ▪ Disk space requirements, on page 12 ▪ Memory requirements, on page 13 ▪ International installation, on page 16 ▪ Prerequisite tasks for all UNIX installation types, on page 13 ▪ Prerequisite tasks for upgrades and patches on UNIX, on page 63

About this task When you upgrade to UniData 8.2.1 or patch a previous version, you can use the same directories as your old version of UniData, or you can create a new udtbin directory wherever you choose. If you create a new udtbin directory, make sure you change the UDTBIN environment variable to the new udtbin, and make sure that the UDTHOME environment variable is set to the old udthome. To check the environment variables, use the UNIX printenv command, as shown in the following example: # printenv _=/usr/bin/printenv MANPATH=/usr/share/man/%L:/usr/share/man:/usr/contrib/man/%L:/usr/ contrib/man:/u sr/local/man/%L:/usr/local/man:/opt/upgrade/share/man/%L:/opt/upgrade/ share/man: /usr/dt/share/man:/opt/pd/share/man/%L:/opt/pd/share/man:/opt/ignite/ share/man/% L:/opt/ignite/share/man PATH=/disk1/ud82/bin:/usr/bin:/usr/sbin:/sbin ... UDTHOME=/disk1/ud82 SHELL=/bin/csh UDTBIN=/disk1/ud82/bin TERM=vt100 PWD=/disk1/ud82/demo TZ=MST7MDT # If the UDTHOME and UDTBIN environment variables are not set or are set incorrectly, use the following examples to set them to your existing version of UniData. These examples use /disk1/ud82 as the location of UDTHOME and /disk1/ud82/bin as the location of UDTBIN. Substitute your paths for udthome and udtbin. From the Bourne or Korn shell:

UDTHOME=/disk1/ud82;export UDTHOME UDTBIN=/disk1/ud82/bin;export UDTBIN From the C shell:

65 Chapter 2: Installing UniData on UNIX

% setenv UDTHOME /disk1/ud82 % setenv UDTBIN /disk1/ud82/bin From the Bash shell:

export UDTHOME=/disk1/ud82 export UDTBIN=/disk1/ud82/bin export LANG=C If you are using XML, you must also set your library path. The following table shows the library path environment variables by platform:

Platform Library path environment variable AIX LIBPATH=$LIBPATH:$UDTBIN HP SHLIB_PATH=$SHLIB_PATH:$UDTBIN SOLARIS LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$UDTBIN LINUX LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$UDTBIN

For upgrades and patches, your current working directory must be the directory where the previous UniData executables are installed. Change to this directory and execute the pwd command to check your location:

# cd $UDTBIN # pwd /disk1/ud82/bin #

Procedure

1. Ensure all users are logged off, and stop existing UniData daemons. Again, see Prerequisite tasks for upgrades and patches on UNIX, on page 63 before beginning this procedure for more information. 2. Enter ./updatesys at the system prompt. This begins the upgrade or patch process. If you are executing a default non-international upgrade or patch, the following screen appears after entering ./updatesys: # ./updatesys Welcome to the UniData RDBMS. http://www.rocketsoftware.com/software/data/u2 WARNING: If UniData system is still running, it will be stopped with force. This may not guarantee the consistency of your database files, so we recommend that you stop the system with ‘stopud’ before installing/upgrading UniData. Would you like to continue? [Yes]: Press Enter to accept the default of Yes.

Note: You must enter Yes, yes, or YES and No, no, or NO rather than Y or N for all prompts in the process.

If you are upgrading or patching UniData as an international installation, choose a LANG setting now.

66 Upgrading or patching UniData on UNIX

Tip: If you are upgrading UniData in an environment that does not support ASCII characters 250 through 255, and ASCII character 192 as internal markers, read International Reference before proceeding with the installation. We strongly recommend that the value of LANG is consistent for all users. Consider setting the LANG environment variable in the .profile or .login script.

When choosing a LANG setting for your system, make sure the LANG setting you choose is supported by UniData. To find the supported LANG settings for your system, execute the locale -a command, as shown in the following example: # locale -a C POSIX C.iso88591 C.utf8 univ.utf8 ar_DZ.arabic8 ar_SA.arabic8 ar_SA.iso88596 bg_BG.iso88595 cs_CZ.iso88592 da_DK.iso88591 da_DK.roman8 nl_NL.iso88591 nl_NL.roman8 ... # During the upgrade or patch process, UniData changes the LANG environment variable to “C” for installation processing and displays the following message:

# updatesys Welcome to the UniData RDBMS. http://www.rocketsoftware.com/software/data/u2 WARNING: -- environment variable LANG is not set to ‘C’ -- it will be set to ‘C’ by Unidata for installation -- see Unidata Installation Guide for more details Would you like to continue? [Yes]: If you press Enter to accept the default answer of Yes, UniData continues the process using the LANG group of “C.” If desired, you can change your LANG environment variable after the installation process is complete.

UniData displays the default work directory where it will load the files to rebuild UniData: Enter the full path name of work directory [/usr/ud82/work]: 3. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the default lib directory where all UniData executables will be contained: Enter the full path name of lib directory [/usr/ud82/lib]: 4. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the location of the log files. This directory contains the location where UniData will build the log files for RFS: Enter the full path name of log directory [/usr/ud82/log]: 5. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the location of the unishared directory. The unishared directory contains files necessary for the unirpcd daemon:

67 Chapter 2: Installing UniData on UNIX

Enter the full path name of unishared directory [/usr/unishared]: 6. If the default directory is correct, press Enter. To use a different location, enter the full path. UniData displays the default group name. UniData uses the group name associated with the root login name:

Enter a valid group name for changing files' group [sys]: 7. If the group name displayed is correct, press Enter. If the default is not correct, enter the correct group name. UniData displays a request for the serial number:

Enter the Serial Number displayed on your "Software Product Configuration" sheet: [serial_number]: 8. Enter the serial number found on your Software Product Configuration sheet. For example, if your license number is 12345678-UDT, enter 12345678 without the -UDT extension.

Note: This information is not required as part of the installation.

UniData prompts you to install the Recoverable File System (RFS):

Turn on the Recoverable File System? [No]: 9. If you do not want to install RFS at this time, press Enter to accept the default of No. If you choose to install RFS at this time, enter Yes. The process creates a default log configuration table, creates the log files, and turns on RFS.

Note: You must purchase the RFS product separately. If you are not sure whether you have purchased RFS, check the Product Configuration Sheet. You can install RFS at a later time without rerunning the installation process. To enable RFS post-installation, see Administering the Recoverable File System on UNIX.

UniData prompts you to install U2 Data Replication:

Turn on the Replication System? [No]: 10. If you do not want to install U2 Data Replication at this time, press Enter to accept the default of No. If you choose to install U2 Data Replication at this time, enter Yes. The installation process creates a default configuration file, creates the log files, and turns on U2 Data Replication.

Note: You can install U2 Data Replication at a later time without rerunning the installation process. To enable U2 Data Replication post-installation, see the U2 Data Replication User Guide.

UniData asks whether you want to back up any existing directories:

Backup the existing directories? [No]: 11. If you want to back up these directories, enter Yes If you do not want to back up these directories, press Enter to accept the default of No. If you answer Yes to this prompt, the /usr/ud82/include, udthome/work and udthome/ log directories are backed up in a directory called backup in udtbin. UniData prompts you to indicate whether you want to configure the product at the end of the installation process:

Config product at the end of installation? [No]:

68 Upgrading or patching UniData on UNIX

12. If you enter Yes at this prompt, UniData automatically runs the confprod utility as part of the installation. If you do not want to configure the product at the end of the installation process, press Enter to accept the default of No. UniData will run for 10 days after installation without requiring authorization.

Warning: When licensing UniData, you must be using a terminal supported by vvtermcap. vvtermcap is a special UniData termcap-like file located in the udtbin directory. UniData supports the following terminal types: ANSI, DEC VT100, DEC VT220, VT52, and WYSE 50. If you are installing UniData from a different type of terminal, do not configure the product at the end of the installation process.

Patches only. If the work directory you entered in a previous step already exists, UniData prompts whether or not you want to overwrite this directory:

/disk1/ud82/work exists, overwrite it? [Yes]: no If you have already linked your C routines with UniData, do not overwrite the work directory during the patch installation. UniData prompts for the previous version of UniData from which you are upgrading in order to set the proper language group:

Enter the UniData version to be upgraded? [73]: 73 13. Enter a valid response. Valid responses are 16, 23, 31, 33, 40, or 41, 50, 51, 52, 60, 61, 71, 72, or 73. 14. UniData displays a summary of the information input at each prompt before proceeding with the installation. Review the summary carefully:

Summary of your inputs CheckLang No OverWrite Yes Confirm Yes SaveDir save StopSys Yes WorkDir /usr/ud82/work LibDir /usr/ud82/lib LogDir /usr/ud82/log UnisharedDir /usr/unishared Group sys Serial serial_number RFSflag Yes REPflag No Backup Yes ConfProduct No PreviousVer 73 Are those values correct? [Yes]: If all the values are correct, press Enter to accept the values and proceed with the installation process. If some information is incorrect, enter No. UniData exits the installation process. You need to restart the installation and make any corrections to prompt responses.

If you accept the default of Yes, the installation process first makes sure that the version of UniData identified by udtbin is not running. In a patch installation, UniData will stop the version of UniData identified by udtbin. The installation process then changes the file’s ownership to root, and the group name to the name you specified. Next, the process tests the system configuration by running the systest utility, then creates the include, ods, lib, sys, demo, work, sybase, unishared, and objcall directories: Start installing/upgrading UniData RDBMS Release 8.2.1.

Using UDTBIN=/usr/ud82/bin

69 Chapter 2: Installing UniData on UNIX

UniData is not running. SM has already been stopped. CLEANUPD has already been stopped. SMM is not running. SBCS has already been stopped. SMM is not running. Unirpcd is being shared by other U2 database products

Unidata Release 8.2.1 has been shut down.

Changing files’ ownership and group name ...

Testing system configuration ...

Creating/Updating /usr/ud82/include directory... Creating/Updating /usr/ud82/ods directory... Creating/Updating /usr/ud82/lib directory... Creating/Updating /usr/ud82/sys directory... Creating/Updating /usr/ud82/demo directory... Creating/Updating /usr/ud82/work directory... Creating/Updating /usr/ud82/objcall directory...

You now have completed the installation process. The following directories are not required for running udt, you may either remove them to save some disk space or keep them there for future use:

/usr/ud82/bin/include /usr/ud82/bin/lib /usr/ud82/bin/work /usr/ud82/bin/demo

Do you want to save those directories (save/delete) [save]: 15. Choose whether to release disk space. Press Enter to accept the default of save; otherwise enter delete. UniData prompts you to save or remove the include, lib, work, and demo directories from udtbin because they are not needed in the udtbin directory for running UniData. If you remove these directories, you free up approximately 10 MB of disk space, but you will have to tar the UniData tape again if you need to reinstall UniData. If you do not remove these directories, you can reinstall UniData without having to tar the tape. 16. Authorize UniData. If you answered Yes to the Config product at the end of installation prompt, UniData automatically runs the confprod utility at this time. (Refer to Licensing UniData on UNIX, on page 78 for information about licensing UniData.) If you answered No at the Config product at the end of installation prompt, proceed to the next step. You have 10 calendar days from the date you install UniData to license the product. If you authorized UniData as part of the installation process, UniData executes the systest command again to determine configuration parameters for the number of authorized users. If your kernel parameters are not adequate to support the number of authorized users, UniData displays messages similar to the following:

You may not be able to run full number of users sessions (1250) as configured due to the current semmnu setting (100) in your Unix system. You need to increase semmnu to 3750 and rebuild your Unix kernel. The number of global tables(SHM_GNTBLS) should not be greater than SHMMNI. Not enough message queue identifiers. Please make N_TMQ and N_PGQ smaller or enlarge MSGMNI. There’s not enough semaphore identifiers in the system. Please

70 Upgrading or patching UniData on UNIX

decrease NUSERS or enlarge SEMMNI. There’s not enough semaphore undo structures in the system. Please decrease NUSERS or enlarge SEMMNU. If you see messages similar to those in the preceding example, you must change your kernel parameters before you will be able to start UniData. See Administering the Recoverable File System on UNIX and Administering UniData on Windows and UNIX for information about configuration parameters and system tuning. 17. The installation process is now complete. The following message appears:

Install unishared components... Installed /usr/unishared/icsdk version 2.5. Installed /usr/unishared/unirpc version 10.0.0. Installed /usr/unishared/uojsdk version 1.2. Installed /usr/unishared/jdbc version 1.0.0. Updating /usr/unishared/sharedby... Done. Updating /usr/unishared/unirpc/unirpcservices... Done. Congratulations! You have successfully installed/upgraded to UniData RDBMS 8.2.1. Run startud to start UniData 8.2.1. # The responses to the installation prompts and any messages directed to the terminal screen are captured in the install.log file located in /usr/ud82/bin. Check the install.log file to ensure that no error messages appear in the log. If any error messages appear, correct the indicated problems before proceeding. 18. Before you can test the installation by starting UniData and invoking a UniData session, you need to ensure that the environment variables for udthome and udtbin are correct. To check your environment variables, use the UNIX printenv command. Since the environment variables were set in step before this task (see About this task), they should still be correct. 19. Run makeudt. If your application links in C routines with CALLC, you need to link the udt executable by running makeudt now. For more information about makeudt, see Administering UniData on Windows and UNIX and Developing UniBasic Applications. 20. Verify that file-level log size is correct for RFS. If you are running UniData with RFS, the udtconf utility automatically changes the size of the file-level log in /usr/ud82/include/ logconfig. The size of the file-level log must be at least NUSERS + 1. In the following example, the file-level log size is 126:

# pg logconfig /disk1/ud82/log/a_0000 021 4096 0 250 /disk1/ud82/log/a_0001 021 4096 0 250 /disk1/ud82/log/b_0000 022 4096 0 250 /disk1/ud82/log/b_0001 022 4096 0 250 /disk1/ud82/log/a_0002 021 4096 0 250 /disk1/ud82/log/a_0003 021 4096 0 250 /disk1/ud82/log/b_0002 022 4096 0 250 /disk1/ud82/log/b_0003 022 4096 0 250 /disk1/ud82/log/filelog_0 0120 4096 0 126 (EOF): If any values in the logconfig file located in /usr/ud82/include change, run the cntl_install utility at this time to reinitialize your log and archive files. You must have root permission to run the cntl_install utility. The following example shows the output from the cntl_install utility: # cntl_install cntl_install utility resets Unidata System

71 Chapter 2: Installing UniData on UNIX

after a full database backup (Image Copy). This means, all log (and archive) files will also be initialized for re-use. Do you want to continue?(y/n) [n] y Installing Logs (and Archives) after cntl_install ...... #

Results

You can now start UniData with the startud command. The following example shows the output from startud: # ./startud Using UDTBIN=/usr/ud82/bin All output and error logs have been saved to ./saved_logs directory. SMM is started. SBCS is started. CLEANUPD is started. Unirpcd is started UniData Release 8.2.1 has been started. UniData Release 8.2.1 Build: (6101)(c) Copyright Rocket Software, Inc. 1985-2016. All rights reserved. Current UniData home is /usr/ud82/.Current working directory is /usr/ud82/demo. You can also now run UniData. Change directories using the UNIX cd command to the demo account located in /usr/ud82/demo. Enter the full path name of the bin directory, followed by the udt command (if you have set your environment variables, the default is udtbin/udt, as in the following example). If you have already authorized device licensing, enter udtts. # cd ../demo # udt The following screen appears:

UniData Release 8.2.1 Build: (6101) (c) Copyright Rocket Software, Inc. 1985-2016. All rights reserved. Current UniData home is /usr/ud82/. Current working directory is /usr/ud82/demo.

Note: Before users can access UniData, you must set environment variables for all users. Consider using a .login or .profile script. You can include the full UniData paths there. You also need to make sure each user’s path includes the udtbin path. For detailed information about this, see Administering UniData on Windows and UNIX.

Next step See Post-installation tasks, on page 77 for more information about tasks such as licensing UniData and updating the VOC entries.

If you want to restore any of the files that were saved in the udtbin/backup directory, copy them using the UNIX cp command. In the following example, the udtconfig file backed up in udtbin/ backup is copied to the /usr/ud82/include/udtconfig directory: # cp /disk1/ud82/bin/backup/include/udtconfig /usr/ud82/include/udtconfig #

72 Installing or upgrading using a parameter file

Installing or upgrading using a parameter file

All three scripts used to install or upgrade UniData on UNIX have an option to be used with a parameter file. You can customize the parameter file to use the file to automatically answer prompts for you during installation.

If you installed or upgraded using the udtsetup script, see Installing or upgrading using the parameter file, on page 73.

If you installed or upgraded using the udtinstall or updatesys scripts, see Installing using the install.param file, on page 75.

Installing or upgrading using the parameter file

Instead of being prompted for each question, a parameter file can be supplied to the udtsetup script to use as an answer sheet for questions encountered. If an answer is not found for a question asked, then the installation or upgrade will stop and ask the user for the value.

About this task

The udtsetup.param parameter file for the current installation or upgrade is stored initially in the /tmp/udtsetup.param file, then moved to $UDTBIN/saved_logs/udtsetup.param after the installation or upgrade completes. When using the parameter file, it is recommended to have the parameter file stored outside of the UniData directory. If the file is stored inside the UniData directories, there is the chance that your parameter file will be overwritten. If the file specified after the -f option is empty or does not exist, then the parameters will be recorded to that file. You can sort the parameters that are recorded as alphabetical or unsorted.

Procedure

1. To use a parameter file during the udtsetup process and sort alphabetically, specify the -f param.file option, as shown in the following example: # ./udtsetup -f /tmp/ud82.params 2. To use a parameter file during the udtsetup process and sort unordered, specify the -uf param.file option, as shown in the following example: # ./udtsetup -uf /tmp/ud82.params

Results The parameter file is stored with the parameter name, then spaces, then the results. When recording parameters, some parameters (for example, ScriptVersion) that appear in udtsetup.param will not appear in the "Summary of Input" screens or other prompts. These extra parameters are needed by the script and will be added if not predefined (if using the -f playback option). The following example shows a parameter file without licensing prompts:

CheckLang Yes CheckPerms No ConfProduct N Confirm Yes Group sys LibDir /disk1/ud82/lib LicAgree Yes

73 Chapter 2: Installing UniData on UNIX

LogDir /disk1/ud82/log REPflag No RFSflag No SaveDir Yes ScriptVersion 82 (8.2.1) Serial 12345678 Startud Yes UdtBin /disk1/ud82/bin UdtHome /disk1/ud82 UnisharedDir /disk1/unishared WorkDir /disk1/ud82/work If the above list of parameters are used on a new installation, the output would look like (only top portion of output is shown):

# ./udtsetup -f /tmp/udt82.params Welcome to the Rocket UniData RDBMS, performing startup tasks... Using parameter data found in: /tmp/udt82.params Extracting files needed during setup process... Validating tar file. Using /disk1/u2install/bin.tar during this process.

Welcome to the Rocket UniData RDBMS.

http://www.rocketsoftware.com/u2

License files are located in /license.

Creating ud82 directory in the /disk1 path.

Warning: $UDTHOME should be set to '/disk1/ud82'.

WARNING: The path you selected does not equal UDTHOME. The environment variable UDTHOME will be ignored and it needs to be changed after the installation.

Creating bin directory in the /disk1/ud82 path.

Warning: $UDTBIN should be set to '/disk1/ud82/bin'.

WARNING: The path you selected does not equal UDTBIN. The environment variable UDTBIN will be ignored and it needs to be changed after the installation.

Starting the installation of UniData 8.2.1.

Warning: $LANG should be set to 'C'.

WARNING:

-- Environment variable LANG is not set to 'C'. -- It will be set to 'C' by UniData during this installation. -- See the Rocket UniData Installation Guide for more details.

Performing final udtsetup checks...

74 Installing using the install.param file

If the udtsetup script cannot find an answer in the parameter file for a necessary parameter, then the installation will prompt the user for that answer. In the previous example, had the Group parameter been removed from the parameter file, the script would prompt you, as shown:

The 'Group' parameter was not found, prompting for input.

Enter a valid group name for changing files' group [sys]:

Installing using the install.param file

If you do not want to answer each prompt during the installation, you can customize the install.param file located in udthome/bin, then use this file for the prompt responses. After you complete the installation process, your responses to the installation prompts are written to this file.

Note: This file contains responses that are most likely inappropriate for your installation after it is loaded from tape.

The following example displays the contents of the install.param file before any customization: # pg install.param CheckLang Yes UdtHome /disk2/srcman/alpha/ud_PEAK_981110 WorkDir /disk2/srcman/alpha/ud_PEAK_981110/work LibDir /disk2/srcman/alpha/ud_PEAK_981110/lib LogDir /disk2/srcman/alpha/ud_PEAK_981110/log Serial HPUX11 Group unisrc StopSys Yes RFSflag Yes OverWrite No Backup No ConfProduct No SaveDir save Use any text editor to customize the prompt responses listed in the install.param file, or create your own file with the required responses.

In the following example, the paths for UdtHome, WorkDir, LibDir, and LogDir are customized using /disk1/ud82 as udthome. Group is changed to sys: # pg install.param CheckLang Yes StopSys Yes UdtHome /disk1/ud82 WorkDir /disk1/ud82/work LibDir /disk1/ud82/lib LogDir /disk1/ud82/log UnisharedDir /usr/unishared Group sys Serial serial_number RFSflag No REPflag No Backup No ConfProduct No OverWrite Yes Confirm Yes SaveDir save In the next example, the default paths are used for UdtHome, WorkDir, LibDir, and LogDir. Group is changed to sys:

75 Chapter 2: Installing UniData on UNIX

# pg install.param CheckLang Yes StopSys Yes UdtHome /usr/ud82 WorkDir /usr/ud82/work LibDir /usr/ud82/lib LogDir /usr/ud82/log UnisharedDir /usr/unishared Group sys Serial serial_number RFSflag No REPflag No Backup No ConfProduct No OverWrite Yes Confirm Yes SaveDir save After you have customized the install.param file, the next step depends on your installation type. Execute either the udtinstall or updatesys command with the -f option. The -f option indicates that all required user input is included in an ASCII file. The updatesys command does everything the system-level udtinstall command does, except that it updates your udthome/sys directory instead of creating a new one. This leaves your global catalog space intact.

Typically you will use the updatesys command when upgrading or installing a patch release, and the udtinstall command on basic, advanced, or concurrent installations. In the following example, udtinstall is executed with the install.param file: # ./udtinstall -f install.param Welcome to the UniData RDBMS. http://www.rocketsoftware.com/software/data/u2 Enter the Serial Number displayed on your "Software Product Start installing/upgrading UniData RDBMS Release 8.2.1. Using UDTBIN=/disk1/ud82/bin SM has already been stopped. CLEANUPD has already been stopped. SMM is not running. SBCS has already been stopped. SMM is not running. Unirpcd has already been stopped Unidata 8.2.1 has been shut down. Changing files’ ownership and group name ...... Creating/Updating /usr/ud82/include directory... Creating/Updating /disk1/ud82/ods directory... Creating/Updating /disk1/ud82/lib directory... Creating/Updating /disk1/ud82/sys directory... Creating/Updating /disk1/ud82/demo directory... Creating/Updating /disk1/ud82/work directory... Creating/Updating /disk1/ud82/objcall directory... Checking UNIX system configuration for running UniData ... Update VOC files in /usr/ud82/sys /usr/ud82/demo ... You now have completed the installation process. The following directories are not required for running udt, you may either remove them to save some disk space or keep them there for future use: /disk1/ud82/bin/include /disk1/ud82/bin/lib /disk1/ud82/bin/work /disk1/ud82/bin/demo Install unishared components...

76 Post-installation tasks

Installed /usr/unishared/icsdk version 2.5. Installed /usr/unishared/unirpc version 10.1.0. Updating /usr/unishared/sharedby... Done. Updating /usr/unishared/unirpc/unirpcservices... Done. Congratulations! You have successfully installed/upgraded to UniData RDBMS 8.2.1. Run startud to start UniData 8.2.1. In the next example, updatesys is executed with the install.param file: # ./updatesys -f install.param Welcome to the UniData RDBMS. http://www.rocketsoftware.com/software/data/u2 Enter the Serial Number displayed on your "Software Product Start installing/upgrading UniData RDBMS Release 8.2.1. Using UDTBIN=/disk1/ud82/bin SM has already been stopped. CLEANUPD has already been stopped. SMM is not running. SBCS has already been stopped. SMM is not running. Unirpcd has already been stopped Unidata 8.2.1 has been shut down. Changing files’ ownership and group name ...... Creating/Updating /usr/ud82/include directory... Creating/Updating /disk1/ud82/ods directory... Creating/Updating /disk1/ud82/lib directory... Creating/Updating /disk1/ud82/sys directory... Creating/Updating /disk1/ud82/demo directory... Creating/Updating /disk1/ud82/work directory... Creating/Updating /disk1/ud82/objcall directory... Checking UNIX system configuration for running UniData ... Update VOC files in /usr/ud82/sys /usr/ud82/demo ... You now have completed the installation process. The following directories are not required for running udt, you may either remove them to save some disk space or keep them there for future use: /disk1/ud82/bin/include /disk1/ud82/bin/lib /disk1/ud82/bin/work /disk1/ud82/bin/demo Install unishared components... Installed /usr/unishared/icsdk version 2.5. Installed /usr/unishared/unirpc version 10.1.0. Updating /usr/unishared/sharedby... Done. Updating /usr/unishared/unirpc/unirpcservices... Done. Congratulations! You have successfully installed/upgraded to UniData RDBMS 8.2.1. Run startud to start UniData 8.2.1. Post-installation tasks

During the installation or upgrade, you might have chosen to do some configuration steps after installation.

77 Chapter 2: Installing UniData on UNIX

The following sections describe these tasks:

• Licensing UniData on UNIX If you did not license UniData during the installation process, you need to license UniData within 10 calendar days from the date you install. • Reauthorizing UniData Perform this task if you installed or upgraded using the udtsetup script and the authorization step was not successful. • Setting udtconfig parameters for shared memory The udtconf utility allows you to automatically set udtconfig parameters for shared memory. Although shared memory requirements are highly application- and platform-dependent, the udtconf utility can provide suggestions for udtconfig parameters and provide information about the actual state of your system. • Accessing globally cataloged programs If you want UniData 8.2.1 to access globally cataloged programs from a previous release of UniData, you can copy the /sys/CTLG and /sys/CTLGTB directories from a previous release to UniData 8.2.1. • Handling permission fixes If you upgraded using the udtsetup script and opted to fix permissions, you can handle the permission fixes a few different ways after the udtsetup process is complete. • Restoring files after a udtsetup upgrade If you used the udtsetup script to perform an upgrade and chose to backup your existing directories, you can restore the files after the udtsetup process is complete. • Updating the VOC files Run the system-level updatevoc command for each account after you install a new version of UniData.

Licensing UniData on UNIX

If you did not license UniData during the installation process, you need to license UniData within 10 calendar days from the date you install.

Prerequisites Follow the instructions on the key card you received with your UniData product to obtain an authorization code. When you obtain the authorization code, you must enter the code in the Configuration and Authorization screen, described in this procedure. If you are licensing UniData immediately after an installation, UniData should not be running. If UniData is running, you must now activate the license. Check to see whether UniData is running with the showud command, as shown in the following example: # showud UID PID TIME COMMAND root 28643 0:00 /disk1/ud82/bin/aimglog 0 18367 root 28644 0:00 /disk1/ud82/bin/aimglog 1 18367 root 28645 0:00 /disk1/ud82/bin/bimglog 2 18367 root 28646 0:00 /disk1/ud82/bin/bimglog 3 18367 root 28656 0:00 /disk1/ud82/bin/cleanupd -m 10 -t 20 root 28640 0:00 /disk1/ud82/bin/cm 18367 root 28652 0:00 /disk1/ud82/bin/repmanager root 28634 0:00 /disk1/ud82/bin/sbcs -r root 28639 0:00 /disk1/ud82/bin/sm 60 1529 root 28627 0:00 /disk1/ud82/bin/smm -t 60 root 22934 0:00 /disk1/unishared/unirpc/unirpcd

78 Licensing UniData on UNIX

# If UniData is running, ask all users to log out of UniData, then stop UniData with the stopud command.

About this task

You must log on as root to run confprod. The confprod application is used to obtain the configuration code after installing UniData. The following example displays the confprod application:

If you have previously set the configuration and obtained authorization, the Authorized field should say Yes, indicating that you are authorized until you change the configuration. If you are already authorized and the number of users and UniData products is correct, no further action is required until you need to make changes.

Note: The screen instructions call for Ctrl plus the letter on the screen; however, the necessity for Ctrl depends on your operating system. Try both to see if you need to enter Ctrl plus the letter, or just the letter.

Procedure

1. Change directories to the udtbin directory using the UNIX cd command, and then confirm your location using the pwd command as shown in the following example: # cd /usr/ud82/bin # pwd /usr/ud82/bin # 2. Enter # ./confprod from the udtbin directory to start the confprod utility. This displays the Configuration and Authorization screen. 3. You might need to change the current settings on the Configuration and Authorization screen to match your Product Configuration sheet. Change the current settings by using the arrow keys or tab key on your keyboard to move through the choices in the Users/Licensed column. a. In the UniData RDBMS field, enter the number of users. b. In the Connection Pooling field, enter the number of connection pools. c. In the Device License field, enter the number of device licenses.

79 Chapter 2: Installing UniData on UNIX

d. Enter Y or N in any of the next four fields (NFA, RFS, EDA, SUBKEY) to indicate whether you are authorized to use the product corresponding to the field. e. In the Expiration Date field, enter the expiration date to match the UniData license expiration date. 4. Enter U (Update) to update the configuration. If you were previously authorized and you changed the configuration, UniData automatically changes the Authorized field from Yes to No. You can skip this step if you did not change the configuration. 5. Enter F (ConFCode) to obtain the configuration code from UniData. UniData displays the configuration code at the bottom of the screen. You must supply Rocket Software with this code in order to get authorization for a software license. 6. Write the code down or save it to a file by entering D (DumpConfig) and entering a file name at the prompt. Saving the code to a file will help to prevent errors, as you can print the file, then mail, email, or fax it to Rocket Software. 7. Enter A (Authorization). At the prompt at the bottom of the screen, enter the authorization code. Your entry is case-sensitive, and you must use dashes in the appropriate places. If the authorization is successful, the screen displays License Authorized, and the Authorized field changes from No to Yes. You are now licensed to run UniData. 8. Enter E (Exit) to exit the licensing process. Parent topic: Post-installation tasks

Reauthorizing UniData

Perform this task if you installed or upgraded using the udtsetup script and the authorization step was not successful.

About this task If the authorization is not successful in step 27 of Installing or upgrading UniData on UNIX using udtsetup, on page 31, then UniData will start in an unauthorized state. Error messages from the RBC authorization website are shown to the screen and the udtsetup.log file. If the appropriate values are changed and you wants to reauthorize the product, use the DBLICENSE program as described in the following steps:

Note: If the UniData version being installed is not UniData 8.1.0 or higher, the DBLICENSE program is not included with the product (nor is udtsetup). See Tech Note UDT-11605 to get a copy of the object code for the DBLICENSE program. The source of DBLICENSE is not available for public use. The udtsetup script will convert the DBLICENSE object code to the correct platform.

Procedure

1. Execute $UDTBIN/startud (if not running). 2. Enter cd \$UDTHOME/sys. 3. Enter $UDTBIN/udt. 4. Enter RUN SYS_BP DBLICENSE. 5. Enter quit. 6. Enter $UDTBIN/stopsmm -r or restart UniData. Parent topic: Post-installation tasks

80 Setting udtconfig parameters for shared memory

Setting udtconfig parameters for shared memory

The udtconf utility allows you to automatically set udtconfig parameters for shared memory. Although shared memory requirements are highly application- and platform-dependent, the udtconf utility can provide suggestions for udtconfig parameters and provide information about the actual state of your system.

Prerequisites

You do not have log on as root to run the udtconf utility, but the utility reads information from the udtconfig file parameters and from the UNIX kernel. If you do not log on as root, you might not have sufficient access to the kernel, and the results will be unreliable.

You should run the udtconf utility with UniData users logged off and UniData shut down. The one exception is to assess the impact of the RFS system buffer. In this case, run the udtconf utility from a UNIX prompt while UniData is running.

About this task

The following example shows the main screen of the udtconf utility:

To advance to a field displayed on the screen, press Tab. To page down, enter D. To page up, enter U.

Note: The screen instructions call for Ctrl plus the letter on the screen; however, the necessity for Ctrl depends on your operating system. Try both to see if you need to enter Ctrl plus the letter, or just the letter.

The udtconf utility displays warning messages if some of the kernel parameters are not adequate to support the values that the udtconf utility calculates. Make sure that the kernel parameter for semaphore undo structures, usually semmnu, is adequate to support the number of authorized users prior to running the udtconf utility. Settings for the udtconfig parameters NUSERS, SHM_GNTBLS, N_TMQ, and N_PGQ are based on the number of authorized users. Although the udtconf utility displays warning messages if kernel parameters are not adequate to support these settings, the udtconfig file is updated with the values you set if you choose to ignore the warnings. In this case, UniData might not be able to start. For more information about configuring your UniData system, see Administering UniData on Windows and UNIX.

81 Chapter 2: Installing UniData on UNIX

If you are using RFS, UniData reserves an amount of shared memory for the system buffer. This memory is reserved when you start UniData, and it is not available to the smm or sbcs daemons. If your system was running close to its limit in terms of memory resources without RFS, allocating the system buffer can be a significant change. For instance, you might see an increase in error messages indicating smm could not create or attach a shared memory segment. For information about configuration parameters for RFS, see Administering the Recoverable File System on UNIX.

Procedure

1. Tab to the NUSERS field and change the value to correspond to your number of authorized users. The value of NUSERS should be: (number of authorized users) + (number of authorized users / 4). 2. Adjust other parameters as necessary. 3. Enter A (AutoConf) to automatically set other udtconfig parameters based on the value of NUSERS. If any of your kernel parameters will not support the new settings, a warning message appears at the bottom of the screen. 4. Enter K (ChecKConf) to check the UniData configuration parameters against the kernel parameters. If a UniData configuration parameter cannot be supported by a kernel parameter setting, a warning message is displayed at the bottom of the screen for each conflicting parameter. When all configuration parameters have been checked, the system displays the following message:

Shared memory related configuration values are OK! 5. Enter P (SysParam) to view current and suggested UNIX kernel settings. The udtconf utility suggests values assuming that UniData is the only software product on your system. If that is true, as long as the current kernel settings for semaphore undo structures, shared memory segments, and so forth, are at least equal to the suggested values, it should not be necessary to rebuild your kernel. If you have additional applications running, you need to consider the combined effect of UniData and all other applications when evaluating your kernel. 6. Enter V (SaveConf) to save the configuration parameters to the udtconfig file located in /usr/ud82/include. If you do not save the parameters, no changes are made to the udtconfig file. 7. Enter L (CalcCTL) from any udtconf screen to recalculate the size of your global control table CTL. This table changes size if you change shared memory parameters such as SHM_GNTBLS, SHM_GPAGESZ, and so forth. If the table size is greater than the kernel parameter shmmax (and the udtconfig parameter SHM_MAX_SIZE), you will not be able to start UniData. 8. Enter E (Exit) to exit the udtconf utility. Parent topic: Post-installation tasks

Accessing globally cataloged programs

If you want UniData 8.2.1 to access globally cataloged programs from a previous release of UniData, you can copy the /sys/CTLG and /sys/CTLGTB directories from a previous release to UniData 8.2.1.

82 Handling permission fixes

Procedure

1. To copy the CTLG and CTLGTB directories from a previous release of UniData, change to the udthome/sys directory from the previous release of UniData, as shown in the following example:

# cd /disk1/ud82/sys # pwd /disk1/ud82/sys 2. Copy the CTLG directory and the CTLGTB file to UniData 8.2.1: # cp -r CTLG /disk1/ud82/sys # cp -r CTLGTB /disk1/ud82/sys 3. The UniData-supplied programs must be globally cataloged. To accomplish this, start a UniData session in the udthome/sys directory and execute the INSTALLUDT command, as shown in the following example:

# cd /disk1/ud82/sys # udt UniData Release 8.2.1 Build: (6101) (c) Copyright Rocket Software, Inc. All rights reserved. Current UniData home is /disk1/ud82/. Current working directory is /disk1/ud82/sys. :INSTALLUDT Parent topic: Post-installation tasks

Handling permission fixes

If you upgraded using the udtsetup script and opted to fix permissions, you can handle the permission fixes a few different ways after the udtsetup process is complete.

About this task

Note: The fix permissions prompt is described in step 26 of Installing or upgrading UniData on UNIX using udtsetup, on page 31.

There are three configuration files stored for these permission changes in the /usr/ud82/include directory:

▪ udtpermsprev.info – Previous permissions (used on upgrades) ▪ udtpermsdiff.info – Compare results of old and new permissions (used with -lp option; upgrades only)

▪ udtpermscurr.info – Current permissions list (used with -rp and -up options) If these files are cleared/removed, permissions reset/update options will no longer function.

Procedure

▪ To display a list of the permission differences, use the udtsetup –lp command. ▪ To reset the permissions back to the values stored at installation or upgrade time, use the udtsetup –rp command. ▪ To clear the stored permission values and update them to the current values, use the udtsetup –up command.

83 Chapter 2: Installing UniData on UNIX

Parent topic: Post-installation tasks

Restoring files after a udtsetup upgrade

If you used the udtsetup script to perform an upgrade and chose to backup your existing directories, you can restore the files after the udtsetup process is complete.

About this task

Note: The backup prompt is described in step 25 of Installing or upgrading UniData on UNIX using udtsetup, on page 31.

The backup/restore options are controlled by file in /usr/ud##/include, called udtbackup.info. Do not remove this file manually if the backup files still exist. If this file is removed, the -lb, -rb, and -restore options of udtsetup are no longer available.

Note: For initial and full installations, you will need to reinstall UniData to go back to the original settings.

Procedure

▪ To list details about the tar files generated during the backup, enter udtsetup -lb or udtsetup -listbackups in the $UDTBIN directory. The top ten lines of each tar file are listed. ▪ If a critical failure occurs in your UniData environment and you need to restore a backup, enter one of the following options at the $UDTBIN directory: udtsetup -restore. ▪ udtsetup -restore: Display a prompt to confirm the restoration, then restore the backup. ▪ udtsetup -restore -force: Bypass the prompt, and restore the backup. ▪ udtsetup -restore -force -udtdiag: Bypass the prompt, run diagnosis of the system before a restore is performed, then restore the backup When the restore occurs, the existing directory paths are removed and replaced by the contents of the backup tar file. ▪ If the upgrade of UniData is good and there is no need to restore, enter udtsetup –rb to remove the tar files that were created during the backup process and the related control file. Parent topic: Post-installation tasks

Updating the VOC files

Run the system-level updatevoc command for each account after you install a new version of UniData.

The system-level updatevoc command updates the VOC file for an account. If you do not name a directory or use any options, UniData updates the VOC file in the current account and appends notes regarding changes to the vocupgrade file. UniData updates the VOC file from a master file located in udtbin/VOCUPGRADE on UniData for UNIX or udtbin\VOCUPGRADE on UniData for Windows platforms.

84 Uninstalling UniData on UNIX

For more information about this command, see UniData Commands Reference.

Syntax

updatevoc [-[A |C |I |O |N |S]] [directory]

Parameters

The following table lists the updatevoc parameters. When you use these options in combination, use the minus sign only once, preceding the first option listed (such as in updatevoc -ACI).

Parameter Description directory UniData account directory that contains the VOC file you intend to update. -A Adds new records to the VOC file in the specified directory, but does not modify existing VOC records. Does not add notes to vocupgrade on differences between the two VOC files.

Note: The -I parameter overrides the -C parameter. -C Adds new records to the VOC file in the specified directory, but does not modify existing VOC records. Does not add notes to vocupgrade on differences between the two VOC files.

Note: The -I parameter overrides the -C parameter. -I Prompts for verification before adding or modifying records to the VOC file in the specified directory. Does not add notes to vocupgrade on differences between the two VOC files. -O Overwrites existing entries in the account’s VOC without prompting for verification. Does not add notes to vocupgrade on differences between the two VOC files. -N Adds new records to the VOC file in the specified directory, but does not modify existing VOC records. Appends notes to vocupgrade on differences between the two VOC files. -S Adds new records to the VOC file in the specified directory, but does not modify existing VOC records. Suppresses the informational messages ordinarily displayed after each change.

Parent topic: Post-installation tasks Uninstalling UniData on UNIX

Complete the following steps to uninstall UniData.

Procedure

1. Stop UniData. 2. Remove the $UDTHOME path, unishared path (/.unishared location), and /usr/ud82 directory. 3. Remove uvrpc and any UDT telnet/ssl telnet lines from /etc/services or inetd/xinetd configuration files.

85 Chapter 3: Installing UniData on Windows

Install UniData on Windows platforms as a basic, advanced, concurrent, or upgrade installation. Before installing UniData on Windows, review the following sections: ▪ Operating system requirements (Windows), on page 86 ▪ Preinstallation tasks for UniData on Windows platforms, on page 86 The following sections describe the installations steps on Windows: ▪ Installing UniData on Windows, on page 88 ▪ Upgrading UniData on Windows, on page 89 Operating system requirements (Windows)

Your Windows operating system must meet certain requirements for the UniData installation. Verify that your Windows system meets the following criteria: ▪ Intel processor, 486 SX33 or better, or DEC Alpha processor configured for Windows 2000 or greater.

Tip: Consult the Microsoft website for information about hardware compatibility.

▪ At least 32MB of RAM. ▪ At least 250MB of disk space on an NTFS partition for installing the UniData system files. This requirement does not include space for your UniData database files. ▪ Windows XP or greater. ▪ TCP/IP. You must have TCP/IP installed on your Windows system if you plan to install and use UniData ODBC, the UniData Telnet Service, NFA, U2 Data Replication, or EDA.

Note: You must install UniData on NTFS partition, not a FAT partition. UniData is supported for NTFS file systems only.

Preinstallation tasks for UniData on Windows platforms

For UniData installations on Windows platforms, a number of tasks need to be completed. The basic preparatory steps for all Windows installations are: ▪ Download your UniData products. Visit https://rbc.rocketsoftware.com for the United States and Canada or https://rbcint.rocketsoftware.com if not in the United States or Canada.

▪ Assemble materials. You will need the UniData .zip file and the Product Configuration Sheet that is shipped with the UniData software. ▪ Verify system requirements. For more information, see Operating system requirements (Windows), on page 86. ▪ Understand the UniData directories. You need to determine the UniData locations for your installation. For more information, see Directory structure on UniData for Windows platforms, on page 87. ▪ Create and verify all needed backups.

86 Directory structure on UniData for Windows platforms

It is recommended that you complete a full backup of the device on which you want to install UniData before you begin installation. If you already backed up that device, verify that the backup is complete and valid. If you are upgrading, you should also perform and verify a full backup of all your UniData data files.

Warning: If you are upgrading from a previous version of UniData with RFS to UniData 8.2.1 with RFS, it is important that you create and verify a full backup of all your recoverable data files. We suggest you use only log files or archive files created under UniData 8.2.1 to recover from system or media failures that occur at UniData 8.2.1.

▪ All current users must log off. If you are upgrading on Windows, enter the listuser command to check for users logged on to UniData. If there are users in UniData, have them log off now. If listuser does not list any UniData users, you can proceed with the installation. In the following example, no users are logged on, and the installation can safely proceed:

# listuser Licensed/Effective # of Users Udt Sql Total 32 / 32 0 0 0 UDTNO USRNBR UID USRNAME USRTYPE TTY TIME DATE #

Directory structure on UniData for Windows platforms

When you use the basic installation instructions, all these directories are under \U2\ud82 and have the default names. The advanced and other installation processes allow you to specify other names for some directories:

Default directory Description \U2\ud82 or udthome By default, contains the bin, demo, include, sys, odbc, NTMIGRATE, master, and udtmon subdirectories. Can contain other subdirectories. This important directory can have any valid directory name. For that reason, this publication sometimes refers to it as udthome. \U2\ud82\bin or udtbin Contains the UniData binary (executable) files. The directory does not have to be in udthome, and it can have any name. In this document, it is sometimes referred to as udtbin. \U2\ud82\demo A demonstration account created by default in udthome\demo; can orudthome\demo be moved, removed, or renamed any time after installation. \U2\ud82\sys or Contains UniData compiled programs provided with UniData, udthome\sys including the Alternative Editor (AE), and files used by AE. Also contains the default global catalog, which includes globally cataloged UniBasic object code. This directory also contains the master VOC file for your installation, and other system files such as the error message files. This directory must reside under the udthome directory. \U2\ud82\odbc or Contains the charsets and locales directories. udthome\odbc \U2\unishared Contains information necessary for the unirpc service.

87 Chapter 3: Installing UniData on Windows

Installing UniData on Windows

Follow the steps in this section for basic, advanced, and concurrent installations.

Prerequisites You must log on with Administrator privileges to install UniData. Either log on to the Administrator account on the Windows system, or log on as a member of the local Administrators group. Review the following sections before you begin this procedure. ▪ Operating system requirements (Windows), on page 86 ▪ Preinstallation tasks for UniData on Windows platforms, on page 86 If you are already using a Telnet service or a serial terminal support service from another vendor, and you want to install UniData’s Telnet or serial terminal support services, you must stop your existing services before you proceed with the UniData installation. Use either the Control Panel or vendor documentation to disable your previously-installed Telnet/serial terminal support services before proceeding. For the Telnet service, it is sufficient to ensure that both UniData and the other Telnet service do not use the same TCP ports. By default UniData uses ports 23, 992, and 31438 for its various services.

Warning: After the installation is complete, you cannot run UniData’s Telnet Service or UniData’s Serial Terminal Support Service at the same time as other Telnet or Serial terminal support services. You must stop these services whenever you want to use the ones you previously installed.

About this task The installation wizard will prompt you to select which features you want to install. Do not install the UniData Telnet Service or the UniData Serial Terminal Support Service if there is a Telnet service or serial terminal support service from another vendor currently running on your Windows system. Exit the installation, stop any such services, and restart the installation process.

Procedure

1. Download the installation image and start the AutoRun.exe program. 2. Click Install Rocket UniData 64-bit, and follow the steps in the wizard to complete the installation.

Remember: When you are prompted to enter license details, remember to use the information from the Software Product Configuration sheet. If your license number is 12345678-UDT, enter 12345678 without the -UDT extension.

3. At the end of the wizard, you can choose to authorize UniData now or later. For more information, see Licensing UniData on Windows, on page 91. 4. If you are using XML, you must set your library path. The following table shows the library path environment variables by platform:

Platform Library path environment variables Windows platforms PATH=$PATH:$UDTBIN

88 Upgrading UniData on Windows

Results You can now start UniData by selecting All Programs → Rocket U2 → UniData RDBMS 8.2.1.

Next step See Post-installation tasks, on page 91 for more information about tasks such as licensing UniData and restoring a backup. Upgrading UniData on Windows

Install as an upgrade or patch installation if you are upgrading to UniData 8.2.1 from a previous version of UniData or patching a previous version of UniData.

Prerequisites You must log on with Administrator privileges to install UniData. Either log on to the Administrator account on the Windows system, or log on as a member of the local Administrators group. Review the following sections before you begin this procedure. ▪ Operating system requirements (Windows), on page 86 ▪ Preinstallation tasks for UniData on Windows platforms, on page 86 If you are already using a Telnet service or a serial terminal support service from another vendor, and you want to install UniData’s Telnet or serial terminal support services, you must stop your existing services before you proceed with the UniData installation. Use either the Control Panel or vendor documentation to disable your previously-installed Telnet/serial terminal support services before proceeding. For the Telnet service, it is sufficient to ensure that both UniData and the other Telnet service do not use the same TCP ports. By default UniData uses ports 23, 992, and 31438 for its various services.

Warning: After the installation is complete, you cannot run UniData’s Telnet Service or UniData’s Serial Terminal Support Service at the same time as other Telnet or Serial terminal support services. You must stop these services whenever you want to use the ones you previously installed.

About this task When you upgrade your UniData product set, you might lose certain configuration information you have defined, because the upgrade overwrites existing values. You might lose: ▪ UDTelnet configuration settings (but not user profiles) ▪ UDSerial configuration settings

▪ UniData configuration parameters from the udtconfig file (UDTHOME\include\udtconfig) ▪ ODBC server and database definitions ▪ unirpcservices customization

Note: You do not need to stop any UniData services (for instance, the Telnet or serial services) before an upgrade installation. The installation routine prompts you to decide to upgrade these.

Procedure

1. Ensure all users are logged off. Again, see Preinstallation tasks for UniData on Windows platforms, on page 86 before beginning this procedure for more information.

89 Chapter 3: Installing UniData on Windows

2. Use the stopud command to place UniData in the “non-runnable” state and prevent users from logging on during the installation process. 3. Download the installation image and start the AutoRun.exe program. 4. Click Install Rocket UniData 64-bit, and follow the steps in the wizard to complete the installation.

Note: If you are upgrading your UniData version and you have created indexes on any of the data files that get installed in the UniData demo account (for instance, CLIENTS), you will encounter problems if you select Demo Account on the Select Features page when you upgrade. The files and indexes will not be synchronized, and any attempt to use your indexes will fail. To prevent these problems, either refrain from upgrading the demo database or remove all the indexes (with the DELETE.INDEX command) and re-create them after the upgrade.

When the installation process prompts for the directory where you want to install UniData, enter the path to the directory installed on your PC that you want to update. Starting with UniData 8.1, when upgrading through the wizard on Windows, you can back up the current installation. If upgrading UniData into an existing UniData path, a question appears asking if you want to back up your directory. Click Yes to enter the back up location; otherwise, click No and proceed through the wizard. If you have one or more UniData home directories and you want to update the global catalog to reflect changes in the programs released by UniData, from the MS-DOS command prompt, change your current directory to the appropriate alternate UniData home directory, and then execute the updatesys command. Perform this procedure for each alternate UniData home directory you want to update. For information about the updatesys command, see the UniData Commands Reference.

Warning: Do not set your UDTHOME environment variable to the UniData home you want to upgrade.

Remember: When you are prompted to enter license details, remember to use the information from the Software Product Configuration sheet. If your license number is 12345678-UDT, enter 12345678 without the -UDT extension.

5. At the end of the wizard, you can choose to authorize UniData now or later. For more information, see Licensing UniData on Windows, on page 91. 6. If you are using XML, you must set your library path. The following table shows the library path environment variables by platform:

Platform Library path environment variables Windows platforms PATH=$PATH:$UDTBIN

7. Execute the startud command at the MS-DOS command prompt to set UniData to a runnable state.

Next step See Post-installation tasks, on page 91 for more information about tasks such as licensing UniData and restoring a backup.

90 Post-installation tasks

Post-installation tasks

During the installation or upgrade, you might have chosen to do some configuration steps after installation. The following sections describe these tasks:

• Licensing UniData on Windows Use the XAdmin License tool to authorize UniData. Alternatively, you can use the confprod utility. See information in Step 1. • Obtaining an authorization code After updating all of the license information, you must obtain an authorization code. You must authorize UniData within 10 days of installation. • Restoring a backup Starting with UniData 8.1, when upgrading through the wizard on Windows, you can back up the current installation. If upgrading UniData into an existing UniData path, a question appears asking if you want to back up your directory.

Licensing UniData on Windows

Use the XAdmin License tool to authorize UniData. Alternatively, you can use the confprod utility. See information in Step 1.

Procedure

1. To access the License tool in XAdmin, open XAdmin and then double-click the server you want to use. The server starts. The Admin Tasks view opens and displays the database type that you are using.

If you do not want to use XAdmin, you can authorize UniData by double-clicking confprod.exe in the UniData bin directory. The UniData Configuration and Licensing Utility window is displayed, where you can enter the pertinent information as described in the following steps. The steps in this procedure describe the XAdmin user interface, but the information you must enter in confprod is the same.

91 Chapter 3: Installing UniData on Windows

2. From the Admin Tasks pane, double-click License. The License tab opens, as shown in the following example:

3. Click the Update tab, and in the Serial Number field, enter the UniData serial number. 4. In the UniData RDBMS User Limit field, enter the number of users for which you are licensed. 5. In the Connection Pooling field, enter the number of connection pooling licenses. If you are not licensed for any connection pools, enter 0. 6. In the Device License field, enter the number of device licenses for which you are authorized. 7. Select the check boxes for any of the applicable features you are running: ▪ NFA ▪ RFS ▪ EDA ▪ AUDIT ▪ SUBKEY ▪ PY 8. In the Expiration Date field, update the expiration date of the license if necessary. 9. If you have not yet authorized UniVerse, click the Authorize tab, and enter the code in the Authorization Code field. See Obtaining an authorization code, on page 92. Parent topic: Post-installation tasks

Obtaining an authorization code

After updating all of the license information, you must obtain an authorization code. You must authorize UniData within 10 days of installation. 1. In XAdmin, from the Admin Tasks view, double-click Licenses, and then click Authorize. 2. Copy the configuration code shown in the Configuration Code field.

92 Restoring a backup

3. Go to the Rocket Authorization page, listed below, and follow the instructions on the website to obtain and copy the authorization code. ▪ US: https://rbc.rocketsoftware.com/authprod.asp?js=y ▪ International: https://rbcint.rocketsoftware.com/authprod.asp?js=y 4. Paste the authorization code into the Authorization Code field. Parent topic: Post-installation tasks

Restoring a backup

Starting with UniData 8.1, when upgrading through the wizard on Windows, you can back up the current installation. If upgrading UniData into an existing UniData path, a question appears asking if you want to back up your directory. If you used the backup functionality during the installation, restore by using the following steps.

1. In the $UDTHOME\backups\ud_version directory (path given in the backup screen), open the UDRestore.exe file. The installation wizard opens. Click Next. 2. On the Choose Restore Location page of the wizard, verify the backup location is correct and click Next, then proceed through the wizard. See Upgrading UniData on Windows, on page 89 if necessary to complete the wizard. Parent topic: Post-installation tasks Uninstalling UniData on Windows

Complete the following steps to uninstall UniData. 1. Stop all UniData services, including UniRPC. 2. Uninstall UniData through the Windows control panel. 3. Remove the UniData home and UniShared paths at the operating-system level.

93 Chapter 4: Upgrading UniData and U2 Data Replication

Beginning at 8.1.1, the U2 Data Replication protocol changed. These changes require that if you are upgrading from one version of UniData to another version of UniData where the replication protocol level, sub-protocol level, or replication log file versions have changed, the following steps must be completed: 1. Ensure the subscribing server has received and applied all the updates from the publisher server before commencing the upgrade. 2. Perform a controlled shut down of UniData on both the publisher and subscriber (i.e. do not use stopud –f) 3. Upgrade the publishing server first and choose not to start UniData after the upgrade. 4. Clear the contents of the directory as specified by the configurable REP_LOG_PATH in udtconfig. a. Note if you are using UniData 7.3 and above, please also delete the .udrepsyslog file from the /usr/udnn/include directory on UNIX and $UDTHOME\INCLUDE on Windows 5. You can now start UniData on the publishing server. 6. Repeat Steps 3 to 5 for the subscribing server.

94 Appendix A: Troubleshooting and more

This section describes the cause of problems commonly encountered during the UniData installation. It also describes further information about the UNIX installation scripts that you might be useful. Problem: Installation completes, but UniData does not start

In this case, you will not see the normal message at the end of the installation.

Solution These failures are usually related to a UniData configuration parameter or a UNIX kernel parameter. Check the smm.errlog file located in udtbin. The most common adjustments are:

N_PUT This UniData configuration parameter, which controls the size of the system buffer for RFS, has a default value of 8192. You may have to decrease it to 4096, depending on the size of shmmax * shmseg. If this result is greater than 8 MG, you will have to adjust N_PUT. N_TMQ and N_PGQ These UniData configuration parameters are numbers of UNIX message queues created for communication between user processes and the Recoverable File System. By default, each parameter is set to one queue for every four users. Add these to the number of message queues required by the UniData lock control process (one queue for every five users), plus ten queues for the other UniData daemons, and adjust the UNIX kernel parameter msgmni (number of message queues on your system) accordingly. If you cannot increase msgmni, temporarily reduce N_TMQ and N_PGQ until the kernel can be rebuilt. Problem: The smm.errlog contains a message about semaphores

The smm.errlog file contains a message similar to Exit: smm: cannot allocate semaphore for udtno xx errno xx Exit: SMM can’t setup Control Table List.

Solution The number of semaphores available system-wide is not adequate for the number of users on your system. Increase the kernel parameter defining the number of semaphores available system-wide, normally semmns, to at least NUSERS + 10. If you cannot rebuild the kernel, you must decrease the NUSERS parameter in the udtconfig file, located in /usr/ud82/include, until the kernel can be rebuilt. Problem: Ranlib command error

A message similar to the following is displayed during installation: Warning: As the ‘ranlib’ command is not available for this system, UniData libraries will not be ready for rebuilding udt. The utilities makeudt and makesvr will not work.

95 Appendix A: Troubleshooting and more

Solution This occurs on an AIX system that has not had the Application Development Toolkit installed. This is not a problem unless your application requires C routines that need to be linked into UniData. This linking process (makeudt) requires other utilities from this toolkit as well. If you don’t need to link C routines, ignore these messages. If you need to link C routines, install the AIX Toolkit and rerun udtinstall. UniData uses the Visual Age Compiler on AIX not the GNU (gcc) compiler.

Note: If you answered the last prompt in udtinstall with exit, you will need to reload your UniData tape first.

Problem: Shared memory segment size error

Shared memory problems when editing large items with the Alternative Editor (AE). An example of a shared memory error is: Error when creating a shared memory segment size=1440416), errno=22.

Solution If you experience shared memory errors, see Administering UniData on Windows and UNIX or Administering UniData on Windows Platforms for information on shared memory configuration parameters. Problem: udtsetup fails for an account that has a LOGIN paragraph

Toward the end of the udtsetup script UniData is started for either licensing or custom commands. A variable is set in the script called UDTSETUP and set to a value of 1. If commands are run in a UniData account that includes a LOGIN paragraph that prompt for input, the process will fail to complete.

Solution You must modify your LOGIN paragraph to check for this environment variable. There is no functionality in the product to bypass login paragraphs. One way to check for this variable is to set the LOGIN record in the UniData account to include code. For example:

PA RUN BP CHECK.FOR.UDTSETUP IF @USER.RETURN.CODE = “1” THEN GO DONE DISPLAY “DO REMAINING STEPS HERE” DONE: *

Create a CHECK.FOR.UDTSETUP program to do the following: IS.UDTSETUP = GETENV(“UDTSETUP”) IF IS.UDTSETUP THEN @USER.RETURN.CODE = “1” Question: How do I configure a language group?

If you are running a language group other than 1, and want to use the udtsetup script to install on UNIX, you need to run the udtlangconfig command to configure the language group.

96 Full parameter list

Solution

Convmark runs on the $UDTHOME/sys/VOC file. If the language group for that file does not match UDT_LANGGRP in udtconfig, then the updatevoc and srchacct commands are skipped. If using a custom commands list and using the updatevoc feature, these VOC files are also checked for the correct language group. If they do not match, then updatevoc for each custom account is skipped. Run the udtlangconfig command to configure the language group as needed. Full parameter list

The following list is from the initial list of parameters that are supported in udtsetup. The meanings of some parameters have changed from their use in udtinstall and updatesys. These parameter groups are sorted in alphabetic order, not in the order of the script. The parameters are case-sensitive. It is best to perform an installation or upgrade to generate a list of parameters rather creating a parameter file manually.

Prompted parameters

These are parameters are prompted for during the installation/upgrade script.

Parameter Description Backup Ask to backup UDT first (was used in old scripts but is drastically different) BackupDir Backup directory location (path or 'parent') BackupPrefix Tar file prefix to use (like 20140422_) CheckBinInstall Installs only, continue if $UDTBIN exists already CheckHomeInstall Installs only, continue if $UDTHOME/sys exists already CheckLang Prompt to continue if LANG env setting is not set to 'C' CheckPerms Check permissions on upgrades CheckRestore Validation prompt Confirm Continue installation after validating prompt answers ConfpdWithWeb Yes/No flag, if used 'C' option on ConfProduct, then asks user if they want to authorize via web (and currently not authorized). ConfProduct 'N' (No), 'C' (confprod) or 'W' (Web authorization/RBC Call) or 'CW' (Confprod and if unauthorized make call to web authorization, prompts only for RBC required info) FixPerms Upgrades only, fixes permissions on files that existed prior upgrade Group Group ownership of bin directory files LibDir UniData lib directory LicAgree Prompt asking use if they agree to the licensing agreement LogDir UniData log directory (not for UDT 8.1 logging) OldBIN Old UniData Bin directory (used to move UDTBIN to new path or for TransMEK functionality) OldHOME Previous UDT Home directory (New prompt) OverWrite For upgrades, overwrite WorkDir directory PreviousVer For upgrades, previous version to upgrade REPflag Enable Replication REPsysid Replication System ID (defaults to hostname_version)

97 Appendix A: Troubleshooting and more

Parameter Description RFSflag Enable RFS SaveDir Prompt asking if you want to delete/keep the $UDTBIN directories: include, lib, work and demo Serial Serial/License number (prompted even if not using Confprod/Web Authorization, see next section for more details) SkipFailedBackup Skips backup if directory path is invalid and continues installation/upgrade Startud Start UniData at and of installation/upgrade StopRPC Question to stop UniRPC before continuing (comes into play if unishared sharedby file has more than one line of db versions listed) StopSys Question to stop UDT before continuing TransMEK Transfer ADE master key UdtBin UniData bin directory UdtHome UniData home directory UnisharedDir Unishared directory Upgrade If Yes, then upgrade is done, if No Concurrent install is done (is not used if Upgrading to same Major version) WorkDir UniData work directory

Prompted parameters – authorization

Parameter Description LicConfirm Summary of Inputs for licensing’ confirmation prompt LicEDAExternal Database Access (EDA): Y/N LicExpiryDateExpiration Date: Today or greater, permanent license date is ‘01/01/4000’. LicNFANetwork File Access (NFA): Y/N LicNumCPNumber of Connection Pooling Licenses: 0 or higher LicNumDLNumber of Device Licensing: 0 to 10. If Server Edition a special add-on license is needed in the records otherwise set this to 10 LicNumUserNumber of Database Licenses/Users: 1 or higher (see seasonal users info below) LicRFSRecoverable File System (RFS): Y/N LicSubkey licensing flag (UDT 8.1+) LicVersionVersion being authorized (has to match version in RBC records) Serial Serial/License Number: 8 digit license number in U2 Business Connect records, it may include the –UDT suffix

Prompted parameters – authorization – RBC contact details

Parameter Description LicCompany Your company (or person doing authorization) LicContact The person performing authorization/licensing request LicEmail The contact’s email address (this does require a ‘@’ in the value) LicReason A reason for performing the authorization request

98 CLO parameters

Parameter Description LicSeasonal Y/N flag to tell website that seasonal users are in use. The base user count [LicNumUsers] will need to be adjusted by the user if this flag is enabled. There is no auto-update feature.

CLO parameters

Parameter Description CheckDebugFiles Checks existing installation for .d files and if found, after the upgrade the same .d files will be used CustomDir Custom directory that contains config/tar files to use HushSystest Disable screen display of systest output (default is No) KeepTemp Keeps temp files at end of script (default is No) KeepUdtSetup Keeps udtsetup script in current directory at end (default is to remove unless it is in $UDTBIN) KeepURI Keeps files downloaded via the uri process (default is No) LogLevel Log level (1 to 10, 1 is default) ShowBuild Shows build number URI URI site to use

Prompted and command line options parameters

Parameter Description ScriptVersion Major UDT version to use (with -udt option, or from port.note) TarFile Location of tar file to use (default is bin.tar in local directory)

99