Administration Guide - Supra
Transcription
Administration Guide - Supra
SQL ACCESS FOR SUPRA SERVER PDM® Administration Guide P25-9501-04 SQL Access for SUPRA Server PDM® Administration Guide Publication Number P25-9501-04 © 2006, 2007, 2009, 2011 Cincom Systems, Inc. All Rights Reserved This document contains unpublished, confidential, and proprietary information of Cincom. No disclosure or use of any portion of the contents of these materials may be made without the express written consent of Cincom. See http://www.cincom.com/legal/terms.html for a list of Cincom trademarks and other trademarks that may appear in Cincom product documentation. All other trademarks are trademarks or registered trademarks of their respective companies. Cincom Systems, Inc. 55 Merchant Street Cincinnati, Ohio 45246-3732 USA PHONE: (513) 612-2300 FAX: (513) 612-2000 WORLD WIDE WEB: http://www.cincom.com Attention: Some Cincom products, programs, or services referred to in this publication may not be available in all countries in which Cincom does business. Additionally, some Cincom products, programs, or services may not be available for all operating systems or all product releases. Contact your Cincom representative to be certain the items are available to you. Release information for this manual SQL Access for SUPRA Server PDM Administration Guide, P25-9501-04, is dated September 1, 2011. This document supports Release 2.0 of SQL Access for SUPRA Server PDM. Cincom Technical Support for SQL Access for SUPRA Server PDM All customers Web: http://supportweb.cincom.com U.S.A customers Phone: 1-800-727-3525 Fax: (513) 612-2000 Attn: SQL Access for SUPRA Server PDM Support Mail: Cincom Systems, Inc. Attn: SQL Access for SUPRA Server PDM Support 55 Merchant Street Cincinnati, OH 45246-3732 USA All: Visit the support links at http://www.cincom.com to find contact information for your nearest Customer Service Center. Outside of U.S.A. Using this manual $ORDB refers to the directory identified by the ORDB environment variable. This will be set to the installation directory. This document may use both UNIX ($ORDB/..) and Windows (%ORDB%\..) notations. Please adjust the environment variable and slashes accordingly for your platform. Contents 1. Overview of SQL Access for SUPRA Server PDM ............................... 11 Overview .................................................................................................. 11 2. Starting/stopping SQL Access for SUPRA Server PDM......................... 14 Starting SQL Access for SUPRA Server PDM components .......................................... 14 Starting the MVS CID Adapter Server ............................................................ 14 Starting the MVS CICS CID Adapter Server ...................................................... 14 Starting the OpenVMS CID Adapter Server...................................................... 15 Starting the UNIX CID Adapter Server ........................................................... 16 Testing the CID Adapter Server connection .................................................... 17 Starting the SQL Access Server on Windows ................................................... 18 Starting the SQL Access Server on UNIX ........................................................ 18 Shutting down SQL Access components .............................................................. 19 Shutting down the SQL Access Server on UNIX................................................. 19 Shutting down a CID Adapter Server ............................................................ 20 Controlling the start and shut down of the CID Adapter Client .................................. 22 Starting the CID Adapter Client .................................................................. 22 Controlling the CID Adapter Client .............................................................. 23 Startfdb utility ...................................................................................... 24 Stopfdb utility ...................................................................................... 25 3. Managing a CID Foreign Database................................................. 27 Overview .................................................................................................. 27 Registering a CID Foreign Database .................................................................. 29 Creating foreign tables ................................................................................. 30 Attributes and their domains ..................................................................... 32 Foreign table query specification ................................................................ 33 Definition of domain information ................................................................ 35 Data type mapping ................................................................................. 36 Data modeling considerations ......................................................................... 38 Using a script to register a CID Foreign Database .................................................. 40 REGISTER CID DATABASE statement ............................................................. 40 Altering the registration of a CID Foreign Database ............................................... 42 Altering a foreign table ................................................................................ 43 Adding an attribute ................................................................................ 45 Adding a new query specification ............................................................... 46 Changing an attribute definition ................................................................. 47 Administration Guide, P25-9501-04 Contents 4 Changing the query specification ................................................................ 48 Dropping an attribute.............................................................................. 50 Dropping a query specification ................................................................... 51 Renaming an attribute............................................................................. 52 Deleting/Dropping CID Foreign Database entities.................................................. 53 Dropping the registration of a CID Foreign Database ......................................... 54 Dropping foreign tables ........................................................................... 55 Joining foreign tables................................................................................... 56 Creating a view .......................................................................................... 57 Security and Authorization ............................................................................ 60 Access privileges ........................................................................................ 61 Authorizing access to a foreign table ................................................................ 62 Users.................................................................................................. 62 Granting authorization/privileges to users ..................................................... 63 Revoking authorization/privileges .................................................................... 66 User overview ............................................................................................ 68 Adding users .............................................................................................. 69 add_user method ................................................................................... 69 Groups and members .............................................................................. 70 User definition file ................................................................................. 71 Deleting users ............................................................................................ 73 Dropping a user ..................................................................................... 73 Dropping a member ................................................................................ 73 Renaming the DBA and PUBLIC users ................................................................. 74 Renaming the DBA .................................................................................. 74 Renaming the PUBLIC user ........................................................................ 74 Authorization classes in the SQL Access Server .................................................... 75 db_user class ........................................................................................ 75 db_authorizations class............................................................................ 76 Calling authorization methods ................................................................... 77 Authorization methods ............................................................................ 78 Transaction recovery ................................................................................... 83 PDM Locking considerations ........................................................................... 84 Statistics considerations ............................................................................... 85 4. Tailoring the CID Adapter Server ................................................. 88 Overview .................................................................................................. 88 Accessing VSAM Files .................................................................................... 90 Tailoring the MVS CID Adapter Server ................................................................ 91 Defining the MVS CID Adapter Server JCL ...................................................... 92 Defining the MVS CID Adapter Server CSV1SHUT JCL ......................................... 95 Defining the MVS CID Adapter Server CSV1PING JCL .......................................... 96 Defining the MVS CID Adapter Server CSV1PORT JCL ......................................... 97 Defining the MVS and CICS initialization parameters ......................................... 98 CID Adapter Server init file parameters (MVS and CICS) ..................................... 99 Coding the optional user logon exit (MVS) .................................................... 111 Administration Guide, P25-9501-04 Contents 5 Creating an additional MVS CID Adapter Server .............................................. 113 Tailoring the MVS CICS CID Adapter Server ........................................................ 114 Defining the MVS CICS initialization file parameters ........................................ 114 Updating the SUPRA PDM or VSAM CICS environment and JCL for the Adapter Server . 115 Defining the CICS CID Adapter Server CSV1PING and CSV1PORTJCL ..................... 117 Creating an additional CICS CID Adapter Server .............................................. 117 Tailoring the OpenVMS CID Adapter Server ........................................................ 118 Authorizing OpenVMS Privileges................................................................. 118 Running the S1_ADAPTER_SETUP.COM command file ....................................... 119 Defining CID Adapter Server logical names.................................................... 123 Defining and enabling a TCP/IP service through UCX (OpenVMS) ......................... 126 Defining the CID Adapter Server/CID Adapter Coordinator startup procedure (OpenVMS)127 Defining the initialization parameters (OpenVMS) ........................................... 130 Server init file parameters (OpenVMS) ......................................................... 131 Coding the optional user logon exit (OpenVMS) .............................................. 140 Tailoring the UNIX CID Adapter Server .............................................................. 142 Defining SUPRA PDM environment variables and logical names ............................ 142 Defining CID Adapter Server environment variables ......................................... 143 Running the s1_adapter_setup script .......................................................... 143 Defining TCP/IP to UNIX .......................................................................... 147 Defining the CID Adapter Server startup procedure (UNIX)................................. 148 Defining the initialization parameters (UNIX) ................................................ 149 Server init file parameters (UNIX) .............................................................. 150 Coding the optional user logon exit (UNIX) ................................................... 158 5. Tailoring the CID Adapter Client ................................................. 160 Overview ................................................................................................. 160 Tailoring the Windows CID Adapter Client component ........................................... 161 Defining parameter values ....................................................................... 162 Defining parameter values for a specific PDM database .................................... 162 Summary of CID Adapter Client component parameters .................................... 163 Tailoring the UNIX CID Adapter Client component ................................................ 170 Defining parameter values for the installation ............................................... 171 Defining parameter values for a specific database .......................................... 171 Summary of CID Adapter Client component parameters .................................... 173 CID Adapter NO-TRACE executable binaries ....................................................... 183 Windows CID Adapter Client component ...................................................... 183 UNIX CID Adapter Client component ........................................................... 184 MVS CID Adapter Server component ............................................................ 184 UNIX CID Adapter Server component ........................................................... 184 OpenVMS CID Adapter Server component ..................................................... 185 Administration Guide, P25-9501-04 Contents 6 6. Cincom ORDB Visual Administration Tool ...................................... 187 Overview ................................................................................................. 187 System requirements ............................................................................. 187 Starting the Visual Administration Tool............................................................. 188 Connecting to a database host ....................................................................... 189 Disconnecting from a database ...................................................................... 192 Starting and stopping SQL Access Servers .......................................................... 193 Viewing SQL Access Servers........................................................................... 194 View all SQL Access Servers ..................................................................... 194 View running SQL Access Server ................................................................ 195 View status for a SQL Access Server ............................................................ 196 Viewing Client Settings ................................................................................ 197 View Server Settings ................................................................................... 200 Database Security ...................................................................................... 202 DBA Logon ............................................................................................... 204 ORDBINIT Management ................................................................................ 205 SUPRA INI file Management ........................................................................... 208 Displaying SQL Access Server transactions ......................................................... 211 Killing SQL Access Server transactions .............................................................. 212 Displaying transaction lock information ............................................................ 213 Displaying SQL Access Server lock information .................................................... 214 Displaying SQL Access Server volumes .............................................................. 215 To display volumes: ............................................................................... 215 Displaying and starting CID Foreign Databases .................................................... 217 Starting CID Foreign Databases.................................................................. 217 Viewing CID Foreign Databases .................................................................. 217 SQL Access Server location file ...................................................................... 218 Maintaining a SQL Access Server ..................................................................... 219 Adding a volume ................................................................................... 220 Checking SQL Access Server consistency ...................................................... 222 Copying a SQL Access Server .................................................................... 224 Creating a SQL Access Server .................................................................... 229 Deleting a SQL Access Server .................................................................... 233 Loading a SQL Access Server ..................................................................... 234 Moving a SQL Access Server ...................................................................... 238 Renaming a SQL Access Server .................................................................. 241 Unloading a SQL Access Server .................................................................. 243 7. Utilities ............................................................................... 247 Overview ................................................................................................. 247 Foreign Table Generator .............................................................................. 248 Executing the Foreign Table Generator ....................................................... 249 createdb ................................................................................................. 251 Syntax ............................................................................................... 251 Return values ...................................................................................... 251 Administration Guide, P25-9501-04 Contents 7 Options .............................................................................................. 252 Choosing a locale and character set ........................................................... 257 SQL Access Server location file.................................................................. 259 User definition file ................................................................................ 261 addvoldb ................................................................................................. 263 Syntax ............................................................................................... 263 Options .............................................................................................. 264 loaddb .................................................................................................... 266 Loading the schema file .......................................................................... 266 Syntax ............................................................................................... 267 Return values ...................................................................................... 267 Options .............................................................................................. 268 Input file format ................................................................................... 270 Object references ................................................................................. 275 Using a CLASS method to populate a class .................................................... 279 unloaddb ................................................................................................. 281 Syntax ............................................................................................... 282 Return values ...................................................................................... 282 Options .............................................................................................. 282 copydb ................................................................................................... 285 Syntax ............................................................................................... 285 Return values ...................................................................................... 286 Options .............................................................................................. 286 Example ............................................................................................. 288 deletedb ................................................................................................. 290 Syntax ............................................................................................... 290 Return values ...................................................................................... 290 Options .............................................................................................. 291 renamedb ................................................................................................ 292 Syntax ............................................................................................... 292 Return values ...................................................................................... 292 Options .............................................................................................. 293 Displaying the SQL Access release version ......................................................... 295 Syntax ............................................................................................... 295 Example ............................................................................................. 295 checkdb .................................................................................................. 296 Syntax ............................................................................................... 296 Return values ...................................................................................... 296 Options .............................................................................................. 297 Example output .................................................................................... 298 Password maintenance ................................................................................ 299 Syntax ............................................................................................... 299 Return values ...................................................................................... 299 Options .............................................................................................. 299 Processing when no options are specified ..................................................... 301 Administration Guide, P25-9501-04 Contents 8 8. Controlling SQL Access for SUPRA Server PDM processes .................. 302 Programs to start or shut down the SQL Access Server .......................................... 302 The SQL Access Master program ................................................................ 305 The SQL Access Server program ................................................................. 306 The commdb utility ............................................................................... 307 Checking the status of the SQL Access Master and connected SQL Access Servers .......... 315 Syntax ............................................................................................... 315 Options .............................................................................................. 315 Killing a transaction.................................................................................... 316 Syntax ............................................................................................... 316 Return values ...................................................................................... 316 Options .............................................................................................. 317 Examples ............................................................................................ 318 9. SQL Access for SUPRA Server PDM system parameters ..................... 320 Summary of SQL Access system parameters ....................................................... 322 Displaying parameter values currently in effect .................................................. 325 Syntax for parameters ................................................................................. 326 Standalone parameters ................................................................................ 327 SQL Access Server parameters ....................................................................... 328 Parameters related to error messages ......................................................... 328 Parameters related to memory space .......................................................... 330 Parameters related to disk storage ............................................................. 331 Parameters related to recovery/logging....................................................... 333 Parameters related to concurrency/locking .................................................. 339 Parameter related to threads ................................................................... 343 Parameters related to communication services .............................................. 343 Parameters related to SQL Access Client requests on the SQL Access Server ........... 345 Parameter related to the query cache......................................................... 345 Parameters related to SQL Access Server file based objects ............................... 346 SQL Access Client parameters ........................................................................ 347 Parameters related to connecting to SQL Access Server .................................... 347 Parameters related to workspace memory .................................................... 348 Parameters related to query services .......................................................... 349 Parameters related to quitting/disconnecting from applications ......................... 353 Utility parameter ....................................................................................... 354 Foreign Database parameter ......................................................................... 355 Data validation parameters ........................................................................... 356 Administration Guide, P25-9501-04 Contents 9 A. Advanced Topics .................................................................... 357 Sample foreign tables for the MVS Burrys PDM database ........................................ 357 Sample foreign tables for the OpenVMS and UNIX Burrys PDM database ...................... 364 Extending the CID Adapter Schema ................................................................. 371 File................................................................................................... 374 Field ................................................................................................. 376 Foreign_key ........................................................................................ 386 Access_method .................................................................................... 388 File Example ....................................................................................... 391 View ................................................................................................. 393 Access ............................................................................................... 394 View example ...................................................................................... 400 COPY2XML COBOL copybook tool .................................................................... 404 Example ............................................................................................. 408 Modifying the ASCII/EBCDIC translation tables .................................................... 412 EBCDIC to ASCII default translation table ..................................................... 413 ASCII to EBCDIC default translation table ..................................................... 414 B. S1_ADAPTER_SETUP ............................................................... 415 OpenVMS ................................................................................................. 415 UNIX ...................................................................................................... 418 Index ...................................................................................... 421 Administration Guide, P25-9501-04 Contents 10 1. Overview of SQL Access for SUPRA Server PDM Overview SQL Access for SUPRA Server PDM (SQL Access) enables dynamic access to your PDM and/or CICS VSAM data in real time using ODBC, JDBC, or OLE DB interfaces. There is no need to extract the data and transform it into a relational database and write custom code. SQL Access allows you to easily access your PDM and/or CICS VSAM data using ODBC, JDBC, or OLE DB client applications. The SUPRA Server PDM supports a virtually infinite number of data models because of the flexibility of its data structures (record codes, linkpaths, etc.). SQL Access provides the flexibility and power to allow relational SQL access to these PDM data models. SQL Access makes use of the linkpaths, indices, and control keys, where applicable, to develop optimal access strategies. SQL Access can access KSDS, ESDS and RRDS VSAM files using a primary key or an alternate index when appropriate. These CICS VSAM files may be joined to each other or to CICS SUPRA Server PDM files. Update commands are available for KSDS and ESDS files, and delete commands are available for KSDS files. Additional components are also available for XML and XMLDB interfaces, as well as providing a distributed multidatabase environment for other ODBC-compliant databases. Contact your local Cincom representative for details about these additional components. In SQL Access the metadata for the fields in a PDM or CICS VSAM file are mapped into an entity called a foreign table and stored in the SQL Access Server. The foreign table definitions are made available to the client application. SQL Access will optimize based on the information retrieved from the PDM directory (linkpaths, indices and control keys) or based on available CICS VSAM primary key and alternate indices. It is important to note that the PDM and VSAM data is not copied into the SQL Access Server; the SQL Access Client application has direct access to live PDM and VSAM data. Administration Guide, P25-9501-04 Chapter: 1. Overview of SQL Access for SUPRA Server PDM Section: Overview 11 The following diagram shows the communication flow of SQL Access: TCP/IP - Client application - SQL Access for SUPRA Server PDM Client - SQL Access for SUPRA Server PDM Server - PDM Adapter Client - SUPRA Server PDM Database - PDM Adapter Server 1. The client application sends an SQL request. The SQL Access Client sends the request to the SQL Access Server. 2. The SQL Access Master, SQL Access Server and the Cincom Integrated Data (CID) Adapter Client reside on the SQL Access Server machine. The SQL Access Master manages connections to the SQL Access Server and starts SQL Access Servers and CID Adapter Clients as necessary. The SQL Access Server performs transaction management and sends the SQL request to the CID Adapter Client. 3. The CID Adapter Client translates the SQL request using the maps (foreign tables) stored in the SQL Access Server and sends it to the CID Adapter Server. 4. PDM The CID Adapter Server performs query optimization and joining and sends the individual PDM commands to the SUPRA Server PDM Database. VSAM The CID Adapter Server performs query optimization and joining and sends the VSAM file requests to the VSAM Access Module. This in turn sends the individual CICS VSAM requests to CICS for each VSAM file. 5. The SUPRA Server PDM Database or CICS VSAM executes each command and sends the results back to the CID Adapter Server. 6. The results are buffered and sent back to the CID Adapter Client, which passes them back to the SQL Access Server. The SQL Access Server sends the results to the SQL Access Client, which passes them to the client application. Administration Guide, P25-9501-04 Chapter: 1. Overview of SQL Access for SUPRA Server PDM Section: Overview 12 Before you can use ODBC, JDBC, or OLE DB to access your PDM and/or CICS VSAM files, you must define the PDM database and the PDM files and/or the VSAM files to the SQL Access Server. If one does not exist, you will create a SQL Access Server. Then you define the PDM database or CICS VSAM to the SQL Access Server by registering it. This is a simple process. For PDM you define the PDM / dbmod name, PDM host name, and port for TCP/IP communications, and give this definition or registration a name. For VSAM you define the CICS VSAM system. For more details, see "Registering a CID Foreign Database" on page 29. Next you define each PDM and or VSAM file that you wish to make available to the client application. This definition is called a foreign table. In the foreign table you will define the field names and data types for each field in one file or record code. This may sound daunting, but the Visual SQL tool makes this a very easy task. For PDM, it will read the PDM Directory and display the names and data types found there for the file. For VSAM, it will read the CID Adapter Extensions XML file and display the names and data types found there for each VSAM file. You may modify them or save the definition as it is. For more information about adding a Foreign Table, refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503. Administration Guide, P25-9501-04 Chapter: 1. Overview of SQL Access for SUPRA Server PDM Section: Overview 13 2. Starting/stopping SQL Access for SUPRA Server PDM Starting SQL Access for SUPRA Server PDM components There are two components of SQL Access for SUPRA Server PDM (SQL Access) that need to start: the CID Adapter Server on MVS/OpenVMS/UNIX and the SQL Access Server on either Windows or UNIX. Cincom recommends that you start these components in the order listed. In addition, the SQL Access Server has three components that run as separate processes on the SQL Access Server Machine: the SQL Access Master, the SQL Access Server and the CID Adapter Client. Starting the MVS CID Adapter Server The CID Adapter Server can be started either as a batch job or as a started task using the JCL described in "Tailoring the MVS CID Adapter Server" on page 91. The CID Adapter Server is ready for connections as soon as the following message is written to MSGPRINT: CSHP522I CID Adapter Release n.n.nnx waiting for connections The CID Adapter Server is fully reentrant and refreshable. It runs RMODE (24), AMODE (31). If desired, it can be placed in the Linkpack area for shared operation. Starting the MVS CICS CID Adapter Server The MVS CICS CID Adapter Server is started either from the sequential terminal input DAKD\ or from any terminal with transaction DAKD. The Adapter Server is ready for connections as soon as the following message is written to the VDAK transit data destination: CSHP522I CID Adapter Release n.n.nnx waiting for connections The MVS CICS CID Adapter Server runs as CICS conversational task(s). Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Starting SQL Access for SUPRA Server PDM components 14 Starting the OpenVMS CID Adapter Server Prior to starting an OpenVMS CID Adapter Server it is necessary to set up an adapter for a specific dbmod. This is done by executing the S1_ADAPTER_SETUP.COM command file, located in the COMS directory of the OpenVMS CID Adapter Server install. This will create all of the files necessary to start and stop the CID Adapter Server. The file names and services for an adapter are preceded by the CID Adapter Server name, which is typically the dbmod name. Prior to starting an OpenVMS CID Adapter Server it is necessary to define logical names that will be used by all CID Adapter Servers. This is done by executing the command file LOGICALS.COM in the COMS directory of the install directory. It is recommended that one of the following lines be added to your SYSTARTUP_VMS.COM file: $ @ <install-disk>:[<install-directory>.COMS]LOGICALS GROUP $ @ <install-disk>:[<install-directory>.COMS]LOGICALS LNM$GROUP_nnnnnn $ @ <install-disk>:[<install-directory>.COMS]LOGICALS SYSTEM One of these commands may also be executed at the command line prior to starting a CID Adapter Server. An OpenVMS CID Adapter Server is started by executing the following command located in the directory from which the S1_ADAPTER_SETUP command file was executed: @<adapter-name>_RUN The OpenVMS CID Adapter Server is ready for connections as soon as the following message is written to the log file, <adapter-name>_LOG.DAT: 4930 08:56:14 CSHP500I Tue Aug 22 08:56:14 2006 Coordinator for VMS Release n.n.nnx started CID Adapter See the "Tailoring the OpenVMS CID Adapter Server" on page 118 for more information. Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Starting SQL Access for SUPRA Server PDM components 15 Starting the UNIX CID Adapter Server Prior to starting a UNIX CID Adapter Server it is necessary to set up a CID Adapter Server for a specific dbmod. This is done by executing the s1_adapter_setup script, located in the CIDAdapterServer_nnnn directory of the UNIX CID Adapter Server install. This will create all of the files necessary to start and stop the CID Adapter Server. The file names and services for a CID Adapter Server are preceded by the CID Adapter Server name, which is typically the dbmod name. Prior to starting a UNIX CID Adapter Server it is necessary to start the UNIX SUPRA Server PDM. This is usually done during or after logging in to the UNIX machine by running scripts to create the necessary environment variables and logical names. A UNIX CID Adapter Server may be started by executing the following command located in the PDM System directory, /supra1/<pdm-system-name>: <adapter-name>_run The UNIX CID Adapter Server is ready for connections as soon as the following message is written to the log file, <adapter_name>.log: 19725 09:02:09 CSHP500I Tue Aug 22 09:02:09 2006 Coordinator for UNIX Release n.n.nnx started CID Adapter See "Tailoring the UNIX CID Adapter Server" on page 142 for more information. Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Starting SQL Access for SUPRA Server PDM components 16 Testing the CID Adapter Server connection After starting a CID Adapter Server, the csv1ping utility can be used to verify that the CID Adapter Server is listening on the expected port. The csv1ping utility can be run either on the SQL Access Server machine or on the CID Adapter Server machine. Use the following platform-specific commands to run the utility on the SQL Access Server machine: WINDOWS UNIX csv1ping –p <port-number> -d <database-name> -h <host-name> csv1ping –p <port-number> -d <SQL-Access-Server-name> -h <hostname> Use the following platform-specific methods or commands to run the utility on the CID Adapter Server machine: MVS OPENVMS UNIX You can verify that the MVS CID Adapter Server is listening on the expected port by using the CSV1PING JCL supplied with the installation. For more information about this job, see "Defining the MVS CID Adapter Server CSV1SHUT JCL" on page 95. @V1HUB_COMS:CSV1PING –P <port-number> -D <SQL-Access-Servername> csv1ping –p <port-number> -d <SQL-Access-Server-name> In all cases, the utility will display normal messages to the standard output file and errors to the standard error file. The utility will return 0 for success and -1 for failure. Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Starting SQL Access for SUPRA Server PDM components 17 Starting the SQL Access Server on Windows The SQL Access Master process is installed as a service, so it is started automatically when Windows is started. The Master service then automatically starts all the SQL Access Servers. The mastersrv command can be used to stop and restart the SQL Access Master between Windows boots. The Visual Administration Tool can be used to start, stop, and restart the SQL Access Server between Windows boots. The CID Adapter Server on the PDM host does not need to be stopped if you stop and restart the SQL Access Server on Windows. See "8. Controlling SQL Access for SUPRA Server PDM processes" on page 302 for details about SQL Access Master and SQL Access Server processes. Starting the SQL Access Server on UNIX The SQL Access Server is started on UNIX using the start_server utility script ($ORDB/utilities/start_server). This script determines if the SQL Access Master process is running. If it does not detect a SQL Access Master process running, it starts the SQL Access Master before starting the SQL Access Server. Execute this utility using the following syntax: start_server <SQL-Access-Server-name> This utility returns a value of zero (0) for successful execution or a non-zero value for unsuccessful execution. Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Starting SQL Access for SUPRA Server PDM components 18 Shutting down SQL Access components When shutting down the CID Adapter Server, the SQL Access Server needs to be shut down, as well. Cincom recommends that you shut them down in this order: 1. SQL Access Server on Windows 2. CID Adapter Server on MVS/OpenVMS/UNIX This is reverse of the order in which they should have been started. Shutting down the SQL Access Server on Windows The Visual Administration Tool or the commdb utility can be used to stop the SQL Access Server. All SQL Access Server processes may be stopped using the commdb utility (%ORDB%\commdb.exe). Execute this utility using the following syntax: commdb –A See "8. Controlling SQL Access for SUPRA Server PDM processes" on page 302 for details about shutting down the SQL Access Server processes. Shutting down the SQL Access Server on UNIX The Visual Administration Tool, the stop_server utility, or the commdb utility can be used to stop the SQL Access Server on UNIX. To stop a particular SQL Access Server using the stop_server utility script ($ORDB/utilities/stop_server), use the following syntax: stop_server SQL-Access-Server-name This utility returns a value of zero (0) for successful execution or a non-zero value for unsuccessful execution. The stop_server utility does not stop the SQL Access Master process. The SQL Access Master process and all SQL Access Server processes may be stopped using the commdb utility ($ORDB/utilities/commdb). Execute this utility using the following syntax: commdb –A See "The commdb utility" on page 307 for more information. Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Shutting down SQL Access components 19 Shutting down a CID Adapter Server A CID Adapter Server can be shut down by executing the csv1shut utility on the SQL Access Server machine using the following platform-specific commands: WINDOWS csv1shut –p <port-number> -d <SQL-Access-Server-name> -h <nostname> UNIX csv1shut –p <port-number> -d <SQL-Access-Server-name> -h <nostname> When run on the SQL Access Server machine, the csv1shut utility requests the shutdown user id and password from the user, obtains the port number, host name, and SQL Access Server name from the command line arguments, and connects to the CID Adapter Server requesting a shut down. The CID Adapter Server validates the user id and password values against the SHUTDOWN_USER and SHUTDOWN_PASSWORD defined in the CID Adapter Server INIT file. If the values are valid and there are no active or cached connections, the CID Adapter Server will shut down; otherwise, the shut down request will be denied. See "Stopfdb utility" on page 25 for information about shutting down the CID Adapter Client connections. The csv1shut utility may also be run on the CID Adapter Server machine. This is described in the following sections for each CID Adapter Server platform. Shutting down the MVS CID Adapter Server You can shut down the MVS CID Adapter Server by using the CSV1SHUT JCL supplied with the installation. For more information about this job, see "Defining the MVS CID Adapter Server CSV1SHUT JCL" on page 95. This job will only successfully shut down the CID Adapter Server if all CID Adapter Clients have been shut down. See "Stopfdb utility" on page 25 for information about shutting down the CID Adapter Client connections. If you have the CICSSHUT pltd program implemented, all active conversational CICS CID Adapter Server tasks will be purged via this pltd and allow CICS to continue with its normal shut down. You can also run the CSV1SHUT batch job to shut down the MVS CICS CID Adapter Server. This will put the MVS CICS CID Adapter Server into the shut down state and will not allow any new connections. Transaction DAKD can be run from any terminal to allow the MVS CICS CID Adapter Server to return the system to the active state. It is not recommended that you use this job against the MVS CICS Adapter Server. Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Shutting down SQL Access components 20 Shutting down the MVS CICS CID Adapter Server The MVS CICS CID Adapter Server is shutdown when CICS is shut down. Because the server is running as a conservational task, there may be some delay experienced during CICS shutdown. Processing and tasks may need to be aborted via CICS to allow shut down processing to continue. Shutting down the OpenVMS CID Adapter Server On OpenVMS, you can shut down a CID Adapter Server with the <adaptername>_STOP.COM command file created by the S1_ADAPTER_SETUP.COM command file in the directory from which it was executed. The csv1shut utility is executed in this command file. Use the following syntax at the command prompt: @<adapter-name>_STOP This form of the command will cause the CID Adapter Server to check for active or cached connections before shutting down. To force the CID Adapter Server to shut down, use the following syntax: @<adapter-name>_STOP -F Shutting down the UNIX CID Adapter Server On UNIX, a CID Adapter Server may be shut down using the <adaptername>_stop script created by the s1_adapter_setup script in the PDM System directory. The csv1shut utility is executed from this script file. Use the following syntax at the command prompt: <adapter-name>_stop This form of the command will cause the CID Adapter Server to check for active or cached connections before shutting down. To force the CID Adapter Server to shut down, use the following syntax: <adapter-name>_stop -f Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Shutting down SQL Access components 21 Controlling the start and shut down of the CID Adapter Client Starting the CID Adapter Client Once you have registered your CID Foreign Database, the CID Adapter Client component can be started in two different ways: ♦ It can be automatically started by the SQL Access Master process. When a user requests data from the CID Foreign Database, a CID Adapter Client process is started by the SQL Access Master process. The CID Adapter Client then communicates the request to the CID Adapter Server on MVS/OpenVMS/UNIX. ♦ You can use the startfdb utility to start the minimum number of CID Adapter Clients prior to use by a SQL Access Client. Once the SQL Access Client connection requests exceed the minimum number, CID Adapter Client processes are started automatically, up to the maximum. The minimum and maximum number of CID Adapter Clients are defined when registering the Foreign Database. See "Registering a CID Foreign Database" on page 29 for more information. Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Controlling the start and shut down of the CID Adapter Client 22 Controlling the CID Adapter Client The SQL Access Server can control the CID Adapter Client using the following utilities: ♦ startfdb ♦ stopfdb Each CID Adapter Client can be recycled during a SQL Access Server session. The SQL Access Server keeps the defined minimum number of CID Adapter Clients in its adapter cache. The SQL Access Client can get faster response to its requests by reducing CID Adapter Client startup time. After the SQL Access Client commits or aborts, the CID Adapter Client goes back to the cache to be made available for the next SQL Access Client. The minimum and maximum number of CID Adapter Clients for each CID Foreign Database Is defined when registering that CID Foreign Database. Setting the minimum number of CID Adapter Clients has two purposes: ♦ To start a specified number of CID Adapter Clients using the startfdb utility before SQL Access Clients send PDM access requests to the CID Adapter Server ♦ To preserve a minimum number of CID Adapter Clients that are not to be killed when the SQL Access Server shuts down those that have been idle beyond a certain time Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Controlling the start and shut down of the CID Adapter Client 23 Startfdb utility The startfdb utility provides the means to start up the minimum number of CID Adapter Clients specified for the CID Foreign Database. Note that in addition to the command line execution, the startfdb utility can be executed from the Visual Administration Tool. Syntax This command line invokes the startfdb utility: startfdb [options] SQL-Access-Server-name where: - options can be the following: -a All registered CID Foreign Databases for a specific SQL Access Server. This option allows you to prestart the minimum number of CID Adapter Clients for each registered CID Foreign Database. For example, if there are five registered CID Foreign Databases, and each has the value “2” for minimum number of CID Adapter Clients, then 10 CID Adapter Clients will be started. Please note that the default minimum number of CID Adapter Clients is “0”. -l Specific registered CID Foreign Database. This option allows the DBA to specify a single CID Foreign Database for which the minimum number of CID Adapter Clients is to be prestarted. The CID Foreign Database name must have been previously registered using a REGISTER PDM DATABASE (or REGISTER FOREIGN DATABASE) statement. -q Quiet. Startfdb will not show its start or end banners. The success or failure of the startfdb command will be displayed. - SQL-Access-Server-name specifies the name of your SQL Access Server. It cannot be a path such as C:\usr\smith\test_db but must be a simple name such as test_db. Example In the following example the SQL Access Server name is ‘myserv’ and the registered CID Foreign Database name is ‘fdb0’. This example shows how to prestart CID Adapter Clients only for the specific CID Foreign Database registered as ‘fdb0’. C:\> startfdb -l fdb0 myserv Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Controlling the start and shut down of the CID Adapter Client 24 Stopfdb utility The stopfdb utility kills all CID Adapter Clients in the adapter cache without considering the minimum number of CID Adapter Clients except those currently active (bound to SQL Access Clients). It is used to clean the adapter cache so that the CID Adapter Server does not maintain connections with idle adapters. After this utility has run, the SQL Access Server will have to start up new CID Adapter Clients on demand when a SQL Access Client requests CID Foreign Database access. Note that in addition to the command line execution, the stopfdb utility can be executed from the Visual Administration Tool. Syntax This command line invokes the stopfdb utility: stopfdb [options] server-name where: - options includes the following: -a All registered CID Foreign Databases for a specific SQL Access Server. This option kills all idle CID Adapter Clients in the adapter cache without considering the minimum number of CID Adapter Clients. -l Specific registered CID Foreign Database. This option allows the DBA to kill idle adapters only for a specific CID Foreign Database. -q Quiet. If used, stopfdb will not show its start or end banners. The success or failure of the stopfdb command will be displayed. -pw SQL Access Server Password. Use this option to specify the password if the SQL Access Server has a password. For example, to specify the password tmp of the myserv SQL Access Server, enter the following command: stopfdb –pw tmp –l fdb0 myserv A prompt requesting the SQL Access Server password is displayed if a stopfdb is attempted for a password protected SQL Access Server and the –pw option is not specified. The password entered in response to this prompt is hidden while it is being typed. - server-name specifies the name of your SQL Access Server. It cannot be a path such as C:\usr\smith\test_db but must be a simple name such as myserv. Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Controlling the start and shut down of the CID Adapter Client 25 Example In the following example, the SQL Access Server name is ‘myserv’ and the registered CID Foreign Database name is ‘fdb0’. This example shows how to shut down idle CID Adapter Clients only for the specific CID Foreign Database registered as ‘fdb0’. C:\> stopfdb -l fdb0 myserv Administration Guide, P25-9501-04 Chapter: 2. Starting/stopping SQL Access for SUPRA Server PDM Section: Controlling the start and shut down of the CID Adapter Client 26 3. Managing a CID Foreign Database Overview Each SUPRA PDM database is defined in the PDM Directory. The files and data fields in the database are defined there as well as domain information and the access methods available to access data in a variety of ways. It is REQUIRED that the data fields and domain information be defined in the Cincom Integrated Data (CID) Adapter Extensions XML file if they are not defined in the CID Adapter Server prior to using SQL Access for SUPRA Server PDM (SQL Access). For VSAM files all data fields and domain information must be defined in the CID Adapter Extensions XML file prior to accessing the data using SQL Access. PDM For PDM files, the CID Adapter Server component of SQL Access reads the PDM Directory and builds a schema consisting of the information required by the CID Adapter Client and Server components. Additionally, the schema can be extended to include additional information that may not be defined in the PDM Directory. This includes the definition of fields and their domains, foreign keys, CID Adapter Views, and additional access methods. These extensions are specified in the CID Adapter Extensions XML file, which is read by the CID Adapter Server. VSAM For VSAM files, all the fields and their domains must be defined in the CID Adapter Extensions XML file. If this information is contained in a COBOL copybook, you may use the COPY2XML tool to place these definitions into the CID Adapter Extensions XML file. Refer to “COPY2XML COBOL Copybook Tool” for more details. The basic access methods and foreign keys are automatically generated in the internal schema and do not need to be entered into the CID Adapter Extensions XML file. See "Extending the CID Adapter Schema" on page 371 for more information. In prior releases, the CID Adapter Server’s schema was extended with the foreign key file. The Adapter Extensions XML file replaces the foreign key file. The foreign key file will continue to function as documented in earlier releases. Both files may be used to extend the same CID Adapter Server schema in this release. The information in the schema is used by the CID Adapter Client and Server components to access PDM and/or VSAM data and transform it into the SQL Access data model. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Overview 27 A Foreign Database is a description of the PDM database or the CICS VSAM system and the parameters used to communicate with it. The CID Foreign Database is defined in the SQL Access Server by registering the Foreign Database. The CID Foreign Database consists of foreign tables. A foreign table is used to map PDM and/or VSAM fields and provide a direct link to the data in one PDM and/or VSAM file. A foreign table consists of two parts: ♦ Attribute list. The attribute list contains the attribute names and domains that SQL Access Client tools will use in queries. ♦ Query specification. The query specification identifies the PDM and/or VSAM fields that will correspond to each attribute in the attribute list and identifies the name of the PDM and/or CICS VSAM file. SQL Access uses the term "attribute" instead of "field" or "column" and the term "domain" instead of "data type". Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Overview 28 Registering a CID Foreign Database In order to access a PDM database or CICS VSAM system, it must be registered in the SQL Access Server. An alias name for the PDM database CICS VSAM system and information required for accessing the PDM database CICS VSAM system are supplied when it is registered. Cincom recommends that you use Visual SQL (refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503) to register the CID or CICS VSAM system Foreign Database. It provides a dialog box, which you can easily fill in to complete the registration. If, however, you would like to create a script file or otherwise register the Foreign Database manually using SQL, you can use the REGISTER PDM DATABASE statement, described in "Using a script to register a CID Foreign Database" on page 40. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Registering a CID Foreign Database 29 Creating foreign tables A foreign table is essentially a map of a file in the PDM or CICS VSAM Foreign Database that is stored in the SQL Access Server. Only one foreign table can be created for each PDM or CICS VSAM Foreign Database file to be accessed. The foreign table consists of: ♦ One attribute and associated domain for each field in the PDM or CICS VSAM file ♦ A query specification, which indicates the exact field name and file name in the PDM or CICS VSAM Foreign Database We recommend that you use either Visual SQL (refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503) or the Foreign Table Generator Utility (see "Foreign Table Generator" on page 248) to create foreign tables. Visual SQL is best suited when you have just a few foreign tables to create. The Foreign Table Generator Utility is more efficient when you have a large number of foreign tables to create. Both of these tools will suggest a name for the foreign table and attribute names corresponding to each of the fields in the PDM or CICS VSAM file. You may change the suggested foreign table name and the suggested attribute names in each tool. The discussion below will help you understand the syntax of the foreign table and the naming rules and conventions. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating foreign tables 30 Syntax CREATE FOREIGN TABLE foreign_table_name ON [FOREIGN DATABASE] foreign_database_name [ { UNDER | AS SUBCLASS OF } super_foreign_table_name [ {, super_foreign_table_name }… ] ] [ ( foreign_table_attr_definition [ {, foreign_table_attr_definition }… ] ) ] [ AS foreign_table_query_specification ] [ ; ] where: - foreign_table_name must be unique. It cannot be created using a name that already exists in the SQL Access Server as another foreign table, view/virtual class, class/table, or registered PDM or CICS VSAM Foreign Database. The name cannot contain spaces, and it cannot be a SQL Access reserved word. For a list of reserved keywords, refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503. Alphanumeric characters, underscores (_), the number sign (#), and the percentage sign (%) are allowed in the foreign table name. The name identifier must begin with a letter, and the maximum number of characters for a name is 255. - foreign_table_attr_definition has the following syntax and is further explained in "Attributes and their domains" on page 32: attribute_name - data_type [ DEFAULT value ] foreign_table_query_specification has the following syntax and is further explained in "Foreign table query specification" on page 33: select_statement Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating foreign tables 31 Attributes and their domains The attributes you define in a foreign table are enclosed in parentheses and must be given a name and a domain. The attribute_name you assign should follow the same character-use conventions that were described for foreign_ table_name. The data_type given as the domain of an attribute can be any valid built-in data type that is supported by SQL Access. See "Data type mapping" on page 36. If the data type of the corresponding field in the PDM or CICS VSAM Foreign Database is not one of the supported types, SQL Access may provide a default conversion. Foreign table attribute domains can be different from the default field data type returned from the PDM or CICS VSAM Foreign Database. Coercions are allowed for numeric types and the type TIMESTAMP. For additional information on supported data types, refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503. Attributes can be optionally designated to have a DEFAULT value. If you specify the DEFAULT syntax, you must also designate an initial value. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating foreign tables 32 Foreign table query specification The foreign_table_query_specification is actually a SELECT command that names the PDM or CICS VSAM field that corresponds to each attribute and the FROM clause names the dataset_name[_rc]. For PDM, if external field names are defined in the PDM Directory, they can be used in the SELECT command. Otherwise, the names in the SELECT command either are the same as, or based on, the 8-character PDM physical field names. For VSAM files, you will always use the field name defined in the CID Adapter Extensions XML file. See the examples that follow. If external field names contain any characters other than alphanumeric characters (A–Z, 0–9), underscores (_), percentage sign (%), or number sign (#), they must be enclosed in double quotes (" ") in the SELECT command of the foreign table. For example, the name MAXIMUM-VALUE would be interpreted as MAXIMUM minus VALUE unless it is placed in double quotes “MAXIMUMVALUE”. The elements of the SELECT command can also be an expression using the external field name, PDM physical field name or VSAM field name. For example, instead of just including the external field name price, the expression price + 25 could be included in the SELECT list. The query specification need not be specified when the foreign table is only being used to define a superclass of one or more other foreign tables in the SQL Access Server. Each word of a multiple-word variable name must be connected by an underscore. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating foreign tables 33 Examples: This example creates a foreign table named ‘customer’ for PDM primary file CUST. The foreign_database_name is ‘burrys’. The attribute names can be any name. In the example below the first two are the same as the external field names except that the dash(-) is replaced with the underscore (_). The third attribute is different than the external field name, the next three are different than the PDM field name and the last one is again the same as the external field name. Either the exact external field name or PDM name must be used in the SELECT command. The names that include a dash(-) must be enclosed in quotes. create foreign table customer on burrys ( customer_no char(20), customer_name char(20), address char(30), city char(20), state char(2), zip char(10), original_loc char(20) ) as select "CUSTOMER-NO", "CUSTOMER-NAME”, “CUST-ADDRESS”, CUSTCITY, CUSTSTAT, CUSTZIPC, “ORIGINAL-LOC” from CUST; The next example creates a foreign table named ‘order_detail_line’ for PDM related file DETL record code LN. The foreign_database_name is burrys. The foreign table includes fields from both the base portion and one record code. A separate foreign table must be created for each record code you want to access. Each foreign table for a record code will always contain the base portion fields in addition to the fields for that record code. The first three fields in the SELECT command below are from the base portion. The remaining fields are from the LN record code. Note that the from clause has the record code appended to the PDM file name. This is required to enforce the coded record processing. create foreign table order_detail_line on burrys ( record_code char(2), order_no char(4), customer_no char(20), product_code char(20), quantity numeric(5), cost numeric(9,2) ) as select DETLCODE, "ORDER-NO”, “CUSTOMER-NO”, DETLPROD, QUANTITY, COST from DETL_LN; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating foreign tables 34 Definition of domain information SQL is a strongly data-typed language. Therefore, the CID Adapter Server must contain domain information for those data fields that are to be made accessible by SQL Access. This domain information can be obtained from the PDM Directory, and it may also be defined, modified, and extended by using the CID Adapter Extensions XML file. For VSAM files all the domain information is defined in the CID Adapter Extensions XML file. If you are an RDM user, the minimum set of PDM Directory domain fields is probably already specified. The following information for a field is utilized by SQL Access: ♦ Data format ♦ Field length ♦ Number of decimal places ♦ Signed option ♦ Linkpath type ♦ Nulls allowed option ♦ Null value ♦ Default value Examine data formats carefully, especially for CHAR and BIT data. CHAR data is translated to/from EBCDIC to/from ASCII. BIT data is not translated. In many cases, the parent of sub-defined data fields should not be translated. PDM does not support the BIT data type. The BIT data type is supported in the CID Adapter Server by defining Type attributes in the CID Adapter Extensions XML file. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating foreign tables 35 Data type mapping To ensure no data loss, the following SQL Access specifications should be used for each PDM type. CID Adapter Client and Server will automatically convert data to and from the SQL Access specification. The following table shows the PDM data types and the equivalent SQL Access domains: SQL Access specification PDM specification Type Sign Length Binary Signed 1 Binary Signed Binary Signed Binary Decimals Range Domain 0 -128–127 SMALLINT 2 0 -32,768–32,767 SMALLINT 4 0 -2,147,483,648– 2,147,483,647 INTEGER Signed 8 0 1.8 x 1019 NUMERIC(19,0) Binary Unsigned 1 0 0–255 SMALLINT Binary Unsigned 2 0 0–65,536 INTEGER 0–4,294,967,296 NUMERIC(10,0) Binary Unsigned 4 0 Binary Unsigned 8 0 Float Signed 4 FLOAT† Float Signed 8 DOUBLE†† Float Signed 16 Not supported Packed decimal Signed 1<len<16 p = 1–31 s = 0–31 Validate number of digits left and right of the decimal NUMERIC(p,s) Packed decimal Unsigned 1<len<16 p = 1–31 s = 0–31 Validate number of digits left and right of the decimal NUMERIC(p,s) Zoned decimal Signed 1<len<18 p = 1–18 s = 0–18 Validate number of digits left and right of the decimal NUMERIC(p,s) Zoned decimal Unsigned † †† NUMERIC(20,0) 1<len<18 s = 0–18 p = 1–18 Conversion from IBM to IEEE format may result in 1 bit of precision loss Conversion from IBM to IEEE format may result in 4 bits of precision loss Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating foreign tables NUMERIC(p,s) 36 SQL Access specification PDM specification Type Sign Length Decimals Range Domain Character n 0 n = 1–32,767 Converted to/from EBCDIC CHAR(n)††† Bit n characters 0 n = 1–32,767 Bit data is not translated BIT(n)†††† bits Numeric Unsigned 1<len<18 s = 0–18 0– 999,999,999,999,999,999 NUMERIC(p,s) Numeric overpunch Signed 1<len<18 s = 0–18 -999,999,999,999,999,99 9– 999,999,999,999,999,999 NUMERIC(p,s) Leading separate numeric Unsigned 1<len<18 s = 0–18 0– 999,999,999,999,999,999 NUMERIC(p,s) Leading Signed 1<len<18 s = 0–17 -99,999,999,999,999,999 NUMERIC(p,s) separate –99,999,999,999,999,999 numeric ††† CHAR data is translated automatically from/to EBCDIC (SAA code page 1057) to/from Latin-1. †††† BIT data is not translated. PDM does not support any specific time or date format. There is no date or time definition in the PDM metadata. If date or time information must be supported by the SQL Access Server, you must write methods to translate your date or time data to the SQL Access format. PDM does not support the BIT data type. The BIT data type is supported by SQL Access by defining Type attributes for Field elements in the Adapter Extensions XML file. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating foreign tables 37 Data modeling considerations The following considerations apply to modeling the SUPRA Server PDM data in SQL Access: ♦ The RDM functions and facilities are not supported. ♦ For data defined as Type=”BIT”, all data will be returned as-is; for Type=CHARACTER, the CID Adapter Server will provide automatic ASCII– EBCDIC conversion using a table to drive translation. This table can be replaced with a table customized to the user’s preference. All other data types will be translated as necessary. See "Modifying the ASCII/EBCDIC translation tables" on page 412 for more information on this table. ♦ Since the PDM supports only single phase commit, the DBA will need to be aware of the issues single phase commit entails and the impact of these issues before using SQL Access to update PDM data in a distributed environment. For more information, see "Transaction recovery" on page 83 . ♦ SQL Access supports coded record processing. Nevertheless, record codes cannot be modified via an update through SQL Access. ♦ When inserting into or updating a related file, the default action is to place the record at the end of the chain. To place the record in a different position, you will have to include the linkpath in the foreign table definition. ♦ The CID Adapter Server will build the entire schema in memory upon initialization, which precludes the use of Active Schema Maintenance. If Active Schema Maintenance is performed while the CID Adapter Server is active, the CID Adapter Server will have to be recycled. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Data modeling considerations 38 The following considerations apply to modeling the SUPRA Server PDM or CICS VSAM data in SQL Access: ♦ When a SQL Access Client accesses a PDM or VSAM file through a foreign table, all of the attribute definitions for that file are sent from the CID Adapter Server to the CID Adapter Client and cached there in shared memory. It is possible that a CID Adapter Client could have a large number of attribute definitions cached, depending on the number of files accessed. It may be necessary to recycle the CID Adapter Client when the CID Adapter Server is recycled due to changes in the PDM Directory or the CID Adapter Extensions XML file. ♦ PDM and VSAM alternate indices are optional but may improve performance. The SQL Access optimizers will use all available information provided in the WHERE clause to determine the best access path to the PDM or VSAM data. The attributes specified in the WHERE clause may have a dramatic affect on performance. For example, if the WHERE clause contains attributes that map to a primary file control key or an index, a direct access will be used to access the PDM or VSAM data. If the WHERE clause contains attributes that do not map to any access methods defined for the file (control key, index, linkpath, or foreign key), or there is no WHERE clause, a scan of the entire PDM file will be used to access the PDM data. If the WHERE clause contains VSAM attributes that do not map to any access methods defined for the file (primary key, foreign key, or alternate index), or there is no WHERE clause, a scan of the entire VSAM file will be used to access the VSAM data. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Data modeling considerations 39 Using a script to register a CID Foreign Database If you do not wish to use Visual SQL to register a Cincom Integrated Data (CID) Foreign Database, you may use a script to allow a permanent record of the parameters used to register the CID Foreign Database. REGISTER CID DATABASE statement Use the REGISTER CID DATABASE statement to register the Foreign Database manually. This statement can only be performed by users who have been granted the ALL privilege on the system classes ldb_catalog and ldb_properties. By default, only the DBA (user dba) is granted this privilege. This statement has the following syntax: REGISTER CID DATABASE cid_alias_name NAME database_name HOST cid_adapter_client_host [ MAX_ACTIVE unsignedInt ] [ MIN_ACTIVE unsignedInt ] CID_HOST cid_adapter_server_host CID_PORT cid_adapter_server_port where: - cid_alias_name is the name that you assign to the CID database that is being registered. This name must be unique within the SQL Access Server. - database_name is the DBM name in the CSIPARM file of the MVS SUPRA Server PDM database or the DBMOD name for OpenVMS and UNIX PDM platforms. This must be entered in UPPER CASE. This name is used by the SQL Access Server to connect to the CID Foreign Database. - VSAM - cid_adapter_client_host is the name of the machine on which the CID Adapter Client will be running. Typically this will be the same machine on which the SQL Access Server is running. - MAX_ACTIVE unsignedInt sets the maximum number of active CID Adapter Client processes allowed for the specified CID Foreign Database. If a value is not specified for the MAX_ACTIVE setting, a default value of 5 is used. - MIN_ACTIVE unsignedInt sets the minimum number of active CID Adapter Client processes allowed for the specified CID Foreign Database. If a value is not specified for the MIN_ACTIVE setting, a default value of 0 is used. PDM database_name is ‘CICS’. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Using a script to register a CID Foreign Database 40 - cid_adapter_server_host is the name of the machine on which the CID Adapter Server is running. - cid_adapter_server_port is the TCP/IP port number on which the CID Adapter Server is listening. The parameters that are specified in the REGISTER CID DATABASE statement must be entered as strings (enclosed in single quotes), and each string must be less than 20 characters in length. All strings that you enter are case-sensitive. Example REGISTER CID DATABASE burrys NAME 'EE72CPDM' HOST ‘XP1234’ CID_HOST 'mvs' CID_PORT '5530'; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Using a script to register a CID Foreign Database 41 Altering the registration of a CID Foreign Database When one or more properties of a registered CID Foreign Database require changing, the current registration can be altered with the new values. For example, if the name of the CID Foreign Database changes at the host machine, you can simply modify the NAME field of the current registration rather than dropping and reregistering the CID Foreign Database. We recommend that you use Visual SQL (refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503) to edit the registration of a CID Foreign Database. It will provide you with a dialog box that will display the existing parameter values and allow you to change one or more of them. Nevertheless, if you would like to create a script file or otherwise alter the registration of a Foreign Database manually, you can use the REGISTER FOREIGN DATABASE command. Syntax REGISTER FOREIGN DATABASE fdb_name ALTER [ NAME db_name_at_host ] [ HOST host_name ] [ MAX_ACTIVE unsignedInt ] [ MIN_ACTIVE unsignedInt ] [CID_HOST cid_adapter_server_host] [CID_PORT cid_adapter_server_port] [ ; ] The registration of a CID Foreign Database cannot be altered if foreign tables of that CID Foreign Database have already been accessed during the current SQL Access session. The ALTER keyword must be specified with the REGISTER FOREIGN DATABASE command when you want to change a field of a current CID Foreign Database registration. All fields are optional, but at least one new field must be specified with this form of the statement. Fields not altered from the current registration can be omitted. Example The following REGISTER FOREIGN DATABASE … ALTER statement changes two fields in the current registration for the CID Foreign Database name rdb. Only the fields that need to be altered are specified with the command: register foreign database rdb alter host 'edsel' cid_port ‘1999’; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering the registration of a CID Foreign Database 42 Altering a foreign table When changes are made to PDM or VSAM files in the CID Foreign Database, foreign tables may require changing as well. Since a foreign table is a direct representation of a CID Foreign Database entity, you may need to alter the attribute list and/or query specification in the corresponding foreign table definition when the CID Foreign Database is modified. In most cases, the DBA is the creator and hence the owner of the foreign tables in the SQL Access Server. Before you can alter the definition of an entity in the SQL Access Server, you must be the owner or have ALTER authorization granted to you by the owner (or DBA). Syntax ALTER [ FOREIGN TABLE ] foreign_table_name { ADD add_list | CHANGE change_list | DROP drop_list | RENAME rename_list } [ ; ] The name of the foreign table that you want to modify is denoted by the parameter foreign_table_name. The keyword FOREIGN TABLE can optionally be specified when you alter foreign table. You can modify the foreign table definition with the ADD, CHANGE, DROP and RENAME clauses of the ALTER statement. The various forms of these clauses follow: add_list: [ ATTRIBUTE ] foreign_table_attr_definition [ {, foreign_table_attr_definition }… ] QUERY query_specification SUPERCLASS super_foreign_table_name [ {, super_foreign_table_name }… ] change_list: attribute_name DEFAULT value_specification [ {, attribute_name DEFAULT value_specification }… ] QUERY [ integer ] query_specification Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 43 drop_list: [ ATTRIBUTE ] attribute_name [ {, attribute_name }… ] QUERY [ integer [ {, integer }… ] ] SUPERCLASS super_foreign_table_name [ {, super_foreign_table_name }… ] rename_list: [ ATTRIBUTE] attribute_name [ {, attribute_name }… ] Each ALTER statement that you enter is restricted to one type of modification. For example, you cannot drop an attribute and then change the query specification within the same ALTER statement. See the corresponding section below for details for each ALTER option. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 44 Adding an attribute One or more new attributes can be added to the definition of a foreign table with the ALTER … ADD ATTRIBUTE statement. New attribute definitions are appended to the end of the current attribute definition list. Any time a new attribute is added, the corresponding query specification(s) may also need to be altered to include the new attribute as a SELECT field. Syntax ALTER [ FOREIGN TABLE ] foreign_table_name ADD [ ATTRIBUTE ] foreign_table_attr_definition [ {, foreign_table_attr_definition }… ] [ ; ] where: - foreign_table_name is the name of the foreign table where you want to define a new attribute. To add an attribute, supply the ATTRIBUTE optional keyword before the attribute definition. Adding a new attribute may cause the definition of the foreign table to become inconsistent with the query specification. Queries and updates on that entity fail when the entity definition is inconsistent with the query specification. To prevent these failures, you must issue a separate ALTER command with the appropriate CHANGE QUERY clause. Example This example modifies the foreign table called shipment to reflect a change in the CID Foreign Database. Assume that the file DETL_LN in the PDM database was given a new field called payment_plan. To access this data, the corresponding foreign table order_detail_line must be modified with the addition of a new attribute. The query specification also needs to be changed to retrieve the additional attribute from the CID Foreign Database and to keep the definition of the foreign table consistent: alter foreign table order_detail_line add attribute payment_plan char(15); alter foreign table order_detail_line change query select DETLCODE, "ORDER-NO”, “CUSTOMER-NO”, DETLPROD, QUANTITY, COST, “PAYMENT-PLAN” from DETL_LN; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 45 Adding a new query specification A new query can be added to a foreign table if a query specification is not currently defined. Syntax ALTER [ FOREIGN TABLE ] foreign_table_name ADD QUERY query_specification [ ; ] where: - foreign_table_name is the name of the foreign table where the new query specification is added. - query_specification syntax is the same under the ALTER statement as was previously described of the foreign table where you want to define a new attribute for the CREATE statement in "Creating foreign tables" on page 30. Only one query can be added with each ALTER … ADD QUERY statement. Example In this example, suppose that you previously have dropped the query specification or created the foreign table without the query specification. It can now be added to the foreign table as follows: alter foreign table order_detail_line add query select DETLCODE, "ORDER-NO”, “CUSTOMER-NO”, DETLPROD, QUANTITY, COST, “PAYMENT-PLAN” from DETL_LN; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 46 Changing an attribute definition Only the default value in an attribute definition can be changed with the CHANGE clause. In order to change the domain of an attribute, you must drop the attribute and add it with the new domain. The RENAME clause is used to change the name of an attribute. The initial value associated with an attribute can be changed with the ALTER statement. To change the default value you need to reference the attribute name and designate the new value in the CHANGE clause. Syntax ALTER [ FOREIGN TABLE ] foreign_table_name CHANGE attribute_name DEFAULT value_specification attribute_name DEFAULT value_specification }… ] [ {, [ ; ] where: - attribute_name indicates the name of the attribute for which you want to supply a new DEFAULT value. No specified limit exists to the number of attributes you can change in the same ALTER statement. Example alter foreign table customer change attribute original_loc default ‘Cincinnati’; The default value will apply to every new instance inserted into the foreign table unless a different value for the attribute is given when the instance is inserted. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 47 Changing the query specification Changes to the attribute definition list of the foreign table may require a corresponding change to the query specification in that entity. Whenever an attribute is added or dropped in a foreign table, the query specification(s) must also be modified to keep the definition consistent. Any of the query specification(s) defined in a foreign table can be altered with the CHANGE QUERY clause. Query specifications are assigned integer values that correspond to the position they occupy in the query specification list. Because a foreign table can only have one query specification, it is always identified with the integer 1. Syntax ALTER [ FOREIGN TABLE ] foreign_table_name CHANGE QUERY [ integer ] query_specification [ ; ] where: - integer is optional in the ALTER…CHANGE QUERY command. Since a foreign table can contain at most one query specification, you can give a new query specification after the CHANGE QUERY keywords, or you can supply a value of 1 for integer. - query_specification can be any single SELECT statement that follows the syntax requirements described for creating a foreign table (see "Creating foreign tables" on page 30). The select list in the new query must match the attribute definition list in both length and type. This requires compatible data types and a one-to-one correspondence between the SELECT fields and the attributes defined in the foreign table. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 48 Example The following example changes the query specification in the foreign table shipment. The new query specifies NA instead of selecting the field CUSTSTAT from the CID Foreign Database file customer. The data for the attribute state will display as NULL. alter foreign table customer change query select "CUSTOMER-NO", "CUSTOMER-NAME”, “CUST-ADDRESS”, CUSTCITY, NA, CUSTZIPC, “ORIGINAL-LOC” from CUST; Queries changed with the ALTER … CHANGE QUERY statement are checked for consistency against the current attribute definition list of the entity you are altering. If you want to remove a field in a query specification of a foreign table, the corresponding attribute must already be dropped from the foreign table definition. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 49 Dropping an attribute An attribute can be dropped from the attribute definition list of a foreign table if you no longer need to access the data associated with that attribute. In addition, if you need to change the domain of an existing attribute, you must first drop the attribute and then add it back with the ALTER … ADD ATTRIBUTE statement. (Note that when you add the attribute, it will be appended to the end of the attribute list.) Fields that have been dropped from a file in a CID Foreign Database should also be dropped from the attribute definition list and query specification list of the appropriate foreign table. If the query specification selects an attribute that does not exist in the CID Foreign Database, an error is returned. Syntax ALTER [ FOREIGN TABLE ] foreign_table_name DROP [ ATTRIBUTE ] foreign_table_attr_name [ {, foreign_table_attr_name }… ] [ ; ] where: - foreign_table_name is the name of the foreign table from which you want to drop an attribute. - foreign_table_attr_name is the name of one or more attributes from the attribute definition list that you want to drop. Dropping an attribute causes the definition of the foreign table to become inconsistent with the query specification. Queries and updates on that foreign table will fail when the definition is inconsistent with the query specification. To prevent these failures, you must issue a separate ALTER statement with the appropriate CHANGE QUERY clause. Example This example modifies the foreign table called order_detail_line by removing the attribute payment_plan (which was added in a previous example). The query specification is also changed in a separate ALTER statement to maintain consistency between the attribute definition list and the fields selected by the query: alter foreign table order_detail_line drop payment_plan; alter foreign table order_detail_line change query select DETLCODE, "ORDER-NO”, “CUSTOMER-NO”, DETLPROD, QUANTITY, COST from DETL_LN; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 50 Dropping a query specification Since a foreign table can have at most one query specification, dropping the only query means that no data can be selected from the corresponding CID Foreign Database entity. In this case, the foreign table can be specified as a superclass to another foreign table in the SQL Access Server, so that its attribute definition list can be inherited by that other foreign table. Syntax ALTER [ FOREIGN TABLE ] foreign_table_name DROP QUERY [ integer] [ ; ] where: - foreign_table_name is the name of the foreign table from which the query specification is dropped. - integer is an optional specification and represents the position of the query in the foreign table definition. A default value of 1 is implied when integer is omitted. Example The query specification is dropped from foreign table shipment in the this example. This removes the query that selects information from the file ship in the CID Foreign Database. alter foreign table shipment drop query; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 51 Renaming an attribute Attributes can be renamed in the definition of a foreign table. When you change the name of an attribute in a foreign table, you do not have to modify the query specification for that entity. Syntax ALTER [ FOREIGN TABLE ] foreign_table_name RENAME [ ATTRIBUTE ] old_attr_name AS new_attr_name [ ; ] where: - foreign_table_name is the name of the foreign table that contains the attribute to be renamed. - old_attr_name must be the name of an existing attribute in the foreign table that you are altering. Designating the keyword ATTRIBUTE with this command is optional. Example The following ALTER command renames the attribute price to cost in the foreign table inventory: alter foreign table order_detail_line rename attribute cost as price; The query specification in order_detail_line does not need to be changed to reflect the new attribute name. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Altering a foreign table 52 Deleting/Dropping CID Foreign Database entities Cincom recommends that you use Visual SQL to delete CID Foreign Database entities. Refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503, for details on Visual SQL. A CID Foreign Database cannot be removed until all foreign tables have been removed from that CID Foreign Database. If you are using a script, a CID Foreign Database registration and a foreign table definition can be removed with the DROP statement. If the foreign table you are dropping is included in the query specification of a virtual class/view, that portion of the query specification should also be removed. When a query specification references an entity that no longer exists, a runtime error occurs. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Deleting/Dropping CID Foreign Database entities 53 Dropping the registration of a CID Foreign Database The DROP FOREIGN DATABASE statement is used in a script to remove the registration of a CID Foreign Database. When you no longer need access to a CID Foreign Database for your application, you can drop its registration from the SQL Access Server. This statement can only be performed by users with the delete privilege for the system class ldb_catalog. By default, only the DBA (user dba) has this privilege. Syntax DROP FOREIGN DATABASE fdb_name [ ; ] The fdb_name is the name that was assigned to the CID Foreign Database when it was registered in the SQL Access Server. Only one CID Foreign Database can be dropped with the same statement. When the registration of a CID Foreign Database is removed, any foreign tables that reference the CID Foreign Database must have already been dropped; otherwise an error is returned and the DROP FOREIGN DATABASE statement fails. The registration for a CID Foreign Database cannot be dropped if foreign tables on that CID Foreign Database have already been accessed during the current session. This includes both (1) queries or updates on the associated foreign tables, and (2) queries or updates on virtual classes/views that access those foreign tables. In the next example, foreign tables inventory, shipment, and employee need to be dropped before the registration of CID Foreign Database rdb can be successfully dropped. For a detailed description of dropping foreign tables, see "Dropping foreign tables", which follows. Example drop inventory, shipment, employee; drop foreign database rdb; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Deleting/Dropping CID Foreign Database entities 54 Dropping foreign tables If access to the CID Foreign Database file/table is no longer needed, the foreign table definition can be removed with the DROP statement. Foreign tables can be part of an inheritance hierarchy; therefore, specific subclasses can also be removed as part of the same DROP statement. The following shows the valid syntax for dropping a foreign table definition. Syntax DROP [ FOREIGN TABLE ] foreign_table_clause [ {, foreign_table_clause }… ] [ ; ] foreign_table_clause: foreign_table_name all_except_foreign_table_clause all_except_foreign_table_clause: ALL foreign_table_name [ EXCEPT except_foreign_table_clause ] except_foreign_table_clause: foreign_table_name all_except_foreign_table_clause where: - foreign_table_name is the name that was specified for the foreign table when the entity was first created. When the ALL keyword is given before the foreign_table_name, every subclass of that foreign table is also dropped. If specific subclasses exist in the hierarchy that you do not want to remove, you can include the EXCEPT clause in the DROP ALL syntax. When you drop a foreign table make sure that any query specifications referencing the dropped foreign table are also removed from any view/virtual class. Examples Both of the following statements will drop the foreign table named inventory: drop foreign table inventory; drop inventory; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Deleting/Dropping CID Foreign Database entities 55 Joining foreign tables Joining multiple foreign tables allows you to select and combine data from these foreign tables. You specify which foreign tables you wish to view in the FROM clause. You use the WHERE clause to indicate how you want the data joined for display in each instance. For example: select * from inventory, shipment where inv_product_no = ship_product_no This will display attributes from both inventory and shipment foreign tables when there is a match on the product number in each foreign table. This is known as an inner join. If product number 1234 exists in the inventory foreign table but does not exist in the shipment foreign table then product number 1234 will not be displayed. If you wish to display product number 1234 even if there is no matching record in the shipment foreign table, this is called an outer join. In order to accomplish an outer join, you will need to create a CID Adapter View and select from the foreign table created from the CID Adapter View. For more information on CID Adapter Views, see "View" on page 393. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Joining foreign tables 56 Creating a view A view (also called a virtual class) is essentially a different “view” of one or more foreign tables. Since you can only define one foreign table for a PDM or VSAM file, it is important to include all the PDM or VSAM fields into that foreign table. This may be cumbersome to work with if there are a large number of fields, so a view allows you to select only the fields you want to see. A view can also be used to join two or more foreign tables and select only the fields from these tables that you wish to see. You can create multiple views for a foreign table. A view is available to the SQL Access Client application. It appears no different than a foreign table and has the same capabilities of a foreign table. The format of a view is very similar to a foreign table. A view consists of: ♦ One attribute and associated domain for each attribute selected from the foreign table ♦ A query specification, which indicates the attribute name and foreign table name We recommend that you use Visual SQL (refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503) to create the view in a script window. You can also use SQL/X to create a view. Syntax CREATE VIEW view_name ( view_attr_definition [ {, view_attr_definition }… ] ) AS view_query_specification [ ; ] where: - view_name is the unique name for the view. The view cannot be created using a name that already exists in the SQL Access Server as another foreign table, view/virtual class, class/table, or registered CID Foreign Database. The name cannot contain spaces, and it cannot be a SQL Access reserved word. Alphanumeric characters, underscores (_), the number sign (#), and the percentage sign (%) are allowed in the view name. The name identifier must begin with a letter, and the maximum number of characters for a name is 255. For a list of reserved keywords, refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating a view 57 - view_attr_definition has the following syntax: attribute_name data_type [ DEFAULT value ] The attributes you define in a view are enclosed in parentheses and must be given a name and a domain. The attribute_name you assign should follow the same character-use conventions that were described for view_name. The data_type given as the domain of an attribute can be any valid built-in data type that is supported by SQL Access. View attribute domains are rarely different from the foreign table attribute data type. However coercions may be allowed for numeric types and the types DATE and TIMESTAMP. For additional information on supported data types, refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503. If the attribute names and data types you will use in the view exactly match the foreign table names and data types, it is not necessary to specify them in the view definition. Attributes can be optionally designated to have a DEFAULT value. If you specify the DEFAULT syntax, you must also designate an initial value. - view_query_specification is actually a SELECT command that names the foreign table attribute that corresponds to each attribute in the view. The elements of the SELECT command can also be an expression using the foreign table attribute name. For example, instead of just including the attribute name price, the expression price + 25 could be included in the SELECT list. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating a view 58 Example 1 This example creates a view named ‘address_label’ for foreign table address. The attribute names in the view can be the same as the matching attribute names in the foreign table, but the names can also be different. In the example below, the physical file named ADDR and the address foreign table on it contain 42 attributes/fields. Rather than sort through those attributes each time you want to display the address label information for a customer, you can create a view as follows: create view address_label ( line1 char(30), line2 char(30), liine3 char(30), attn_name char(30), customer_no char(20) ) as select addradl1, addradl2, addradl3, addratln, addrcust from address; This view can be used to select the label information for a customer based on the customer number: select line1, line2, line3, attn_name from address_label where customer_no = ‘OH12345678’ Example 2 This example creates a view named ‘customer_address’, which joins foreign tables address and customer. The view will show the address for a customer and also includes customer name and sales region for the customer. create view customer_address ( customer_name char(30), customer_no char(20), customer_region char(10), line1 char(30), line2 char(30), line3 char(30), attn_name char(30) ) as select custname, custctrl, custregn, addradl1, addradl2, addradl3, addratln from customer, address where addrcust = custctrl; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Creating a view 59 Security and Authorization The DBA and/or users authorized by the DBA control access to the SQL Access Server, CID Foreign Database and foreign table information. A SQL Access Server is created with a PUBLIC group and a DBA user. All users are members of the PUBLIC group. The DBA must define all other users. This chapter discusses various mechanisms available to define users and groups, as well as to restrict and assign user access to a SQL Access Server. These include: ♦ Defining users at creation time ♦ Adding users ♦ Adding users with authorization methods ♦ Removing users ♦ Adding and removing groups and assigning or removing users to/from groups ♦ Granting and revoking privileges ♦ Restricting class access with virtual methods ♦ Locking activity Privileges to read, insert, update, and delete instances as well as to modify the SQL Access Server and grant privileges to other users, are maintained on a foreign table basis. Partial foreign table access can be achieved using virtual classes. Users and groups cannot be added, deleted, or changed if the SQL Access Server is started in read-only mode (-r option). Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Security and Authorization 60 Access privileges The basic unit of authorization is the foreign table. Each user is represented by an instance of the db_user class. This db_user instance maintains the user’s privileges for each foreign table for which he/she has access. Authorization for the foreign table is accomplished using the GRANT statement. Only the DBA or the owner can grant privileges for any given foreign table. Authorization for a foreign table can be granted to either a single user or a list of users, which are referred to as a group. When authorization is granted for a group, all members of the group receive the same authorization privileges. Every new user is a member of the PUBLIC group. SQL Access Server provides the following access privileges: ♦ SELECT ♦ INSERT ♦ UPDATE ♦ DELETE ♦ ALTER ♦ INDEX ♦ EXECUTE ♦ ALL PRIVILEGES ♦ GRANT OPTION A user must have grant authorization (the owner of a foreign table automatically has grant authorization) for an operation before he/she can authorize other users for that operation on that foreign table. DROP authorization is handled by setting ALTER privileges. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Access privileges 61 Authorizing access to a foreign table Authorization for user access to a foreign table is primarily the responsibility of the DBA. However, when you create a foreign table, you become its owner, which entitles you to grant specific authorizations on that foreign table. Access to the foreign table can be restricted according to the user and by the type of statement that the user can issue against the foreign table. Users Each user is identified by a unique user name. The DBA can set up the names of authorized users by invoking the appropriate methods on the built-in authorization objects. User names can also be set up using the createdb utility program that is supplied to your DBA. (See "createdb" on page 251 for details.) Any user can have an associated list of members who also receive access privileges. When authorization is granted to a user, it automatically applies to all members associated with the user. Consequently, a user and the list of related members (other users) are commonly referred to as a group. A user without any members is referred to as a user. SQL Access Server has two types of built-in users. The first type of built-in user is referred to as PUBLIC, meaning that all other users are automatically designated as members. If authorization on a foreign table is given to PUBLIC, then all users are granted access to the particular foreign table. Granting authorization to user PUBLIC is a convenient way to make foreign tables broadly visible. The second type of built-in user is DBA, which is reserved for the DBA. The DBA is automatically a member of all users or groups. Hence, authorization for the DBA user or a member of the DBA group does not need to be explicitly granted. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorizing access to a foreign table 62 Granting authorization/privileges to users The basic unit of authorization in the SQL Access Server is the foreign table. When you create a foreign table or a virtual class in the SQL Access Server, your user name is assigned as the owner of the foreign table. Before another user can access this foreign table, you must first grant the specific privilege(s) to relevant users or groups. Authorization for a foreign table or a virtual class can be granted to a single user or a list of users, either of which can have members (compose a group). When authorization is granted for a GROUP, all members in the group receive the same privileges. It is not necessary to explicitly grant authorization to every member in the group. When PUBLIC is given as a user name, all users of the SQL Access Server have access to the foreign table or virtual class. Authorization for a foreign table or virtual class is accomplished with the GRANT statement. Syntax GRANT operation [ {, operation }… ] ON foreign_table_name [ {, foreign_table_name }… ] TO user [ {, user }… ] [ WITH GRANT OPTION ] [ ; ] Each parameter that you supply in the syntax can be a single value or a list of values. The value you specify for operation determines what actions on a foreign table or virtual class that other users can perform. (The owner of the foreign table or virtual class always has full access privileges. It is not necessary to grant privileges to the foreign table or virtual class owner.) The valid keywords and the type of authorization they allow are listed in the table on the next page. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorizing access to a foreign table 63 Operation Privilege authorized SELECT Permits the user to read the foreign table definition and query the foreign table instances. This is the most common type of authorization. INSERT Authorizes the creation of new instances of the foreign table. UPDATE Allows the modification of existing instances of the foreign table. DELETE Authorizes the removal of instances of the foreign table. ALTER Permits modification of the foreign table definition, renaming a foreign table, or removal of the foreign table from the SQL Access Server. INDEX Allows the user to assign indexes on foreign table attributes for enhanced performance on query processing. EXECUTE Permits the user to invoke methods on the foreign table or instances of the foreign table. ALL PRIVILEGES Specifies full authorization on the foreign table. All the preceding authorization types will be in effect. You can specify the authorization names and types for one or more foreign tables or virtual classes by listing each relevant name. You must either be the owner of every foreign table on which you grant authorization, or be given a GRANT OPTION (see "Including the WITH GRANT OPTION specification" on page 65) before you can authorize other users for a foreign table. The user value determines which users or groups have been given authorization for the foreign table. You can specify a user’s login name or the systemdefined user name PUBLIC. When PUBLIC is specified, every user of the SQL Access Server can access the foreign table. The DBA (DBA) or any member of the DBA group is automatically granted all authorization privileges for every operation on every foreign table. To perform SELECT, UPDATE, DELETE, and INSERT operations on a virtual class, the owner of the virtual class must have SELECT and any corresponding authorization on every foreign table in the query specification of the virtual class. In addition, the virtual class must be updateable. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorizing access to a foreign table 64 Example 1 This GRANT statement allows user Davis (and any members associated with this user) to issue queries on foreign table location: grant select on location to Davis; Example 2 This GRANT statement allows the users or groups of Davis and Brown to read, add, modify, and delete the instances in two foreign tables, hotel and motel: grant select, insert, update, delete on hotel, motel to Brown, Davis; Including the WITH GRANT OPTION specification The same authorization privileges that you grant to a user can be passed on to another user when you specify the WITH GRANT OPTION in your GRANT statement. For example, if you grant SELECT authorization to a user or group, you can also authorize that user or any member of the group to grant the same privilege to another user or group of the SQL Access Server. Example This GRANT statement authorizes user Brown to read data from foreign tables resort and hotel, and permits Brown to authorize the same SELECT privilege to other users, although Brown is not the owner: grant select on hotel, resort to Brown with grant option; Now user Brown can issue a GRANT statement to other users of the SQL Access Server (such as Jones in the following example). Brown can only grant the same privilege that he is authorized to use, but he can grant it on either foreign table resort or foreign table hotel: grant select on resort to Jones; User Brown can also pass authorization privileges to user Jones if he specifies the WITH GRANT OPTION. Any time a GRANT authorization is passed to another user, that user can further pass on privileges that he/she was given. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorizing access to a foreign table 65 Revoking authorization/privileges Privileges that you grant to a user can be revoked at any time. If you had originally authorized several privileges to a user, you have the option of removing one, more than one, or all of the authorization types. You can also selectively revoke users or foreign tables from your original GRANT statement. When you revoke a privilege from a user to whom you had given authorization (WITH GRANT OPTION), the privileges you revoke will also affect those users who were granted authorization from the user(s) you authorized. In other words, if you remove the authorization for user Brown to UPDATE a foreign table, any user that Brown authorized to modify instances of that foreign table is also denied the UPDATE privilege. In addition, you can also remove authorization on any users that Brown authorized to update that foreign table or modify instances of that foreign table. Removing authorization on a foreign table is done using the REVOKE statement. Syntax REVOKE operation [ {, operation }… ] ON foreign_table_name [ {, foreign_table_name }… ] FROM user [ {, user }… ] [ ; ] Each parameter you supply in the syntax can be a single value or a list of values. If you want to remove every authorization type, use the ALL PRIVILEGES specification rather than a listing of each type that you had previously specified in the GRANT statement. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Revoking authorization/privileges 66 Examples One of the previous examples granted four authorization types on two foreign tables to two users: grant select, insert, update, delete on hotel, motel to Brown, Davis; Suppose that you now want user Davis to have only read privileges on both foreign tables, leaving Brown as the only user authorized to add, edit, or delete data from these foreign tables. The following REVOKE statement changes your original authorization for these foreign tables: revoke insert, update, delete on hotel, motel from Davis; The original authorization for Brown remains intact, but user Davis can now only query the foreign table hotel and the foreign table motel. If Davis had been given authorization to grant privileges to other users, those other users could now only query the foreign tables to which Davis had granted them access as well. If you decide to remove all authorization privileges for user Davis, you can issue the following statement. Davis is then denied any type of access to foreign table hotel and foreign table motel: revoke all privileges on hotel, motel from Davis; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Revoking authorization/privileges 67 User overview The DBA user and the PUBLIC group are built into the SQL Access Server. DBA is a member of all groups and has access to every object in the SQL Access Server. The DBA must define all other users. All users, including DBA, are members of the PUBLIC group. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: User overview 68 Adding users When a user is added to the SQL Access Server, the system creates an instance of the class db_user. Instances of the db_user class have the following properties: Property Data type or class Description id integer Object number ID for the user password db_password The user’s SQL Access Server password authorization db_authorization Privileges granted to the user name string A string representing the user groups set (db_user) Groups to which the user belongs members set (db_user) Users that belong to this group (where the db_user is a group) add_user method The add_user() method adds a user during the life of a SQL Access Server. This is a db_user class method. It takes two arguments: name and password, both of which are passed to the method as strings. The system requires the name argument, and it must be unique. If no password is required for the specified user, then the system uses the empty string ('') as the second parameter. The system automatically adds the new user to the PUBLIC group. The following example adds the user ‘alvaro’ having the password ‘wizard’ to the db_user class for the currently active SQL Access Server: CALL add_user('alvaro','wizard') ON CLASS db_user; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Adding users 69 Groups and members As with users, you can add groups by using the add_user method call or when you are creating the SQL Access Server by using the user definition file. To make common access privileges easier to maintain, the DBA can set up groups. To do this, the DBA must do the following: 1. Add a user with a descriptive group name. 2. Add each associated user as a member to the new user (group) using the add_member() method. All users in the SQL Access Server are members of the PUBLIC group. Any user can become a group by adding members to it. Use interpreter variables to hold the return identities for inclusion in the add_member() method. The following example adds the group ‘admin’ having the password ‘password’ and the user ‘smith’ having the password '’’' to the db_user class for the currently active SQL Access Server. It then adds user ‘smith’ to the group ‘admin’ using the interpreter variable ':admin': CALL add_user('admin','password') ON CLASS db_user to :admin; CALL add_user('smith','') ON CLASS db_user; CALL add_member('smith') ON :admin; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Adding users 70 User definition file Often, the DBA knows the names of the initial users of the SQL Access Server before its creation. In such cases, the createdb utility accesses the file containing the user information so that corresponding user objects are created automatically in the SQL Access Server. It is not necessary to use this file to define users in the SQL Access Server, but the format of the file is somewhat more straightforward and easier to read than the corresponding SQL Access Server statements that define users. The user definition file consists of one or more lines of USER statements. Syntax USER user_name [ groups_clause | members_clause ] groups_clause: [ GROUPS user_name [ { user_name } … ] members_clause: [ MEMBERS group_name [ { group_name… } ] ] For each USER statement in your file, the user_name is the name of the authorized user. You can use alphanumeric characters in the name, but it must not contain embedded blanks. The GROUPS clause is optional and allows the specification of one or more groups of which the user is a member. The group_name specification is no different from the user_name; the name supplied as group_name is used as a convention to identify a user that has one or more members. You must define each group_name that is specified in the MEMBERS clause in another USER statement elsewhere in the file. Comments are allowed in the user definition file; each comment line must begin with a hyphen (-). The system ignores blank lines in the file. Do not continue a USER statement onto the next line. Instead, you can define several statements for the same user (see the following example, Example user definition file 2). Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Adding users 71 Examples This example shows that user smith is a member of two groups and the other users (brown and jones) are each a member of one group. All users are indirectly members of group company: --- Example user definition file -USER company USER engineering GROUPS USER marketing GROUPS USER administration GROUPS USER smith GROUPS USER brown GROUPS USER jones GROUPS 1 company company company administration marketing engineering marketing This example demonstrates the cumulative effect of USER statements that define the same user name. In this case, user brown is added as a member of three groups. Because each USER statement must fit onto a single line, using multiple USER statements can make the file more readable if a user is a member of many groups: --- Example user definition file -USER engineering USER marketing USER administration USER brown GROUPS USER brown GROUPS USER brown GROUPS 2 engineering administration marketing The next example illustrates another way of defining groups. In this case, the members of the groups are defined with the MEMBERS keyword, rather than the group names being spread out among the individual users: --- Example user definition file 3 -USER brown USER smith USER jones USER engineering MEMBERS brown USER marketing MEMBERS smith jones USER administration MEMBERS smith Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Adding users 72 Deleting users You can delete users and group members by using the drop_user () and drop_member() methods. Dropping a user The DBA owns the db_user class. Only the DBA user of the DBA group can call the drop_user() method of the db_user class. The drop_user method takes the user name as its only argument. After a user is dropped, the system transfers the ownership of any foreign tables previously owned. The following example drops user james from the currently active SQL Access Server: CALL drop_user('james') ON CLASS db_user; The system predefines PUBLIC and DBA users as system users. Attempts to drop either the PUBLIC or DBA user will result in an error. Dropping a member The drop_member() db_user instance method removes a member from the group. You must be logged into the SQL Access Server as DBA, a member of the DBA group, or as the group from which the member is to be removed. The following example removes james from the users group: CALL find_user('users') ON CLASS db_user TO :users; CALL drop_member('james') ON :users; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Deleting users 73 Renaming the DBA and PUBLIC users After a SQL Access Server is created, the DBA should revoke privileges on the db_user class from the PUBLIC user. The following SQL/X command prevents PUBLIC users from querying the db_user class to determine user names: revoke all on db_user from public; Renaming the DBA The following SQL/X command changes the name of the DBA to newprivname. Only the DBA can execute this command: rename privileged user newprivname; Renaming the PUBLIC user The following SQL/X command changes the name of the PUBLIC user to newdefname. Only the DBA can execute this command: rename default user newdefname; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Renaming the DBA and PUBLIC users 74 Authorization classes in the SQL Access Server Some system-defined classes are created in association with the users who are initially authorized to access the system. Two of these classes can be accessed by the DBA or a member of the DBA group, and other authorized users of the SQL Access Server: ♦ db_user class ♦ db_authorizations class The class db_user contains the login names, passwords (if any), and other information about the SQL Access Server’s users. The db_authorizations class contains a set of all the users in the SQL Access Server and the privileges they have been granted. db_user class Several attributes are defined in the db_user class that contain information about a particular user of the SQL Access Server. These attributes can be updated or displayed by calling one or more of the authorization methods that are built into the system. db_user attributes Attribute type Definition id integer Contains the object number ID for the user. where: 0 = privileged user 1 = default user NULL = all other users password db_password References the user’s password from the db_password class, which cannot be seen by users of the SQL Access Server. authorization db_authorization References the privileges granted to a user (as contained in the db_authorizations class). name string Contains the login ID of the user. groups set (db_user) Contains the set of groups to which the user belongs. direct_groups set (db_user) Contains the set of users that compose the group. triggers sequence (object) Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorization classes in the SQL Access Server 75 Four class methods are defined for the db_user class. These include the class methods: ♦ login ♦ add_user ♦ drop_user ♦ find_user Four methods that operate on the instances of the class db_user include: ♦ add_member ♦ drop_member ♦ set_password ♦ print_authorizations methods See "Authorization methods" on page 78 for more information. db_authorizations class One attribute is defined for the db_authorizations class. The attribute name is users, and its domain is defined as a set of users (instances) from the db_user class described previously. One class method, print_authorizations, can be called to operate on this class. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorization classes in the SQL Access Server 76 Calling authorization methods Updates to the db_user class and descriptions from both the db_user class and the db_authorizations class are managed by calling predefined methods. Some of these methods can only be called by the DBA or a member of the DBA group. The general syntax for calling an authorization method is shown next. Syntax CALL method_definition ON CLASS auth_class [ TO variable ] [ ; ] CALL method_definition ON variable [ ; ] The first form of the CALL statement shows that you can call a method on one of the authorization classes and optionally store the return value of the CALL statement to a variable. This variable can then be referenced in subsequent CALL statements, as shown in the second form of this syntax. Here, method_definition is one of the predefined authorization methods (see Authorization methods, which follows). Depending on the method that you call, specific strings (enclosed in quotes) are used as input values for the method’s arguments. The arguments vary with the method that you call (see Authorization methods, which follows). The auth_class is supplied as either db_user or db_authorizations, according to the method that you call. If you store the CALL statement to a variable, the variable name must be a single word whose character composition is limited to alphanumeric characters and special characters including the number sign (#), the percentage sign (%), and the underscore symbol (_). Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorization classes in the SQL Access Server 77 Authorization methods Several class methods operate on the system authorization classes. In addition, methods operate on the attributes of the db_user class. The operations and individual examples are described next. The login() method After the SQL Access Server has been accessed, use this method to change the user who is currently logged into the SQL Access Server. It can also be used to log in as the DBA by entering dba as the user name. If the dba user has a password, this needs to be entered as well. If the user originally logs into the SQL Access Server as dba or as a member of the DBA group, then the DBA can change the user without requiring that the password be given. In this case, enter the password argument to the login() method as an empty string ( ‘ ’ ). The login() method is a class method for the db_user class and accepts strings for the user’s name and password as arguments: method_definition: auth_class: login (name, password) db_user The following example changes the login identity of the current user to that of user ‘jones’, allowing the current user the same authorization privileges that are granted to ‘jones’. User ‘jones’ does not have a specific password, so an empty string is provided for that argument: call login ('jones', '') on class db_user; The add_user() method Use the add_user() method to add a new user to the SQL Access Server. Only the DBA or a member of the DBA group can call this method. This is a class method that accepts string arguments for the new user’s name and password. The system displays an error message and will not add the user if the name already exists in the SQL Access Server: method_definition: auth_class: add_user (name, password) db_user The next example adds a user named ‘brown’ to the SQL Access Server. User ‘brown’ does not have an individual password to the SQL Access Server, as indicated by the empty string for the password argument: call add_user ('brown', '') on class db_user; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorization classes in the SQL Access Server 78 The drop_user() method Only the DBA or a member of the DBA group can call this method. This class method removes a current user from the SQL Access Server. If the user is the owner of classes in the SQL Access Server, the system transfers ownership of those classes to the DBA. The DBA may then reassign ownership to another user in the SQL Access Server. The name argument is the only argument included with the drop_user() method: method_definition: auth_class: drop_user (name) db_user In this example, user ‘jones’ is removed from the SQL Access Server: call drop_user ('jones') on class db_user; The find_user() method This method finds a user in the SQL Access Server with the name given as the argument to this method. This is a class method and is used most often with a variable so the user can be referenced in other method calls: method_definition: auth_class: find_user (name) db_user The next example finds user ‘smith’ and stores this information to a variable called ‘smith’ for easy reference in future method calls: call find_user ('smith') on class db_user to smith; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorization classes in the SQL Access Server 79 The add_member() method This method adds a member to an existing user in the SQL Access Server. Recall that a user with one or more members is commonly called a group. The system applies the add_member() method directly to an instance of the db_user() class rather than to the db_user() class as a whole (it is not a class method). This method can only be called if you are logged in as the user who is receiving the new member. An exception is the DBA or a member of the DBA group who always has the authority to add a new member: method_definition: auth_class: add_member (member) db_user In the following example, user ‘smith’ is added as a member to user ‘administration’ (which is a group). The first CALL statement that adds a member illustrates how the member argument can be given as a variable. The second CALL statement shows the addition of another member to the ‘administration’ group by supplying a string (‘brown’) as the member argument: call add_user ('administration', '') on class db_user to admin; call add_user ('smith', '') on class db_user to smith; call add_member ('smith') on admin; call add_member ('brown') on admin; The drop_member() method This method drops a member from the member list of an existing user (group) in the SQL Access Server. The drop_member() method is applied directly to an instance of the db_user class rather than to the db_user class as a whole (it is not a class method). Only call this method if you are logged in as the user who is dropping the member. An exception is the DBA or a member of the DBA group who always has the authority to drop a member: method_definition: auth_class: drop_member (member) db_user The next two CALL statements each use the find_user() method to identify the group and the member to be dropped from the group. The ‘administration’ group and member ‘jones’, who is being dropped from the group, are stored as variables for reference in the CALL drop_member() statement. To illustrate that strings are valid member arguments as well, the user ‘brown’ is also dropped from the ‘administration’ group: call find_user ('administration') on class db_user to admin; call find_user ('jones') on class db_user to jones; call drop_member (jones) on admin; call drop_member ('brown') on admin; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorization classes in the SQL Access Server 80 The set_password() method This method changes the password for a user. Normal users can only change their own password when logged in as that user, but the DBA or a member of the DBA group can set any user’s password with this method. The set_password() method applies directly to an instance of the db_user class: method_definition: auth_class: set_password (password) db_user In the next example, the user ‘smith’ is first located using the find_user method and stored to a variable named smith. A new string is then entered as the password argument to the set_password() method: call find_user ('smith') on class db_user to smith; call set_password ('dfs582b') on smith; The print_authorizations() method You can obtain a description of any user in the SQL Access Server by calling this method. The description includes a listing of the groups of which the user is a member. Any user in the SQL Access Server can call the print_authorizations() method. No arguments are passed to this method, which is an instance method for class db_user. Consequently, you must use either the find_user() or add_user() methods to make a variable associated with the user. The method print_authorizations() is then called on that variable: method_definition: auth_class: print_authorizations( ) db_user The following example obtains a description of user ‘jones’. The find_user() method is called first and stored in the variable jones. In the second call statement, variable jones is referenced with the print_authorizations() method: call find_user ('jones') on class db_user to jones; call print_authorizations () on jones; The print_authorizations() class method of db_authorizations You can obtain a full description of all users in the SQL Access Server (and the authorizations they have been granted) from this method. No arguments are passed to the print_authorizations() method, which is a class method for class db_authorizations(): method_definition: auth_class: print_authorizations( ) db_authorizations Use only one form of the print_authorizations() method on class db_authorizations(), as shown in the following example: call print_authorizations () on class db_authorizations; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorization classes in the SQL Access Server 81 The print_authorizations() method must be called from the Command Line SQL/X processor. It cannot be called from Visual SQL. The change_owner method of db_authorizations Use this method to change the ownership information of a class. Only the DBA user or a member of the DBA group executes this method. The first argument to the method is the name of a class. The second argument is the name of a user. Both the class and the user must already exist in the SQL Access Server: method_definition: auth_class: change_owner (class_name, name) db_authorizations In the following example, the ownership of the class ‘person’ is changed such that it belongs to the user ‘smith.’ call change_owner ('person', 'smith') on class db_authorizations; The get_owner() method of db_authorizations Use this method to access the user instance designated as the owner of a particular class. The only argument to the method is the name of the class: method_definition: auth_class: get_owner (class_name) db_authorizations In the following example, you can gain access to the object owner for class ‘person’ by using the get_owner() method. Then, print_authorizations() is used to get a short description of owner: call get_owner ('person') on class db_authorizations to owner; call print_authorizations () on owner; Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Authorization classes in the SQL Access Server 82 Transaction recovery SQL Access transaction recovery provides transaction processing through the use of the COMMIT and ROLLBACK statements. These SQL Access statements are transmitted to the CID Adapter Server and executed as COMIT and RESET PDM functions. SUPRA Server PDM is responsible for SQL Access Server integrity, while SQL Access and ODBC, JDBC, and OLE DB client applications control transaction boundaries and logical units of work (LRU). Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Transaction recovery 83 PDM Locking considerations The CID Adapter Server supports read-only and update mode. Consider the following: ♦ When the read-only CID Adapter Client parameter is set to TRUE, all records are read with the PDM locking parameter RLSE. ♦ When the read-only parameter is set to FALSE in the CID Adapter Client, either specifically or by default, the RLSE PDM locking parameter is used for all selects. OPENVMS UNIX ♦ Searched updates and searched deletes use a locking parameter of END. MVS ♦ The CID Adapter Server parameter SEARCHUPD_LOCK allows you to specify the locking parameter you wish to use for searched updates and deletes. The default for SEARCHPUD_LOCK is READ. The READ locking parameter allows other tasks to read the records but not update them, eliminating the need to re-read the records when the update is done. The READ locks are upgraded to WRITE locks when the update or delete is executed. MVS ♦ MVS also has a CID Adapter Server parameter DATBASUPD_LOCK, which allows you to specify the locking parameter for updates. The default is LOCK. All PDM locks are released when a COMMIT or ROLLBACK statement is executed. These SQL Access statements are transmitted to the CID Adapter Server and executed as COMIT and RESET PDM functions. Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: PDM Locking considerations 84 Statistics considerations The CID Adapter Server supports four different options for displaying statistics. The STATS= parameter in the INIT file of the CID Adapter Server is used to define the level of statistics displayed. If STATS=FUNCTION is specified, an abbreviated statistics block is printed at the end of the function. Note that only non-zero lines are printed. It has the following format: CSHP870I RECORDS READ BY THE CURRENT xxxxx FUNCTION CSHP879I Strategy CSHP880I Direct nnnnnnnn nnnnnnnn CSHP881I Index nnnnnnnn nnnnnnnn CSHP882I Linkpath nnnnnnnn nnnnnnnn Scan nnnnnnnn nnnnnnnn CSHP883I Records Read Qualified CSHP884I Path Records nnnnnnnn CSHP885I Set nnnnnnnn CSHP886I TOTAL Records nnnnnnnn nnnnnnnn In message CSHP870I, the xxxxx will be replaced by "SELECT", "SEARCHED UPDATE", or "SEARCHED DELETE" If STATS=FUNCTION or STATS=LUW is specified, an abbreviated statistics block is printed at the end of the logical unit of work. Note that only non-zero lines are printed. It has the following format: CSHP871I RECORDS READ BY THE CURRENT LOGICAL UNIT OF WORK CSHP879I Strategy Records Read Qualified CSHP880I Direct nnnnnnnn nnnnnnnn CSHP881I Index nnnnnnnn nnnnnnnn CSHP882I Linkpath nnnnnnnn nnnnnnnn CSHP883I Scan nnnnnnnn nnnnnnnn CSHP884I Path Records nnnnnnnn CSHP885I Set nnnnnnnn CSHP886I TOTAL Records Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Statistics considerations nnnnnnnn nnnnnnnn 85 If STATS=FUNCTION or STATS=LUW or STATS=SYSTEM is specified, a full statistics block is printed at the end of the run. It has the following format: CSHP872I P D M D R I V E R S T A T I S T I C S CSHP873I SELECT FUNCTIONS EXECUTED nnnnnnnn CSHP874I RECORDS READ BY THE SELECT FUNCTION CSHP879I Strategy Records Read Qualified CSHP880I Direct nnnnnnnn nnnnnnnn CSHP881I Index nnnnnnnn nnnnnnnn CSHP882I Linkpath nnnnnnnn nnnnnnnn CSHP883I Scan nnnnnnnn nnnnnnnn CSHP884I Path Records nnnnnnnn CSHP885I Set nnnnnnnn CSHP886I TOTAL Records nnnnnnnn nnnnnnnn CSHP875I SEARCHED UPDATE FUNCTIONS EXECUTED nnnnnnnn CSHP876I RECORDS READ BY THE SEARCHED UPDATE FUNCTION CSHP879I Strategy Records Read Qualified CSHP880I Direct nnnnnnnn nnnnnnnn CSHP881I Index nnnnnnnn nnnnnnnn CSHP882I Linkpath nnnnnnnn nnnnnnnn CSHP883I Scan nnnnnnnn nnnnnnnn CSHP884I Path Records nnnnnnnn CSHP885I Set nnnnnnnn CSHP886I TOTAL Records nnnnnnnn nnnnnnnn CSHP877I SEARCHED DELETE FUNCTIONS EXECUTED nnnnnnnn CSHP878I RECORDS READ BY THE SEARCHED DELETE FUNCTION CSHP879I Strategy Records Read Qualified CSHP880I Direct nnnnnnnn nnnnnnnn CSHP881I Index nnnnnnnn nnnnnnnn CSHP882I Linkpath nnnnnnnn nnnnnnnn CSHP883I Scan nnnnnnnn nnnnnnnn CSHP884I Path Records nnnnnnnn CSHP885I Set nnnnnnnn CSHP886I TOTAL CSHP887I OO Records nnnnnnnn nnnnnnnn FETCH FUNCTIONS EXECUTED nnnnnnnn Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Statistics considerations 86 CSHP888I OO UPDATE FUNCTIONS EXECUTED nnnnnnnn CSHP889I OO INSERT FUNCTIONS EXECUTED nnnnnnnn CSHP890I OO DELETE FUNCTIONS EXECUTED nnnnnnnn Administration Guide, P25-9501-04 Chapter: 3. Managing a CID Foreign Database Section: Statistics considerations 87 4. Tailoring the CID Adapter Server Overview The Cincom Integrated Data (CID) Adapter Server component runs on the same platform as the SUPRA Server PDM or CICS VSAM files. Each PDM database or CICS VSAM system you intend to access using the CID Adapter Server requires a unique network port, and each port can be used by only one CID Adapter Server. This implies that each CID Adapter Server must have its own initialization file, CID Adapter Extensions XML file, bound schema file, and startup scripts. Each PDM database or CICS VSAM system to be accessed must have a dedicated copy of the CID Adapter Server running and listening to a unique TCP/IP port. For CICS, the CID Adapter Coordinator and Server are each defined as a transaction that is started by CICS. At startup time, the CID Adapter Server reads the CID Adapter Server initialization parameter file and sets up its running environment. For PDM, the CID Adapter Server is a multi-process DATBAS application. For CICS VSAM, the CID Adapter Server uses the VSAM Access Module to access the requested VSAM files. The first process that is started, or parent process, is called the CID Adapter Coordinator. This process is responsible for loading the schema and managing connections to the PDM database or to CICS VSAM. After reading the CID Adapter Server initialization file, the CID Adapter Coordinator loads the schema into memory. This is done in one of two ways: PDM ♦ Schema information is requested directly from the PDM Directory. VSAM PDM ♦ Schema information is loaded from the CID Adapter schema file that was saved from the last CID Adapter Server initialization. If there is no saved CID Adapter schema for VSAM, all the internal schema information will come from the CID Adapter Extensions XML file, which is described below The CID Adapter Server input parameter, BIND_SCHEMA, controls which of these two options is used. See the BIND_SCHEMA parameter for your CID Adapter Server platform below for more information. The schema is then extended using the CID Adapter Extensions XML file. See "Extending the CID Adapter Schema" on page 371 for more information. After loading and extending the schema, the CID Adapter Server determines the port on which it should listen for connect requests from CID Adapter Clients. This is determined by the TCPPORT CID Adapter initialization parameter or the PORT parameter in the Sockets Initialization file in CICS . The CID Adapter Server or CICS simply begins listening for connections. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Overview 88 When a connection request is received, a process or CICS task is created for the connection. Each CID Adapter Server platform accomplishes this task differently; however, this process is dedicated to executing requests on behalf of the CID Adapter Client requesting the connection. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Overview 89 Accessing VSAM Files The MVS CICS CID Adapter Server is used to access KSDS, RRDS and ESDS VSAM files. These files must be defined in the CID Adapter Extensions XML File before accessing them using ODBC or JDBC SQL tools. The VSAM files may be added to a schema built from a PDM database or, when there is no PDM database, the VSAM files will comprise the entire schema. All files defined in the schema, whether they are PDM or VSAM files, may be used in SQL queries and may be joined. COMMIT and ROLLBACK transactional statements will execute the appropriate functions in both databases. The specific VSAM files and alternate indices to be added to the CID Adapter Server’s schema are specified in the VSAM_FILE_LIST parameter(s) of the INIT file for the CID Adapter Server. This is a comma-separated list of VSAM file DD names that will be added to the CID Adapter Server’s schema. Refer to "Defining the MVS and CICS initialization parameters" on page 98 for more information on the VSAM_FILE_LIST parameter. At startup the CID Adapter Server will request the file information for each file in the VSAM_FILE_LIST and add the following information to the CID Adapter Server’s schema for each file: ♦ A File element for the file having the name and type specified by CICS. The name will be the 1 to 8 character DD name of the file. The type will be either KSDS, RRDS or ESDS. ♦ A Field element for the base field comprising the entire VSAM record named file-name_BASE with the length set to the VSAM record length and type of CHARACTER. ♦ For KSDS files, a Subfield element of the base field for the primary KSDS key named file-name_KEY and type of CHARACTER. ♦ A Subfield element of the base field for each alternate index key named alternate-index_name_KEY and type of CHARACTER. ♦ For KSDS files, an Access_method element for the primary KSDS key named file-name. ♦ An Access Method element for each alternate index. The name will be the 1 to 8 character DD name of the alternate index file. A CID Adapter Extensions XML file must be created that defines subfield and data type information to the internal schema for each VSAM file. All fields defined in the XML file must be subfields of the base field, file-name_BASE. Each subfield may itself contain subfields, but there can be only one base field. Additional Access Method elements may be added to define access methods on subfields of a key. This allows the join optimizer to utilize the index when subfields of the key are referenced in the query. See "Extending the CID Adapter Schema" on page 371 for more information on the CID Adapter Extensions XML file. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Accessing VSAM Files 90 Tailoring the MVS CID Adapter Server After installing the MVS CID Adapter Server component, you must perform the following tasks to tailor it for your site. Some of these tasks are required and are a step in the installation. Cincom recommends, however, that you review each task here to ensure that everything was set up correctly during installation. ♦ ♦ ♦ ♦ Defining the CID Adapter Server JCL Defining the initialization file parameters (Optional) Examining and updating the ASCII/EBCDIC translation tables (Optional) Coding the user logon exit These tasks are discussed in the sections that follow. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 91 Defining the MVS CID Adapter Server JCL To tailor the CID Adapter Server component, you must first define your CID Adapter Server JCL. The following JCL is required for the CID Adapter Server: ♦ The execute parm specifies the driver message language: - If the parm is omitted, US English is used. //TEST EXEC PGM=V1DRIVER,PARM= // Execute card for the server - If the parm is specified, a particular member, containing messages for a specific language, is selected in the MSG PDS. The format of the PARM is: '=LANG=xxxxxxxx' where xxxxxxxx is the member name ♦ The steplib concatenation must include the CID Adapter component, the user sinon exit (if defined), the user translate tables (if defined), any PDM command exits, the CSTEDCMT module, and the IBM C/C++ run-time library. //STEPLIB ♦ The initialization parameter file can be a DSORG=PS or DSORG=PO file. RECFM=FB. LRECL is between 80 and 128. The contents of this file are set by the user. //INIT ♦ The XMLFILE is an optional file and contains schema extension information defined by the user. The CID Adapter ExtensionsXML file can be a DSORG=PS or DSORG=PO file. RECFM=FB. LRECL=80. // XMLFILE ♦ The message prototype file is a DSORG=PO file. RECFM=FB. LRECL=256. The contents of this file are set during product installation. //MSG Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 92 ♦ The CSIPARM file with the parameters specified for the PDM installation. //CSIPARM ♦ The bound schema file is a DSORG=PS file. RECFM=VBS, LRECL=3200. The contents of this file are set when the schema is bound during driver initialization. //SCHEMA ♦ The IBM TCP/IP configuration file (usually prefix.TCPIP.DATA). //SYSTCPD ♦ The message output file can either be a SYSOUT file or a sequential file with DSORG=PS,RECFM=FBA,LRECL=133. //MSGPRINT ♦ The run-time library catastrophic error message output file can either be a SYSOUT file or a sequential file with DSORG=PS,RECFM=FBA,LRECL=133. //SYSTERM ♦ This is optional, but recommended. //SYSUDUMP Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 93 Example: //* See member SERVER Job card here //* //LIBSRCH JCLLIB ORDER=XXXX.YYYYYYYY.JCLLIB //* //******************************************************************* //* //* LIBSRCH IS REQUIRED TO EXPAND THE INCLUDE GROUP IN INCS1 BELOW //* //******************************************************************* //INCS1 INCLUDE MEMBER=SPARMS //* //* CHANGE THE STEPLIB FOR SUPRA PDM LIBRARY //* CHANGE THE STEPLIB FOR C/C++ RUNTIME LIBRARY //* CHANGE THE XMLFILE OR REMOVE IF NOT REQUIRED //* CHANGE THE CSIPARM FOR YOUR SUPRA CSIPARM //* CHANGE THE SYSTCPD FOR YOUR TCP/IP LIBRARY //* //SERVER EXEC PGM=V1DRIVER //STEPLIB DD DISP=SHR,DSN=&HLQ..LINKLIB // DD DISP=SHR,DSN=<SUPRALIB> // DD DISP=SHR,DSN=<CRUNTIME> //INIT DD DISP=SHR,DSN=&HLQ..MACLIB(INIT) //XMLFILE DD DISP=SHR,&HLQ..MACLIB(XML) //MSG DD DISP=SHR,DSN=&HLQ..MSG //CSIPARM DD DISP=SHR,DSN=<CSIPARM> //SCHEMA DD DISP=SHR,DSN=&HLQ..SCHEMA //SYSTCPD DD DISP=SHR,DSN=TCPIP.V2R21.TCPIP.DATA //SYSPRINT DD SYSOUT=* //MSGPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSUDUMP DD SYSOUT=* /* // &HLQ is defined in the SPARMS member, which is included in the beginning of the job. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 94 Defining the MVS CID Adapter Server CSV1SHUT JCL The CSV1SHUT member contains the JCL for shutting down the MVS CID Adapter Server. The DD statements in the CSV1SHUT member are a subset of the DD statements in the SERVER JCL above. The &PORT, &DBM and &HOST parms for the EXEC statement are defined in the SPARMS member. //LIBSRCH JCLLIB ORDER=XXXX.YYYYYY.JCLLIB //* //******************************************************************* //* //* LIBSRCH IS REQUIRED TO EXPAND THE INCLUDE GROUP IN INCS1 BELOW //* //******************************************************************* //* //INCS1 INCLUDE MEMBER=SPARMS //* //* CHANGE THE STEPLIB FOR SUPRA PDM LIBRARY //* CHANGE THE STEPLIB FOR IBM C/C++ RUNTIME LIBRARY //* CHANGE THE SYSTCPD FOR YOUR TCP/IP LIBRARY //* //* //TEST EXEC PGM=CSV1SHUT,PARM='-P &PORT -D &DBM -H &HOST' //STEPLIB DD DISP=SHR,DSN=&HLQ..LINKLIB // DD DISP=SHR,DSN=<SUPRALIB> // DD DISP=SHR,DSN=<CRUNTIME> //INIT DD DISP=SHR,DSN=&HLQ..MACLIB(INIT) //SYSTCPD DD DISP=SHR,DSN= TCPIP.V2R21.TCPIP.DATA //SYSPRINT DD SYSOUT=* //MSGPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSUDUMP DD SYSOUT=* Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 95 Defining the MVS CID Adapter Server CSV1PING JCL The CSV1PING member contains the JCL for testing the connection to the MVS CID Adapter Server. The DD statements in the CSV1PING member are a subset of the DD statements in the SERVER JCL above. The &PORT and &DBM parms for the EXEC statement are defined in the SPARMS member. //LIBSRCH JCLLIB ORDER=XXXX.YYYYYYYY.JCLLIB //* //******************************************************************* //* //* LIBSRCH IS REQUIRED TO EXPAND THE INCLUDE GROUP IN INCS1 BELOW //* //******************************************************************* //* //INCS1 INCLUDE MEMBER=SPARMS //* //* CHANGE THE STEPLIB PDM LIBRARY //* CHANGE THE STEPLIB FOR IBM C/C++ RUNTIME LIBRARY //* CHANGE THE SYSTCPD FOR YOUR TCP/IP LIBRARY //* //* //TEST EXEC PGM=CSV1PING,PARM='-P &PORT -D &DBM' //STEPLIB DD DISP=SHR,DSN=&HLQ..LINKLIB // DD DISP=SHR,DSN=<SUPRALIB> // DD DISP=SHR,DSN=<CRUNTIME> //INIT DD DISP=SHR,DSN=&HLQ..MACLIB(INIT) //SYSTCPD DD DISP=SHR,DSN=XXXX.TCPIP.V2R21.TCPIP.DATA //SYSPRINT DD SYSOUT=* //MSGPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSUDUMP DD SYSOUT=* Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 96 Defining the MVS CID Adapter Server CSV1PORT JCL The CSV1PORT member contains the JCL for verifying that no other application is currently using the MVS CID Adapter Server port. The DD statements in the CSV1PORT member are a subset of the DD statements in the SERVER JCL above. The &PORT parm for the EXEC statement is defined in the SPARMS member. //LIBSRCH JCLLIB ORDER=XXXX.SUPRAC.JCLLIB //* //******************************************************************* //* //* LIBSRCH IS REQUIRED TO EXPAND THE INCLUDE GROUP IN INCS1 BELOW //* //******************************************************************* //* //INCS1 INCLUDE MEMBER=SPARMS //* //* CHANGE THE STEPLIB FOR SUPRA PDM LIBRARY //* CHANGE THE STEPLIB FOR IBM C/C++ RUNTIME LIBRARY //* CHANGE THE SYSTCPD FOR YOUR TCP/IP LIBRARY //* //* //TEST EXEC PGM=CSV1PORT,PARM='-P &PORT' //STEPLIB DD DISP=SHR,DSN=&HLQ..LINKLIB // DD DISP=SHR,DSN=<SUPRALIB> // DD DISP=SHR,DSN=<CRUNTIME> //INIT DD DISP=SHR,DSN=&HLQ..MACLIB(INIT) //SYSTCPD DD DISP=SHR,DSN=XXXX.TCPIP.V2R21.TCPIP.DATA //SYSPRINT DD SYSOUT=* //MSGPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSUDUMP DD SYSOUT=* Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 97 Defining the MVS and CICS initialization parameters The MVS CID Adapter Server init file defines your initialization parameters (see "CID Adapter Server init file parameters (MVS and CICS)" on page 99) and is pointed to by the //INIT DD statement. When you code the init file, use the following general coding rules: ♦ Whichever is shorter: - A maximum line length of 127 characters - The file LRECL ♦ Lines can be blank. ♦ All comment lines must begin with a pound sign (#). ♦ Parameters can begin anywhere on a line but must start and end on one line. ♦ There can be no space between a parameter keyword and its subsequent equals sign (=). However, there can be spaces after the equals sign. ♦ Keywords are case-insensitive; they can be lowercase, uppercase, or a combination of both. ♦ Numbers can be specified as: Representation Numeric base 0xnnnn Hexadecimal 0nnnn Octal nnnn Decimal ♦ Enclose a text string in single quotes (‘text string’) or double quotes (“text string”) if it contains white space characters (space, tab, newline, return, form feed). If a text string contains a single quote, enclose the string in double quotes. If a string contains a double quote, enclose the string in single quotes. ♦ Boolean=false can be specified by the following character options: N/n/F/f/0. Boolean=true can be specified by the following character options: Y/y/T/t/1. Characters following one of these option characters are ignored (“not” and “N1” would be treated as Boolean=false). Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 98 CID Adapter Server init file parameters (MVS and CICS) The CID Adapter Server init file parameters on MVS are as follows: ALLOW_CORE_DUMP=TRUE or FALSE Description (Optional) Specifies whether a core dump will be allowed. This is a Cincom Technical Support parameter. Default FALSE Options TRUE Allows a core dump to occur FALSE Does not allow a core dump to occur Consideration By default, the CID Adapter Server component does not allow core dumps to be written when there is an internal problem (segmentation violation). If the CID Adapter Server component crashes, Cincom Technical Support may request that this parameter be set so that a core dump can be written for problem analysis. BIND_SCHEMA=YES or NO Description (Optional) Specifies whether bound schema support is enabled. Default YES Options YES Enable bound schema support. YES can also be specified by Y/y/T/t/1. NO Disable bound schema support. NO can also be specified by N/n/F/f/0. Considerations ♦ When the BIND_SCHEMA parameter is set to YES, the CID Adapter Server will first look for a bound schema from a prior execution. If it exists, it will verify that the PDM Directory has not changed since the bound schema file was written, and, if not, will proceed to load the bound schema into memory. If the bound schema does not exist or the PDM Directory has changed since the bound schema file was written, the schema information will be loaded directly from the PDM Directory, and, when complete, a bound schema file will be written. ♦ The bound schema file contains the foreign key information from the Adapter Extensions XML file and schema information from the PDM Directory but does not contain the CID Adapter Views or Field and type information. When a change is made to the foreign key information in the CID Adapter Extensions XML file, it is not automatically detected by the CID Adapter Server. If the BIND_SCHEMA parameter is set to YES, it is necessary to delete the bound schema file in order to force the schema to be loaded directly from the PDM Directory. This will cause the foreign key information to be refreshed. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 99 ♦ All other definitions in the CID Adapter Extensions XML file (CID Adapter Views, field and type information) will always be processed at start-up regardless of the BIND_SCHEMA parameter. ♦ When the BIND_SCHEMA parameter is set to NO, the CID Adapter Server will always load the schema information directly from the PDM Directory and will not write a bound schema file. BYPASS_OPT_CTRL_LINKPATH=YES or NO Description (Optional) Specifies whether to bypass the optimizer direct lookup and linkpath processing. Default NO Options YES Bypass; do not allow direct and linkpath access. YES can also be specified by Y/y/T/t/1. NO Do not bypass; allow direct and linkpath access. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can have a severe impact on CID Adapter Server performance. BYPASS_OPT_INDEX=YES or NO Description (Optional) Specifies whether to bypass the optimizer index processing. Default NO Options YES Bypass; do not allow index access. YES can also be specified by Y/y/T/t/1. NO Do not bypass; allow index access. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can have a severe impact on CID Adapter Server performance. BYPASS_QUAL=YES or NO Description (Optional) Specifies whether to bypass qualification on the CID Adapter Server. Default NO Options YES Bypass; do not perform qualification on the CID Adapter Server. YES can also be specified by Y/y/T/t/1. NO Do not bypass; perform qualification on the CID Adapter Server. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can have a severe impact on CID Adapter Server performance. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 100 CICS_SERVER_TRANSACTION=xxxx (CICS only) Description (Required CICS only) Specifies the CICS transaction that is used to start the MVS CICS CID Adapter Server. Default NONE Consideration This must be the save value as the transaction defined in your CSD file for program CSXRAKSP program and the EZACICD TYPE=LISTENER macro expansion for the CICS Sockets support CSTRAN= parameter. DATBASUPD_LOCK=xxxx Description (Optional) Specifies the locking parameter value to be used for DATBAS updates. Default LOCK Consideration No validation is done on this parameter. Normally, this parameter is allowed to default. DISPLAY_OPTIONS=YES or NO Description (Optional) Specifies whether to display all initialization options and their values. Default NO Options YES Display all initialization options and their values. YES can also be specified by Y/y/T/t/1. NO Do not display the initialization options. NO can also be specified by N/n/F/f/0. LOGON_EXIT=xxxxxxxx Description (Optional) Specifies the name of a user-written logon exit load module that is called whenever the CID Adapter Client connects to the CID Adapter Server . Format 1–8 characters. Consideration If this parameter is not specified, a logon exit will not be called. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 101 MAX_DATAAREA=nnnnnnnnnn Description (Optional) Specifies the size of the data area for retrieving one SELECT or DATBAS record. Default 8192 Format 1–2,147,483,647 Consideration This value must be large enough to hold an entire SELECT record, including all OIDs for all sets specified in the record. The maximum value actually used is displayed at shutdown to help set this parameter. MAX_DATALIST=nnnnnnnnnn Description (Optional) Specifies the size of the largest datalist that will be generated by the CID Adapter Server. Default 4096 Format 1–2,147,483,647 Consideration This value must be large enough to hold an entire datalist. Typically, the maximum size is 18 * number-of-elements in the user-specified select or update-list. The maximum value actually used is displayed at shutdown to help set this parameter. MAX_DATBAS_PDU=nnnnnnnnnn Description (Optional) Specifies the size of the response buffer to be used for db_set or other object-oriented database functions. Default 8192 Format 1–2,147,483,647 Consideration This value must be large enough to hold an entire FETCH data area, including any sets. The maximum value actually used is displayed at shutdown to help set this parameter. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 102 MAX_RCV_PDU=nnnnnnnnnn Description (Optional) Specifies the maximum message size received by the CID Adapter Server from the CID Adapter Client. Default 4096 Format 1–2,147,483,647 Consideration This value must be large enough to hold an entire SELECT, including all data fields and qualifiers, or the entire INSERT data record, including all data fields and data. The maximum value actually used is displayed at shutdown to help set this parameter. MAX_RECORDS_LIMIT=nnnnnnnnn Description (Optional) Specifies the maximum number of reads that are allowed to be used to retrieve data during a query. Default 0 Options 0–2,147,483,647 Considerations ♦ If the number specified is zero, then the number of reads allowed are unlimited. ♦ The CID Adapter Client component can set only a lower limit than the global limit in effect in the CID Adapter Server component. The limit in effect is computed according to the following table: Client Server Description 0 0 Unlimited reads. 0 n Limit is the CID Adapter Server global limit of n. m 0 Limit is the CID Adapter Client limit of m. m n Limit is minimum of m, n. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 103 OPT_EXPLAIN=YES or NO Description (Optional) Specifies whether to enable the explanation feature of the optimizer. Default NO Options YES Enable the explanation facility. YES can also be specified by Y/y/T/t/1. NO Do not enable the explanation facility. NO can also be specified by N/n/F/f/0. Consideration Typically, this parameter is only turned on in a test system. When debugging new queries, this feature can help you understand query performance. PDM_THREADS=nnnnn Description (Optional) Specifies the maximum number of concurrent threads connected to the PDM. Default 1 Format 1–99,997 Considerations ♦ The CID Adapter Server adds one thread to the specified number for its own use. ♦ This value must be less than or equal to the value for SERVER_CONNECTIONS. PDM_USER_DATA=xxxxxxxx Description (Optional) Specifies the value to be passed to the PDM SINON in the USER=(user data) parameter. Format 1–8 characters in the format required by the PDM. Consideration If this parameter is not specified, the USER= parameter is not passed to the PDM SINON. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 104 SEARCHUPD_LOCK=xxxx Description (Optional) Specifies the locking parameter value to be used on the DATBAS functions used for searched updates. Default READ Consideration No validation is done on this parameter. Normally, this parameter is allowed to default. SELECTUPD_LOCK=xxxx Description (Optional) Specifies the locking parameter value to be used on the DATBAS functions used for select statements when the connection is not read-only. Default RLSE Consideration No validation is done on this parameter. Normally, this parameter is allowed to default. SERVER_CONNECTIONS=nnnnn Description (Optional) Specifies the maximum number of concurrent CID Adapter Client connections to the CID Adapter Server. Default 1 Format 1–99,997 Considerations ♦ The CID Adapter Server adds two connections to the specified number for its own use. ♦ This value must be greater than or equal to the value for PDM_THREADS. ♦ Server connections are equivalent to PDM tasks. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 105 SHARED_MEM=nnnnnnnn Description (Optional) Specifies the size of shared memory requested for the schema tables and error messages. Default 1,048,576 (1MB) Format 8–16,777,208 and evenly divisible by 8. Consideration If this value is too small, the CID Adapter Server will not start. If the value is too large, extra memory is wasted. This memory is allocated above the 16 MB line. The value actually used is displayed at shutdown to help set this parameter. SHUTDOWN_PASSWORD=xxxxxxxx Description (Required) Specifies the password that validates CID Adapter Server shutdown commands from the CID Adapter Client. (This parameter is not applicable to the CICS MVS CID Adapter Server.) Default dba Format 1–8 printable characters. SHUTDOWN_USER=xxxxxxxx Description (Required) Specifies the user name that validates CID Adapter Server shutdown commands from the CID Adapter Client. Default dba Format 1–8 printable characters. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 106 STATS=option Description (Optional) Enables statistics accumulation. Default NO Options YES Enable the statistics facility. YES can also be specified by Y/y/T/t/1. NO Do not enable the statistics facility. NO can also be specified by N/n/F/f/0. SYSTEM Accumulates and displays system level statistics. LUW Accumulates and displays system level statistics and logical unit of work (LUW) level statistics. FUNCTION Accumulates and displays system level statistics, LUW level statistics, and function level statistics. Consideration The statistics facility can help you understand system performance. See "Statistics considerations" on page 85 for examples. TCP_HOSTNAME_LOOKUP=YES or NO Description (Optional) Specifies whether there will be a host name lookup for the IP address whenever a TCP/IP connection is established. (This parameter is not applicable to the CICS MVS CID Adapter Server.) Default NO Options YES Enable the lookup. YES can also be specified by Y/y/T/t/1. NO Do not enable the lookup. NO can also be specified by N/n/F/f/0. Considerations ♦ The lookup will use either a TCP/IP host file or the TCP/IP resolver. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 107 TCP_HOSTFILE=‘xxx.xxx...’ Description (Optional) Specifies the MVS name for the file equivalent to /etc/hosts. (This parameter is not applicable to the CICS MVS CID Adapter Server.) Default None Format Any valid sequence of characters (enclosed in single quotes) that create a valid MVS dataname. Considerations ♦ This specification is necessary only if TCP_HOSTNAME_LOOKUP=YES, and standard names are not used. TCP_LISTEN_PORT=nnnnn Description (Optional) Specifies the port number to be used for the listener. (This parameter is not applicable to the CICS MVS CID Adapter Server.) Default 5010 Format 1–65,535 Considerations ♦ This value is ignored if TCPIP_SUPPORT=NO. ♦ This value must match the corresponding value in the REGISTER FOREIGN DATABASE statement or the CID Adapter Client parameter db_pdmdatabase-name. ♦ To verify that no other application is currently using a port use the CSV1PORT JCL supplied with the installation. For more information about this job, see "Defining the MVS CID Adapter Server CSV1PORT JCL" on page 97. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 108 TCP_PREFIX=xxxx.xxxx... Description (Optional) Specifies a high-level qualifier added to the TCP/IP file names for TCP/IP access. (This parameter is not applicable to the CICS MVS CID Adapter Server.) Default TCPIP Format Any valid sequence of characters that creates a valid MVS dataname. Example The default protocol file name is TCPIP.ETC.PROTO. The TCPIP prefix could be replaced with any valid value specified for this parameter. TR_TOASCII=xxxxxxxx Description (Optional) Specifies the name of the load module that contains a user-defined EBCDIC-to-ASCII translation table (to replace the standard translation table) . Default If this parameter is not provided or has no value, the standard translation table is used. Format 1–8 characters. Consideration The standard translation table for EBCDIC to ASCII is provided in "EBCDIC to ASCII default translation table" on page 413. TR_TOEBCDIC=xxxxxxxx Description (Optional) Specifies the name of the load module that contains a user-defined ASCII-to-EBCDIC translation table (to replace the standard translation table) . Default If this parameter is not provided or has no value, the standard translation table is used. Format 1–8 characters. Consideration The standard translation table for ASCII to EBCDIC is provided in "ASCII to EBCDIC default translation table" on page 414. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 109 TRACE_OPTIONS=nnn,nnn-nnn… Description (Optional) If specified, this parameter turns on debug tracing and specifies one or more tracing options to be used within the CID Adapter Client component. This is a Cincom Technical Support parameter. Default The parameter is not present (no tracing). Options 8–239 Format One or more numbers or number ranges, separated by commas (e.g., 1, 10–14, 17). Consideration Tracing is usually turned on at the recommendation of Cincom Support. Support provides the specified numbers corresponding to specific tracing actions. When enabled, some trace options generate significant output and can degrade performance. All trace output is written to MSGPRINT DD. VSAM_FILE_LIST=file-name, file-name,… (CICS only) Description (Optional) If specified, this parameter defines the 1 to 8 character DD names of the KSDS, RRDS, ESDS and alternate index VSAM files that will be made available in the CID Adapter Server for SQL queries. Default The parameter is not present (no VSAM files will be added to the schema). Format Comma-separated list of 1 to 8 character VSAM DD file names. Considerations ♦ Any number of VSAM_FILE_LIST parameters may be included to provide lists longer than will fit on one line of the input file. ♦ The VSAM files specified in the VSAM_FILE_LIST parameter must be defined to and managed by CICS. ♦ Alternate index files must be listed after the base file to which they refer and before a new base file. A good practice is to start all new base files on a new VSAM_FILE_LIST parameter. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 110 Coding the optional user logon exit (MVS) A user exit can be coded to perform user validation during user connection. The intent is to permit security checking before allowing a user access to the PDM. The exit is called at two points: ♦ Whenever a user connects to the driver ♦ During shutdown to do any necessary user exit cleanup An assembler version of the user exit is contained in the MACLIB library installed from the release tape. The logon exit is loaded during CID Adapter Server initialization. It is called by all of the CID Adapter Server processes for connection. Since CID Adapter Server processes run asynchronously to each other, the user exit must either be fully reentrant or use ENQ/DEQ logic to single-thread access. Note that the user-defined context full word must be accessed though ENQ/DEQ or other SMP programming techniques (the CS instruction). When called, the exit uses the following register conventions: R1 Points to a standard IBM parameter list. R13 Points to a standard 72-byte save area. R14 Contains the return address. R15 Contains the exit entry point address. On return, all registers must be the same as at entry, except R15, which contains a return code. If the return code is zero, the connection will continue. If the return code is not zero, the connection will be rejected by the CID Adapter Server. The error message returned in the reason parameter will be printed in the CID Adapter Server message log. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 111 The parameters on the connect and shutdown exit calls are: ♦ Address of 9-character database name (null terminated). ♦ Address of 9-character user name (null terminated). ♦ Address of 9-character password from logon (null terminated). ♦ Address of 17-character name of host that issues logon (null terminated). ♦ Address of a full word (initially zero) that can be used to store any userdefined context. This value will then be accessible on all future calls. ♦ Address of a127-character area that can be used to return an error message to the CID Adapter Server. The message must be null terminated. ♦ Address of a full word that contains 1 for a shutdown request and 0 for a connection request. The termination call is made once, near the end of shutdown processing. When this call is made, all connections have been broken and all CID Adapter Server processes are detached. SMP processing is not required for this call. The parameters on the termination exit call are: ♦ Zero. ♦ Zero. ♦ Zero. ♦ Zero. ♦ Address of a full word (initially zero) that can be used to store any userdefined context. ♦ Address of a 127-character area that can be used to return an error message to the CID Adapter Server. The message must be null terminated. ♦ Address of a full word that contains the binary integer 2 for system termination. When the logon exit is called, the thread has been signed on to the PDM. Any PDM database function (except SINON and SINOF) can be executed. If the user exit uses DATBAS functions, it must be linked with the DATBAS interface included with the CID Adapter Server. Note that this DATBAS interface should only be used for the CID Adapter Server exit, and does not replace the DATBAS module used for other application programming. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 112 Creating an additional MVS CID Adapter Server Once you have tailored the MVS CID Adapter Server, you may wish to create an additional MVS CID Adapter Server for a test or production PDM. You will need the following information: 1. A new port number for TCP/IP communication 2. The DSN of the CSIPARM file for this MVS SUPRA PDM 3. The DSN of the MVS SUPRA PDM library that contains the CSTEDCMT file for this MVS SUPRA PDM Follow these steps to create the JCL for an additional MVS Adapter Server: 1. Create a copy of the INIT member of the JCL library and give it another name. Put the new Port number in this new member in the TCP_LISTEN_PORT parameter. Review the other parameters, especially the PDM_THREADS and SERVER_CONNECTIONS. 2. Create a new SCHEMA file. Allocate a new file with the same format and size as the one you are using now. 3. Create a copy of the SERVER member that you are currently using to bring up the MVS CID Adapter Server. a. Change the Jobname so that it is unique b. Modify the INIT DD to point to the new member that you created c. Modify the CSIPARM DD to point to the CSIPARM file for this MVS SUPRA PDM to which you wish to connect d. Modify the SCHEMA DD to point to the new SCHEMA file that you created e. Modify the STEPLIB to point to the appropriate SUPRA PDM library that contains the CSTEDCMT file for this PDM f. If you are using the HLQ parameter, you may need to change this parameter in the SPARMS member. You will also need to register a new Foreign Database to communicate with this additional MVS CID Adapter Server. For more information on registering a Foreign Database, see "Registering a CID Foreign Database" on page 29. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CID Adapter Server 113 Tailoring the MVS CICS CID Adapter Server After installing the MVS CICS CID Adapter Server component, you must perform the following tasks to tailor it for your site. Cincom recommends that you review each task here to ensure that everything was set up correctly during installation. ♦ Defining the MVS CICS initialization file parameters ♦ Updating the SUPRA PDM CICS environment or the CICS VSAM environment and JCL for the Adapter Server ♦ (Optional) Examining and updating the ASCII/EBCDIC translation tables ♦ (Optional) Coding the user logon exit These tasks are discussed in the sections that follow. Defining the MVS CICS initialization file parameters The MVS CICS CID Adapter Server initialization file defines your initialization parameters and is pointed to by the //CSIDAKI DD statement. In the next section we describe how to create and load this VSAM file from the &HLQ.MACLIB(INIT) sequential file. Please review the section "Defining the MVS and CICS initialization parameters" on page 98 and make any changes to the &HLQ.MACLIB(INIT) sequential file prior to loading it into the VSAM file. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CICS CID Adapter Server 114 Updating the SUPRA PDM or VSAM CICS environment and JCL for the Adapter Server 1. If your CICS is not setup for CICS SOCKET support, you will need to add it. See IBM documentation in the Communications Server IP CICS Sockets Guide, SC31-8807-xx for information on installing and using CICS SOCKETS. 2. The TCP/IP port number identified during the Adapter Server install and the DAKS transaction must be supplied in the EZACICD TYPE=LISTENER macro used with the above CICS SOCKET support. See member DEFTCPIP in the &HLQ.MACLIB for sample JCL. 3. If your CICS does not have the Language Environment (LE) installed, you will need to install it. See IBM documentation in CICS Transaction Server for z/OS Installation Guide GC34-6426-xx for information on installing LE in CICS. 4. Review member RDODAK in the &HLQ.MACLIB that was created during the Adapter Server install. This member contains RDO updates to your CICS CSD file. Make any changes for your system and update your current CICS CSD file. Be sure to add the DAK001 group to a list that will be installed when your CICS is started. The transactions DAKD and DAKS can be changed if they conflict with existing transactions at your site. 5. Add to your CICS DFHRPL concatenation list the &HQL. LINKLIB that was created during the Adapter Server install step. // DD DISP=SHR,DSN=&HLQ..LINKLIB 6. Add a DD for the VDAK transient data queue final route location. This DD will display the output from the CICS CID Adapter Server. If you use the DEFINE TDQUEUE supplied in the RDODAK member, it should look like this: //VDAK DD SYSOUT=*,DCB=(DSORG=PS,RECFM=V,BLKSIZE=136) Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CICS CID Adapter Server 115 7. Several VSAM datasets must be created, loaded from sequential datasets, and added to your CICS JCL. Sample member ALLODAKF in the &HLQ..MACLIB can be used as a guide in creating your datasets. Two of these data sets are required and two are optional. Required: - &HLQ.VSAM.MSG—Loaded from &HLQ.MSG as DDNAME CSIDAKM. This ESDS file contains the Adapter Server messages. Add to the CICS JCL: //CSIDAKM - DD DSN=&HLQ..VSAM.MSG,DISP=SHR &HLQ.VSAM.INIT—Loaded from &HLQ.MACLIB(INIT) as DDNAME CSIDAKI. This ESDS file contains the initialization parameters. Add to the CICS JCL: //CSIDAKI DD DSN=&HLQ..VSAM.INIT,DISP=SHR Optional: - &HLQ.VSAM.SCHEMA—If the INIT file option BIND_SCHEMA=YES is specified, the schema is created in memory and written to this ESDS file on the initial execution of the CICS MVS CID Adapter Server. In subsequent executions, the schema is loaded into memory from this file. DDNAME CSIDAKS. Add to the CICS JCL: //CSIDAKS PDM VSAM DD DSN=&HLQ..VSAM.SCHEMA,DISP=SHR &HLQ.VSAM.XML—This is the schema extension RRDS file. If it is available, it will be used to define or redefine the schema information retrieved from the SUPRA PDM directory. It can also be used to add schema information that is not available in the SUPRA PDM directory. This file is used to define the internal schema information for each VSAM file. Review the ALLOCDAK member of the &HLQ.MACLIB for details. DDNAME XMLFILE. //XMLFILE DD DSN=&HLQ..VSAM.XML,DISP=SHR 8. Add the CICS_SERVER_TRANSACTION=DAKS to the &HLQ.VSAM.INIT file. This must be the same value as the transaction defined in your CSD file for program CSXRAKSP program and the EZACICD TYPE=LISTENER macro expansion created above. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CICS CID Adapter Server 116 9. The DAKD transaction can then be started from one of the following: - A CICS sequential terminal—If you use SIT option TCT=5$ then this will be the CARDIN DD in your CICS JCL. DAKD\ in this DD will cause transaction DAKD to be started. - A CICS connected terminal The DAKS transaction will be enabled by the DAKD transaction to allow TCP/IP connections to start processing work from the client. Defining the CICS CID Adapter Server CSV1PING and CSV1PORTJCL In order to test the connection to the CICS CID Adapter Server from MVS, use the same batch JCL that is used for MVS. Refer to “Defining the MVS CID Adapter Server CSV1PING JCL” for the necessary information. In order to test the port that you will use for the CICS CID Adapter Server from MVS you will use the same batch JCL that is used for MVS. Refer to “Defining the MVS CID Adapter Server CSV1PORT JCL” for the necessary information. Creating an additional CICS CID Adapter Server Once you have tailored the CICS CID Adapter Server, you may wish to create an additional CICS CID Adapter Server for a test or production system. Consider the following: ♦ You will nee a new port number for TCP/IP communication. ♦ You will repeat the steps in the section "Updating the SUPRA PDM or VSAM CICS environment and JCL for the Adapter Server" on page 115, being sure to use different file names for CSIDAKS and CSIDAKI. CSIDAKM will be the same for all CICS CID Adapter Servers. The XMLFILE may have a different file or the same file for each CICS CID Adapter Server. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the MVS CICS CID Adapter Server 117 Tailoring the OpenVMS CID Adapter Server After installing an OpenVMS CID Adapter Server, you must perform certain sitespecific tasks to set up a CID Adapter Server for a PDM database. During the installation process (documented in the SQL Access for SUPRA Server PDM Installation Guide, P25-9500) you chose an installation directory for the OpenVMS CID Adapter Server. This directory is referred to here as the adapterinstall-directory. Tailoring a CID Adapter Server on OpenVMS includes the following required and optional tasks for each database: ♦ Authorizing OpenVMS Privileges ♦ Defining PDM Adapter logical names ♦ Defining and enabling a TCP/IP service ♦ Defining the CID Adapter Server/CID Adapter Coordinator startup command procedures ♦ Defining your initialization file parameters ♦ (Optional) Defining the CID Adapter Extensions XML file ♦ (Optional) Coding the user logon exit The S1_ADAPTER_SETUP.COM command file, documented in "Running the S1_ADAPTER_SETUP.COM command file" on page 119, performs all of the above tasks by requesting information from the user interactively. These tasks are discussed individually in the sections that follow. Because the files created by the adapter setup command file use the logical names defined in [<adapter-install-directory>.COMS]LOGICALS.COM, it is not necessary to run the adapter setup command file when upgrading to a new CID Adapter Server service level. It is only necessary run the correct LOGICALS.COM command file for the service level you want by changing the adapter-installdirectory name in the command file that runs LOGICALS.COM. Authorizing OpenVMS Privileges The following OpenVMS process privileges must be authorized in order to run the S1_ADAPTER_SETUP.COM , as well as the run and stop command files generated by S1_ADAPTER_SETUP.com for each CID Adapter Server: SYSPRV, SYSLCK, SYSNAM, SYSGBL, GRPNAM, NETMBX, TMPMBX, OPER Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 118 Running the S1_ADAPTER_SETUP.COM command file The adapter setup command file, S1_ADAPTER_SETUP.COM, interactively guides the user through the process of setting up CID Adapter Servers for one or more databases. Each CID Adapter Server is associated with exactly one PDM database. Each CID Adapter Server is given a name—the DBMOD name plus an optional extension. A TPCIP port number is assigned to the CID Adapter Server and all of the files associated with the CID Adapter Server are created. Each file and service associated with the CID Adapter Server is preceded by the adapter name, allowing multiple CID Adapter Servers to reside in the same directory, as well as allowing easy identification of the CID Adapter Server files associated with a particular database. After the adapter setup command file creates the files for a particular database, these files can be safely customized with additional parameters or DCL as necessary. The adapter setup command file may be run multiple times for the same CID Adapter Server in order to modify the parameters. The files created the first time it is run will be edited on subsequent runs. This preserves any modifications made outside the command file. The adapter setup command file requires that the [<adapter-installdirectory>.COMS]LOGICALS.COM command file be run in order to set up certain logical names required by the command file. Once this is done, the command file may be run using the following command: @V1DRV_COMS:S1_ADAPTER_SETUP The adapter setup command file uses menus and prompts to request information from the user. Default values for prompts are displayed at the end of a prompt enclosed within square brackets ( [default-value] ). Default values are selected by pressing ENTER without typing a value. The adapter setup command file can be canceled at any time by pressing CTRL-C or CTRL-Y. The command file may then be re-run to continue setting up CID Adapter Servers. Some errors cause the command file to exit. Once the problem reported by the command file is corrected, it may be re-run to continue setting up CID Adapter Servers. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 119 The files created by the adapter setup command file will reside in the current default directory, referred to after setup as the adapter-home-directory, and will be owned by the current user. The files created by the adapter setup command file are listed here: File name Description <adapter-name>_INIT.DAT CID Adapter Server initialization parameter file. <adapter-name>_RUN.COM A command file to run the adapter. <adapter-name>_STOP.COM A command file to stop the adapter. <adapter-name>_COORD_START.COM A command file to start the CID Adapter Coordinator process. This is run by the <adapter-name> _RUN.COM file as either a batch or detached process. <adapter-name>_SERVER_START.COM A command file to start the CID Adapter Server process. This file is run by the TCPIP service in response to a connect request. There will be one CID Adapter Server process in the system for each connection. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 120 The adapter setup command file requests the information listed here: Item Description DBMOD name Choose a PDM DBMOD name from the menu. This will be used as the adapter name. Extension An optional four character extension used to uniquely identify an adapter if there is more than one DBMOD with the same name in the system. TCPIP port number If TCPIP or UCX are available on the system, the port number is automatically assigned. It can be overridden, but the port number will be checked for availability before proceeding. If neither TCPIP or UCX are on the system, an available port number must be supplied. In either case, the port number is then used in the SQL Access REGISTER FOREIGN DATABASE statement. TCPIP limit For TCPIP and UCX, this is the limit parameter that limits the maximum number of CID Adapter Server processes started. This should be at least one greater than the MAX_ACTIVE parameter of the SQL Access REGISTER FOREIGN DATABASE statement. MAX_RECORDS_LIMIT This CID Adapter Server initialization parameter controls the number of records that are allowed to be read by a single query. The default value of 0 allows unlimited reading. At the end of a CID Adapter Server setup session, the command file will ask if you want to start the CID Adapter Server that has been created. If you are installing SQL Access for SUPRA Server PDM (SQL Access), it is recommended that you start the CID Adapter Server that you create so that the remaining installation steps on the SQL Access Server machine can be completed. The CID Adapter Servers created by the CID Adapter Server setup command file can be started by entering the following command at the command prompt or by adding the command to the SYSTARTUP_VMS.COM file: @device:[adapter-home-directory]adapter-name_RUN Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 121 To stop an adapter, use the following command: @device:[adapter-home-directory]adapter-name_STOP After creating a CID Adapter Server for a database, it is possible to customize it by adding parameters to the initialization parameter file, extending the schema by adding a foreign key file, or customizing the command files. All of the customizations made to a CID Adapter Server will be preserved if the CID Adapter Server setup command file is run again, after the initial setup. This may be desirable in order to change any of the values requested by the command file, but is not necessary when upgrading to a new CID Adapter Server service level. The files created or used by a running CID Adapter Server are listed in the following table: File name Description adapter-name_SCHEMA.DAT CID Adapter Server bound schema file. This file is written automatically by the CID Adapter Coordinator, and, if present on subsequent CID Adapter Server runs, is read by the CID Adapter Coordinator to build the internal database schema instead of making requests to PDM. adapter-name_LOG.DAT CID Adapter Server log file. This file will contain logged output from the CID Adapter Coordinator as well as all of the CID Adapter Server processes. These files will be written to or read from the adapter-home-directory. The output from a CID Adapter Server setup session that created a CID Adapter Server for the sample BURRYS database is shown in Appendix B. The following sections provide details of the tailoring steps provided by the S1_ADAPTER_SETUP.COM command file for those who want to customize the CID Adapter Servers created by the S1_ADAPTER_SETUP.COM command file. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 122 Defining CID Adapter Server logical names The following logical names are used by the CID Adapter Server and the CID Adapter Coordinator processes: Logical name Description CSI_MESSAGE_FILE The name of a message file. Since the section associated with the message file is shared by all CID Adapter Server systems, the logical name should be defined in the system table. CSI_INIT_FILE Identifies the name of a file containing the initialization parameters. CSI_SERVER_SCHEMA The name of a bound schema file (contains the information about the database being accessed). If the file does not exist, the CID Adapter Coordinator process will generate it. The file will be automatically updated if the database is modified. CSI_XML_SCHEMA (Optional) The name of a CID Adapter Extensions XML file CSI_TRACE_FILE The name of a CID Adapter Server trace file (optional, default SUP1DRVR.ERR). This file should be defined in the CID Adapter Coordinator and CID Adapter Server processes. CSI_TRACE_OPEN When defined, this logical name causes the CID Adapter Server to leave the trace log file open permanently for performance reasons. It is only closed when the CID Adapter Server terminates. This prohibits different CID Adapter Servers from using the trace log file and prevents the examination of the trace log file while the CID Adapter Server is running. The absence of this logical causes the default behavior; the log file is opened prior to writing each message and closed after writing each message. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 123 The logical names associated with the release directory structure can be defined by executing the LOGICALS.COM command procedure, found in device:[<adapter-install-directory>.V1DRV_nnnnnn.COMS] where nnnnn is the driver release number. The following logical names are defined: Logical name Description CSISERVER Specifies the path to the CSISERVER executable in the EXE directory. CSISERVER_DEB Specifies the path to the CSISERVER_DEB executable in the EXE directory. CSIHUBSHR Specifies the path to the CSIHUBSHR executable in the EXE directory. CSIHUBSHR_DEB Specifies the path to the CSIHUBSHR_DEB executable in the EXE directory. V1DRV_BASE Specifies the path to the CID Adapter Server install directory. V1DRV_BURRYS Specifies the path to the BURRYS directory in the install directory. V1DRV_COMS Specifies the path to the COMS directory in the CID Adapter Server install directory. The COMS directory contains CID Adapter Server command files. V1DRV_EXE Specifies the path to the EXE directory in the CID Adapter Server install directory. The EXE directory contains the entire executable file for the CID Adapter Server. V1DRV_HELP Specifies the path to the HELP directory in the CID Adapter Server install directory. The HELP directory contains release notes, readme and SUP1DRVR.MSG files. V1DRV_LOGS Specifies the path to the LOGS directory in the CID Adapter Server install directory. The LOGS directory contains output logs from the PDM Adapter. V1DRV_PATCHES Specifies the path to the PATCHES directory in the CID Adapter Server install directory. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 124 The PDM Adapter service level is specified in the following file: device:[adapter-installdirectory.V1DRVnnnnnn.COMS]V1DRV_SERVICE_LEVEL.COM It defines the global symbol V1DRV_SERVICE_LEVEL, a string used by all of the provided command files to identify the service level (for example, 2400). Cincom suggests you include the following lines in your system startup command procedure SYSTARTUP_VMS.COM: $ @ device:[adapter-installdirectory.V1DRVnnnnnn.COMS]LOGICALS.COM SYSTEM $ Define/SYSTEM CSI_MESSAGE_FILE V1DRV_HELP:SUP1DRVR.MSG where nnnnn is the driver release number For additional information about defining logical names for PDM, refer to the SUPRA Server PDM System Administration Guide (OpenVMS), P25-0130. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 125 Defining and enabling a TCP/IP service through UCX (OpenVMS) Before starting the system, you must define and enable a TCP/IP service through TCP/IP, UCX or any other TCP/IP service installed on your machine for each database the CID Adapter Server will access. Defining the TCP/IP service is done only once by executing the following command procedure. An example can be found in V1DRV_COMS: Example: CSI_SUP1TCP_SETUP.COM $UCX SET SERVICE <adapter-name> n /limit=10 /FILE=V1DRV_COMS:<adapter-name>SERVER_START.COM - o /PORT=5010 /user=dba /PROCESS_NAME=<adapter-name> p $UCX ENABLE SERVICE <adapter-name> q n The value specified (adapter-name) must be unique for each database. This command is executed by the S1_ADAPTER_SETUP.COM command file. o Cincom does not recommend using a directory path in place of a system logical. The command procedure (<adapter-name>_SERVER_START.COM) must contain a SERVER command using the same port number specified here. The user must be defined in the OpenVMS system user authorization file. The <adapter-name>_SERVER_START>COM file is created by the S1_ADAPTER_SETUP.COM command file. p The PROCESS_NAME is the process name given to the CID Adapter Server when UCX starts it using the <adapter-name>_SERVER_START.COM command procedure. The process name must be a valid OpenVMS process name. q This line enables the TCP/IP service. The name specified (adapter-name) must be the same as in (1) above. This command is executed in the <adapter-name>_RUN.COM command file. For further information on UCX service parameters, refer to the Compact TCP/IP Services for OpenVMS Reference Guide. After defining and enabling the TCP/IP service for the first time using the above command procedure, it is only necessary to enable the service during the CID Adapter Server startup. This can be done by executing the following command: $ UCX ENABLE SERVICE service-name where service-name is the SERVICE_name set up in the UCX SET SERIVICE command in CSI_SUP1TCP_SETUP.COM. This command is included in the <adapter-name>_RUN.COM command file created by S1_ADAPTER_SETUP.COM. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 126 Defining the CID Adapter Server/CID Adapter Coordinator startup procedure (OpenVMS) To define the Cincom Integrated Data (CID) Adapter Server/CID Adapter Coordinator startup procedure, you must define the location of the bound schema file, the Adapter Extensions XML file, the CID Adapter Server initialization file, and the message file. Since the message file is shared by all systems, it is recommended that the logical name be defined in a system table. The $V1DRVR_COMS: directory contains the following example command files: ♦ Server Example: CSI_SUP1DRVR_START.COM – This file is generated by S1_ADAPTER_SETUP.COM as <adapter-name>_SERVER_START.COM. $DEFINE CSI_SERVER_SCHEMA V1DRV_BURRYS:CSI_SERVER_SCHEMA.BURRYS n $DEFINE CSI_FOREIGN_KEY V1DRV_BURRYS:BURRYS_FOREIGN_KEY.DAT o $SERVER := $V1DRV_EXE:CSISERVER_nnnnnn.EXE p $SERVER SERVER 6000 q n Define the name of a bound schema file o Define the name of a CID Adapter Extensions XML file (optional) p Define a symbol for the CID Adapter Server image q Execute CID Adapter Server with SERVER function and a TCP port it uses Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 127 ♦ Coordinator Example: CSI_SUP1COORD_START.COM - This file is generated by S1_ADAPTER_SETUP.COM as <adaptername>_COORD_START.COM. $DEFINE CSI_INIT_FILE n V1DRV_BURRYS:SUP1DRVR_INIT.DAT $DEFINE CSI_SERVER_SCHEMA V1DRV_BURRYS:CSI_SERVER_SCHEMA.BURRYS o $SERVER := $V1DRV_EXE:CSISERVER_nnnnnn.EXE p $SERVER COORDINATOR 6000 q n Define initialization parameters file for the system o Define the name of a bound schema file p Define a symbol for the CID Adapter Server image q Execute CID Adapter Server with a COORDINATOR function and a TCP port it uses Cincom recommends you submit the above DCL script file to a batch queue in order to activate a CID Adapter Coordinator process. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 128 Defining the TCP/IP service through MultiNet Server Although not officially supported or certified, the following is included to aid in the configuration of a MultiNet Server TCP/IP service. The Network Administrator needs to ensure that the port being used for the service is available and not in use by any other service. The following is an example of MultiNet configuration: Welcome to OpenVMS (TM) VAX Operating System, Version V7.1 Username: SYSTEM Password: MultiNet Server Configuration Utility V4.0(40) [Reading in configuration from MULTINET:SERVICES.MASTER_SERVER] SERVER-CONFIG> SHO/FULL SUP1DRVR Service "SUP1DRVR": TCP socket (AF_INET,SOCK_STREAM), Port 6000 Socket Options = SO_KEEPALIVE Flags = UCX_SERVER INIT() = TCP_Init LISTEN() = TCP_Listen CONNECTED() = TCP_Connected SERVICE() = Run_Program Program = "DKA100:[SUPRAHUB1140.V1DRV_114011N.COMS]CSI_SUP1DRVR_START.COM" Max Servers = 10 Log File for Accepts & Rejects = OPCOM Serving Process = SUP1DRVR Username = "MNT" SERVER-CONFIG> EX [Configuration not modified, so no update needed] The sup1drvr service will not be available until the machine is rebooted. Once established, this service can be used by the CSI_SUP1COORD_START.COM and CSI_SUP1DRVR_START.COM command files defined above for UCX. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 129 Defining the initialization parameters (OpenVMS) After defining your CID Adapter Server/CID Adapter Coordinator startup procedure, you must now define your initialization parameters. The CID Adapter Server initialization file is pointed to by the logical name CSI_INIT_FILE. When you code the initialization file, use the following general coding rules: ♦ Whichever is shorter: - A maximum line length of 127 characters - The file LRECL ♦ Lines can be blank. ♦ All comment lines must begin with a pound sign (#). ♦ Parameters can begin anywhere on a line but must start and end on one line. ♦ There can be no space between a parameter keyword and its subsequent equals sign (=). However, there can be spaces after the equals sign. ♦ Keywords are case-insensitive; they can be lowercase, uppercase, or a combination of both. ♦ Numbers can be specified as: Representation Numeric base 0xnnnn Hexadecimal 0nnnn Octal Nnnn Decimal ♦ Enclose a text string in single quotes (‘text string’) or double quotes (“text string”) if it contains white space characters (space, tab, newline, return, form feed). If a text string contains a single quote, enclose the string in double quotes. If a string contains a double quote, enclose the string in single quotes. ♦ Boolean=false can be specified by the following character options: N/n/F/f/0. Boolean=true can be specified by the following character options: Y/y/T/t/1. Characters following one of these option characters are ignored (“not” and “N1” would be treated as Boolean=false). Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 130 Server init file parameters (OpenVMS) The CID Adapter Server init file parameters on OpenVMS are: ALLOW_CORE_DUMP=True or False Description (Optional) Specifies whether a core dump will be allowed. This is a Cincom Technical Support parameter. Default False Options True Allows a core dump to occur False Does not allow a core dump to occur Consideration By default, the CID Adapter Server component does not allow core dumps to be written when there is an internal problem (segmentation violation). If the CID Adapter Server component crashes, Cincom Technical Support may request that this parameter be set so that a core dump can be written for problem analysis. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 131 BIND_SCHEMA=YES or NO Description (Optional) Specifies whether bound schema support is enabled. Default YES Options YES Enable bound schema support. YES can also be specified by Y/y/T/t/1. NO Disable bound schema support. NO can also be specified by N/n/F/f/0. Considerations ♦ When the BIND_SCHEMA parameter is set to YES, the CID Adapter Server will first look for a bound schema from a prior execution. If it exists, it will verify that the PDM Directory has not changed since the bound schema file was written, and, if not, will proceed to load the bound schema into memory. If the bound schema does not exist or the PDM Directory has changed since the bound schema file was written, the schema information will be loaded directly from the PDM Directory, and, when complete, a bound schema file will be written. ♦ The bound schema file contains the foreign key information from the Adapter Extensions XML file but does not contain the CID Adapter View or Field and Type information. When a change is made to the foreign key information in the CID Adapter Extensions XML file, it is not automatically detected by the CID Adapter Server. If the BIND_SCHEMA parameter is set to YES, it is necessary to delete the bound schema file in order to force the schema to be loaded directly from the CID Directory. This will cause the foreign key information to be refreshed. ♦ When the BIND_SCHEMA parameter is set to NO, the CID Adapter Server will always load the schema information directly from the PDM Directory and will not write a bound schema file. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 132 BYPASS_OPT_CTRL_LINKPATH=YES or NO Description (Optional) Specifies whether to bypass the optimizer direct lookup and linkpath processing. Default NO Options YES Bypass; do not allow direct and linkpath access. YES can also be specified by Y/y/T/t/1. NO Do not bypass; allow direct and linkpath access. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can severely impact CID Adapter Server performance. BYPASS_OPT_INDEX=YES or NO Description (Optional) Specifies whether to bypass the optimizer index processing. Default NO Options YES Bypass; do not allow index access. YES can also be specified by Y/y/T/t/1. NO Do not bypass; allow index access. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can severely impact CID Adapter Server performance. BYPASS_QUAL=YES or NO Description (Optional) Specifies whether to bypass qualification on the CID Adapter Server. Default NO Options YES Bypass; do not perform qualification on the CID Adapter Server. YES can also be specified by Y/y/T/t/1. NO Do not bypass; perform qualification on the CID Adapter Server. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can severely impact CID Adapter Server performance. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 133 DBMOD=database-name Description Required. Specifies the name of the database accessed by the system. Format 6-character database name. DISPLAY_OPTIONS=YES or NO Description (Optional) Specifies whether to display all initialization options and their values. Default NO Options YES Display all initialization options and their values. YES can also be specified by Y/y/T/t/1. NO Do not display the initialization options. NO can also be specified by N/n/F/f/0. LOGON_EXIT=xxxxxxxx Description (Optional) Specifies the name of a user-written logon exit load module that is called whenever the CID Adapter Client connects to the CID Adapter Server. Format 1–8 characters. Consideration If this parameter is not specified, a logon exit will not be called. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 134 MAX_RECORDS_LIMIT=nnnnnnnnn Description (Optional) Specifies the maximum number of reads that are allowed to be used to retrieve data during a query. Default 0 Options 0–2,147,483,647 Considerations ♦ If the number specified is zero, then the number of reads allowed are unlimited. ♦ The CID Adapter Client component can set only a lower limit than the global limit in effect in the CID Adapter Server component. The limit in effect is computed according to the following table: Client Server Description 0 0 Unlimited reads. 0 n Limit is the CID Adapter Server global limit of n. m 0 Limit is the CID Adapter Client limit of m. m n Limit is minimum of m, n. MULTI=YES or NO Description (Optional) Specifies whether multiple system wide databases are being used. Default NO Options YES The system serves multiple system wide databases. NO The system does not serve multiple system wide databases. OPERATOR=OPERnn Description (Optional) Specifies an OpenVMS operator allowed to shut down the system. Default CENTRAL Options OPER1–OPER12 CENTRAL Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 135 OPT_EXPLAIN=YES or NO Description (Optional) Specifies whether to enable the explanation feature of the optimizer. Default NO Options YES Enable the explanation facility. YES can also be specified by Y/y/T/t/1. NO Do not enable the explanation facility. NO can also be specified by N/n/F/f/0. Consideration Typically, this parameter is only turned on in a test system. When debugging new queries, this feature can help you understand query performance. PERFORMANCE_STATS=YES or NO Description (Optional) Specifies whether OpenVMS-specific performance statistics are to be collected by the CID Adapter Server. Default NO Options YES The CID Adapter Server will collect OpenVMS-specific statistics. NO The CID Adapter Server will not collect OpenVMS-specific statistics. PREFIX=nnn Description (Optional) Specifies the prefix associated with the database. Format 1–3 character prefix name. Consideration If DBMOD prefixing is used, this parameter must be included in the init file. SHUTDOWN_PASSWORD=xxxxxxxx Description (Required) Specifies the password that validates CID Adapter Server shutdown commands from the CID Adapter Client. Default dba Format 1–8 printable characters. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 136 SHUTDOWN_USER=xxxxxxxx Description (Required) Specifies the user name that validates CID Adapter Server shutdown commands from the CID Adapter Client. Default dba Format 1–8 printable characters. STATS=option Description (Optional) Enables statistics accumulation. Default NO Options YES Enable the statistics facility. YES can also be specified by Y/y/T/t/1. NO Do not enable the statistics facility. NO can also be specified by N/n/F/f/0. SYSTEM Accumulates and displays system level statistics. LUW Accumulates and displays system level statistics and logical unit of work (LUW) level statistics. FUNCTION Accumulates and displays system level statistics, LUW level statistics, and function level statistics. Consideration The statistics facility can help you understand system performance. See "Statistics considerations" on page 85 for examples. SYSTEM Description (Optional) Indicates that the application is run as a system-wide process, generally used in conjunction with system-wide databases. Default N Options YES Server process is treated as a system-wide application. YES can also be specified by Y/y/T/t/1. NO Server process is treated as a group-wide application. NO can also be specified by N/n/F/f/0. Consideration The SYSTEM=Y option should be used with system-wide and multi-system wide PDM databases. The SYSTEM=N option should be used with group-wide databases. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 137 TCP_HOSTNAME_LOOKUP=YES or NO Description (Optional) Specifies whether there will be a host name lookup for the IP address whenever a TCP/IP connection is established. Default NO Options YES Enable the lookup. YES can also be specified by Y/y/T/t/1. NO Do not enable the lookup. NO can also be specified by N/n/F/f/0. Consideration The lookup will use either a TCP/IP host file or the TCP/IP resolver. TCPPORT=nnnn Description (Optional) Specifies the TCP port used by the CID Adapter Server for communication with the CID Adapter Client. Format 4-digit TCP port number. Considerations ♦ This value must be initialized but can also be set using the command line option -p followed by the 4-digit port number. Command line options will override initialization file values. If both values are missing, the CID Adapter Server attempts to determine the value using the fall back service, HUBDRIVER. Absence of a value results in an error message. ♦ The csv1port utility can be used to verify that no other application is currently using a port. Execute the following command to run csv1port: @V1HUB_COMS:CSV1PORT <port-number> Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 138 TRACE_OPTIONS=nnn,nnn-nnn… Description (Optional) If specified, this parameter turns on debug tracing and specifies one or more tracing options to be used within the CID Adapter Client component. This is a Cincom Technical Support parameter. Default The parameter is not present (no tracing). Options 8–239 Format One or more numbers or number ranges, separated by commas (1, 10–14, 17). Consideration Tracing is usually turned on at the recommendation of Cincom Technical Support. Support provides the specified numbers corresponding to specific tracing actions. When enabled, some trace options generate significant output and can degrade performance. All trace output is written to a file pointed to by the logical name CSI_TRACE_FILE. If the name is not defined, output is written to the SUP1DRVR.ERR file. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 139 Coding the optional user logon exit (OpenVMS) A user exit can be coded to perform user validation during user connection. The intent is to permit security checking before allowing a user access to the PDM. The exit is called at three points: ♦ Whenever a user connects to the driver ♦ Whenever a shutdown request is made using reply/pend=nn ♦ During shutdown to do any necessary user exit cleanup The logon exit is loaded during CID Adapter Server initialization. It is called by all of the CID Adapter Server processes for connection. The parameters on the connect and shutdown exit calls are: ♦ Address of 9-character database name (null terminated). ♦ Address of 9-character user name (null terminated). ♦ Address of 9-character password from logon (null terminated). ♦ Address of 17-character name of host that issues logon (null terminated). ♦ Address of a full word (initially zero) that can be used to store any user-defined context. This value will then be accessible on all future calls. ♦ Address of 127-character area that can be used to return an error message to the CID Adapter Server. The message must have a null byte at the end. ♦ Address of full word that contains 0 for a shutdown request and 1 for a connection request. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 140 The termination call is made once, near the end of shutdown processing. When this call is made, all connections have been broken and all CID Adapter Server processes are detached. The parameters on the termination exit call are: ♦ Zero. ♦ Zero. ♦ Zero. ♦ Zero. ♦ Address of a full word (initially zero) that can be used to store any userdefined context. ♦ Address of a 127-character area that can be used to return an error message to the CID Adapter Server. The message must have a null byte at the end. ♦ Address of a full word that contains the binary integer 2 for system termination. When the logon exit is called, the thread is signed on to the PDM. Any PDM database function (except SINON and SINOF) can be executed. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the OpenVMS CID Adapter Server 141 Tailoring the UNIX CID Adapter Server After installing a UNIX CID Adapter Server, you must perform certain sitespecific tasks to set up a CID Adapter Server for a PDM database. During the installation process (documented in the SQL Access for SUPRA Server PDM Installation Guide, P25-9500) you chose an installation directory for the UNIX CID Adapter Server. After installation, this directory should contain the directory, CIDAdapterServer_nnnn, where nnnn is the service level. Tailoring the CID Adapter Servers for PDM databases on UNIX includes the following required and optional tasks for each database: ♦ Defining SUPRA PDM environment variables and logical names ♦ Defining the CID Adapter Server startup procedure ♦ Defining TCP/IP to UNIX ♦ Defining your initialization file parameters ♦ (Optional) Defining the CID Adapter Extensions XML file ♦ (Optional) Coding the user logon exit The s1_adapter_setup script, documented in "Defining CID Adapter Server environment variables" on page 143, performs all but the first of the above tasks by requesting information from the user interactively. These tasks are discussed individually in later sections of this chapter. Because the files created by the adapter setup script use the environment variable CSI_ADAPTER_SERVICE_LEVEL, it is not necessary to run the adapter setup script when upgrading to a new CID Adapter Server service level. It is only necessary to change the value of CSI_ADAPTER_SERVICE_LEVEL prior to running the adapter-name_run or adapter-name_stop scripts. You may, however, choose not to set the CSI_ADAPTER_SERVICE_LEVEL environment variable. In this case, the scripts will use the value of the service level at the time of the setup. Upgrades to new service levels will require that scripts be modified with the new service level value, either by running the adapter setup script again, or editing the run and stop scripts for each CID Adapter Server. Defining SUPRA PDM environment variables and logical names The UNIX environment variable CSIRESOURCES and the logical names for the PDM system for which you intend to set up or start CID Adapter Servers must be defined prior to running the s1_adapter_setup, adapter-name_run, or adaptername_stop scripts. This is usually accomplished by running the pdm_startup script generated by the s1_install script provided on the UNIX SUPRA Server PDM installation media. The user running the s1_adapter_setup script and starting a CID Adapter Server must have access privileges to these group and system-wide logical names. For additional information, refer to the SUPRA Server PDM System Administration Guide (UNIX), P25-0130. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 142 Defining CID Adapter Server environment variables The UNIX environment variable SHLIB_PATH must be defined prior to running the s1_adapter_setup script: Environment variable SHLIB_PATH Command SHLIB_PATH= \ ${SHLIB_PATH}:/adapter-install-directory/lib; export SHLIB_PATH Running the s1_adapter_setup script The adapter setup script, s1_adapter_setup, interactively guides the user through the process of setting up CID Adapter Servers for one or more databases. Each CID Adapter Server is associated with exactly one PDM database. Each CID Adapter Server is given a name, the DBMOD name plus an optional extension. A TCP/IP port number is assigned to the CID Adapter Server and all of the files associated with the CID Adapter Server are created. Each file and service associated with the CID Adapter Server is preceded by the adapter name, allowing multiple CID Adapter Servers to reside in the same directory, as well as allowing easy identification of the CID Adapter Server files associated with a particular database. After the adapter setup script creates the files for a particular database, these files can safely be customized with additional parameters or shell instructions as necessary. The adapter setup script may be run multiple times for the same CID Adapter Server in order to modify the parameters. The files created the first time it is run will be edited on subsequent runs. This preserves any modifications made outside the script. The adapter setup script may be run using the following command: adapter-install-directory/CIDAdapterServer_nnnn/s1_adapter_setup Where nnnn is the service level of the CID Adapter Server. The script will attempt to create the following link to the CIDAdapterServer_nnnn directory: /supra1/adapters/nnnn This provides a known path to the installed service level. If /supra1 is not present on the system, the script will attempt to create it. If this fails, the script will exit, requesting that you create this directory before proceeding. The adapter setup script uses menus and prompts to request information from the user. Default values for prompts are displayed at the end of a prompt enclosed within square brackets ( [default-value] ). Default values are selected by pressing ENTER without having typed any input value. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 143 The adapter setup script can be canceled at any time by pressing CTRL-C. The script may then be re-run to continue setting up CID Adapter Servers. Some errors cause the script to exit. Once the problem reported by the script is corrected it may be re-run to continue setting up CID Adapter Servers. The files created by the adapter setup script will reside in the PDM system directory, /supra1/<pdm-system-name>, of the currently active PDM System, determined by the value of the CSI_PDMID logical name, and will be owned by the current user. If this directory does not exist, the script attempts to create it. If this fails, the script will exit, requesting that you create this directory before proceeding. The files created by the s1_adapter_setup script are listed in the following table: File name Description <adapter-name>.init CID Adapter Server initialization parameter file <adapter-name>_run A script to run the CID Adapter Server <adapter-name>_stop A script to stop the CID Adapter Server Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 144 The CID Adapter Server setup script requests the information listed in the following table: Item Description DBMOD name Choose a PDM DBMOD name from the menu. This will be used as the CID Adapter Server name. Extension An optional 4 character extension used to uniquely identify a CID Adapter Server if there is more than one DBMOD with the same name in the system. TCP/IP port number The port number is assigned by searching the /etc/services file for a service with the default port number, increasing the default port number by one until an unused port is found. The port number can then be overridden if desired. The port number will again be verified to be unused and a new service with the name adapter-name will be added to the /etc/services file. If this fails, a message is displayed providing the line that should be added to the /etc/services file. A duplicate entry is also added to the file /supra1/adapters/services, which is also checked in the same manner as described for the /etc/services file. The port number is then used in the SQL Access REGISTER FOREIGN DATABASE statement. MAX_RECORDS_LIMIT This CID Adapter Server initialization parameter controls the number of records that are allowed to be read by a single query. The default value of 0 allows unlimited reading. At the end of an adapter setup session, the script will ask if you want to start the adapter that has been created. If you are installing SQL Access, Cincom recommends that you start the CID Adapter Server that you created so that the remaining installation steps on the SQL Access Server machine can be completed. The CID Adapter Server can be started by entering the following command at the command prompt or by adding the command to script that is run at system startup time: /supra1/pdm-system-name/adapter-name_run To stop an adapter use the following command: /supra1/pdm-system-name/adapter-name_stop Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 145 After creating a CID Adapter Server for a database, it is possible to customize it by adding parameters to the initialization parameter file, extending the schema by adding a CID Adapter Extensions XML file, or customizing the scripts. All of the customizations made to a CID Adapter Server will be preserved if the s1_adapter_setup script is run again, after the initial setup. This may be desirable in order to change any of the values requested by the script, but is not necessary when upgrading to a new CID Adapter Server service level. The files created or used by a running CID Adapter Server are listed here: File name Description <adapter-name>.bsc CID Adapter Server bound schema file. This file is written automatically by the CID Adapter Coordinator and, if present on subsequent CID Adapter Server runs, is read by the CID Adapter Coordinator to build the internal database schema instead of making requests to PDM. <adapter-name>.log CID Adapter Server log file. This file will contain logged output from the CID Adapter Coordinator as well as all of the CID Adapter Server processes. These files will be written to or read from the PDM system directory. The output from an s1_adapter_setup session that created a CID Adapter Server for the sample BURRYS database is shown in Appendix B. The following sections provide details of the tailoring steps provided by the s1_adapter_setup script for those who want to customize the CID Adapter Servers created by the s1_adapter_setup script. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 146 Defining TCP/IP to UNIX Before starting the CID Adapter Server, add a line to the /etc/services file for the CID Adapter Server as follows: adapter-name port-number/tcp The s1_adapter_setup script will attempt to create this service in /etc/services. If this is not possible due to insufficient privileges, the script will create the service in /supra1/adapters/services. This simply documents the use of the port number so that future adapters created by s1_adapter_setup will not use a port number that is already in use. The adapter name can be anything, but it is recommended that it include the dbmod name in order to identify it later. The CID Adapter Server does not use the service name. The port number must be provided either using the –p option on the command line or by using the TCPPORT initialization parameter. The port number along with the machine name of the CID Adapter Server machine are also required for the SQL Access REGISTER FOREIGN DATABASE statement in order to identify which PDM database to access. The fallback service, HUBDRIVER, is used only when the TCPPORT initialization parameter is not defined and the –p command line argument specifying the port number is not present when starting the CID Adapter Server. Using the HUBDRIVER service, the CID Adapter Server is limited to accessing a single database. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 147 Defining the CID Adapter Server startup procedure (UNIX) To define the CID Adapter Server startup procedure, you must define the location of the CID Adapter Server initialization file and the message file. You may optionally define the Adapter Extensions XML file location if applicable for your installation. Define the following UNIX environment variables: UNIX environment variable Description CSI_INIT_FILE The path and file name of the initialization file. CSI_MESSAGE_FILE The path to the file containing error message templates. Typically, this will be a file called sup1drvr.msg in a subdirectory of the install directory called admin/msg/En_US. CSI_XML_SCHEMA Optional. The path and file name of the CID Adapter Extensions XML file. CSI_TRACE_FILE The path and file name that contain all trace output. CSI_SERVER_SCHEMA The name of a bound schema file (contains the information about the database being accessed). If the file does not exist, the CID Adapter Coordinator process will generate it. The file will automatically be updated if the database is modified. If the environment variable CSI_SERVER_SCHEMA is not set, the CID Adapter Server looks for bound schema information in a CSI_SERVER_SCHEMA file, which is located in the current working directory for the process. TRACE_OPTIONS A string containing the tracing options. If the required terms are undefined in the environment, the CID Adapter Server looks for the required information in files with the same name as the corresponding environment variable name (a file called CSI_INIT_FILE in the startup directory). After all of the required definitions are in place, the CID Adapter Server may be invoked in the background as follows: csiserver [-p tcpport] [trace options] & The CID Adapter Server executable must appear in your path or the path must be explicitly defined in the invocation. The adapter-name_run script created by s1_adapter_setup will execute this command. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 148 Defining the initialization parameters (UNIX) After defining your CID Adapter Server startup procedure, you must now define your initialization parameters. The CID Adapter Server init file is pointed to by the environment variable CSI_INIT_FILE. The <adapter-name>.init file will be created by the s1_adapter_setup script for each adapter. When you code the init file, use the following general coding rules: ♦ Lines can be blank. ♦ All comment lines must begin with a pound sign (#). ♦ Parameters can begin anywhere on a line but must start and end on one line. ♦ There can be no space between a parameter keyword and its subsequent equals sign (=). However, there can be spaces after the equals sign. ♦ Keywords are case-insensitive; they can be lowercase, uppercase, or a combination of both. ♦ Numbers can be specified as: Representation Numeric base 0xnnnn Hexadecimal 0nnnn Octal Nnnn Decimal ♦ Enclose a text string in single quotes (‘text string’) or double quotes (“text string”) if it contains whitespace characters (space, tab, newline, return, form feed). If a text string contains a single quote, enclose the string in double quotes. If a string contains a double quote, enclose the string in single quotes. ♦ Boolean=false can be specified by the following character options: N/n/F/f/0. Boolean=true can be specified by the following character options: Y/y/T/t/1. Characters following one of these option characters are ignored (“not” and “N1” would be treated as Boolean=false). Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 149 Server init file parameters (UNIX) The CID Adapter Server init file parameters on UNIX are listed here. ALLOW_CORE_DUMP=TRUE or FALSE Description (Optional) Specifies whether a core dump will be allowed. This is a Cincom Technical Support parameter. Default False Options True Allows a core dump to occur. False Does not allow a core dump to occur. Consideration By default, the CID Adapter Server component does not allow core dumps to be written when there is an internal problem (segmentation violation). If the CID Adapter Server component crashes, Cincom Technical Support may request that this parameter be set so that a core dump can be written for problem analysis. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 150 BIND_SCHEMA=YES or NO Description (Optional) Specifies whether bound schema support is enabled. Default YES Options YES Enable bound schema support. YES can also be specified by Y/y/T/t/1. NO Disable bound schema support. NO can also be specified by N/n/F/f/0. Considerations ♦ When the BIND_SCHEMA parameter is set to YES, the CID Adapter Server will first look for a bound schema from a prior execution. If it exists, it will verify that the PDM Directory has not changed since the bound schema file was written, and, if not, will proceed to load the bound schema into memory. If the bound schema does not exist or the PDM Directory has changed since the bound schema file was written, the schema information will be loaded directly from the PDM Directory, and, when complete, a bound schema file will be written. ♦ The bound schema file contains the foreign key information from the Adapter Extensions XML file but does not contain the CID Adapter View or Field and Type information. When a change is made to the foreign key information in the CID Adapter Extensions XML file, it is not automatically detected by the CID Adapter Server. If the BIND_SCHEMA parameter is set to YES, it is necessary to delete the bound schema file in order to force the schema to be loaded directly from the PDM Directory. This will cause the foreign key information to be refreshed. ♦ When the BIND_SCHEMA parameter is set to NO, the CID Adapter Server will always load the schema information directly from the PDM Directory and will not write a bound schema file. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 151 BYPASS_OPT_CTRL_LINKPATH=YES or NO Description (Optional) Specifies whether to bypass the optimizer direct lookup and linkpath processing. Default NO Options YES Bypass; do not allow direct and linkpath access. YES can also be specified by Y/y/T/t/1. NO Do not bypass; allow direct and linkpath access. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can severely impact CID Adapter Server performance. BYPASS_OPT_INDEX=YES or NO Description (Optional) Specifies whether to bypass the optimizer index processing. Default NO Options YES Bypass; do not allow index access. YES can also be specified by Y/y/T/t/1. NO Do not bypass; allow index access. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can severely impact CID Adapter Server performance. BYPASS_QUAL=YES or NO Description (Optional) Specifies whether to bypass qualification on the CID Adapter Server. Default NO Options YES Bypass; do not perform qualification on the CID Adapter Server. YES can also be specified by Y/y/T/t/1. NO Do not bypass; perform qualification on the CID Adapter Server. NO can also be specified by N/n/F/f/0. Consideration Bypassing is usually used only for debugging specific optimizer problems. Bypassing can severely impact CID Adapter Server performance. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 152 DBMOD=database-name Description Required. Specifies the name of the database accessed by the system. Format 6-character database name. DISPLAY_OPTIONS=YES or NO Description (Optional) Specifies whether to display all initialization options and their values. Default NO Options YES Display all initialization options and their values. YES can also be specified by Y/y/T/t/1. NO Do not display the initialization options. NO can also be specified by N/n/F/f/0. LOGON_EXIT=xxxxxxxx Description (Optional) Specifies the name of a user-written logon exit load module that is called whenever the CID Adapter Client connects to the CID Adapter Server. Format 1–8 characters. Consideration If this parameter is not specified, a logon exit will not be called. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 153 MAX_RECORDS_LIMIT=nnnnnnnnn Description (Optional) Specifies the maximum number of reads that are allowed to be used to retrieve data during a query. Default 0 Options 0–2,147,483,647 Considerations ♦ If the number specified is zero, then the number of reads allowed are unlimited. ♦ The CID Adapter Client component can set only a lower limit than the global limit in effect in the CID Adapter Server component. The limit in effect is computed according to the following table: Client Server Description 0 0 Unlimited reads. 0 n Limit is the CID Adapter Server global limit of n. M 0 Limit is the CID Adapter Client limit of m. M n Limit is minimum of m, n. MULTI=YES or NO Description (Optional) Specifies whether multiple system wide databases are being used. Default NO Options YES The system serves multiple system wide databases. NO The system does not serve multiple system wide databases. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 154 OPT_EXPLAIN=YES or NO Description (Optional) Specifies whether to enable the explanation feature of the optimizer. Default NO Options YES Enable the explanation facility. YES can also be specified by Y/y/T/t/1. NO Do not enable the explanation facility. NO can also be specified by N/n/F/f/0. Consideration Typically, this parameter is only turned on in a test system. When debugging new queries, this feature can help you understand query performance. PREFIX=nnn Description (Optional) Specifies the prefix associated with the database. Format 1–3 character prefix name. Consideration If DBMOD prefixing is used, this parameter must be included in the init file. SHUTDOWN_PASSWORD=xxxxxxxx Description (Required) Specifies the password that validates CID Adapter Server shutdown commands from the CID Adapter Client. Default dba Format 1–8 printable characters. SHUTDOWN_USER=xxxxxxxx Description (Required) Specifies the user name that validates CID Adapter Server shutdown commands from the CID Adapter Client. Default dba Format 1–8 printable characters. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 155 STATS=option Description (Optional) Enables statistics accumulation. Default NO Options YES Enable the statistics facility. YES can also be specified by Y/y/T/t/1. NO Do not enable the statistics facility. NO can also be specified by N/n/F/f/0. SYSTEM Accumulates and displays system level statistics. LUW Accumulates and displays system level statistics and logical unit of work (LUW) level statistics. FUNCTION Accumulates and displays system level statistics, LUW level statistics, and function level statistics. Consideration The statistics facility can help you understand system performance. See "Statistics considerations" on page 85 for examples. TCP_HOSTNAME_LOOKUP=YES or NO Description (Optional) Specifies whether there will be a host name lookup for the IP address whenever a TCP/IP connection is established. Default YES Options YES Enable the lookup. YES can also be specified by Y/y/T/t/1. NO Do not enable the lookup. NO can also be specified by N/n/F/f/0. Considerations ♦ The lookup will use either a TCP/IP host file or the TCP/IP resolver. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 156 TCPPORT=nnnn Description (Optional) Specifies the TCP port used by the CID Adapter Server for communication with the CID Adapter Client. Format 4-digit TCP port number. Considerations ♦ This value must be initialized but can also be set using a command line option -p followed by the 4-digit port number. Command line options override initialization file values. If both values are missing, the CID Adapter Server will attempt to determine the value using the values entered for the HUBDRIVER service listed in the /etc/services file. Absence of a value results in an error message. ♦ The csv1port utility can be used to verify that no other application is currently using a port. Execute the following command to run csv1port: csv1port <port-number> TRACE_OPTIONS=nnn,nnn-nnn… Description (Optional) If specified, this parameter turns on debug tracing and specifies one or more tracing options to be used within the CID Adapter Client component. This is a Cincom Technical Support parameter. Default The parameter is not present (no tracing). Options 8–239 Format One or more numbers or number ranges, separated by commas (1, 10–14, 17). Consideration Tracing is usually turned on at the recommendation of Cincom Technical Support. Support provides the specified numbers corresponding to specific tracing actions. When enabled, some trace options generate significant output and can degrade performance. All trace output is written to a file pointed to by the environment variable CSI_TRACE_FILE. If the name is not defined, output is written to a default log file. Tracing can also be configured via command line argument. Any command line data not preceded by a legal option character is assumed to be trace control data. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 157 Coding the optional user logon exit (UNIX) A user exit can be coded to perform user validation during user connection. The intent is to permit security checking before allowing a user access to the PDM. The exit is called at two points: ♦ Whenever a user connects to the driver ♦ During shutdown to do any necessary user exit cleanup The logon exit is loaded during CID Adapter Server initialization. It is called by all of the CID Adapter Server processes for connection. The parameters on the connect and shutdown exit calls are: ♦ Address of 9-character database name (null terminated). ♦ Address of 9-character user name (null terminated). ♦ Address of 9-character password from logon (null terminated). ♦ Address of 17-character name of host that issues logon (null terminated). ♦ Address of a full word (initially zero) that can be used to store any userdefined context. This value will then be accessible on all future calls. ♦ Address of a 127-character area that can be used to return an error message to the CID Adapter Server. The message must have a null byte at the end. ♦ Address of a full word that contains 0 for a shutdown request and 1 for a connection request. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 158 The termination call is made once, near the end of shutdown processing. When this call is made, all connections have been broken and all CID Adapter Server processes are detached. The parameters on the termination exit call are: ♦ Zero. ♦ Zero. ♦ Zero. ♦ Zero. ♦ Address of a full word (initially zero) that can be used to store any userdefined context. ♦ Address of a 127-character area that can be used to return an error message to the CID Adapter Server. The message must have a null byte at the end. ♦ Address of a full word that contains the binary integer 2 for system termination. When the logon exit is called, the thread is signed on to the PDM. Any PDM database function (except SINON and SINOF) can be executed. Administration Guide, P25-9501-04 Chapter: 4. Tailoring the CID Adapter Server Section: Tailoring the UNIX CID Adapter Server 159 5. Tailoring the CID Adapter Client Overview The Cincom Integrated Data (CID) Adapter Client component is installed into the SQL Access for SUPRA Server PDM (SQL Access) environment. It is started automatically by the SQL Access Master process when the first connect request is made for a PDM database or CICS VSAM system. Each PDM database or CICS VSAM system connection will be serviced by a separate CID Adapter Client process. %ORDB% refers to the directory identified by the ORDB environment variable. This will be set to the installation directory. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Overview 160 Tailoring the Windows CID Adapter Client component After you have installed the CID Adapter Server components, you must perform certain site-specific tailoring tasks on the CID Adapter Client components. The initialization parameters for the CID Adapter Client component are in the sup1drvr.ini file. This file is stored in the %ORDB%\admin directory. You can use this file to define default parameter values for this installation. You can also use this file to define parameter values for a specific database. Before making any modifications to the parameter values, be sure to make a copy of the sup1drvr.ini file. Any changes should be made only after careful consideration. You can set overriding parameter values for all parameters in the following places: ♦ The batch script supra1.bat in the %ORDB% directory ♦ The environment inherited from the SQL Access Master process when it starts Settings in the batch script override those in the SQL Access Master process environment; settings in the SQL Access Master process environment override those in the sup1drvr.ini file. The CID Adapter Client component looks for parameter values in all of the following locations in the following order: 1. %ORDB%\admin\sup1drvr.ini 2. Environment inherited from the SQL Access Master process 3. %ORDB%\supra1.bat Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 161 Defining parameter values To set a parameter value in the sup1drvr.ini file, use the following format: parameter-name=value Example schema_segment_size=160000 To set a parameter value in the environment inherited from the SQL Access Master process or in the supra1.bat shell script, use the following format: ORDB_V1_PARAMETER-NAME=value Example ORDB_V1_SCHEMA_SEGMENT_SIZE=160000 Defining parameter values for a specific PDM database You can set parameters for a specific PDM database in all three locations: ini file, environment, and batch script. These parameter values override the parameter values for the installation. To do this, concatenate the literal ‘db_’ with the name of the database followed by the name of the parameter and assign a value to the concatenated variable name. The concatenated name must be in the following format: db_pdm-database-name_parameter-name The following examples use payroll as the PDM database name: ♦ To set a database specific parameter value in the sup1drvr.ini file, use the following format: db_pdm-database-name_parameter-name=value Example db_payroll_schema_segment_size=160000 ♦ To set a database specific parameter value in the environment inherited by the SQL Access Master process or in the supra1.bat shell script, use the following format: ORDB_V1_DB_PDM-DATABASE-NAME_PARAMETER-NAME=value Example ORDB_V1_DB_PAYROLL_SCHEMA_SEGMENT_ SIZE=160000 Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 162 Summary of CID Adapter Client component parameters The following parameters define the system values for the CID Adapter Client component. The specified order of the parameters is irrelevant. The following table shows where you can specify each parameter. Keep in mind that the shell script overrides the environment, which overrides the sup1drvr.ini file. Parameter db_pdm-database-name sup1drvr.ini Environment database-type.bat X X X dbname X display_options X X X driver_directory X X init_file X X Lang X X X load_path X X X max_rcv_pdu X X X max_records_limit X X X oid_cache_max X X X read_only X X X schema_segment_address X X X schema_segment_size X X X X X trace When setting a parameter value as an environment variable, you must set the value before the SQL Access Master process is started in order for it to take effect. A value can be set in the batch script at any time. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 163 db_pdm-database-name= Syntax db_pdm-database-name=[dbmod=DBMOD,] node,tcpip,tcp-port-no Description (Optional) Specifies the network information required to connect the CID Adapter Client component to a CID Adapter Server component. This information may be alternatively specified when registering the CID Foreign Database instead of specifying it here. This parameter overrides the information entered when registering the CID Foreign Database. Options pdm-database-name The name specified in the DBM parameter in CSIPARM of the MVS SUPRA Server PDM database or the DBMOD name for OpenVMS and UNIX platforms. This parameter must be unique for a SQL Access Server. Therefore, if the dbmod is qualified by a prefix in SUPRA PDM, you can add the prefix before the DBMOD name separated by an underscore (_) in order to make it unique (for example, 001_MRPDBO). The name is case sensitive, which usually implies that it is specified in all uppercase characters. Alternately, if the optional dbmod clause is being used to specify the value of the DBM or DBMOD parameter, an alias may be specified in the pdm-database-name. dbmod An OPTIONAL identifier that may be used to specify the value of the DBM parameter in CSIPARM of the MVS SUPRA Server PDM database or the DBMOD name for OpenVMS and UNIX platforms. The name is case sensitive, which usually implies that it is specified in all uppercase characters. If this identifier is used, then an alias may be specified in the pdm-database-name. This identifier is used together with alias names to allow the CID Adapter Client component to concurrently connect to several PDM databases that have identical DBM or DBMOD names. node The host name where the PDM is running. tcp-port-no The TCP/IP port number that the CID Adapter Server component listener process is listening on for connections from any CID Adapter Client component. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 164 Considerations Example ♦ This database connection parameter must be set for each database to which the CID Adapter Client component is to connect. ♦ The same value specified for TCP_LISTEN_PORT in the CID Adapter Server component parameter information must be specified for tcp-port-no. The port numbers must be identical for the connection to be successful. db_payroll=fred,tcpip,5010 db_CENTPDM=ER84AP3,tcpip,5020 db_001_MRPDBO=BB12ZX3,tcpip,6001 dbname=pdm-database-name Description (Optional) Specifies the name of the PDM database to the CID Adapter Client component for use with database-specific parameters. Format The name used in the CID Foreign Database registration statement. Considerations Example ♦ This parameter allows the PDM database name to be part of databasespecific parameter settings. Database-specific formats only work if the CID Adapter Client is supplied with the name of the database via this parameter. ♦ This parameter can only be set in the supra1.bat script in %ORDB%. When this script is invoked to start the CID Adapter Client component, the pdmdatabase-name is specified on the command line that invoked the script, with the name in %1. ♦ Setting this parameter in the supra1.bat script allows database specific parameter settings to take effect for parameters that need to be read before the sup1drvr.ini file is opened (display_option, driver_directory, init_file, and trace). At the top of the supra1.bat script, insert the following line: set ORDB_V1_DBNAME=%1 Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 165 display_options=TRUE or FALSE Description (Optional) Specifies whether the CID Adapter Client component parameters and their current valid values (as ascertained from the shell script environment, and init file) will be listed in the sup1drvr.err file. Default false Options true Parameters and values will be listed. false Parameters and values will not be listed. Consideration A listing of valid parameter values can be useful since a parameter value assigned in the sup1drvr.ini file can be overridden by the environment and the shell script. driver_directory=path-name Description (Optional) Specifies the directory to which the CID Adapter Client component will switch when it begins execution. This is the directory where the sup1drvr.err file will be created for error reporting. Default Directory where the SQL Access Master process started. Consideration This parameter must be set as an environment variable or in the shell script. init_file=path-name Description (Optional) Specifies a directory containing an alternate sup1drvr.ini file (other than the one in %ORDB%\admin). Default %ORDB%\admin Options User-defined path name Consideration This parameter must be set as an environment variable, in the shell script, or in the registry. lang=directory-name Description (Optional) Specifies the source directory for the sup1drvr.msg file containing error and warning messages issued by the CID Adapter Client component. Default En_US Consideration The default En_US directory is in %ORDB%\admin\msg\. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 166 load_path=path-name Description (Optional) Specifies the dynamic library load path. This is a Cincom Technical Support parameter. Default %ORDB%\lib Format User-defined path Considerations ♦ This parameter is usually set at the request of Cincom Technical Support. In such a case, the value can be set to a colon-separated list of directory paths where the CID Adapter Client component searches for network communications modules. This allows testing of TCP/IP related issues in a separate directory. ♦ In the absence of a Support request, there is usually no need to set this parameter as long as the directory containing the CID Adapter Client shared objects is included in the PATH environment variable. max_rcv_pdu=nnnnn Description (Optional) Specifies the maximum size of the protocol unit that the CID Adapter Client component can receive from the CID Adapter Server component. Default 8192 (bytes) Options ≥ 1024 (bytes) Consideration This parameter may be used to tune the CID Adapter Client/Server communications. Making the max_rcv_pdu parameter larger will allow more PDM data records to be sent from the CID Adapter Server to the CID Adapter Client in a single TCP/IP message, which may improve performance. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 167 max_records_limit=nnnnn Description (Optional) Specifies the maximum number of reads that are allowed to be used to retrieve data during a query. Format Decimal number between 0 - 2,147,483,647 (zero represents unlimited reads). Default 0 Options 0–2,147,483,647 Considerations ♦ If the number specified is zero, the number of reads allowed is unlimited. ♦ The CID Adapter Client component can only set a lower limit than the global limit in effect in the CID Adapter Server component. See the definition of the MAX_RECORDS_LIMIT parameter for your CID Adapter Server platform. oid_cache_max=nnnnn Description (Optional) Specifies the maximum size of the CID Foreign Database object identifier cache. Default 65,536 (bytes) Format User-defined value greater than 65,536 bytes. Consideration If an application uses very large transactions, you may have to increase this value. read_only=TRUE or FALSE Description (Optional) Specifies whether to restrict the CID Adapter Client component to read-only operation if this parameter is set to true. Default False Options True Read-only operation (inserts, updates, and deletes are disabled). False Inserts, updates, and deletes are enabled. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 168 schema_segment_address=address-value Description (Optional) Specifies an address for the schema segment to be attached to the CID Adapter Client component virtual address space. Default 0x02000000 Format User-defined address in hexadecimal. Consideration The schema segment is attached at the above default virtual memory address. schema_segment_size=nnnnnn Description (Optional) Specifies the size of the shared memory segment for the shared schema segment. Default 150,000 Format User-defined value (no maximum limit). Consideration None trace=nnn,nnn-nnn… Description (Optional) If specified, this parameter turns on debug tracing and specifies one or more tracing options to be used within the CID Adapter Client component. This is a Cincom Technical Support parameter. Default The parameter is not present (no tracing). Options 8–239 Format One or more numbers or number ranges, separated by commas (1, 10–14, 17). Considerations ♦ Tracing is usually turned on at the recommendation of Cincom Support. Support provides the specified numbers corresponding to specific tracing actions. When enabled, some trace options generate significant output and can degrade performance. All trace output is written to the sup1drvr.err file. ♦ This parameter can only be set as an environment variable or in the shell script. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the Windows CID Adapter Client component 169 Tailoring the UNIX CID Adapter Client component After you have installed the SQL Access Cincom Integrated Data (CID) Adapter components, you must tailor the CID Adapter Client component to your site. You do this by defining parameter values, which can be set in three locations: ♦ File sup1drvr.init in the $ORDB/admin directory. Be sure to make a copy of the sup1drvr.init file before making any modifications to the parameter values. Any changes should be made only after careful consideration. ♦ Environment inherited from the SQL Access Master process when it starts. Parameter values stored in environment variables must be set before the SQL Access Master process starts. If you later change an environment variable parameter, you will need to cycle the SQL Access Master process for it to take effect. ♦ Shell script pdm-database-name.sh in the $ORDB/admin/ldb directory. Replace pdm-database-name with the name specified in the DBM parameter in the CSIPARM file of the MVS SUPRA Server PDM database. It is the name of the DBMOD when accessing an OpenVMS or UNIX SUPRA Server PDM database. A parameter value can be set in the shell script at any time. If you change a shell script parameter, however, you will need to cycle the CID Adapter Client. The CID Adapter Client component looks for parameter values in these locations in the order listed above. Parameter values are overwritten if found in multiple locations (e.g., a parameter defined in the SQL Access Master process environment will be overwritten if that same parameter is also defined in the shell script). You can define default parameter values for the installation as well as for a specific database, if it requires different values. This is described in the following two sections. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 170 Defining parameter values for the installation To set a parameter value in the sup1drvr.init file, use the following format: Syntax parameter-name=value Example schema_segment_size=160000 To set a parameter value in the environment inherited from the SQL Access Master process or in the pdm-database-name.sh shell script, use the following format: Syntax ORDB_V1_PARAMETER-NAME=value export ORDB_V1_PARAMETER-NAME Example ORDB_V1_SCHEMA_SEGMENT_SIZE=160000 export ORDB_V1_SCHEMA_SEGMENT_SIZE Defining parameter values for a specific database You can also set parameters for a specific database. These parameter values override the parameter values for the installation. These parameters take the same name as the installation parameter they will override but prepend it with the literal ‘db_’ and the name of the database, as shown here: db_pdm-database-name_parameter-name where: pdm-database-name is the name of the database for which this parameter applies parameter-name is the name of the installation parameter being overridden See the following two sections for specific examples. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 171 Defining a parameter in the sup1drvr.init file To set a database specific parameter value in the sup1drvr.init file, use the following format: db_pdm-database-name_parameter-name=value For example, to override the "schema_segment_size" parameter for the "payroll" database, you would use the following: db_payroll_schema_segment_size=160000 Defining a parameter in the environment or pdm-databasename.sh To set a database specific parameter value in the environment inherited by the SQL Access Master process or in the pdm-database-name.sh shell script, use the following format: ORDB_V1_DB_PDM-DATABASE-NAME_PARAMETER-NAME=value export ORDB_V1_DB_PDM-DATABASE-NAME_PARAMETER-NAME For example, to override the "schema_segment_size" parameter for the "payroll" database, you would use the following: ORDB_V1_DB_PAYROLL_SCHEMA_SEGMENT_SIZE=160000 export ORDB_V1_DB_PAYROLL_SCHEMA_SEGMENT_SIZE Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 172 Summary of CID Adapter Client component parameters The following table shows the parameters for the CID Adapter Client component and where you can define each. The order in which the parameters are defined is irrelevant. Keep in mind that the shell script overrides the environment, which overrides the sup1drvr.init file. Parameters Sup1drvr.init Environment pdm-database-name.sh allow_core_dump X X X db_pdm-database-name X X X dbname display_options X X X X driver_directory X X init_file X X interproc_key X X X lang X X X load_path X X X max_rcv_pdu X X X max_records_limit X X X oid_cache_max X X X read_only X X X schema_segment_address X X X schema_segment_size X X X schema_table_size X X X table_segment_address X X X X X trace Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 173 allow_core_dump=True or False Description Optional. Specifies whether a core dump will be allowed. This is a Cincom Technical Support parameter. Default False Options True Allows a core dump to occur. False Does not allow a core dump to occur. Consideration By default, the CID Adapter Client component does not allow core dumps to be written when there is an internal problem (segmentation violation). If the CID Adapter Client component crashes, Cincom Technical Support may request that this parameter be set so that a core dump can be written for problem analysis. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 174 db_pdm-database-name=[dbmod=DBMOD,]node, tcpip,tcp-port-no Description Required. Specifies the network information required to connect the CID Adapter Client component to a CID Adapter Server component. Format pdm-database-name The name specified in the DBM parameter in CSIPARM of the MVS SUPRA Server PDM database or the DBMOD name for OpenVMS and UNIX platforms. The name is case-sensitive and this usually implies that the name be specified completely in uppercase characters. Alternately, if the optional dbmod clause is being used to specify the value of the DBM or DBMOD parameter, then an alias may be specified in the pdmdatabase-name. DBMOD An optional identifier that may be used to specify the value of the DBM parameter in CSIPARM of the MVS SUPRA Server PDM database or the DBMOD name for OpenVMS and UNIX platforms. The name is case sensitive and this usually implies that the name be specified completely in uppercase characters. If this identifier is used, then an alias may be specified in the pdmdatabase-name. This identifier is used together with alias names to allow the CID Adapter Client component to concurrently connect to several PDM databases that have identical DBM or DBMOD names. node The host name where the PDM is running. tcp-port-no The TCP/IP port number that the CID Adapter CID Adapter Server component listener process is listening on for connections from any CID Adapter Client component. Considerations Example ♦ This database connection parameter must be set for each database to which the CID Adapter Client component is to connect. ♦ The same value specified for TCP_LISTEN_PORT in the CID Adapter Server component parameter information must be specified for tcp-port-no. The port numbers must be identical for the connection to be successful. db_payroll=fred,tcpip,5010 Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 175 dbname=pdm-database-name Description Optional. Specifies the name of the PDM database to the CID Adapter Client component for use with database-specific parameters. Format The name used in the local database registration statement. Considerations Example ♦ This parameter allows the PDM database name to be part of databasespecific parameter settings. Database-specific formats only work if the CID Adapter Client is supplied with the name of the database via this parameter. ♦ This parameter can only be set in the pdm-database-name.sh script in $ORDB/admin/ldb/. Setting this parameter in the shell script allows database-specific parameter settings to take effect for parameters that need to be read before the sup1drvr.init file is opened (display_options, driver_directory, init_file, and trace). The dbname parameter setting for the payroll database parameter would be dbname=payroll. The database-specific setting for the display_options parameter for the payroll database would be db_payroll_display_options=true. display_options=True or False Description Optional. Specifies whether the CID Adapter Client component parameters and their current valid values (as ascertained from the shell script, environment, and init file) will be listed in the sup1drvr.err file. Default False Options True Parameters and values will be listed False Parameters and values will not be listed Consideration A listing of valid parameter values can be useful since a parameter value assigned in the init file can be overridden by the environment and the shell script. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 176 driver_directory=path-name Description Optional. Specifies the directory to which the CID Adapter Client component switches when it begins execution. This is the directory where the sup1drvr.err file will be created for error reporting. Default Directory where the SQL Access Master process started Options /dev/null No output files are generated User-defined path name Consideration This parameter must be set as an environment variable or in the shell script. init_file=path-name Description Optional. Specifies a directory containing an alternate sup1drvr.init file (other than the one in $ORDB/admin). Format User-defined path name Default $ORDB/admin Consideration This parameter must be set as an environment variable or in the shell script. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 177 interproc_key= nnnnnnnnnn Description Optional. Specifies the UNIX inter-process communication key used to facilitate sharing of resources between multiple instances of the CID Adapter Client component. Format A multiple of 256 up to 4,294,967,296 (the least significant byte is reserved for the individual identity of each resource) Default 1,296,649,029 Considerations ♦ This parameter must be set as an environment variable or in the shell script. If you set the value as an environment variable, you must set the value before the SQL Access Master process is started to have it take effect. A value can be set in the shell script at any time. ♦ The resources created by an instance of the CID Adapter Client component cannot be shared between different CID Adapter Clients started by different SQL Access Master process. If you are starting a second SQL Access Master process that will execute the CID Adapter Client component, the interproc_key value must be unique. If you receive the following 445E message, it is an indication that the interproc_key must be changed: Get shared-memory segment failed. key: 0xsh-mem-key size: nnnnn errno: nnn. For example, if you have two different SQL Access systems accessing two different PDM systems on the same machine, they will need different interproc_key values. lang= directory-name Description Optional. Specifies the source directory for the sup1drvr.msg file containing error and warning messages issued by the CID Adapter Client component. Default En_US Consideration The default En_US directory is in $ORDB/admin/msg/. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 178 load_path= path-name Description Optional. Specifies the dynamic library load path. This is a Cincom Technical Support parameter. Format User-defined path name Default $ORDB/lib Considerations ♦ This parameter is usually set at the request of Cincom Technical Support. In such a case, the value can be set to a colon-separated list of directory paths where the CID Adapter Client component searches for network communications modules. This allows testing of TCP/IP-related issues in a separate directory. ♦ In the absence of a Support request, there is usually no need to set this parameter as long as the directory containing the CID Adapter Client shared objects is included in the PATH environment variable. max_rcv_pdu= nnnnn Description Optional. Specifies the maximum size of the protocol unit (TCP/IP message)that the CID Adapter Client component can receive from the CID Adapter Server component. Format Must be greater than 1024 (bytes) Default 8192 (bytes) Consideration This parameter may only be used to tune the CID Adapter Client/Server communications. Making the max_rcv_pdu parameter larger will allow more PDM data records to be sent from the CID Adapter Server to the CID Adapter Client in a single TCP/IP message, which may improve performance. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 179 max_records_limit= nnnnn Description Optional. Specifies the maximum number of reads that are allowed to be used to retrieve data during a query. Format Decimal number between 0 - 2,147,483,647 (zero represents unlimited reads) Default 0 Considerations ♦ If 0 (zero) is specified, the number of reads allowed is unlimited. ♦ The CID Adapter Client component can only set a lower limit than the global limit in effect in the CID Adapter Server component. See the definition of the MAX_RECORDS_LIMIT parameter for your CID Adapter Server platform (UNIX, MVS, or OpenVMS). oid_cache_max= nnnnn Description Optional. Specifies the maximum size of the local database object identifier cache. Format Value greater than 65,536 bytes Default 65,536 (bytes) Consideration If an application uses very large transactions, you may have to increase this value. read_only= True or False Description Optional. Specifies whether to restrict the CID Adapter Client component to read-only operation if this parameter is set to true. Default False Options True Read-only operation (inserts, updates, and deletes are disabled). False Inserts, updates, and deletes are enabled. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 180 schema_segment_address= address-value Description Optional. Specifies an address for the schema segment to be attached to the CID Adapter Client component virtual address space. Format Hexadecimal address Default 0x0efff000 Consideration The schema segment is attached at the above default virtual memory address. schema_segment_size= nnnnnn Description Optional. Specifies the size of the shared memory segment for the shared schema segment. Format User-defined integer value (no maximum limit) Default 153,600 Consideration This value must be less than the value of SHMMAX. schema_table_size= nn Description Optional. Specifies the number of schema table entries used to look up shared schema segments. Set this parameter to the maximum number of different PDM databases that are being connected to the CID Adapter Client component. Format Integer value Default 10 Consideration The schema table is used by the CID Adapter Client component to look up a shared schema segment. There is one shared schema segment for each PDM database accessed by the CID Adapter Client component. There is one schema table entry for each shared schema segment. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 181 table_segment_address= address-value Description Optional. Specifies an address for the table schema segment to be attached to the CID Adapter Client component virtual address space. Default 0x0eff0000 Options Hexadecimal address Consideration The schema segment lookup table segment is attached at the above default virtual memory address. trace= nnn,nnn-nnn… Description Optional. If specified, this parameter turns on debug tracing and specifies one or more tracing options to be used within the CID Adapter Client component. This is a Cincom Technical Support parameter. Format One or more numbers or number ranges, separated by commas (1, 10–14, 17). Default No tracing Options 8–239 Considerations ♦ Tracing is usually turned on at the recommendation of Cincom Support. Support provides the specified numbers corresponding to specific tracing actions. When enabled, some trace options generate significant output and can degrade performance. All trace output is written to the sup1drvr.err file. ♦ This parameter can only be set as an environment variable or in the shell script. Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: Tailoring the UNIX CID Adapter Client component 182 CID Adapter NO-TRACE executable binaries Both CID Adapter Client and Server components are installed with no-trace binaries by default. These binaries are smaller and run faster than their traceable counterparts. The traceable binary images may be used for problem solving. The following instructions indicate how to switch between the non-traceable and traceable binary images for each platform. Windows CID Adapter Client component The traceable binaries will be installed in the %ORDB% directory along with the non-traceable binaries. To switch from trace to no-trace, it is simply a matter of defining a different driver type in the CID Foreign Database register statement or updating the ldb_catalog class using the database administrator user and password. The TYPE for non-traceable binaries is 'supra1' and for traceable binaries is 'supra1tr'. To register the CID Foreign Database and specify the type for non-traceable or traceable binaries: register CID Foreign Database burrys name 'BURRYS' type 'supra1' or 'supra1tr' host 'mterry'; If the CID Foreign Database has already been registered, logon to the SQL Access Server as the dba and execute the following SQL to select the traceable binary: update ldb_catalog set database_type = 'supra1tr' ; To switch to the non-traceable binary, execute the following SQL: update ldb_catalog set database_type = 'supra1' ; The statement may require a where clause if there is more than one CID Foreign Database registered. For example, update ldb_catalog set database_type = 'supra1' where database_name = 'BURRYS' Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: CID Adapter NO-TRACE executable binaries 183 UNIX CID Adapter Client component The traceable binaries will be installed in the $ORDB directory along with the non-traceable binaries. To switch from trace to no-trace, it is simply a matter of defining a different driver type in the CID Foreign Database register statement or updating the ldb_catalog class using the database administrator user and password. The TYPE for non-traceable binaries is supra_v1 and for traceable binaries is supra_v1_trc. To register the CID Foreign Database and specify the type for non-traceable or traceable binaries: register CID Foreign Database burrys name 'BURRYS' type 'supra_v1' or 'supra_v1_trc' host 'mterry'; If the CID Foreign Database has already been registered, logon to the SQL Access Server as the dba and execute the following SQL to select the traceable binary: update ldb_catalog set database_type = 'supra_v1_trc' ; To switch to the non-traceable binary, execute the following SQL: update ldb_catalog set database_type = 'supra_v1' ; The statement may require a where clause if there is more than one CID Foreign Database registered. For example, update ldb_catalog set database_type = 'supra_v1' where database_name = 'BURRYS' MVS CID Adapter Server component To execute to the traceable code on MVS, place the DBUGLINK library before the LINKLIB library in the job used to start the MVS CID Adapter Server. UNIX CID Adapter Server component The <adapter-name>_run script generated by the s1_adapter_setup script runs the non-traceable binary, csiserver, by default. To run the traceable binary, csiserver.dbg, use the following command: <adapter-name>_run -d Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: CID Adapter NO-TRACE executable binaries 184 OpenVMS CID Adapter Server component The <adapter-name>_RUN.COM, <adapter-name>_COORD_START.COM and <adapter-name>_SERVER_START.COM command files generated by the S1_ADAPTER_SETUP.COM command file use the values of the logical names CSISERVER and CSIHUBSHR to start the CID Adapter Server and Coordinator processes. By default, the V1HUB_COMS:LOGICALS.COM command file sets these logical names to point to the installed non-traceable images: ♦ V1HUB_EXE:CSISERVER_nnnn.EXE ♦ V1HUB_EXE:CSIHUBSHR_nnnn.EXE These logical names can be changed to point to the traceable images: ♦ V1HUB_EXE:CSISERVER_TRC_nnnn.EXE ♦ V1HUB_EXE:CSIHUBSHR_TRC_nnnn.EXE It is imperative that both of these logical names be pointing to either the traceable or non-traceable images. The logical names must also be persistent and visible to the user running the <adapter-name>_RUN.COM command file, as well as the user identified in the <adapter-name> TPCIP service, as this will be the user that runs the <adapter-name>_SERVER_START.COM in response to a connect. It is possible to execute the traceable binary images by copying them to the installed binary images as follows: ♦ Copy V1HUB_EXE:CSIHUBSHR_TRC_nnnn.EXE to V1HUB_EXE:CSUHUBSHR_ nnnn.EXE ♦ Copy V1HUB_EXE:CSISERVER_TRC_nnnn.EXE to V1HUB_EXE:CSISERVER_ nnnn.EXE Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: CID Adapter NO-TRACE executable binaries 185 This method does not require any changes to the CSISERVER or CSIHUBSHR logical names. To resume executing the non-traceable binary images, you can copy them to installed binary images as follows: ♦ Copy V1HUB_EXE:CSIHUBSHR_PRV_nnnn.EXE to V1HUB_EXE:CSIHUBSHR_nnnn.EXE ♦ Copy V1HUB_EXE:CSISERVER_PRV_nnnn.EXE to V1HUB_EXE:CSISERVER_nnnn.EXE Administration Guide, P25-9501-04 Chapter: 5. Tailoring the CID Adapter Client Section: CID Adapter NO-TRACE executable binaries 186 6. Cincom ORDB Visual Administration Tool Overview The Cincom ORDB Visual Administration tool is a graphical application that can be used to: ♦ Start and Stop SQL Access for SUPRA Server PDM (SQL Access) Servers ♦ View and/or kill transactions on a SQL Access Server ♦ Display transaction and SQL Access Server lock information ♦ Load and unload SQL Access Servers ♦ Create a new SQL Access Server ♦ Maintain a SQL Access Server The Visual Administration Tool presents a hierarchy view of host machines, SQL Access Servers, and SQL Access Server transactions. The hierarchy is displayed in the left pane of the tool in a tree view. When you select a node in the tree, specific data and operations for the selected node are displayed in the right pane. You can also right-click on a node in the tree and access specific operations that are available for the node. The Tool requires a connection to the SQL Access Master process of each SQL Access machine you want to administer. You can connect to as many SQL Access Master processes as you want with the Visual Administration Tool. The Visual Administration Tool refers to a SQL Access Master process as a "Database Host". A database host is simply the TCP/IP address or machine name, and the TCP/IP port number of the SQL Access Master process. System requirements The Visual Administration tool requires version 1.4.0 or higher of the Java runtime. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Overview 187 Starting the Visual Administration Tool Start the Visual Administration Tool using one of the following methods: These examples assume that the java executable can be found in your path. WINDOWS ♦ Select Start ⇒ SQL Access ⇒ Server ⇒ Admin Tool from the Windows Taskbar WINDOWS ♦ Enter the following command at a command prompt: java –cp %ORDB%\ordbjava.jar; %ORDB%\distributable\javahelp\jhall.jar ordbjava.admin.AdminTool UNIX ♦ Execute the AdminTool file in $ORDB. You will need a terminal emulator like Xterm to view the tool. UNIX ♦ Start the tool manually with: java –cp ${ORDB}/ordbjava.jar: ${ORDB}/distributable/javahelp/jhall.jar ordbjava.admin.AdminTool & When you start the Visual Administration Tool, you will see a screen similar to the following: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Starting the Visual Administration Tool 188 Connecting to a database host The Visual Administration Tool requires a connection to the SQL Access Master process of each host machine you want to administer. You can connect to as many SQL Access Master processes as you want with the Visual Administration Tool. When you start the administration tool, you will see a screen similar to the following: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Connecting to a database host 189 To initiate a database host connection: 1. Right-click Hosts in the left pane of the window. 2. Then, select Connect To Host from the pop-up menu. A dialog box displays prompting you to enter the information for the SQL Access Master process you want to connect to: where: - Host Name can be a network name or a TCP/IP address. - Port number can be left as “<Default Port>” if you want to use the port defined as the master_port_id in the ordbinit.txt file. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Connecting to a database host 190 3. Click OK to attempt a connection with the SQL Access Master process. After successfully connecting to a database host, the left pane shows all the SQL Access Servers that the database host knows about. The list will contain: ♦ Running SQL Access Servers ♦ Servers on stand-by (defined in ordbserv.txt) ♦ Servers that are in the ordblist.txt file (that are not running or on stand-by) The following shows the SQL Access Servers being managed by the SQL Access Master process running on a machine named cg25717, and listening on port 1978: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Connecting to a database host 191 Disconnecting from a database To disconnect a database host, perform the following steps: 1. Right-click Hosts in the left pane. 2. Then, select Disconnect from the pop-up menu. A dialog box displays prompting you to confirm that you want to disconnect: 3. Click Yes to confirm that you want to remove the host. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Disconnecting from a database 192 Starting and stopping SQL Access Servers You can start or stop a SQL Access Server by selecting the appropriate action from the pop-up menu: If the SQL Access Server is password protected, the database security password will be required in order to stop the SQL Access Server. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Starting and stopping SQL Access Servers 193 Viewing SQL Access Servers You can display all SQL Access Servers at once or only the SQL Access Servers that are running. In addition, you can view the status for an individual SQL Access Server. View all SQL Access Servers To display all SQL Access Servers, right-click on the connected host in the left pane, and select Show All Servers from the pop-up menu: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Viewing SQL Access Servers 194 View running SQL Access Server To display only the running SQL Access Servers, right-click on the connected host in the left pane, and select Show Running Servers from the pop-up menu: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Viewing SQL Access Servers 195 View status for a SQL Access Server To display details for an individual SQL Access Server, click on the SQL Access Server in the left pane. The right pane displays the information for the SQL Access Server you selected: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Viewing SQL Access Servers 196 Viewing Client Settings Using the Visual Administration tool, users can display the values assigned to system parameters, which determine the overall performance and behavior of the SQL Access system. SQL Access system parameters have default values (assigned in the system code) that you can redefine by setting the parameter values in: ♦ An ordbinit.txt file for an installation ♦ A desired SQL Access Server ♦ A particular user The SQL Access Server looks for ordbinit.txt files in the following locations in the order shown: ♦ %ORDB%\admin directory ♦ Home directory of the SQL Access Server The SQL Access Client looks for ordbinit.txt files in the following locations in the order shown: ♦ %ORDB%\admin directory ♦ Working directory of the process that is starting up The ordbinit.txt file in the %ORDB%\admin directory defines default parameter values for an installation. That is, it defines the values for all databases. Settings found in an ordbinit.txt file override any values that may have been previously assigned to system parameters. For detailed information on system parameters, see "9. SQL Access for SUPRA Server PDM system parameters" on page 320. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Viewing Client Settings 197 To view values assigned to parameters: Right-click on the database host (in the left pane). Then, select View Client Settings from the pop-up menu: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Viewing Client Settings 198 When View Client Settings opens, the default view shows all: In addition, tabs are available so you can choose to view only parameters pertaining to the following specific categories: ♦ SQL Access Client connection ♦ SQL Access Client disconnect ♦ SQL Access Client query settings ♦ SQL Access Client workspace ♦ java method ♦ miscellaneous ♦ utility Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Viewing Client Settings 199 View Server Settings To view the values assigned to a SQL Access Server: 1. Right-click on the database (in the left pane). 2. Then, select Server Settings from the pop-up menu: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: View Server Settings 200 The default view displays the show all tab: In addition, tabs are available so you can view specific categories: ♦ java method ♦ server error handling ♦ server recovery ♦ miscellaneous ♦ server fbo ♦ server request limits ♦ server communication ♦ server locking ♦ server threads ♦ server disk space ♦ server memory ♦ utility Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: View Server Settings 201 Database Security The Security feature for the database allows you to: ♦ Add a password ♦ Remove a password ♦ Change a password To access Database Security: 1. Right-click the database name in the left pane. 2. Select Security from the pop-up menu. 3. Then, select the appropriate task from the Security submenu. Depending on your selection, one of the following screens will appear: - When "Add Password" is selected, the following screen displays: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Database Security 202 - When "Remove Password" is selected, the following screen displays: - When "Change Password" is selected, the following screen displays: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Database Security 203 DBA Logon When prompted to provide the dba logon information, you will see the following screen: where: - DBA Name specifies your DBA name. - Password specifies the password if your DBA name has one. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: DBA Logon 204 ORDBINIT Management The Visual Administration Tool also allows you to manage the ordbinit file. To view the values assigned: 1. Select Other Tools from the top toolbar. 2. Then, select ORDBINIT Management. The following screen appears: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: ORDBINIT Management 205 3. Click Browse and navigate to the location of your ordbinit.txt file. For example: C:\CincomTIGER2.2\ORDB\Admin\ordbinit.txt When ordbinit management opens, the default view displays the show all tab: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: ORDBINIT Management 206 In addition, tabs are available so you can view specific categories: ♦ SQL Access Client connection ♦ SQL Access Client disconnect ♦ SQL Access Client query settings ♦ SQL Access Client workspace ♦ java method ♦ miscellaneous ♦ utility Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: ORDBINIT Management 207 SUPRA INI file Management The Visual Administration Tool also allows you to manage the SUPRA ini file (sup1drvr.ini). To view the values assigned: 1. Select Other Tools from the top toolbar. 2. Then, select SUPRA INI Management. The following screen appears: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: SUPRA INI file Management 208 3. Click Browse and navigate to the location of your sup1drvr.ini file. For example: C:\n\v2_3\ORDB\Admin\sup1drvr.ini When SUPRA INI File management opens, the default view shows all: To change any of these values: 1. Select the item in the Name column. The current value is displayed on the right side of the window. 2. Change the value as needed and press ENTER. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: SUPRA INI file Management 209 3. Click Save. The db_<pdm_name> (db_EE72CPDM in the example above) is required and specifies the MVS/OpenVMS/UNIX host name, network protocol and port number. If the db_<pdm_name> parameter is not included in the display, you can add it by clicking Add PDM DB, which will display the following: - PDM Database Name is the DBM name in the CSIPARM file for MVS and the dbmod name for OpenVMS and UNIX. This name is used by the SQL Access Server to connect to the CID Foreign Database. This parameter must be unique within the SUPRA ini file. Therefore, for OpenVMS and UNIX, the dbmod prefix can be placed before the dbmod name separated by an underscore (_) (for example, 001_MRPDBO). - Node Name is the name of the machine on which the relational CID Adapter Server is running. - Port Number is the TCP/IP port number on which the relational CID Adapter Server is listening. - Dbmod Name OPENVMS UNIX (Optional) is the name of the dbmod. It is used when the prefix+dbmod name is not enough qualification to make the PDM Database Name parameter unique. In this case the PDM Database Name parameter will be an alias and can be any unique name. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: SUPRA INI file Management 210 Displaying SQL Access Server transactions You can display the transaction information about a SQL Access Server for all transactions at once or for an individual transaction. You will be required to provide the dba logon information the first time you attempt to display the transaction information for a SQL Access Server. ♦ All transactions at once. To display information for all transactions at one time, click Transaction in the left pane. The details for all the transactions appear in the right pane. ♦ An individual transaction. To display information for an individual transaction, expand the tree view for "transaction" in the left pane. Then, click the individual transaction node that you wish to view. The details for that specific transaction appear in the right pane. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Displaying SQL Access Server transactions 211 Killing SQL Access Server transactions To kill transactions, right-click on the Transactions in the left pane, and select Kill from the pop-up menu. A confirmation box will ask you to confirm your desire to kill the transaction. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Killing SQL Access Server transactions 212 Displaying transaction lock information The lock information can be helpful in determining locking conflicts between transactions. The data shown includes: ♦ Transaction isolation level and lock request timeout setting ♦ Locks being held by the transaction ♦ Locks this transaction is waiting to obtain ♦ Transactions blocking this transaction ♦ Transactions being blocked by this transaction You can display lock information about all transactions or a specific transaction. You will be required to provide the dba logon information the first time you attempt to display the transaction lock information for a SQL Access Server. ♦ All locks at once. To display information for all locks at one time, click Transactions in the left pane. The details for all the transactions appear in the right pane. ♦ An individual lock. To display information for an individual lock, expand the tree view for "Transactions" in the left pane. Then, click the individual transaction node that you wish to view. The details for that specific transaction appear in the right pane. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Displaying transaction lock information 213 Displaying SQL Access Server lock information You can display lock information for the entire SQL Access Server. You will be required to provide the dba logon information the first time you attempt to display the lock information for a SQL Access Server. To display SQL Access Server lock information, right-click on the SQL Access Server in the left pane, and select Show All Locks. The right pane displays the information for the SQL Access Server you selected: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Displaying SQL Access Server lock information 214 Displaying SQL Access Server volumes The addvoldb utility adds new volumes to a SQL Access Server (see "Adding a volume" on page 220). Before new volumes are added, the DBA is advised to plan a configuration that provides some performance benefits. Performance is improved when these general rules are followed: ♦ Fewer volumes with large amounts of disk space are preferred over many volumes with small amounts of disk space. ♦ I/O contention is reduced when data, index, and temporary information are stored in completely different volumes on different disk drives. The addvoldb utility operates only on databases that are on the same machine as the Visual Administration Tool. To display volumes: You can view volume information for all volumes at once or for an individual volume. You will be required to provide the dba logon information the first time you attempt to display the volume information for a SQL Access Server. ♦ All volumes at once. To display information for all volumes at one time, click Volumes in the left pane. The details for all the volumes appear in the right pane: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Displaying SQL Access Server volumes 215 ♦ An individual volume. To display information for an individual volume, expand the tree view for Volumes in the left pane. Then, click the individual volume node that you wish to view. The details for that specific volume appear in the right pane: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Displaying SQL Access Server volumes 216 Displaying and starting CID Foreign Databases The Visual Administration Tool allows users to start foreign database servers and display information about them. You will be required to provide the dba logon information when you try to start the CID Foreign Database or the first time you attempt to display the detail for the CID Foreign Database. The sections below detail both starting and viewing CID Foreign Databases. Starting CID Foreign Databases You can start all CID Foreign Databases or an individual CID Foreign Database. First, you need to be connected to the host and SQL Access Server that the CID Foreign Database(s) reside on. ♦ To start all CID Foreign Databases, right-click Foreign Databases in the left pane, and select Start All from the popup menu. ♦ To start an individual CID Foreign Database, right-click on the name of the CID Foreign Database in the left pane, and select Start from the popup menu. Viewing CID Foreign Databases You can view details on all CID Foreign Databases or an individual CID Foreign Database. First, you need to be connected to the host and SQL Access Server that the CID Foreign Database(s) reside on. ♦ To display information for all CID Foreign Databases, click Foreign Databases in the left pane. The right pane displays the information for all CID Foreign Databases. ♦ To display information for an individual CID Foreign Database, click on the name of the CID Foreign Database in the left pane. The right pane displays the information for that CID Foreign Database. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Displaying and starting CID Foreign Databases 217 SQL Access Server location file Several utilities maintain a file named ordblist.txt that contains information about the location of SQL Access Servers. In order to connect to a SQL Access Server, each SQL Access Client application must specify the SQL Access Server name. The user is not required to supply any other information such as the full path name of the SQL Access Server or the host name of the SQL Access Server. Instead, this information is kept in a common file named ordblist.txt that can be accessed by many users. This file is created and maintained automatically by several utilities, including create, copy, rename, and delete. The file consists of a sequence of lines in the following format: db_name db_path_name server_host logfile_path_name The SQL Access Server location file is located through the environment variable ORDB_DATABASES. If this environment variable is set, it must be the name of a directory containing the ordblist.txt file. If this environment variable is not set, the current working directory is searched for the ordblist.txt file. In a traditional environment, the DBA maintains a directory hierarchy containing databases with the SQL Access Server location file at its root. The DBA then ensures that all SQL Access Server users have their environment variables set up properly to access the location file. Because the utilities must be able to make modifications to the SQL Access Server location file, the user must have write access to that file. If the ORDB_DATABASES environment variable points to a directory for which the user does not have write access, the user is not permitted to create a SQL Access Server. In this case, either the DBA needs to grant the user write access to the directory, or the user must create a private copy of the SQL Access Server location file in a directory for which the user has access and set the environment variable to this directory. The copy, rename, and delete utilities can also update the SQL Access Server location file. ALWAYS use these utilities to operate on SQL Access Server files. NEVER use the operating system file system commands directly. Using these utilities ensures that the SQL Access Server location file is maintained consistently. When working with SQL Access Clients and Servers, all databases must: ♦ Have unique names ♦ Be listed in one central SQL Access Server location file All users working in client/server mode use the single, central SQL Access Server location file. (When a SQL Access Server is started, the location of a SQL Access Server is determined by the ORDB_DATABASES environment variable.) Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: SQL Access Server location file 218 Maintaining a SQL Access Server Using the Visual Administration Tool, users can maintain databases with the following utilities: ♦ Add volume to a SQL Access Server using the addvoldb utility. ♦ Check a SQL Access Server using the checkdb utility. ♦ Copy a SQL Access Server using the copydb utility. ♦ Create a SQL Access Server using the createdb utility. ♦ Delete a SQL Access Server using the deletedb utility. ♦ Load a SQL Access Server using the loaddb utility. ♦ Move a SQL Access Server using the movedb utility. ♦ Rename a SQL Access Server using the renamedb utility. ♦ Start CID Foreign Databases using the startfdb utility. ♦ Stop CID Foreign Databases using the stopfdb utility. ♦ Unload a SQL Access Server using the unloaddb utility. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 219 Adding a volume The addvoldb utility operates only on databases that are on the same machine as the Visual Administration Tool. To add volume to a SQL Access Server: 1. Right-click Volumes in the left pane, and select Add Volume from the popup menu. The following screen appears: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 220 The following screen appears: where: - Page Number specifies the number of pages to allocate for the new volume. This is a REQUIRED field. - Volume Path specifies directory path for the volume. - Storage Purpose specifies the purpose for the volume storage. - Quiet (if checked) disables the display of the starting and ending information banners. 2. Click Add Volume to begin. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 221 Checking SQL Access Server consistency This is a diagnostic utility used to verify SQL Access Server consistency. It checks the internal physical consistency of the data and log volumes to verify their indices and other data structures. Since the time required checking a SQL Access Server rises with the size of the SQL Access Server, this may not be practical with very large databases. The checkdb utility operates only on databases that are on the same machine as the Visual Administration Tool. To check a SQL Access Server: 1. Right-click the SQL Access Server in the left pane. 2. Then, select Check from the popup menu. A dialog box displays allowing the user to select what options to check: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 222 where (if checked): - DBA Name specifies your DBA name. - DBA Password specifies the password if your DBA name has one. - Check Volume Path enables volume path check. - Check Volume Header enables volume header check. - Check Page Header enables page header check. - Check Heap Page enables heap page check. - Check B-Tree enables b-tree check. - Check Class enables class check. - Check B-Tree and Heap enables b-tree and heap check. - Quiet disables starting and ending information banners. By default, all options are checked. Users should uncheck the options that they want to exclude. 3. Click Check to begin checking the SQL Access Server. The result is shown in an informational dialog. Although the utility finds and reports problems, no action is taken to correct the problems. All non-fixed problems listed in the error log need to be analyzed by Cincom Technical Support, who will then advise you on your best choices of action to put your SQL Access Server back into a consistent state. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 223 Copying a SQL Access Server Using the Visual Administration Tool, users can copy or move databases from one location to another. The system copies every volume and control file of the SQL Access Server into the new destination and creates a new log to support the new SQL Access Server. You must give the new SQL Access Server a name different from the name of SQL Access Server that you are copying. Because a SQL Access Server is made up of several interdependent volumes, you should not use the operating system file commands to copy or move the SQL Access Server files. Rather, using the copydb utility ensures that all of the associated files are properly copied. The copydb utility must be run offline; in other words, it should not be run when someone else is using the SQL Access Server. The SQL Access Server location file is modified to add the entry for the new SQL Access Server and optionally delete the entry for the source SQL Access Server. For more information, see "SQL Access Server location file" on page 218. Recovery information from the source SQL Access Server is not included in the destination SQL Access Server. This information includes information from backups and active/archive logs. Cincom recommends making a backup of the destination SQL Access Server after the copy is done. To copy a SQL Access Server: 1. In the left pane, right-click on the SQL Access Server host to copy. 2. Then, select Copy from the pop-up menu. The following screen appears: where Destination Name specifies the name of the SQL Access Server copy that is made. This is a REQUIRED field. Clicking Show Options expands the Copy Database screen allowing users to specify additional options. For more information, see the following section about additional options. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 224 Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 225 3. Click Copy to begin. The copydb utility operates only on databases that are on the same machine as the Visual Administration Tool. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 226 Additional options for copying a SQL Access Server The following screen is displayed when you click Show Options when copying a SQL Access Server: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 227 The table below lists the available options and default values: Option Default value Description Database Path Current directory Specifies the SQL Access Server directory path Log Path Same as directory specified for Database Path Specifies the log file directory path Specifies the file that names volumes and directory locations File Name Vol. Extension Path Same as original volumes, or corresponding entry specified in the File Name Specifies the directory path for volume extensions Database Password Database password of the selected SQL Access Server Re-Enter Password Database password of the selected SQL Access Server Replace Existing Unchecked When checked, confirms that you want a new SQL Access Server to replace an existing SQL Access Server with the same name Quiet Unchecked When unchecked, disables the display of the starting and ending information banners Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 228 Creating a SQL Access Server After successfully connecting to a SQL Access Server host, you can create a new SQL Access Server. To create a new SQL Access Server: 1. Right-click on the CID Foreign Database host in the left pane. 2. Then, select Create from the pop-up menu: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 229 The following screen appears: where: - Database Name specifies the name of your SQL Access Server. This is a REQUIRED field. - Number of Pages specifies the allocated number of pages (default is 1000). - Database Path specifies the path of your SQL Access Server directory. Clicking More Options expands the Create Database screen allowing users to specify additional options. For details, see the following section about additional options. 3. Click Create to begin. The createdb utility operates only on databases that are on the same machine as the Visual Administration Tool. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 230 Additional options for creating a SQL Access Server The following screen is displayed if you click More Options when creating a SQL Access Server: The table below lists the available options and default values: Option Default Value Description Log Path Same as directory specified for Database Path Log file directory path Log Page Number Value of system parameter log_size Indicates the size of the log file in number of pages Page Size 4096 Specifies the page size in bytes Output File stdout Name of the output file for initialization messages Temp Volume Path Same as directory specified for Database Path Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server Directory path for the permanent temporary file 231 Option Default Value Description Temp Page Size The larger of 100 and onetenth of the number of SQL Access Server pages Number of pages to allocate for the permanent temporary file Backup Volume Path Same as directory specified for Database Path Directory path for backup files Char Algorithm BINARY The CHAR collation algorithm NChar Algorithm BINARY The NCHAR collation algorithm Char Locale BINARY The CHAR collation local NChar Locale BINARY The NCHAR collation local Code Sets Database Password Specify a password to protect the SQL Access Server Confirm Password Confirm the password specified to protect the SQL Access Server Replace Existing Unchecked When unchecked, the new SQL Access Server will not replace an existing SQL Access Server with the same name Make backup Checked When checked, an initial backup of the SQL Access Server is performed after a successfully creating the SQL Access Server Verbose Unchecked When unchecked, verbose output is disabled Quiet Unchecked When unchecked, disables the display of the starting and ending information banners Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 232 Deleting a SQL Access Server The Visual Administration Tool provides functionality to delete databases. To delete a SQL Access Server: 1. In the left pane, right-click on the SQL Access Server name you want to delete. 2. Then, select Delete from the popup menu: 3. A dialog box displays prompting you confirm that you want to delete the SQL Access Server: 4. Click Yes to confirm that you want to delete. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 233 Loading a SQL Access Server The loaddb utility provides a quick and easy way to populate a SQL Access Server with large amounts of data. The input file format for loaddb follows a simple tabular format. This format makes it an effective means for importing large amounts of data from traditional relational databases. To run loaddb, Cincom ORDB can be running in either standalone or client/server mode. To load a SQL Access Server: 1. In the left pane, right-click the SQL Access Server and select Load from the popup menu: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 234 The following screen appears: where Schema File specifies the name of the schema file (.sch) created by the unloaddb utility. The schema file is used to populate schema information into the newly created SQL Access Server prior to loading the input file. This is a REQUIRED field. Clicking Show Options expands the Load Database screen allowing users to specify additional options. For more information, see the following section about additional options. 2. Click Load to begin. The loaddb utility operates only on databases that are on the same machine as the Visual Administration Tool. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 235 Additional options for loading a SQL Access Server The following screen is displayed when you click Show Options when loading a SQL Access Server: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 236 The table below lists the available options, default values, and brief descriptions: Option User Name Default value Public Description Specifies the name of the user under which SQL Access Server access is performed. Specifies the password associated with the current user name. User Password Estimated Size 5000 Specifies the number of objects to be defined. Periodic Commit Count 0 When set to a value other than zero, loaddb automatically commits the transaction after that number of instances has been inserted. Syntax only Disabled If checked, performs syntax and data type checking on the input file without creating instances in the SQL Access Server. Load only Disabled If checked, skips syntax and data type checking on the input file and proceed directly to loading the SQL Access Server. Quiet Disabled If checked, disables the display of the starting and ending information banners. Verbose Disabled If checked, displays status messages as the SQL Access Server is being populated. Verbose Commit Disabled If checked, prints the running total of committed instances. No Statistics Disabled If checked, updates the internal statistics for every class into which instances are inserted. No Logging Disabled If checked, no logging is performed during the load. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 237 Moving a SQL Access Server Using the Visual Administration Tool, users can copy or move databases from one location to another. The system copies every volume and control file of the SQL Access Server into the new destination and creates a new log to support the new SQL Access Server. You must give the new SQL Access Server a name different from the name of the SQL Access Server that you are copying. Because a SQL Access Server is made up of several interdependent volumes, you should not use the operating system file commands to copy or move the SQL Access Server files. Rather, using the copydb utility ensures that all of the associated files are properly copied. The copydb utility must be run offline; in other words, it should not be run when someone else is using the SQL Access Server. The SQL Access Server location file is modified to add the entry for the new SQL Access Server and optionally delete the entry for the source SQL Access Server. For more information, see "SQL Access Server location file" on page 218. Recovery information from the source SQL Access Server is not included in the destination SQL Access Server. This information includes information from backups and active/archive logs. Cincom recommends making a backup of the destination SQL Access Server after the copy is done. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 238 To move a SQL Access Server: 1. In the left pane, right-click the SQL Access Server host and select Move from the popup menu: The following screen appears: where: - Source Database lists the name of the SQL Access Server host you want to move. Destination Name specifies the name of the SQL Access Server move that is made. Clicking Show Options expands the Move Database screen allowing users to specify additional options. For more information, see the following section about additional options. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 239 2. Click Move to begin. The movedb utility operates only on databases that are on the same machine as the Visual Administration Tool. Additional options for moving a SQL Access Server The following screen is displayed when you click Show Options when moving a SQL Access Server: Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 240 Option Default value Description Database Path Current directory Specifies the SQL Access Server directory path Log Path Same as directory specified for Database Path Specifies the log file directory path Specifies the file that names volumes and directory locations File Name Vol. Extension Path Same as original volumes, or corresponding entry specified in the File Name Specifies the directory path for volume extensions Database Password Database password of the selected SQL Access Server Re-Enter Password Database password of the selected SQL Access Server Replace Existing Unchecked When checked, confirms that you want a new SQL Access Server to replace an existing SQL Access Server with the same name Quiet Unchecked When unchecked, disables the display of the starting and ending information banners Renaming a SQL Access Server The renamedb utility changes the current name of an existing SQL Access Server. The information volumes, log volumes, and control files are renamed to coincide with the new name. Unlike copydb, renamedb does not require any additional disk storage, because the SQL Access Server is renamed in place. The renamedb utility is different from copydb in that it does not allow you to change the location of the volumes to another disk partition (for example, to another disk drive or another file system). The renamedb utility must be run offline (it should not be run when someone is using the SQL Access Server). Otherwise, renamedb fails. If a SQL Access Server with the new name already exists, the rename operation is aborted and an error message displayed. If renamedb is successful, the SQL Access Server location file is automatically updated to reflect the new name. The names of the files that comprise the SQL Access Server are also renamed to correspond to the new name. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 241 To rename a SQL Access Server: 1. In the left pane, right-click on the SQL Access Server to rename. Then, select Rename from the pop-up menu. The following screen appears: where: - New Name specifies the new name of the SQL Access Server you are renaming. This is a REQUIRED field. - Database Path specifies the pathname for the renamed SQL Access Server files. - Input File is the file that controls the renaming of information volumes for several disk locations. - Quiet, if checked, disables the display of the starting and ending information banners. 2. Click Rename to begin. The renamedb utility operates only on databases that are on the same machine as the Visual Administration Tool. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 242 Unloading a SQL Access Server The unloaddb utility is used with the loaddb utility to compress a SQL Access Server or to migrate an existing SQL Access Server to a new release of Cincom ORDB. In other words, the unloaddb and loaddb utilities reload a SQL Access Server from one version to another. The unloaddb utility runs only in standalone mode. For complete information on the loaddb utility, see "Loading a SQL Access Server" on page 234. The unloaddb utility produces three files: ♦ Schema file, which contains the schema definition of the SQL Access Server. It is created with the name of the SQL Access Server prefixed to .sch. (for example, a schema file for a SQL Access Server named "test", would be testdb.sch). ♦ Object file, which contains the objects (instances) that are contained in the SQL Access Server. It is created with the name of the SQL Access Server prefixed to .obs (for example, an object file for a SQL Access Server named "test", would be shown as testdb.obs). ♦ Index file, which contains indexes defined in the SQL Access Server. The index file name is formed from the name of the SQL Access Server prefixed to .idx (for example, an index file for a SQL Access Server named "test", would be shown as testdb.idx). Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 243 To unload a SQL Access Server: 1. In the left pane, right-click the SQL Access Server and select Unload from the popup menu. The following screen appears: Clicking Show Options expands the Unload Database screen allowing users to specify additional options. For more information, see the following section about additional options. 2. Click Unload to begin. The unloaddb utility operates only on databases that are on the same machine as the Visual Administration Tool. Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 244 Additional options for unloading a SQL Access Server The following screen is displayed when you click Show Options when unloading a SQL Access Server: Option Default value Description Class Names File None Name of file containing specific classes to unload (all classes are unloaded if not specified) Estimated Instances Computed Aids the internal hashing function of the object table manager Cached Page Size 4096 Specifies cached page size Cached Pages 100 Sets the number of object-table pages to cache in memory Output Directory Current working directory Specifies the directory where the schema and object output files are produced Output Prefix Database name Determines the prefix for the schema and object output files Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 245 Option Default value Description Hash File Name utility tmpnam( ) Supplies the pathname of the temporary file that is used for the object table User Name 'dba' Current user name Password None Password for current user Include References Disabled If checked, includes references when used with the Class Names File option Verbose Disabled If checked, enables verbose output Schema Only Disabled If checked, produces the schema output file only; the object file is not created Debug Disabled If checked, no logging is performed during the load Objects Only Disabled NOTE: This option should only be used when directed by Cincom Technical Support Quiet Disabled If checked, no start/stop messages displayed Administration Guide, P25-9501-04 Chapter: 6. Cincom ORDB Visual Administration Tool Section: Maintaining a SQL Access Server 246 7. Utilities Overview This chapter describes the programs and utilities used to maintain SQL Access for SUPRA Server PDM (SQL Access) Servers. For Windows, all of the utilities described below are found in the SQL Access install directory. For UNIX, all of the utilities may be found in the utilities directory under the install directory. The Install directory location is stored in the environment variable ORDB. To execute the utilities, the PATH environment variable should contain %ORDB% on Windows and $ORDB:$ORDB/utilities on UNIX. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: Overview 247 Foreign Table Generator The foreign table generator is a command line utility that can be used to automatically create SQL Access foreign tables. The utility creates foreign table statements for each PDM or VSAM file and writes these statements to a file (standard output if no output file is specified). The foreign table is given the same name as the PDM or VSAM file, however, this can be modified prior to storing the definition in the SQL Access Server. If external field names are defined in the PDM Directory, they will be used as the attribute names in the foreign table instead of the 8-character PDM physical field names. The utility will replace dashes in the external field names with underscores. This helps to ensure compatibility with SQL Access Client applications. Super-elements (fields that have sub-defined fields) are suppressed; only the sub-elements will be included in the foreign table. If the super-element is desired rather than the individual sub-elements, the output file may be modified prior to storing the definition in the CID Foreign Database on the SQL Access Server. A separate foreign table is generated for each record code in a record-coded related file. The query clause is suppressed in the foreign table statement for the base portion of coded files. The base portion of the file exists only so that attributes in the base portion can be shared between several coded overlays of the same file through inheritance. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: Foreign Table Generator 248 Executing the Foreign Table Generator The Foreign Table Generator is a command line executable that will generate the statements to create the foreign table for each PDM or VSAM file defined in the CID Adapter Server. It will generate statements for all the PDM or VSAM files, or you can input a list of files. The name of the executable is foreign_tables.exe on Windows and foreign_tables on UNIX. The input parameters are defined below. The CID Foreign Database must be registered prior to executing this utility. The Foreign Table Generator utility has the following parameters: Parameters Description -f fdb_name (Required) Specifies the CID Foreign Database name to be used in the ON FOREIGN DATABASE clause of the CREATE FOREIGN TABLE statement. The Foreign Database must be registered prior to executing supra_tables. See "Registering a CID Foreign Database" on page 29. -i (Optional) Specifies the path name of an input file that contains the names of PDM or VSAM files for which CREATE FOREIGN TABLE statements should be generated. The list must contain one file name per line. -o output_filename (Optional) Specifies the path name of an output file to write the foreign table statements into instead of writing the statements to standard output. -p password (Optional) Specifies the password that was specified in the REGISTER FOREIGN DATABASE statement, if any. -u username (Required) Specifies the username that was specified in the REGISTER FOREIGN DATABASE statement, if any. SQL_ Access_server_name (Required) This parameter is the name of the SQL Access Server being used to store the foreign table definitions. Messages from the utility are written to the same file that receives the CREATE FOREIGN TABLE statements and to stderr. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: Foreign Table Generator 249 The command to execute the Foreign Table generator for this example is as follows: foreign_tables –f burrys –o burrys.sql burrysrvr This command will generate CREATE FOREIGN TABLE statements for all of the files in the CID internal schema and write them to a file named burrys.sql in the Windows directory where the command is executed. The registered CID Foreign Database is named burrys and the SQL Access Server that will serve as repository for the foreign table definitions is named burrysrvr. The Foreign Database must be registered in the SQL Access Server prior to running this utility. The statements generated by the example above can then be loaded by executing the generated file burrys.sql in Visual SQL or executing the following statement from the Windows command prompt: sqlx -u dba -i burrys.sql burrysrvr The excerpt below shows the foreign table statements for the E$BR file. (NOTE: The ‘$’ character is not valid and an underscore is substituted.) The PDM directory contains external field names for all the fields, so the attribute names in the foreign table are the corresponding external field names (with the dash ‘-‘ replaced by an underscore because ‘-‘ is an invalid character in some external tools). The attributes are in the same order as they exist in the PDM file. create foreign table E_BR on burrys (BRANCH_NO char(4), BRANCH_NAME char(20), BRANCH_ADDR char(20), BRANCH_CITY char(13), BRANCH_STATE char(2), BRANCH_ZIPCODE numeric(5), BRANCH_REGION char(3), BRANCH_DEL_ROUTE char(2), BRANCH_SLS_QUOTA numeric(9,2), BRANCH_STF_QUOTA numeric(5)) as select "BRANCH-NO", "BRANCH-NAME", "BRANCH-ADDR", "BRANCH-CITY", "BRANCH-STATE", "BRANCH-ZIPCODE", "BRANCH-REGION", "BRANCH-DELROUTE", "BRANCH-SLS-QUOTA", "BRANCH-STF-QUOTA" from "E$BR"; commit work; Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: Foreign Table Generator 250 createdb The createdb utility creates SQL Access Servers and can define the initial users to be authorized in the SQL Access Server. Normally, only the DBA uses the createdb utility. The location of logs and the SQL Access Server are also specified by createdb. If SQL Access Server and log locations are not specified, the values in the SQL Access Server location files (ordbinit.txt) are used. For more information on the SQL Access Server location file, see "SQL Access Server location file" on page 218. See "log_path" on page 336 for more information on specifying default log locations. Syntax This command line syntax invokes the createdb utility: createdb [options] SQL-Access-Server-name where: - options includes those options described in the following table. - SQL-Access-Server-name specifies the name of your SQL Access Server. It cannot be a path such as /usr/smith/test_db but must be a simple name such as test_db. It must conform to the operating system filenaming requirements, it must not contain embedded blanks, and it cannot consist of more than 17 characters. Return values Return values for createdb are as follows: ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. After creating a SQL Access Server, it is recommended that you run the backup utility to insure recovery in the event of a hard disk crash. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 251 Options -p integer Pages. Select an appropriate number of pages for the intended SQL Access Server application. The default value of 1000 creates a small SQL Access Server information volume that is primarily useful for demonstration purposes. The minimum value for this parameter is dependent on the page size. The following table provides the minimum pages for each page size. Page Size Minimum Pages 1024 1600 2048 800 4096 400 8192 200 16384 100 For any substantial application, a SQL Access Server of ten thousand (10,000) or more pages is recommended. The maximum number of pages is dependent upon the maximum size of a volume allowed by your operating system and your SQL Access Server page size (see the -ps option below). To add more than one volume, use the addvoldb command. See "addvoldb" on page 263 for more information. -f dirname SQL Access Server directory path. A SQL Access Server is normally created in a directory created for that purpose. This standard makes it easier to maintain multiple SQL Access Servers without concern for name conflicts among the various files that make up the SQL Access Server. This option allows you to specify the exact path name of a directory in which to create the new SQL Access Server. If you do not specify -f, the current working directory is used. -l dirname Log file directory path. Log files are maintained as part of the SQL Access Server. Cincom recommends maintaining log files in a directory or disk device separate from the other SQL Access Server files. The -l option allows you to specify the name of this directory. If you skip this option, the log files are created in the same directory as the SQL Access Server (either the current working directory or as specified with the -f option). Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 252 -lp number Log pages. This option lets you customize the size of the log files for each individual SQL Access Server (it overrides the value specified for the log_size system parameter). The size of the log required varies according to the amount of update activity, the duration of time of concurrent transactions, etc. If you expect very few changes to occur, set the number of pages low. If you expect a large number of changes, set this value high. If you do not specify this option, the size of the log defaults to the value specified for log_size. The minimum value for this parameter is dependent on the SQL Access Server page size. The following table provides the minimum log pages for each page size. Page Size Minimum Log Pages 1024 1600 2048 800 4096 400 8192 200 16384 100 The maximum is determined by your system capabilities. To avoid performance degradation, do not specify a value that is less than 20% of the estimated total SQL Access Server size. It is recommended that you specify a value that is at least as large as the SQL Access Server size. If your application requires mass object updates, specify a value that is at least twice as large as the number of objects to be simultaneously updated. For more information on how to calculate archive and active log sizes, see "Parameters related to recovery/logging" on page 333. -ps number Page size. You can configure the page size to one of the following five values (in bytes): 1024, 2048, 4096, 8192, or 16384. The default value is 16384. For example, to set the page size of the mydb SQL Access Server to 2048, enter the following command: createdb -ps 2048 mydb Note that createdb rounds a value falling between one of the allowable values to the next larger number. Thus, the following command creates a SQL Access Server with a page size of 8192. createdb -ps 4097 mydb A change in page size affects the num_data_buffers, num_log_buffers, and sr_buffer system parameters. -r Overwrite flag. The createdb utility does not allow a SQL Access Server to be created if there is an existing SQL Access Server with the same name. If you want to overwrite an existing SQL Access Server, you must specify your intent with the -r option. If this option is not specified, the existing SQL Access Server is not overwritten. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 253 -o filename Initialization output file. You can redirect the output of the createdb utility to a file instead of displaying the output on the console. This option can be useful if you want to save the createdb messages for later reference on how a particular SQL Access Server was created. -mv filename More volumes. You can specify a file that lists additional volumes for the SQL Access Server that is created. This option can be used to spread a SQL Access Server across multiple physical disk drives, which may be desirable for a large SQL Access Server. The following sample file input allocates additional volumes in the dbx directories on the D, E, and F drives: # additional volumes for the dbx SQL Access Server PATH D:\DBX NPAGES 5000 PATH E:\DBX NPAGES 5000 PATH F:\DBX NPAGES 5000 Comment lines in the file are preceded with the # character, as shown above in the first line of input. It is also possible to designate the volume purpose as part of the input. If no purpose if specified, the volume is considered generic and eligible to hold any kind of data. For the above sample, if the volume on drive F were to be used for temporary data, the input line would be expanded to: PATH F:\DBX PURPOSE TEMP NPAGES 5000 See the –pu option of the addvoldb utility later in this chapter for details regarding the four possible settings for PURPOSE. -u filename User definition file. You can specify the names of SQL Access Server users to add during SQL Access Server creation. See "User definition file" on page 261 for details regarding file format. -i filename SQLX input file. You can specify the name of an SQLX input file to execute via the sqlx program in standalone mode as the last step of SQL Access Server creation. See “Using the SQL/X Processor” in the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503 for details regarding the sqlx program. The sqlx program is run from createdb via the public user. If your input file includes commands that require dba user authorization, add a line at the beginning of the input file such as: call login('dba', '') on class db_user; ... to sign on as the dba user. One possible use of this option is to define the SQL Access Server schema when the SQL Access Server is created. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 254 -v Verbose output. To maximize the amount of information about the createdb utility operation, enable verbose output with the -v option. The -v option takes no arguments. Both information about users defined in the SQL Access Server and a full line-by-line listing of the SQL Access input file (if one was specified) are included in the verbose output. The verbose option can be used in conjunction with the -o option so that a history of the SQL Access Server creation can be saved in a file. -t Temporary Volume directory path. When the SQL Access Server is created, a permanent volume used for temporary data is allocated. This volume is used for query results, sorting, etc. This option allows you to specify the exact path name of an existing directory in which to place the permanent temporary volume. If you do not specify the –t option, the temporary data volume will be created in the same directory as the SQL Access Server (specified by the –f option or in the current working directory). -tp Temporary Volume page count. The number of pages to allocate for the permanent data area used for temporary query processing results. If this option is not used, the number of pages will be the largest of 100 and onetenth of the number of pages allocated for the SQL Access Server. The minimum number of temporary volume pages is dependent on the SQL Access Server page size. The following table provides the minimum pages for each page size: Page Size Minimum Pages 1024 800 2048 400 4096 200 8192 100 16384 50 -ca char-algorithm CHAR collation algorithm. The collation algorithm for CHAR, CHAR VARYING and/or STRING type. The possible values include BINARY or ICU. If -ca is not specified, the default BINARY is used. -na nchar-algorithm NCHAR collation algorithm. The collation algorithm for NCHAR and/or NCHAR VARYING type. The possible values include BINARY or ICU. If -na is not specified, the default BINARY is used. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 255 -cl char-locale CHAR collation locale. Select the locale you want to use for collating CHAR data type. You may select any locale available on the system or BINARY if you do not want lexigraphical collation. The collation locale affects the order in which data is returned from the SQL Access Server. Data selected via indices, the ORDER BY clause, or a WHERE clause containing a string comparison will be returned in the lexigraphical order specified by the locale. See "Choosing a locale" on page 258. Once a SQL Access Server is created, the collation locales may not be changed. To change the SQL Access Server collation locales, the data must be unloaded from the original SQL Access Server and reloaded into a new SQL Access Server with the desired collation locales. -nl nchar-locale NCHAR collation locale. Select the locale you want to use for collating NCHAR data type. You may select any locale available on the system or BINARY if you do not want lexigraphical collation. The collation locale affects the order in which data is returned from the SQL Access Server. Data selected via indices, the ORDER BY clause, or a WHERE clause containing a string comparison will be returned in the lexigraphical order specified by the locale. See "Choosing a locale" on page 258. Once a SQL Access Server is created, the collation locales may not be changed. To change the SQL Access Server collation locales, the data must be unloaded from the original SQL Access Server and reloaded into a new SQL Access Server with the desired collation locales. -lc charsetlist Comma-separated list of character sets. A comma-separated list of character sets to be supported by the SQL Access Server for all locales specified. If an algorithm or locale is specified that does not support a particular character set, that character set may not be specified here even though the character set might be valid for some other algorithm. Otherwise, a particular SQL Access Client or Server would be in the position of attempting to support twocharacter sets simultaneously, which is expressly forbidden by SQL Access. ORDB_CHARSET is an implicit member of the charsetlist and is the default charsetlist if the -lc option is omitted. See "Choosing a locale" on page 258. -b SQL Access Server backup directory path. A backup SQL Access Server is normally created in a directory created for that purpose. This standard makes it easier to maintain multiple SQL Access Servers without concern for name conflicts among the various files that make up the SQL Access Server. This option allows you to specify the exact path name of a directory in which to create the backup SQL Access Server. If you do not specify -b, the current working directory is used. -nb No Backup. This option directs createdb to skip the initial backup performed after SQL Access Server creation. By default, an initial backup of the SQL Access Server is performed after a successful createdb. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 256 -q Quiet. If used, createdb will not show its start nor end banners. The success or failure of the createdb command will be displayed. -pp Prompt for remove password. Use this option to designate a SQL Access Server password by entering the password at a prompt as hidden text. For example, if this option is specified when creating the tempdb SQL Access Server as follows: createdb -pp tempdb The following prompt is displayed: Enter password for SQL Access Server tempdb: The password entered at the prompt will be assigned to the SQL Access Server. -pw SQL Access Server Password. Use this option to assign a password to the SQL Access Server. For example, to specify the password tmp when creating the tempdb SQL Access Server, enter the following command: createdb –pw tmp tempdb Choosing a locale and character set The supported locale - character set combinations are listed in the following table: Locale: Valid Character Sets: Collation Language: De_DE ISO-8859-1 German En_US ISO-8859-1 English – United States Es_ES ISO-8859-1 Spanish Fr_FR ISO-8859-1 French Ja_JP EUC S_JIS UTF-8 Japanese BINARY ASCII ISO-8859-1 EUC S_JIS UTF-8 Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 257 Choosing a locale Locale is any valid SQL Access locale name defined in the file %ORDB%\admin\locale.txt or BINARY. The locale.txt file is a user maintainable text file containing one line for each SQL Access locale name. Each SQL Access locale name is associated with a system locale name. Example of a Windows locale.txt file -- SQL Access locale name translate file for Windows --- SQL Access locale name System locale name En_US American_America.1252 GERMAN German_Germany.1252 SWISS German_Switzerland.1252 -- end of file The SQL Access locale names can be any meaningful string except “BINARY”. Each SQL Access locale name must be associated with a valid system locale name. Additionally, SQL Access locale names must be equal on all platforms in the system. For example, a SQL Access Server is created with the CHAR/VARCHAR collate locale set to GERMAN as in the example above. The SQL Access Server and all SQL Access Client machines must have a locale.txt file that contains the SQL Access locale name “GERMAN”. The system locale name associated with the GERMAN SQL Access locale name may be different on each platform. A locale.txt file containing some SQL Access locale names is supplied for each platform supported by SQL Access. Additional SQL Access locale names may be added by the user as necessary. Comment lines starting with "--" and "blank lines" are ignored. The system locale you choose for collation must be defined to your operating system. The locale is composed of the following fields: language_country.code-page where: - language_country may or may not be abbreviated on your machine. - code-page may be called a character set or an encoding on your machine. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 258 The list of Microsoft locales may be obtained under “References” from http://www.microsoft.com/globaldev: To obtain: Look under: Locales Locales and language groups Code pages Codepages – Windows and Codepages – OEM Character sets Character sets – ISO 8859 A list of language and country strings may also be obtained from Microsoft Visual studio help (MSDN). Under "index" look for "country/region strings" and then following the links to “language strings” and “country/region strings”. SQL Access Server location file The createdb utility and other utilities maintain a file named ordblist.txt that contains information about the locations of all known SQL Access Servers. In order to connect to a SQL Access Server, each SQL Access Client application must specify the SQL Access Server name. The user is not required to supply any other information such as the full path name of the SQL Access Server or the host name of the SQL Access Server. Instead, this information is kept in a common file that can be accessed by many users. This file is created and maintained automatically by several utilities, including createdb, copydb, renamedb, and deletedb. The file consists of a sequence of lines in the following format: db_name db_path_name server_host logfile_path_name The SQL Access Server location file is located through the environment variable ORDB_DATABASES. If this environment variable is set, it must be the name of a directory containing the ordblist.txt file. If this environment variable is not set, the current working directory is searched for the ordblist.txt file. In a traditional environment, the DBA maintains a directory hierarchy containing SQL Access Servers with the SQL Access Server location file at its root. The DBA then ensures that all SQL Access Server users have their environment variables set up properly to access the location file. Because the utilities must be able to make modifications to the SQL Access Server location file, the user must have write access to that file. If the ORDB_DATABASES environment variable points to a directory for which the user does not have write access, the user is not permitted to create a SQL Access Server. In this case, either the DBA needs to grant the user write access to the directory, or the user must create a private copy of the SQL Access Server location file in a directory for which the user has access and set the environment variable to this directory. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 259 The copydb, renamedb, and deletedb utilities can also update the SQL Access Server location file. Always use these utilities to operate on SQL Access Server files. Never use the operating system file system commands directly. Using these utilities ensures that the SQL Access Server location file is maintained consistently. When working with SQL Access Clients and Servers, all SQL Access Servers must: ♦ Have unique names ♦ Be listed in one central SQL Access Server location file All users working in client/server mode use the single, central SQL Access Server location file. (When a SQL Access Server is started, the location of a SQL Access Server is determined by the ORDB_DATABASES environment variable.) Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb 260 User definition file The user definition file consists of one or more lines of USER statements. This file name can be given with the -u option to automatically define authorized users when the SQL Access Server is being created. Syntax USER user_name [ groups_clause | members_clause ] groups_clause: [ GROUPS user_name [ { user_name }… ] ] members_clause: [ MEMBERS group_name [ { group_name... } ] ] For each USER statement in your file, the user name is the name of the authorized user. The name can be composed of alphanumeric characters and must not contain embedded blanks. The GROUPS clause is optional and allows the specification of one or more groups of which the user is a member. The group name specification is no different from the user name; the name supplied as group name is used as a convention to identify a user that has one or more members. Each group name that is specified in the MEMBERS clause must be defined in another user statement elsewhere in the file. Comments are allowed in the user definition file. Each comment line must begin with a hyphen (-). Blank lines in the file are ignored. A USER statement cannot be continued onto the next line. Instead, you can define several statements for the same user (see Example 2 below). Example 1 This example shows that user smith is a member of two groups, and the other users (brown and jones) are each a member of one group. All users are indirectly members of group company. --- Example user definition file 1 -USER USER USER USER company engineering marketing administration USER smith USER brown USER jones Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb GROUPS company GROUPS company GROUPS company GROUPS administration marketing GROUPS engineering GROUPS marketing 261 Example 2 This example demonstrates the cumulative effect of USER statements that define the same user name. In this case, user brown is added as a member of three groups. Because each USER statement must fit onto a single line, using multiple USER statements can make the file more readable if a user is a member of many groups. --- Example user definition file 2 -USER engineering USER marketing USER administration USER brown USER brown USER brown GROUPS engineering GROUPS administration GROUPS marketing Example 3 Another way of defining groups is illustrated in this example. In this case, the members of the groups are defined with the MEMBERS keyword rather than the group names being spread out among the individual users. --- Example user definition file 3 -USER brown USER smith USER jones USER engineering USER marketing USER administration Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: createdb MEMBERS brown MEMBERS smith jones MEMBERS smith 262 addvoldb The addvoldb utility adds new volumes to a SQL Access Server. Before new volumes are added, the DBA is advised to plan a configuration that provides some performance benefits. Performance is improved when these general rules are followed: ♦ Fewer volumes with large amounts of disk space are preferred over many volumes with small amounts of disk space. ♦ I/O contention is reduced when data, index, and temporary information are stored in completely different volumes on different disk drives. Syntax This command-line syntax invokes the addvoldb utility: addvoldb [options] SQL-Access-Server-name number-of-pages where: - options includes those options described below. - SQL-Access-Server-name is the name of the SQL Access Server you wish to expand. This name cannot be a path name, such as C:\usr\smith\testdb, but instead must be a simple name such as testdb. - number-of-pages specifies the number of pages to allocate for the new volume. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: addvoldb 263 Options -f dirname Volume extension directory path. This option designates the exact path name of the directory where the new volume of the SQL Access Server is created. When this argument is omitted, the value of the system parameter is used as the default. The DBA normally decides the value of this option when storage planning of the SQL Access Server is done. -pu Volume purpose. The storage purpose for the new volume can be stated with this option. The possible values include: ♦ data. Holds user information of classes, instances, and multimedia data. ♦ index. Holds index information (used to speed up query processing and to verify integrity constraints). ♦ temp. Holds temporary data that is used during query processing and sorting routines. ♦ generic. Holds any kind of data, including data that is allowed with a data, index, or temp purpose. This is the default if none is specified. A volume purpose should be specified to improve I/O performance. Better performance is achieved when user data is separated from index and temporary data, which are then stored in different volumes and disk drives. This allows the disk drives to work simultaneously, retrieving both the table and index at the same time. This enhances performance when several users access the SQL Access Server at the same time. -sa Standalone mode. This option invokes the addvoldb utility from the standalone mode of execution. If the -sa option is specified, then -cs cannot also be specified. If a mode option is not given, the value of the ORDB_MODE environment variable is used as the default. -cs Client/server mode. This option invokes the addvoldb utility using the client/server mode of execution. If the -cs option is specified, then -sa cannot also be specified. If a mode option is not given, the value of the ORDB_MODE environment variable is used as the default. If neither the -sa option nor the -cs option is specified and the environment variable ORDB_MODE is not defined, client/server mode is assumed. -q Quiet. If used, addvoldb will not show its start or end banners. The success or failure of the addvoldb command will be displayed. -pw SQL Access Server Password. Use this option to specify the password if the SQL Access Server has a password. For example, to specify the password tmp of the tempdb SQL Access Server, enter the following command: addvoldb –pw tmp tempdb 100 Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: addvoldb 264 A prompt requesting the SQL Access Server password is displayed if an addvoldb is attempted for a password protected SQL Access Server and the –pw option is not specified. The password entered in response to this prompt is hidden while it is being typed. -ud DBA user. Use this option to specify the dba user name. This option is useful if access to the db_user class to obtain the dba user name is not permitted. If the dba user is not accessible and the –np option is not specified, a prompt for the dba user is displayed. -pd DBA password. Use this option to specify the dba user password. This option is used when the –ud option is specified and the dba user has a password. A prompt for the dba user password is displayed if the dba user is not accessible and the –ud and –np options are not specified. -np No prompt for DBA user/password. With this option, the dba user and password will not be requested if the dba user name cannot be obtained and the –ud and –pd options are not specified. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: addvoldb 265 loaddb The loaddb utility provides a quick and easy way to populate a SQL Access Server with large amounts of data. The loaddb utility creates instances directly in the SQL Access Server without incurring the overhead of loading the new instances into the workspace. The input file format for loaddb follows a simple tabular format. This format makes it an effective means for importing large amounts of data from traditional relational SQL Access Servers. To run loaddb, SQL Access Server can be running in either standalone or client/server mode. Loading the schema file Before running the loaddb utility, you must load the schema file created by the unloaddb utility into your newly created SQL Access Server. To do this, you must run the sqlx command with the -i option as follows: sqlx -i olddb.sch mydb -u dba When the sqlx interpreter is used to load the schema file, always execute it under the “dba” user by specifying -u dba in the command line. The generated schema creation script contains calls to privileged methods (authorized for use exclusively by the DBA). Users migrating from a prior release: Before loading the schema (DBNAME.schema) from a prior release, the DBNAME.schema file needs lines inserted at the beginning of the schema file. This will allow multiple transactions to be open at one time: call login('dba', '') on class db_user; update db_track_event set active = 'Off'; commit work; In lieu of adding these lines to the schema file, another option is to add a “commit work” before any “call login” commands in the file. The ddltojava utility generates custom Java classes from a SQL Access Server schema. The utility processes the schema (.sch) file produced by the unloaddb utility and generates Java classes for use in your applications. Even if you still have your schema file, Cincom recommends that you run the unloaddb utility to generate a new schema file. This ensures that all system classes are included in the schema used by the ddltojava utility. For more information on the ddltojava utility, refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 266 Syntax This command-line syntax invokes the loaddb utility: loaddb [ options ] SQL-Access-Server-name input-file where: - options includes those options described in the following table. - SQL-Access-Server-name is the name of an existing SQL Access Server created with createdb. The name of the SQL Access Server cannot be entered as a path (such as D:\usr\smith\test_db) but must be given as a simple name (such as test_db). - input-file is a path name to the loader input file, which was generated by the unloaddb utility or typed by the user. For the format of the input file, see "Input file format" on page 270. Return values Return values for loaddb are as follows: ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 267 Options -sa Standalone mode. This option specifies standalone mode and is the default mode for loaddb. If this option is specified, client/server mode (-cs) cannot also be specified. -cs Client/server mode. This option specifies client/server mode. If this option is not specified, loaddb defaults to the mode set by the ORDB_MODE environment variable. If this option is specified, standalone mode (-sa) cannot also be specified. -s Syntax check only. Activating this flag causes the loaddb utility to perform syntax and data type checking on the input file without creating instances in the SQL Access Server. By default, a syntax check is always performed on the input file before the SQL Access Server is modified. -v Verbose output. Activating this flag causes the loaddb utility to display status messages as the SQL Access Server is being populated. Output statistics such as current class being loaded, loading phase, syntax checking, and number of instances for a specific class are displayed. Because loading large input files is often a time-consuming process, enabling the verbose flag allows you to track the progress with these statistics. -e integer Estimated number of objects. This option should be specified when the number of objects to be defined is greater than the default number (2048). The value of this option determines the overall performance of the load operation. When the number is set too low, the load process may take a substantially longer time to complete. -l Load only, no initial syntax check. Activating this option causes loaddb to skip syntax and data type checking on the input file and proceed directly to loading the SQL Access Server. Using this option saves time when the -s option has already been used to check the input file. Errors may still be caught by syntax and data type checking during the load phase. -u string Name of current user. This option specifies the name of the user under which SQL Access Server access is performed. If no user name is supplied, the default value of public is assumed. -p string Password. The password option specifies the password associated with the current user name. This parameter is not required if the user does not have a password for SQL Access Server access. If the current user has a password but does not give the -p option, the user is prompted for the password at the terminal. Note that the -p option is normally used to run the loaddb utility in batch mode where interactive prompting for passwords is not desired. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 268 -c integer Periodic commit count. When all of the instances from the input file have been loaded into the SQL Access Server, loaddb automatically commits the transaction. In some cases this commit may result in the generation of numerous log archive files while loaddb executes. To prevent the generation of log archives when large amounts of data are being loaded, you must set the media_failures_are_supported system parameter in the ordbinit.txt file to zero, and use the periodic commit option of loaddb. When the periodic commit option is set to a value other than zero, loaddb regularly commits the transaction after that number of instances has been inserted. For example, if the -c option is set to 50, then a commit takes place after 50 instances have been inserted. Note that this value makes it impossible for loaddb to remove insertions if an error is detected late in the load process. Therefore, use this feature only after due consideration. Cincom recommends that you do not use the -c option to loaddb on a SQL Access Server that is already populated. -vc Verbose output on periodic commits. Activating this option causes loaddb to display status messages as the SQL Access Server is being populated. The output from this option is simpler than the statistics displayed under the -v option. Instead, only a running total of the committed instances are shown. The frequency of this display is determined by the setting on the -c option. -nl No logging option. This option directs the loader to run without logging. This will speed up the load job, but errors will not be recoverable. Disabled by default. -nc No unique constraints checking option. This option directs the loader to run without checking for unique constraints violations. Disabled by default. -q Quiet mode. When enabled, the loader will not display starting and stopping messages. Disabled by default. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 269 Input file format The input file used with the loaddb utility is an ASCII text file that is formatted as a sequence of command lines, data lines, and comments. The command lines are used to define the format of subsequent data lines, and the data lines describe the attribute values of the objects to be inserted into the SQL Access Server. Comments are used to annotate the loaddb file. Comments SQL Access style comments, beginning with two hyphens (--), can be used as in the following example: -- This is a comment! -- And this is another. Command lines Command lines must always begin with the percent (%) character. The command name is then specified immediately after the %. There are two commands that can be specified in the input file, the % class command, and the %id command. ♦ %class command line. The %class command always precedes the data lines used to populate the specified class. The format of the data lines is determined by the order in which the attributes are listed in the %class command line. The data lines must have a corresponding value (or NULL) for every attribute in the preceding command line, but a value is not required for every attribute that is defined in the class. If an attribute is omitted from the command and data lines, the attribute value for that instance is the default value (if one was defined) or NULL. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 270 Syntax %class class_name ( attr_name [ { attr_name }… ] ) [ constructor_spec ] where: - class_name is the name of an existing class in the SQL Access Server that you want to populate. - attr_name is specified for each attribute in the class for which you supply data. - constructor_spec is an optional specification that allows you to name a previously defined class method to create and initialize the instances of the class referenced in this command. This constructor specification must be used to insert multimedia instances into a class. For more information on the constructor_class option, see "Using a CLASS method to populate a class" on page 279. Example The following %class command tells the loader that subsequent data lines are used to create instances of the person class. Each data line that follows the %class command line should contain two values: the first value is associated with the name attribute, and the second value corresponds to the age attribute. Note that it is not necessary to specify the type of the attribute. This information is obtained by consulting the schema that is stored in the SQL Access Server: %class person (name age) ♦ %id command line. The %id command line creates an alternate class identifier or alias for easier reference later in the input file. It precedes data lines that use object references to populate a class. Syntax %id class_name class_id where: - class_name is the name of an existing class in the SQL Access Server that you want to populate. - class_id is given as an integer used in object references contained in data lines of the input file. See “Example 2” on page 276 for an example of using the %id. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 271 Data lines The values given in the input file must match the corresponding attributes in the class. If a value in a subsequent data line conflicts with the type of the associated attribute, the load operation is not performed on that attribute, an error message is displayed, and the loaddb operation halts. For example, assume that the person class is defined with the name attribute as a string, and the age attribute as an integer. The next listing shows the previous command line with the appropriately structured data lines: %class person (name age) ‘smith’ 31 ‘newman’ 33 ‘jones’ 31 ‘underwood’ 47 Successive values on a data line must be separated by at least one space character. A long data line can be continued onto the next line with a plus sign (+). This continuation character is placed at the end of a line of text when the next line is to be interpreted as a continuation of the previous line. The plus sign must occur immediately after the close-quotation mark, with no space. White space may appear between the plus sign and the open quotation mark on the next line. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 272 The next table gives an example for each of the fundamental data types that can be loaded from the input file: Data type Example value SMALLINT 2048 INTEGER 123456789 † 123.456 FLOAT † DOUBLE 1.45693e+20 STRING ‘this is a string’ CHAR(n) ‘this is a char(19)’ TIME ‘10:20:00’ DATE ‘07/14/1776’ TIMESTAMP ‘1:03 pm 10/15/1992’ SET {123} MULTISET {11223} LIST (SEQUENCE) { ‘one’ ‘two’ ‘three’ } BIT STRING B’0100110010100011’ X’4ca3’ NCHAR(n) N’Härder’ † FLOAT and DOUBLE values can be expressed in simple form or in scientific notation. Single quote characters delimit STRING values. If the string is surrounded by single quotes, it is not allowed to have escape sequences (that are translated into a character) within the string. New-line characters within a string are allowed. When you precede a string with any of the keywords DATE, TIME, or TIMESTAMP, the string is interpreted as the keyword type when it is put into the SQL Access Server. Strings of an arbitrary size can be created using string continuation syntax. A string to be continued must be terminated with a single quote and plus sign (+). The string continuation must begin on the next line and must be enclosed in single quotes, as follows: ‘This is an example’+ ‘of a string created with continuation syntax.’ Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 273 TIME values are entered as strings and are not required to have a value in the seconds' field. In other words, the constant ‘10:20’ is interpreted as twenty minutes after ten with zero seconds. Unless time values are followed by the optional AM or PM, time values are based on a 24-hour clock, where the value ‘13:30’ is the same as ‘1:30 PM’. TIMESTAMP values are entered as strings containing date and time information. The order of the date and time are interchangeable. A SET, MULTISET, and LIST (or SEQUENCE) must be enclosed in braces ({}). The elements inside the braces can optionally be separated by commas (,). Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 274 Object references The loaddb utility uses a special syntax for specifying references between objects. The syntax for an object reference follows. Syntax @class_ref | instance_no class_ref - class_name - class_id class_name - identifier class_id - integer instance_no - integer An object reference consists of a class identifier and an instance number that is unique to that class. The class can be referenced using the class name, or it can be given as the class identifier, which is an integer value. Both the class_name and the class_id must be immediately preceded by the @ symbol. A vertical bar (|) separates the class_ref and the instance_no. Spaces are not allowed on either side of the vertical bar. The instance number is stated as an integer. Example 1 The following object reference is for instance number 28 of the class person: @person|28 Instance numbers are assigned when you include an instance number prefix on a data line. This prefix must be given as a nonnegative integer that is unique to that class and followed immediately by a colon. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 275 Example 2 Some instance prefixes are included in the following data lines: %class person (name age) 1: ‘steve’ 32 2: ‘joe’ 33 3: ‘mary’ 45 ‘sarah’ 23 Three of the four instances defined for class person were assigned instance numbers. The instances prefixed by an instance number can later be referenced elsewhere in the input file by using the appropriate object reference. For example, the class automobile can now reuse the three instances numbered in class person: %class automobile (make owner) ‘Ford’ @person|1 ‘Mazda’ @person|3 ‘Jeep’ @person|2 ‘Lexus’ @person|56 The attribute owner in class automobile points to a particular instance of class person. Assuming instances 1–3 were created for class person, three automobile instances are created to reference the previously defined person instances. Note that the last data line for class automobile references person instance number 56, which has not yet been defined. You are allowed to reference instances that have not previously been defined in the input file. If instance number 56 is defined in a later data line, the loader knows that a reference has already been made for this instance. The loaddb utility ensures that the object identifier that was stored in a previous object is the same as the object identifier that is associated with the new object. If a forward reference to an instance is made, but the instance is never defined in the input file, the loader automatically creates the instance using the default attribute values that were defined for that class. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 276 Example 3 This example shows a complete loader input file: %class person (name) 1: ‘sid’ 2: ‘nancy’ %class automobile (owner) @person|1 @person|2 @person|3 After this input file has been loaded, three instances of class person have been created. Instances 1 and 2 contain the information that was specified in the corresponding data lines. Instance 3 is built to satisfy the reference to @person|3, and contains the default value for the name attribute. If a default value for name has not been defined, instance 3 contains NULL. As previously mentioned, instance numbers for a particular class must be unique within the input file. When an instance number has been assigned, it cannot be reused in another data line for that class. The next example shows an illegal sequence of data lines that use the instance number 1 twice: %class person (name) 1: ‘sid’ 2: ‘nancy’ 1: ‘john’ Instances of different classes, however, can use the same instance number. A separate instance table is maintained for each class in the input data file. Because the syntax of an object reference requires that you specify the class of the instance that is being referenced, the correct instance can always be identified even if several instances from different classes use the same instance number. This requirement is illustrated in the following example. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 277 Example 4 This example defines two instances of different classes each using the instance number 1: %class person (name) 1: ‘sid’ %class automobile (make) 1: ‘rambler’ %class car_and_driver (owner auto) @person|1 @automobile|1 An additional syntax option for object references uses the %id command line. Instead of writing an object reference that includes the class name, the object reference can be written more concisely by using a class identifier. To write an object reference in this manner, a class identifier number must have been previously assigned using the %id command line. Using class identifiers in object references can significantly reduce the size of the data file, especially when the classes have long names. Example 5 Class identifiers are established and used as object references in the next example: %id person 1 %id automobile 2 %class car_and_driver (owner auto) @1|100 @2|340 An instance of class car_and_driver references two other instances in the input file: instance 100 of class person and instance 340 of class automobile. In this form of the object reference syntax, the class identification number (rather than the class name) is placed between the symbols @ and |. A class can be assigned any integer as an identifier, but the same identifier number cannot be shared by more than one class. It is recommended that your identifier numbers begin at 1 and increment by a value of one. Although larger numbers are valid, they cause unnecessary extra work during parsing of the data file. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 278 Using a CLASS method to populate a class The %constructor clause is an optional specification to the %class command that allows you to name a previously-defined class method to create the instances of a class. This clause is required for the construction of instances in multimedia classes, but it populates any other user-defined class as well. Syntax %class class_name ( attr_name [ { attr_name }… ] ) [ constructor_spec ] constructor_spec - %constructor method_name ( [ arg_name [ { arg_name }… ] ]) method_name - identifier arg_name - identifier The method_name you designate must be a CLASS method that is defined or inherited by the class that is being populated with the %class command. The load process aborts if a method with the specified name is not found. The class method must be written such that a new instance is created or returned when the method is called. The loaddb utility calls the specified method each time a new data line is encountered for the class. An example of a simple constructor method follows: %class employee (name age) %constructor new_employee () ‘fred’ 20 ‘lisa’ 30 In this example, the method new_employee is called twice because two data lines follow the command. There are no arguments for the new_employee method; existing instances are returned and updated with the values found on the data lines. Note that the constructor method is not responsible for assigning the attribute values from the data lines. Rather, the method only creates or initializes the instances. The values on each data line are assigned by the loaddb utility after the method has returned the instance. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 279 When you define a constructor method that takes arguments, each argument must be specified in the %constructor clause. The values associated with each argument are placed on the data lines following the values for the attributes. The method in the next constructor example has one argument called major: %class student (name age) %constructor new_student (major) ‘fred’ 20 ‘nursing’ ‘lisa’ 30 ‘architecture’ The data lines in this example each contain three values. The first two correspond to the attributes name and age, and the last value represents the input argument that is passed to the method new_student. As in the previous example, the method in this example is called once for each data line. The argument that is passed to the method is examined to perform the complex initialization of the new instance. For example, suppose that the student class contains numerous attributes that are related to a student’s chosen major. Rather than duplicating the initialization of these attributes on each data line, the initialization can be encapsulated in the constructor method. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: loaddb 280 unloaddb The unloaddb utility is used with the loaddb utility to compress a SQL Access Server or to migrate an existing SQL Access Server to a new release of SQL Access. In other words, the unloaddb and loaddb utilities reload a SQL Access Server from one version to another. The unloaddb utility runs only in standalone mode. For complete information on the loaddb utility, see "loaddb" on page 266. The following commands illustrate unload and load processes (as entered from a system prompt) used to compress a SQL Access Server. desoto% unloaddb testdb desoto% createdb testdb -r desoto% sqlx testdb -sa -u dba -i testdb.sch desoto% loaddb -u dba testdb testdb.obs desoto% sqlx testdb -sa -u dba -i testdb.idx The unloaddb utility produces three files: ♦ Schema file. Contains the schema definition of the SQL Access Server. It is created with the name of the SQL Access Server prefixed to .sch, shown as testdb.sch in the previous example. ♦ Object file. Contains the objects (instances) that are contained in the SQL Access Server. It is created with the name of the SQL Access Server prefixed to .obs, shown as testdb.obs in the previous example. ♦ Index file. Contains indexes defined in the SQL Access Server. The index file name is formed from the name of the SQL Access Server prefixed to .idx, shown as testdb.idx in the previous example. Large objects (LOs) are unloaded into the same directory as the schema, object, and index files. When loaddb is later called to load the object file, these objects are found in the same directory as the object file and will be correctly loaded into the SQL Access Server. When the sqlx interpreter loads the schema file, it should always be executed under the “dba” user by specifying -u dba in the command line. The schema creation script that is generated contains calls to privileged methods that are authorized for use only by the DBA. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: unloaddb 281 Syntax This command-line syntax invokes the unloaddb utility: unloaddb [options] SQL-Access-Server-name where: - options includes those options described below SQL-Access-Server-name is the name of an existing SQL Access Server that you wish to unload. Return values Return values for unloaddb are as follows: ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. The unloaddb utility does not unload the privileged or default user in the schema file or the objects file. However, if either the privileged (DBA) and or default user (PUBLIC) have been renamed, unloaddb validates the values of the privileged and default user. If either one has been renamed, you would find the following command at the end of the schema file generated by unloaddb: rename privileged user to 'newprivname'; Options -e integer Estimated number of instances. Aids the internal hashing function of the object table manager. The default is to query the statistics, determining the number of instances in the SQL Access Server. If the statistics have not been refreshed recently or if querying the statistics is not desired, the -e option should be specified. If the number you specify with this option is too small, many hash collisions occur, resulting in decreased performance of the unload process. -n integer Object-table pages. Determines the number of object-table pages to cache in memory. The object table is used to map internal object identifiers to instance numbers in the object output file. The table is maintained in a temporary file with some number of pages being cached. Each page is 4096 bytes; setting this value is a trade off between memory and speed. A larger cache usually causes faster execution. The default is 100 pages. -od dirname Directory for output files. Used when the output files for schema and object need to be created in a specific directory. When this option is not used, the output files are created in the current working directory. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: unloaddb 282 -so Schema only output file. By default, both the schema and object output files are generated from the unloaddb utility. When you only want the schema file to be created, specify the -so option. If this option is specified, the objects only output file (-oo) cannot also be specified. -oo Objects only output file. By default, both the schema and object output files are generated from the unloaddb utility. When you only want the object file to be created, specify the -oo option. If this option is specified, schema only output file (-so) cannot also be specified. -p string Output file prefix. A specific string can be entered with the -p option to be used as the prefix to the schema and object output files. This string precedes “schema” and _objects in the names of the output files that are generated. When this option is not specified, the name of the SQL Access Server being unloaded is used as the default prefix. -f pathname Hash filename. The object table built by unloaddb uses a temporary file that may consume a considerable amount of disk space. By default, the system routine tmpnam is called to choose a pathname for the temporary file. When specified, the -f option determines the pathname for the object table file. The file is deleted when unloaddb completes execution. -v Verbose output. This option enables verbose output during processing of the unloaddb utility. Activating this flag displays messages indicating which class is being processed and the amount of instances processed for that class. -i Class names. Points to a file containing the names of classes to include in the unload job. Each class name should appear on a separate line in the file. All classes will be unloaded if this parameter is not specified. -ir Include references option. When you use the –i option to explicitly unload selected classes, references to classes not included in the unload will be set to NULL. If you specify the –ir option, instances referenced by the selected classes will also be unloaded. The schema definition for all classes will also be generated when this option is selected. -u string Name of current user. This option specifies the name of the user under which SQL Access Server access is performed. If no user name is supplied, the default value of dba is assumed. -pw string Password. The password option specifies the password associated with the current user name. This parameter is not required if the user does not have a password for SQL Access Server access. If the current user has a password but does not give the -pw option, the user is prompted for the password at the terminal. Note that the -pw option is normally used to run the unloaddb utility in batch mode where interactive prompting for passwords is not desired. -q Quiet mode. When enabled, the loader will not display starting and stopping messages. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: unloaddb 283 -s Cached page size. This option specifies the cached page size. The default value is 4096. -d Debug flag. This option is for debugging and should only be used when directed by Cincom Technical Support. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: unloaddb 284 copydb The copydb utility copies or moves SQL Access Servers from one location to another. The system copies every volume and control file of the SQL Access Server into the new destination and creates a new log to support the new SQL Access Server. You must give the new SQL Access Server a name different from the name of SQL Access Server that you are copying. Because a SQL Access Server is made up of several interdependent volumes, you should not use the operating system file commands to copy or move the SQL Access Server files. Rather, using the copydb utility ensures that all of the associated files are properly copied. The copydb utility must be run offline; in other words, it should not be run when someone else is using the SQL Access Server. The SQL Access Server location file is modified to add the entry for the new SQL Access Server and optionally delete the entry for the source SQL Access Server. For more information, see "SQL Access Server location file" on page 218. Recovery information from the source SQL Access Server is not included in the destination SQL Access Server. This information includes information from backups and active/archive logs. Cincom recommends making a backup of the destination SQL Access Server (using backupdb) after the copy is done. Syntax This command-line syntax invokes the copydb utility: copydb [options] src-SQL-Access-Server-name dest-SQL-AccessServer-name where: - options includes those options described below. src-SQL-Access-Server-name is the name of an existing SQL Access Server (such as test_db). dest-SQL-Access-Server-name is the name of the SQL Access Server copy that is made. The src-SQL-Access-Server-name and the dest-SQL-Access-Server-name cannot be a path such as D:\usr\smith\test_db, but must be simple names such as test_db. To designate a directory location for the new SQL Access Server copy, use the -f option (as shown in the " Example" on page 288). Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: copydb 285 Return values Return values for copydb are as follows: ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. Options -f dirname SQL Access Server directory path. The system normally creates a SQL Access Server in a dedicated directory. This standard makes it easier to maintain multiple SQL Access Servers without concern for name conflicts among the various files that make up each SQL Access Server. The -f option allows you to specify the exact path name of a directory in which to create the destination SQL Access Server. If you do not specify the -f option or the -tf option (volume copy path file), the system uses the current working directory as the target SQL Access Server directory path. Otherwise, the SQL Access Server directory path is found in the volume copy path file. Similar to the SQL Access Server host name, the system maintains the SQL Access Server directory path in the SQL Access Server location file. This path allows a SQL Access Client application started in another directory to correctly determine the full path name of the SQL Access Server files when given only the SQL Access Server name. When the SQL Access Server directory path is specified with the -f option, the -tf option should not be specified. -l dirname Log file directory path. The system maintains log files as part of the SQL Access Server. Cincom recommends that you maintain log files in a directory and disk device that is separate from the other SQL Access Server volumes. This option allows you to specify the name of this directory. If you do not provide this option, the system creates the log files in the same directory as the new SQL Access Server. -e dirname Volume extensions directory path. This option specifies the exact path name into which volume extensions for the destination SQL Access Server are to be copied. When this option is not specified, the system describes the location of each specific volume in the file supplied with the -tf option. If the -e and -tf options are both omitted, the system creates volume extensions in the same location as the source SQL Access Server volumes. When a path is given with the -e option, the -tf option should not be specified. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: copydb 286 -tf filename Volume copy path file. When you need a more sophisticated copy of the SQL Access Server volumes, the system can supply a file containing the names and placement of individual volumes into different directories. All volumes of the source SQL Access Server must be contained in this file. The syntax that identifies each volume is as follows: volid source_fullvolname dest_fullvolname where: - volid is an integer that identifies the volume number - source_fullvolname parameter is the source path name for the volume - dest_fullvolname is the destination path name for the new volume You must supply all parameters for each volume. This file can be easily constructed by copying the SQL Access Server volume information control file to the file specified with the -tf option. The first two arguments (volid and source_fullvolname) are already in the volume copy path file, which must then be edited to include the dest_fullvolname parameter. When a copy path file is specified with the -tf option, the -e and -f options should not be given. -r Overwrite flag. The copydb utility does not allow a new SQL Access Server (the destination SQL Access Server) to be created if there is an existing SQL Access Server with the same name. If you want to overwrite an existing SQL Access Server, you must specify your intent with the -r option. -m Move flag. The copydb utility normally leaves the source SQL Access Server in place after the copy. To delete the source SQL Access Server after the copy, use the move flag. This flag’s function is identical to using the deletedb utility after the SQL Access Server has been copied. -q Quiet. The starting and ending information banners will not be displayed if this option is used. This is enabled by default. -ps Source SQL Access Server password. If the –m (move) option is specified and the source SQL Access Server is protected, this option specifies the source SQL Access Server password. A prompt requesting the source SQL Access Server password is displayed if a copydb -m is attempted for a password protected source SQL Access Server and the -pm option is not specified. The password entered in response to this prompt is hidden while it is being typed. -pr Destination SQL Access Server password. If the –r (replace) option is specified and the destination SQL Access Server is protected, this option specifies the destination SQL Access Server password. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: copydb 287 A prompt requesting the destination SQL Access Server password is displayed if a copydb -r is attempted for a password protected destination SQL Access Server and the -pr option is not specified. The password entered in response to this prompt is hidden while it is being typed. -pd Destination SQL Access Server password. The password to assign to the destination SQL Access Server. If this SQL Access Server already exists, use the –pr option instead. Example Given the situation below: ♦ Source directory = D:\usr\db ♦ Name of source SQL Access Server = costs_db ♦ Destination directory = D:\usr\db\dbsavedir ♦ Name of destination SQL Access Server = dbcosts_db ... use the copydb utility as shown to copy costs_db to dbcosts_db in the directory D:\usr\db\dbsavedir. The -m option causes costs_db to be deleted after the copy: copydb -m -f D:\usr\db\dbsavedir costs_db dbcosts_db For example, the SQL Access Server testdb comprises the following volumes: testdb.ord located in D:\usr\database testdb.v1 located in D:\usr\paul\ext testdb.v2 located in D:\usr\jon\ext testdb.v3 located in D:\usr\mary\ext testdb.v5 located in D:\usr\database Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: copydb 288 The next three scenarios show different ways to use the copydb utility, where the testdb SQL Access Server is copied to a new SQL Access Server called demodb: ♦ Scenario 1. Copy demodb from the testdb SQL Access Server, keeping the new demodb volumes in the same location as the source volumes of testdb: % copydb testdb demodb ♦ Scenario 2. Copy demodb from the testdb SQL Access Server, but place all new volumes for demodb in the directory /usr/database/demodb: % copydb -f D:\usr\database\demodb -e D:\usr\database\demodb testdb demodb ♦ Scenario 3. Copy demodb from the testdb SQL Access Server, but place all new volumes in different locations with different default names. The log files should be placed on a disk drive that is different from the SQL Access Server information volumes. The following table shows the names of the volumes and directories where the new volumes are placed: Old volume name New volume name New directory path name Testdb.ord demodb D:\jon\db/data Testdb.v1 demodb.v1 D:\jon\db/data Testdb.v2 demodb.v2 E:\jon\db/index Testdb.v3 demodb.v3 E:\jon\db/index Testdb.v4 demodb.v4 D:\jon\db\extension Testdb.v5 demodb.v5 D:\jon\db\extension The system uses information volume testdb.orv as the basis for the volume copy path file that is given with the -tf option. In this example the name of the file is “copypath”, so you copy testdb.orv to copypath. The volume identification numbers and source paths/volume names are already in the file, but you must add the destinations and new volume names to this file (as shown next in the edited version of copypath): 0 /usr/database/testdb.ord D:\jon\db\data\demodb 1 /usr/paul/ext/testdb.v1 D:\jon\db\data\demodb_jondata1 2 /usr/paul/ext/testdb.v2 E:\jon\db\index\demodb_jonindex1 3 /usr/jon/ext/testdb.v3 E:\jon\db\index\demodb_jonindex2 4 /usr/jon/ext/testdb.v4 D:\jon\db\extension\demodb_jongen1 5 /usr/database/testdb.v5 D:\jon\db\extension\demodb_jonext5 Then refer to this file with the -tf option in the next copydb command: % copydb -l F:\jon\db\logs -tf copypath testdb demodb Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: copydb 289 deletedb The deletedb utility deletes a SQL Access Server. Because a SQL Access Server is made up of several interdependent files, you should not use the operating system file deletion commands to remove a SQL Access Server. You can use the deletedb utility to ensure that all of the associated files (data, log, backup) are properly removed. The SQL Access Server location file is also modified to remove the entry for the specified SQL Access Server. The deletedb utility must be run offline (when no one is using the SQL Access Server); otherwise, deletedb fails. Cincom strongly recommends that you copy the SQL Access Server to tape (or some location other than the log and backup directories) before running deletedb. Syntax This command-line syntax invokes the deletedb utility: deletedb [options] SQL-Access-Server-name where: - options includes those options described below. - SQL-Access-Server-name is the name of the SQL Access Server. It cannot be a path such as D:\usr\smith\test_db but must be a simple name such as test_db. Return values Return values for deletedb are as follows: ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: deletedb 290 Options -o Output Redirection. This specifies the filename where the output will be written. The default is to display messages on the console. -q Quiet. The starting and ending information banners will not be displayed if this option is used. Default is enabled -pw SQL Access Server Password. Use this option to specify the password if the SQL Access Server that is being deleted has a password. For example, to specify the password tmp of the tempdb SQL Access Server that is being deleted, enter the following command: deletedb –pw tmp tempdb A prompt requesting the SQL Access Server password is displayed if a deletedb is attempted for a password protected SQL Access Server and the –pw option is not specified. The password entered in response to this prompt is hidden while it is being typed. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: deletedb 291 renamedb The renamedb utility changes the current name of an existing SQL Access Server. The information volumes, log volumes, and control files are renamed to coincide with the new name. Unlike copydb, renamedb does not require any additional disk storage, because the SQL Access Server is renamed in place. The renamedb utility is different from copydb in that it does not allow you to change the location of the volumes to another disk partition (for example, to another disk drive or another file system). The renamedb utility must be run offline (it should not be run when someone is using the SQL Access Server); otherwise, renamedb fails. Syntax This command-line syntax invokes the renamedb utility: renamedb [options] src-SQL-Access-Server-name dest-SQL-AccessServer-name where: - - options includes those options described below. src-SQL-Access-Server-name is the name of the source SQL Access Server. It cannot be a path such as D:\usr\smith\test_db, but must be a simple name such as test_db. dest-SQL-Access-Server-name is the name of the destination SQL Access Server. It must conform to the operating system file name conventions, must not contain spaces, and must be 17 characters or less. If a SQL Access Server with the new name already exists, the rename operation is aborted and an error message displayed. If renamedb is successful, the SQL Access Server location file is automatically updated to reflect the new name. The names of the files that compose the SQL Access Server are also renamed to correspond to the new name. Return values Return values for renamedb are as follows: ♦ ♦ Zero (0). On a successful execution. Nonzero. On an unsuccessful execution. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: renamedb 292 Options -tf filename Volume rename path file. When a more sophisticated renaming scheme for the SQL Access Server volumes is needed, a file can be supplied containing the names and placement of individual volumes into different directories. All volumes of the source SQL Access Server must be contained in this file. The syntax that identifies each volume is as follows: volid src_fullvolname dest_fullvolname where: - volid is an integer that identifies the volume number - src_fullvolname is the source path name for the volume - dest_fullvolname is the destination path name for the new volume All parameters must be supplied for each volume. The dest_fullvolname must be in the same disk partition (or same file system) as the src_fullvolname; if these paths are different, the rename procedure fails. This file can be easily constructed by copying the SQL Access Server volume information control file (database.orv) to the file that is specified with the -tf option. The first two arguments (volid and src_fullvolname) are already in the rename path file, which must then be edited to include the dest_fullvolname parameter. For a similar example of this file configuration, see "copydb" on page 285. When a rename path file is specified with the -tf option, the -e option should not be specified. -f pathname SQL Access Server Files Pathname. Use this option to specify the pathname for the renamed SQL Access Server files. If this option is not specified, then the existing SQL Access Server file locations will be used. -q Quiet. The starting and ending information banners will not be displayed if this option is used. Enabled by default. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: renamedb 293 -pw SQL Access Server Password. Use this option to specify the password if the SQL Access Server that is being renamed has a password. For example, to specify the password tmp of the tempdb SQL Access Server that is being renamed to permdb, enter the following command: renamedb –pw tmp tempdb permdb A prompt requesting the SQL Access Server password is displayed if a renamedb is attempted for a password protected SQL Access Server and the –pw option is not specified. The password entered in response to this prompt is hidden while it is being typed. -ud DBA user. Use this option to specify the dba user name. This option is useful if access to the db_user class to obtain the dba user name is not permitted. If the dba user is not accessible and the –np option is not specified, a prompt for the dba user is displayed. -pd DBA password. Use this option to specify the dba user password. This option is used when the –ud option is specified and the dba user has a password. A prompt for the dba user password is displayed if the dba user is not accessible and the –ud and –np options are not specified. -np No prompt for DBA user/password. With this option, the dba user and password will not be requested if the dba user name cannot be obtained and the –ud and –pd options are not specified. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: renamedb 294 Displaying the SQL Access release version The whichdb utility displays the SQL Access release that you are running. Syntax This command line syntax invokes the unirel utility: whichdb Example To display your current SQL Access release enter the following command: C:> whichdb The system responds in the following format: Cincom ORDB Release 2.1 Build 2146 2003-09-09 14:30:37 at Cincom Copyright (C) 1991-2003 NTT DATA CORPORATION All Rights Reserved Copyright 1997-2003 CINCOM SYSTEMS, INC. All Rights Reserved Licensed to 999-999-998 Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: Displaying the SQL Access release version 295 checkdb The checkdb diagnostic utility is used to verify a SQL Access Server. It checks the internal physical consistency of the data and log volumes to verify their indices and other data structures. To run checkdb, you must be logged in as DBA. The DBA should periodically run checkdb as part of routine maintenance, if possible. Since the time required running checkdb rises with the size of the SQL Access Server, this may not be practical with very large SQL Access Servers. The checkdb utility problems are found and reported, but no action is taken to correct the problems. Syntax This command line syntax invokes the checkdb utility: checkdb [options] SQL-Access-Server-name where: - options includes those options described below. - SQL-Access-Server-name is the SQL Access Server to be verified. It cannot be a path such as D:\usr\smith\test_db but must be a simple name such as test_db. Return values Return values for checkdb are as follows: ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. The error log will contain the inconsistencies. All non-fixed problems listed in the error log need to be analyzed by Cincom Technical Support, who will then advise you on your best choices of action to put your SQL Access Server back into a consistent state. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: checkdb 296 Options -sa Standalone mode. This option specifies standalone mode. If this option is not specified, the utility defaults to the mode set by the ORDB_MODE environment variable. If this option is specified, client/server mode (-cs) cannot also be specified. -cs Client/server mode. This option specifies client/server mode. If this option is not specified, the utility defaults to the mode set by the ORDB_MODE environment variable. If this option is specified, standalone mode (-sa) cannot also be specified. If any of the following options (-vp, -vh, -ph, -hp, -bt, -cl, -bh) are used, then only the specified checks will be performed. If none of these options are used, then all checks will be performed. Cincom recommends that you do not specify these options without direction from Cincom Technical Support. -vp Volume Path Check. This option will check that the location of the SQL Access Server volume match the location information found in the SQL Access Server information files. -vh Volume Header Check. The header information in each SQL Access Server volume will be verified. This information includes total pages and free pages, and total sectors and allocated sectors. -ph Page Header Check. The header information in each SQL Access Server page of each SQL Access Server file will be verified. This information includes total pages and free pages, and total sectors and allocated sectors on a file-by-file basis. -hp Heap Page Check. All heap files are validated by checking that all pages identified by the heap file manager do indeed belong to the heap file being checked. -bt B-Tree check. All btree files in the SQL Access Server will be validated to make sure the tree is constructed correctly. -cl Class Check. Validates the mapping between object identifiers and the heap files used for object storage. -bh Heap Page Check and B-Tree Check. Validate the consistency between the heap files and the b-tree files. -q Quiet. The starting and ending information banners will not be displayed if this option is used. Enabled by default. -ud DBA user. Use this option to specify the dba user name. This option is useful if access to the db_user class to obtain the dba user name is not permitted. If the dba user is not accessible and the –np option is not specified, a prompt for the dba user is displayed. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: checkdb 297 -pd DBA password. Use this option to specify the dba user password. This option is used when the –ud option is specified and the dba user has a password. A prompt for the dba user password is displayed if the dba user is not accessible and the –ud and –np options are not specified. -np No prompt for DBA user/password. With this option, the dba user and password will not be requested if the dba user name cannot be obtained and the –ud and –pd options are not specified. Example output The following example shows sample output to the screen after checkdb gives a nonzero return value. The error messages are also added to the error log. If no errors are found, then only the first two lines will appear and the error log is unchanged. Cincom ORDB Release 2.1 Build 2146 2003-09-09 14:30:37 at Cincom Copyright (C) 1991-2003 NTT DATA CORPORATION All Rights Reserved Copyright 1997-2003 CINCOM SYSTEMS, INC. All Rights Reserved Licensed to 999-999-998 error messages Some inconsistencies were detected in your database. Please consult error_log_file database_name.err for additional information. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: checkdb 298 Password maintenance The changedb utility is used for password maintenance. Use this utility to add a password to an unprotected SQL Access Server, change the SQL Access Server password, or unprotect a SQL Access Server by removing the password. Syntax This command line syntax invokes the changedb utility: changedb [options] SQL-Access-Server-name where: - options includes those options described in the following table. - SQL-Access-Server-name is the target SQL Access Server. It cannot be a path such as D:\usr\smith\tempdb but must be a simple name such as tempdb. Return values Return values for changedb are as follows: ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. Options -sa Standalone mode. This option specifies standalone mode. If this option is not specified, the utility defaults to the mode set by the ORDB_MODE environment variable. If this option is specified, client/server mode (-cs) cannot also be specified. -cs Client/server mode. This option specifies client/server mode. If this option is not specified, the utility defaults to the mode set by the ORDB_MODE environment variable. If this option is specified, standalone mode (-sa) cannot also be specified. -pn New password. Add a password to an unprotected SQL Access Server. In this example, the password tmp is assigned to the tempdb SQL Access Server: changedb tempdb –pn tmp Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: Password maintenance 299 -pc Current password. Specify the current password when changing the password. This is used in conjunction with the –pn option, as in the following example where the password for tempdb is changed from tmp to tpw: changedb tempdb –pc tmp –pn tpw -pr Remove password. Specify the current password to unsecure the SQL Access Server. In this example, the password tmp will be removed from the tempdb SQL Access Server: changedb tempdb –pr tmp -pp Prompt for remove password. Use this option to remove the SQL Access Server password by entering the password at a prompt as hidden text. If the password is to be removed from tempdb, the following command: changedb tempdb –pp will result in this prompt: Enter password for database tempdb: and the password will be removed from the SQL Access Server if it was entered correctly at the prompt. -ud DBA user. Use this option to specify the dba user name. This option is useful if access to the db_user class to obtain the dba user name is not permitted. If the dba user is not accessible and the –np option is not specified, a prompt for the dba user is displayed. -pd DBA password. Use this option to specify the dba user password. This option is used when the –ud option is specified and the dba user has a password. A prompt for the dba user password is displayed if the dba user is not accessible and the –ud and –np options are not specified. -np No prompt for DBA user/password. With this option, the dba user and password will not be requested if the dba user name cannot be obtained and the –ud and –pd options are not specified. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: Password maintenance 300 Processing when no options are specified If changedb is executed with only the SQL Access Server name, the subsequent processing depends on whether the SQL Access Server has a password. If the SQL Access Server is unprotected, changedb will request a new password, and if the SQL Access Server already has a password, changedb will prompt for this password as part of a change operation. For example, if tempdb has no password and the following command is executed: changedb tempdb the following two prompts are displayed Enter new password for database tempdb: Confirm new password for database tempdb: and the same password must be entered at both prompts. If tempdb already has a password, however, then changedb will assume a password change is desired and three prompts are displayed to complete the password change: Enter current password for database tempdb: Enter new password for database tempdb: Confirm new password for database tempdb: The second and third prompts are only displayed if the current password is entered correctly at the first prompt. The same password must be entered for both the second and third prompts to change the password. Administration Guide, P25-9501-04 Chapter: 7. Utilities Section: Password maintenance 301 8. Controlling SQL Access for SUPRA Server PDM processes This chapter describes the programs and utilities used to start and shut down SQL Access for SUPRA Server PDM (SQL Access) processes. Programs to start or shut down the SQL Access Server This section describes a variety of initialization, termination, and monitoring programs for the SQL Access Server. Only the DBA uses these programs. The ordbinit.txt file contains network information (the service name and the TCP port ID) that is used by the programs described in the subsections that follow. At installation the SQL Access Master and SQL Access Server processes are set up to run as a service, which means they will start automatically when the system boots. If you wish to shut down the SQL Access Server without rebooting, it can be stopped and restarted using the Visual Administration tool. If you wish to do this from a DOS prompt, use the commdb command to stop the SQL Access Server and execute the server program to restart the SQL Access Server (see "The commdb utility" on page 307 and "The SQL Access Server program" on page 306 for more information). The SQL Access Master service can be stopped and started between system boots by using the mastersrv command. Running SQL Access Master as a service (Windows) Services are processes that automatically start as the system boots and then remain running as background processes no matter who is currently logged in. Master can run as a Windows Service. Administrator privileges are required to run SQL Access Master as a Windows service. Attempting to run mastersrv without administrator privilege results in an error. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 302 In order to run SQL Access Master as a Windows service: ♦ Define ORDB in the system environment variables pointing to the ORDB executable directory. ♦ Add the ORDB directory to the system path. ♦ The ORDB_DATABASES environment variable should point to the directory that contains the ordblist.txt. ♦ Run the command mastersrv –install from the command prompt. This installs SQL Access Master as a service. ♦ From the Control Panel → Services applet, set SQL Access Master Server to start automatically. ♦ Reboot and verify using the COMMDB -P utility. ♦ The command mastersrv –remove will uninstall SQL Access Master as service. ♦ The command mastersrv –stop will stop the SQL Access Master as a service. ♦ The command mastersrv –start will start the SQL Access Master as a service after it has been stopped. You may run SQL Access Master as a user console job by issuing a “master” command from the command prompt. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 303 The Server as service (Windows) To run local SQL Access Servers as a service do the following: ♦ Create ordbserv.txt file in %ORDB%\admin folder ♦ Add the SQL Access Server names to the ordbserv.txt file or **all** to run all SQL Access Servers in the ordblist.txt file as a service ♦ Make sure ORDB_DATABASES environment variable is pointing to the directory that contains the ordblist.txt ♦ The options described in the section "The SQL Access Server program" on page 306 can be specified for an individual SQL Access Server in this form: <server_name> <option> Verify by using the commdb –p command. The SQL Access Servers on stand-by are the ones that will run as service. Servers on stand-by will automatically start as a service when a SQL Access Client attempts to connect to it. The SQL Access Server will then remain running. Restarting your machine is not necessary to re-initialize the server list. Instead, issue a commdb -r command to re-initialize the SQL Access Master. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 304 The SQL Access Master program The SQL Access Master is a network listener program that acts as a referee for new SQL Access Client requests. Syntax To start the SQL Access Master program, type the following at your system prompt: start/min master WINDOWS master& UNIX At startup time, SQL Access Servers register themselves with the SQL Access Master so new requests from remote SQL Access Clients can be passed to the correct SQL Access Server. You should start the SQL Access Master when the host machine is rebooted. Each machine on the network that will host one or more SQL Access Servers requires a SQL Access Master to be running on that machine. Return values Return values for SQL Access Master are as follows: ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 305 The SQL Access Server program The SQL Access Server is a single process, multi-thread program that provides storage for SQL Access Foreign Database and Foreign Table definitions that are used by SQL Access Client applications. One machine can host one or more SQL Access Servers. The SQL Access Server handles all SQL Access Client connections either from the same machine or individual machines on the network running SQL Access Client applications. The SQL Access Server can store any number of Foreign Database definitions that may be hosted by the same CID Adapter Server host machine or different ones. See "Registering a CID Foreign Database" on page 29 for more information on defining Foreign databases. The following syntax should be used to start a SQL Access Server: start server [options] SQL-Access-Server-name WINDOWS start_server [options] SQL-Access-Server-name UNIX Options Command-line options for the SQL Access Server program are shown in the following table: Option Description -q Disables the display of the starting and ending information banners. -p port-id Override the OS assignment of a TCP/IP port. -r Brings up the SQL Access Server with a read-only schema. -s Allows modification of most system classes. When this parameter is specified, all system classes can be altered with the exception of db_root, db_authorization, db_user, db_password, db_locale-base, db_locale_binary, db_track_event, and db_event. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 306 The commdb utility The commdb utility prints status information about the SQL Access Master and Server programs to standard output. It also provides a way for the user to shut down a specified SQL Access Server or to shut down the SQL Access Master program and all currently running SQL Access Servers. A shutdown process can be initiated immediately or delayed by a specified number of minutes. When a shutdown request is delayed, the user can halt the shutdown before the shutdown time expires. The commdb utility can be invoked in two ways: ♦ As an interactive program ♦ As a command-line driven program The commdb utility requires a SQL Access Master program to be running on the host with which it is attempting to communicate. The commdb utility now ships with 500 permissions (instead of 555), so only the identified SQL Access user can execute it. Using commdb from the command line The command-line version of commdb supports the same features as the interactive version of commdb, with an added difference: you can use command-line arguments to invoke commdb. Options entered from the command line are case-sensitive. Syntax commdb [ -h [ host_name ] ] -P commdb [ -h [ host_name ] ] -R commdb [ -h [ host_name ] ] –V { server_name } commdb [ -h [ host_name ] ] [ -T { minutes } ] -A commdb [ -h [ host_name ] ] [ -T { minutes } ] -S { server_name } commdb [ -h [ host_name ] ] -H commdb [-I server_name] Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 307 Options The following table describes the supported set of arguments for the commandline version of commdb: Option Description -h [ host_name ] Identifies the host name; if none is specified, the default is the current host. -S SQL_Access_Server_name Identifies the SQL Access Server name for shutdown. If a shutdown time is not given (-T minutes), zero minutes is used. -V SQL_Access_Server_name Identifies the SQL Access Server name to start up. -R Reinitializes the SQL Access Master process. -H Halts the shutdown process. -A Shuts down the SQL Access Master and all SQL Access Servers. If a shutdown time is not given (-T minutes), zero minutes is used. -P Prints the SQL Access Master and SQL Access Server status to stdout. -I server_name Causes immediate shutdown of the named SQL Access Server. commdb cannot halt an immediate shutdown request. -q Quiet. Disables the display of starting and ending information banners. -pw SQL Access Server password. The password must be supplied for any protected SQL Access Server before it can be shut down. If the SQL Access Server is password protected and the password is not supplied via the –pw option, a prompt requesting the SQL Access Server password is displayed. The password entered in response to this prompt is hidden while it is being typed. If the –A option is used to shut down more than one SQL Access Server that is password protected, the passwords for all of the protected SQL Access Servers must be supplied. The passwords are separated by commas. For example, xdb (password x), ydb (password y), and zdb (password z) are all running. All three can be shut down via the –A option as follows: commdb –A –pw x,y,z Commdb will verify the passwords before doing the shutdown, so all the passwords must be correctly specified or none of the SQL Access Servers will be shut down. If the –pw option is not specified with the –A option and one or more of the SQL Access Servers is protected, the password(s) will be requested via a prompt. For the above example, three prompts will be displayed: Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 308 Enter password for database xdb: Enter password for database ydb: Enter password for database zdb: and the passwords entered in response to the prompts are hidden while being typed. The passwords must be correctly specified at all the prompts or none of the SQL Access Servers will be shut down. Example As an example, suppose you want to print the status of the SQL Access Master and connected SQL Access Servers on host jaguar. In this case, the commdb invocation and the resulting output looks like this: commdb -h jaguar -p The master running on host jaguar was started at Mon Dec 06 14:07:53 1999 has serviced 16 requests. 1 server(s) running, 0 server(s) standing by. Server foo, fd = 5, running. To use the command-line version of commdb to shut down the SQL Access Server foo on host bar in 5 minutes, enter the commdb invocation as follows: commdb -h bar -S foo -T 5 Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 309 Using commdb from a menu Call the commdb with no arguments or with only the -h (host_name) argument to invoke the interactive version of commdb. Syntax commdb [ -h [ host_name ] ] When invoked in this manner, commdb prints a list of options: Options: P S A H I R V J : – – – Q - quit print shutdown one server shutdown master and all servers halt shutdown immediate server shutdown reinitialize master start a server shutdown Java Method Broker The colon (:) prompts for the commdb menu selection. Note that you can enter the option characters from this menu as either upper or lowercase letters. With the exception of option Q (to quit interactive commdb), the system redisplays the option menu after the option processes. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 310 Options The following table describes the interactive commdb options: Option Description Q Quits the commdb program. P Prints the state of the SQL Access Master program and the names of connected SQL Access Servers. S Shuts down the SQL Access Server. The commdb program prompts for the name of the SQL Access Server and the number of minutes to wait before shutdown. If a shutdown time is not entered, the default value of zero minutes is used and the shutdown is immediate. A Brings down all SQL Access Servers and the SQL Access Master program. The commdb program prompts for the number of minutes to wait before shutdown. If a shutdown time is not entered, the default value of zero minutes is used and the shutdown is immediate. H Terminates a previous shutdown request. I Causes immediate shutdown of a specified SQL Access Server. The commdb utility cannot halt an immediate shutdown request. R Reinitializes the SQL Access Master process. V Starts the specified SQL Access Server. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 311 The following screen shows the selection of the -P option from the commdb menu, which causes the status of the SQL Access Master program and its connected SQL Access Servers to print at the terminal: Options: Q - quit P - print S - shutdown one server A - shutdown master and all servers H - halt shutdown I - immediate server shutdown R – reinitialize master V – start a server J – shutdown Java Method Broker :P The master running on host jaguar was started at Wed Sep 09 14:03:20 2003 has serviced 16 requests. 1 server(s) running, 0 server(s) standing by. Server foo, fd = 5, running. When the S option is selected from the commdb menu, the system prompts you for the name of the SQL Access Server to shut down and the number of minutes before shutdown occurs: Options: Q - quit P - print S - shutdown one server A - shutdown master and all servers H - halt shutdown I - immediate server shutdown R – reinitialize master V – start a server J – shutdown Java Method Broker :S Name of server to shutdown : foo How many minutes until shutdown? : 10 Server foo notified of shutdown To bring down all SQL Access Servers and the SQL Access Master program, type in the A option from the commdb menu. A prompt appears, asking you to enter the minutes to wait before shutdown takes place. The value you enter must be an integer or zero, as shown in the next screen: Options: Q - quit P - print S - shutdown one server A - shutdown master and all servers H - halt shutdown I - immediate server shutdown R – reinitialize master V – start a server J – shutdown Java Method Broker :A How many minutes until shutdown? : 3 Master will shut down in 3 minutes Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 312 You can halt a SQL Access Server shutdown (S) or SQL Access Master/all SQL Access Servers shutdown (A) if the time given until shutdown has not expired. In the previous example, the shutdown of the SQL Access Master and all SQL Access Servers is aborted by entering the H option within the 3-minute shutdown period: Options: P S A H I R V J :H Halted the shutdown Options: P S A H I : – – – Q - quit print shutdown one server shutdown master and all servers halt shutdown immediate server shutdown reinitialize master start a server shutdown Java Method Broker process - Q - quit print shutdown one server shutdown master and all servers halt shutdown immediate server shutdown Upon successful completion of commdb with either the -A or -S option, the following error message displays (by default to the SQL Access Server error file): ERROR***ERROR CODE= -673. Your connection to the database server has been closed since the server is going down immediately. This error message confirms successful completion. To cause the immediate shutdown of a SQL Access Server, select I from the commdb menu. After you enter option I, the system prompts you for the name of the SQL Access Server to shut down: Options: Q - quit P - print S - shutdown one server A - shutdown master and all servers H - halt shutdown I - immediate server shutdown R – reinitialize master V – start a server J – shutdown Java Method Broker :I Name of server to shut down : foo Server foo notified of shutdown Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 313 If the SQL Access Master program shuts down while the commdb program is still running, the next option selected from the interactive menu exits the program as if the Q (quit) option were selected: Options: Q - quit P - print S - shutdown one server A - shutdown master and all servers H - halt shutdown I - immediate server shutdown R – reinitialize master V – start a server J – shutdown Java Method Broker :A How many minutes until shutdown? : 0 Master will shutdown in 0 minutes Options: Q - quit P - print S - shutdown one server A - shutdown master and all servers H - halt shutdown I - immediate server shutdown R – reinitialize master V – start a server J – shutdown Java Method Broker :P (desoto) 60% Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Programs to start or shut down the SQL Access Server 314 Checking the status of the SQL Access Master and connected SQL Access Servers The statusdb utility prints the status of the SQL Access Master and Server programs. Syntax The following command-line syntax prints the status of the SQL Access Master Server(s) to stdout: statusdb [option] Options The following command-line option is available for the statusdb utility: Option -h [ host_name ] Description Identifies the host name; if none is specified, the default is the current host. For example, suppose you want to print the status of the SQL Access Master and connected SQL Access Servers on host jaguar. In this case, the statusdb invocation and the resulting output looks like this: statusdb -h jaguar The master running on host jaguar was started at Fri Sep 07 14:07:53 2003 has serviced 16 requests. 1 server(s) running, 0 server(s) standing by. Server foo, fd = 5, running. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Checking the status of the SQL Access Master and connected SQL Access Servers 315 Killing a transaction The killtran utility aborts active transactions from outside their normal execution environment. This utility can only be used by the DBA of the SQL Access Server. The killtran utility can only be used in client/server mode. The transaction is only removed from the SQL Access Server; the SQL Access Client process is not removed. The next time the SQL Access Client tries to contact the SQL Access Server, however, the SQL Access Client is notified that its transaction has been aborted. Some reasons the DBA will kill an active transaction are: ♦ The user has left the office without committing/aborting a transaction that has acquired important resources and is preventing other users from continuing their SQL Access Server session. The DBA can find out what resources a SQL Access Client has by running the lockdb utility. ♦ A SQL Access Client process of a transaction is no longer active, but the SQL Access Server system has not been able to detect its failure. ♦ The Cincom ORDB Visual Administration Tool can also be used to view transactions, query lock information about transactions, and kill transactions. Syntax killtran [options] SQL-Access-Server-name where: - options includes options described in the following table. - SQL-Access-Server-name is the name of the SQL Access Server. Return values ♦ Zero (0). On a successful execution. ♦ Nonzero. On an unsuccessful execution. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Killing a transaction 316 Options The following table shows the command-line options for the killtran utility: Option Description -t tranIndex Kill transaction associated with transaction index. -u user Kill all transactions associated with user. -h clientHost Kill all transactions associated with SQL Access Client host. -pg progname Kill all transactions associated with SQL Access Client program name. -p dbaPassword Password of the DBA user. System will prompt if not specified. -d Display information about active transactions. This is the default if no options are specified. -v Prompt for verification to kill transactions. The default is TRUE. -q Disables the display of starting and ending information banners. Only one of -t, -u, -h, or -pg is allowed. If no options are given, the -d option is assumed and the utility displays the current information about all active transactions. The killtran utility screen consists of the information: Column name Description Tran index Transaction index User name Name of user Host name Name of host for user PID Process ID CONN Number of connections the user has Program name Name of program for user Clients before Release 1.2 will have an empty CONN column. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Killing a transaction 317 Examples 1. Find out the active transactions of SQL Access Server testdb: Tran index User name Host name PID CONN Program name -------------------------------------------------------------------1 user1 host1 8559 1 usqlx_cs 2 user1 host1 8566 1 usqlx_cs 3 user2 host1 8567 1 usqlx_cs -------------------------------------------------------------------- 2. Kill all transactions of user1 and verify that the transactions have been removed. Kill transactions of user1: Tran index User name Host name PID CONN Program name -------------------------------------------------------------------1 user1 host1 8559 1 usqlx_cs 2 user1 host1 8566 1 usqlx_cs -------------------------------------------------------------------Do you wish to proceed? (Y/N) Press y to continue. The system responds: Killing transaction associated with transaction index 1 Killing transaction associated with transaction index 2 Verify that the above two transactions have been removed by displaying the currently active transactions: C:\> killtran testdb The system responds: Tran index User name Host name PID CONN Program name -------------------------------------------------------------------3 user2 host1 8567 1 usqlx_cs -------------------------------------------------------------------- Now user 'user1' finds that his transactions have been killed: sqlx> select * from foo; sqlx> ;x The system responds: ERROR: Your transaction has been aborted by the system due to server failure. 3. Restart two SQL Access Client transactions on different host machines and display the active transactions: C:\> killtran testdb The system responds: Tran index User name Host name PID CONN Program name -------------------------------------------------------------------3 user2 host1 8567 1 usqlx_cs 4 user1 host2 23118 1 usqlx_cs 5 user1 host3 16438 1 usqlx_cs Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Killing a transaction 318 -------------------------------------------------------------------- 4. Kill all transactions associated with host3 using the -h option: C:\> killtran testdb -h host3 The system responds: Ready to kill the following transactions: Tran index User name Host name PID CONN Program name -------------------------------------------------------------------5 user1 host3 16438 1 usqlx_cs -------------------------------------------------------------------Do you wish to proceed? (Y/N) Press y to kill the transaction. The system responds: Killing transaction associated with transaction index 5 5. Now kill all transactions associated with program usqlx_cs having the -pg option: Ready to kill the following transactions: Tran index User name Host name PID CONN Program name -------------------------------------------------------------------3 user2 host1 8567 1 usqlx_cs 4 user1 host2 23118 1 usqlx_cs -------------------------------------------------------------------Do you wish to proceed? (Y/N) Press y to continue. The system responds: Killing transaction associated with transaction index 3 Killing transaction associated with transaction index 4 6. Display the active transactions with the killtran utility: killtran testdb No transactions are displayed. Administration Guide, P25-9501-04 Chapter: 8. Controlling SQL Access for SUPRA Server PDM processes Section: Killing a transaction 319 9. SQL Access for SUPRA Server PDM system parameters The values assigned to system parameters determine the overall performance and behavior of the SQL Access for SUPRA Server PDM (SQL Access) system. The parameter values are located and applied only at startup time of the individual component (SQL Access Client, SQL Access Master, SQL Access Server). SQL Access system parameters have default values (assigned in the system code) that you can redefine by setting the parameter values in an ordbinit.txt file for an installation, a desired SQL Access Server, or a particular user. The SQL Access Server looks for ordbinit.txt files in the following locations in the order shown: WINDOWS ♦ %ORDB%\admin directory UNIX ♦ $ORDB/admin directory ♦ Home directory of the SQL Access Server On the SQL Access Client, the software looks for the ordbinit.txt file in the following locations in the order shown: WINDOWS ♦ %ORDB%\admin directory UNIX ♦ $ORDB/admin directory ♦ Working directory of the process that is starting up The ordbinit.txt file in the admin directory defines default parameter values for an installation; that is, it defines the values for all SQL Access Servers. Settings found in an ordbinit.txt file override any values that may have been previously assigned to system parameters. Values do not have to be specified for all parameters. For example, the user’s ordbinit.txt file can redefine only a few parameters; unspecified parameters do not need to be included in the ordbinit.txt file. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Killing a transaction 320 After all ordbinit.txt files have been read, the process environment is searched for environment variables of the form ORDB_parameter_name, where parameter_name is the uppercase parameter name defined below. If such an environment variable exists, that value of the environment variable overrides the value previously assigned to the parameter. For example, if the ORDB_SR_BUFFERS environment variable is set, the value of ORDB_SR_BUFFERS replaces any value of the sr_buffers parameter in the ordbinit.txt file. For a list of ordbinit.txt file parameters, see "Summary of SQL Access system parameters" below. Descriptions of the parameters appear in the sections following the summary table. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Killing a transaction 321 Summary of SQL Access system parameters The following table contains a summary of SQL Access standalone, SQL Access Client, SQL Access Master, and SQL Access Server parameters that compose the ordbinit.txt file, including their associated defaults and the range of values you can provide for each one. These parameters are described in detail after the table. If you enter a value outside the range of values, the default is used. Parameter Default value Accepted range of values active_requests 50 lower limit: 1 no maximum limit auto_increment_modify 0 0 or 1 auto_volext_factor 1.0 ≥ 0.0 backup_buffer_size 1 (multiplier) ≥1 backup_max_volume_size -1 (no limit) ≥ 32K charcode_check 0 0 or 1 lang=En_US: Charset lang=En_US: ISO-88591 lang=Ja_JP, HP-UX & NT: S-JIS lang=Ja_JP, Solaris: EUC lang=Ja_JP: checkpoint_interval 100 ≥ 10 class_representation_cache 50 commit_on_shutdown connection_timeout 0 3 (seconds) ≥ 10 0 or 1 lower limit: 1 no maximum limit deadlock_detection_interval 30 (seconds) default_adapter_dir none event_handler none execute_queries_streaming 1 fbo_root flush_data_buffer_factor null .80 (80%) Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Summary of SQL Access system parameters ISO-88591 ASCII UTF-8 S-JIS EUC UTF-8 ≥ 0 (seconds) See "default_adapter_dir" on page 355. See "event_handler" on page 328. See "execute_queries_streaming" on page 349. See "fbo_root" on page 346. .30 - 1.0 (30 - 100%) 322 Parameter Default value hot_fault_objects hot_load_workspace ignore_timezone initial_workspace_table_siz e isolation_level 0 4096 (4K) Accepted range of values See "hot_fault_objects" on page 348. See "hot_load_workspace" on page 348. 0 or 1 ≥ 1 (K) keep_schema_locks TRAN_REP_CLASS _COMMIT_INSTANCE 1 or YES See "isolation_level" on page 341. 0 or 1 Lang Ja_JP Ja_JP, En_US lock_escalation 1000 (locks) lock_timeout_in_secs 20 lockf_enable log_path log_reserve_space log_size 1 or YES SQL_Access_Server_location 0 SQL_Access_Server_size ≥ 5 (locks) 0 (do not wait) >0 0 or NO, 1 or YES user_defined_location 0 or 1 master_port_id 1978 ≥ 100 (pages) See "master_port_id" on page 344. max_block_count 0 (no limit) ≥ 0 (blocks) max_block_size 128K max_char_string_size 8,388,602 16 ≤ K ≤ 8192 16384 to 1,073,741,823 max_clients 500 Lower limit: 1 no maximum limit max_lock_structures 1000 10 to 1000 max_quick_size 256 (bytes) ≥ 32 (bytes) ≤ 1K max_ping_wait 5 maxlength_error_log 3000*80 characters ≥1 lower limit: 100*80 characters no upper limit maxtmp_pages -1 (infinite/no limit) media_failures_are_support ed multiple_connection_shared _objects 1 (YES or ON) 1 (True) Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Summary of SQL Access system parameters -1 or ≥ 0 0 (NO or OFF) 1 (YES or ON) 0 (False) or 1 (True) 323 Parameter Default value Accepted range of values network_pagesize network_service_name num_data_buffers 32K sqlx 3000 (buffers) 1K - 1024K user_defined_port_name num_log_buffers 50 (buffers) object_mode_character optimization_level query_cache_max_entries query_cache_server_statisti cs query_cache_statistics query_cache_threshold query_max_rows query_oidset_threshold query_stream_window query_timeout request_threads_to_start 0 1 100 0 (no) ≥ 3 (buffers) 0 or 1 0 or 1 >= 0 0 (no) or 1 (yes) select_star_includes_identity server_inserts socket_recv_timeout sr_buffers 0 1 (true) 0 16 (buffers, 4K each) standalone unfill_factor 0 .10 (10%) unfill_index_factor .20 (20%) Unload_max_column 70 use_index_concurrency volext_path Voltmp_path warn_outofspace_factor 1 SQL_Access_Server_location SQL_Access_Server_location .15 (15%) 0 (no) 1 0 (infinite) 9 2 0 (infinite) 0 Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Summary of SQL Access system parameters ≥ 5 (buffers) 0 (no) or 1 (yes) >= 0 0-2147483648 0 to 100 0 – 65536 0-2147483648 See "request_threads_to_start" on page 343. 0 or 1 0 (false) or 1 (true) 0-2147483648 16 ≤ (buffers, 4K each) ≥ 500 0 or 1 0 (no space reserved) >.00 - .30 (>0 – 30%) 0 (no space reserved) >.00 - .35 (>0 – 35%) Lower limit 1 No upper limit. 0 or 1 user_defined_location user_defined_location 0 (no warning issued) >.00 - 1.0 (>0 - 100%) 324 Displaying parameter values currently in effect The print_param class method on system class db_root can be called to display the parameters currently being used by the SQL Access Client or SQL Access Server. ♦ Syntax to display SQL Access Client parameters: call print_params(‘client’) on class db_root ♦ Syntax to display SQL Access Server parameters: call print_params(‘server’) on class db_root SQL Access Servers created before Socrates XML Release 1.2 do not have this new function in the schema. Since you cannot modify db_root, the function can be added with one of the following: n create class foo or: o method class print_params() function print_params_method; alter class bar add method class print_params() function print_params_method; Then: or: p call call call call print_params(‘server’) on class foo; print_params(‘client) on class foo; print_params(‘server’) on class bar; print_params(‘client’) on class bar; The create or alter may be committed or rolled back as desired. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Displaying parameter values currently in effect 325 Syntax for parameters The following syntax rules apply to parameters: ♦ Parameter names in the ordbinit.txt file are not case-sensitive. For example, log_path and LOG_PATH are the same parameter. ♦ When you set the value of a parameter, you can include white space (blanks or tabs) on either side of the equal sign: lock_escalation = 100 or lock_escalation=100 Regardless, both the parameter name and the value must be on the same line. ♦ If the value assigned to a parameter is a string, quotes are only needed if the string contains white space. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Syntax for parameters 326 Standalone parameters The parameters for the standalone version of SQL Access Server are the same as those for the client/server version of the product (described in the following sections), with the exception of the communication and concurrency control parameters. The system ignores the communication and concurrency control parameters in the standalone version because this version does not support multiple concurrent users. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Standalone parameters 327 SQL Access Server parameters This section describes a variety of parameters that configure and tune a SQL Access Server installation. The DBA should define the values of these parameters. Parameters related to error messages This section contains information on configuring error messages that are logged by SQL Access. event_handler This parameter acts as an interface to the event notification facility. It allows selective delivery and categorization of messages to a process outside of SQL Access. If event_handler does not exist in the ordbinit.txt file, no event filtering takes place. The parameter should be the full path name of a userprovided executable event handler. By default, no event handler is installed. %ORDB%\demo\evnthand.exe (Windows) or $ORDB/demo/evnthand (UNIX) supplies an example event handler executable program. This program outputs the messages it receives from the SQL Access Server to a file named event_handler.log. Upon successful completion of the SQL Access Server, a status code of 0 is returned. If an error occurs, the SQL Access Server returns a status code of 1 and the event handler prints an error message in the event_handler.log file. %ORDB%\demo\evnthand.c (Windows) or $ORDB/demo/evnthand.c (UNIX) supplies the C source file for the example event handler. Use this file as a framework to customize event notification for your needs. An external configuration file identifies selective error/event codes of interest. A default configuration file is supplied in %ORDB%\admin\event.cfg (Windows) or $ORDB/admin/event.cfg (UNIX) and is given here for reference. If event notification is turned on, then the system reads this file to get the list of events (error Ids) to select for notification. The default list contains a list of the critical events. Each line in the event.cfg file uses the following format: error_name<tab>error_info where: - error_name is the error number constant defined in %ORDB%\include\dber.h - error_info is a free format string containing user data Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 328 This example has a severity and error group field: ER_OUT_OF_VIRTUAL MEMORY Fatal ER_IO_FORMAT_FAIL Severe Memory unavailable Disk I/O ER_IO_FORMAT_OUT_OF_SPACE Severe Disk unavailable ER_IO_DISMOUNT_FAIL Warning Disk space ER_IO_READ Warning Disk I/O ER_IO_WRITE Warning Disk I/O ER_IO_WRITE_OUT_OF_SPACE Severe Disk space ER_DK_ALMOST_OUT_OF_SPACE Warning Disk space ER_DK_DATA_ALMOST_OUT_OF_SPACE Warning Disk space ER_DK_INDEX_ALMOST_OUT_OF_SPACE Warning Disk space ER_DK_GENERIC_ALMOST_OUT_OF_SPACE Warning Disk space ER_DK_TEMP_ALMOST_OUT_OF_SPACE Warning Disk space ER_DK_LAST_ALMOST_OUT_OF_SPACE Severe Disk space ER_DK_DATA_LAST_ALMOST_OUT_OF_SPACE Severe Disk space ER_DK_INDEX_LAST_ALMOST_OUT_OF_SPACE Severe Disk space ER_DK_GENERIC_LAST_ALMOST_OUT_OF_SPACE Severe Disk space ER_DK_TEMP_LAST_ALMOST_OUT_OF_SPACE Severe Disk space ER_FL_NOT_ENOUGH_PAGES_IN_DATABASE Severe Disk space ER_FL_NOT_ENOUGH_PAGES_IN_VOLUME Severe Disk space ER_LOG_WRITE_OUT_OF_SPACE Severe Disk space ER_LOG_MOUNT_FAIL Severe Disk unavailable ER_THREAD_STACK Severe Memory unavailable The event.cfg file can reside in your current directory or in admin. The SQL Access software first searches for the file in the current directory and then in the admin directory. The generic name used in the event.cfg file should correspond with the definition of the error in %ORDB%\include\dber.h (Windows) or $ORDB/include/dber.h (UNIX). The event handler reads the event.cfg at startup. maxlength_error_log This parameter specifies the maximum number of characters that will be written to the error log. When this limit is reached, the errors will wrap around and start being logged over the oldest error messages. The default is 80*3000 (3000 error messages). If ORDB_MAXLENGTH_ERROR_LOG_OPEN_APPEND is set, then the max_length_error_log parameter is ignored. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 329 Parameters related to memory space These parameters affect management of memory space in the SQL Access Server. class_representation_cache The SQL Access Server maintains a cache of information used to speed up the determination of how instances of classes are laid out in memory. This parameter is used to indicate the number of entries that can be held in this cache. The default is 50 entries and the minimum value is 10. num_data_buffers A page buffer replacement algorithm swaps pages in and out of memory. This parameter specifies the number of data buffers cached in main memory. (The size of each buffer is specified by the -ps option of createdb). The more buffers you define, the more likely that data will be found in memory. The minimum value of this parameter is 5 buffers. The maximum value depends directly on the amount of memory available in the machine on which your SQL Access Server or standalone application runs. A value smaller than 50 buffers is too low for any real sized SQL Access Server. The default value of 3000 buffers, in a SQL Access Server with pagesize of 4K (see the -ps parameter in "createdb" on page 251), requires 120 MB of memory. If you specify a value less than the minimum, the default value is used. 7 The higher this value, the more likely it is that a requested page is cached in the page buffer pool. This decreases I/0. If the memory required for the buffer pool exceeds physical memory capacity, the operating system paging can increase. sr_buffers This parameter indicates the number of SQL Access Server buffers allocated for sorting purposes. The parameter allocates a set of sort buffers to each SQL Access Client on the SQL Access Server when needed. The size of each buffer is the same size as a SQL Access Server page as specified by the -ps option of createdb (see the -ps parameter in "createdb" on page 251). The minimum value for this parameter is 16, which is also the default. If a number less than the minimum is given, the default value is used. When a sort is complete, the sort buffers are freed. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 330 Parameters related to disk storage You can use the parameters in this section to define SQL Access Server volumes, as well as affect the storage space of some file structures. voltmp_path SQL Access automatically creates and removes temporary volumes that are used during the normal processing of large queries and sorts. The voltmp_path parameter is a string that identifies the location (directory) where temporary volumes are created. The default value of this parameter is the location where the first SQL Access Server volume was located. If no value or NULL is given, the default is used. volext_path Volume extensions are created only for general purposes. The volext_path parameter is a string that specifies the single location (directory) where permanent volume extensions for a SQL Access Server are to be created. If you do not specify a location or if you specify NULL, the value of volext_path defaults to the location of the first SQL Access Server volume. SQL Access can automatically extend a SQL Access Server when the value of auto_volext_factor is greater than 0. The system always creates automatic volume extensions with generic purposes. maxtmp_pages This parameter specifies the maximum number of pages that can be allocated for temporary volumes. The default value is -1, indicating an infinite number of pages. The space available on the location specified by voltmp_path imposes the limit. If a value of 0 is given, the system does not create a temporary volume. In this case, the DBA can use the addvoldb utility to create permanent volumes for temporary purposes. If a negative value other than -1 is given, the system uses the default (for more information, see "voltmp_path" on page 331). auto_volext_factor The auto_volext_factor parameter determines the minimum number of pages that are used when an automatic volume extension is added to the SQL Access Server system. The minimum number of pages is determined by multiplying auto_volext_factor by the number of pages of the first SQL Access Server volume created with the createdb utility. The default value of the auto_volext_factor parameter is 1. If you specify 0 for the value of this parameter, the system does not automatically create volume extensions. If you specify a negative value, the system uses the default value. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 331 unfill_factor This parameter defines the percentage of space reserved in each heap page for future updates. Situations may arise when the size of an updated instance increases such that not enough space exists to store the instance on its original page. In these situations, the system relocates the instance to another page. Instance relocations are undesirable for performance reasons. The default is set to 0.10 (10%), the maximum value is 0.30 (30%), and the minimum is 0.0 (0%). Use a higher value if a large number of changes are expected. Use a lower value if very few updates to the instances of the SQL Access Server classes. If you specify a negative value or a number greater than 0.30, the system uses the default value. unfill_index_factor The system uses this parameter when an index is created. It determines the amount of space to be reserved on each page of the new index. The amount of reserved space indicated by unfill_index_factor affects the performance on a B+tree index, because index pages split when they fill. This reserved space minimizes the splitting of index pages when new records are added to the indexed class. The default value for this parameter is 0.20 (20%), and the maximum value is 0.35 (35%). When you expect to add a large number of records to a class after the index is created, you should use the maximum value. If unfill_index_factor is set to 0 (0%), the system reserves no space for future additions, indicating that you do not expect to insert any more instances of the class being indexed (after the index is created). Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 332 warn_outofspace_factor The system records the value of this parameter on a permanent SQL Access Server volume when it is created. It issues warnings when the SQL Access Server disk is running out of space. An automatic warning message is issued the first time a SQL Access Server volume falls below a specific number of free pages during the allocation of pages. The threshold value is calculated by multiplying the total number of free SQL Access Server volume pages by the value of this parameter. A new warning threshold is calculated by multiplying warn_outofspace_factor by the number of available pages. A final warning message is given when the disk falls below 10 free pages, and no new additional warnings are given. Similarly, outof-space warning messages are given during SQL Access Server restart and shutdown when the SQL Access Server volume falls below the first calculated threshold value. The default value is 0.15 (15%). If you specify 0, the out-of-space warning messages are not issued. If you specify a negative value or a number greater than 1, the default value is used. Parameters related to recovery/logging SQL Access uses a log and a SQL Access Server backup to recover committed and uncommitted transactions in case of system and media crashes, as well as user-initiated rollbacks. A log consists of a set of sequential files that are created by SQL Access. There are two types of logs: ♦ Active log. Log file with the most recent changes. ♦ Archive logs. The rest of the log files. The term "log" refers to the entire set of active and archive logs. The system records changes to the SQL Access Server in the active and archive logs. When the active log becomes full, its pages are archived in an archive log to support media crashes and the effects of changes that have not been recorded in the SQL Access Server volumes. SQL Access determines when archive logs are no longer needed for normal processing. The system retains archive logs to support media crashes until the files are removed by the DBA. The backup is a snapshot of all committed changes at the time the backup is completed. Thus, it is a live snapshot of the SQL Access Server. That is, users can be logged into the SQL Access Server and transactions can update the SQL Access Server during the backup. The system saves all updates committed during the backup. The SQL Access recovery system uses the parameters discussed in the following sections. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 333 backup_max_volume_size This parameter places an upper limit on the size (in bytes) of the backup volumes created by the backupdb utility. It allows backup to disk while creating volumes of a specified size for archive purposes. For instance, you may want to archive to tape but would like to save time by backing up to disk at night. You can then transfer the backup volumes to a slower tape drive in the morning, with each tape holding exactly one backup volume. The default for this parameter is -1, which gives no upper limit. It should be set only when needed. When this parameter is not set, backup volumes will be as large as the destination media will allow. The lowest limit that can be specified is 32 KB; the upper limit is 2 GB. The backup_max_volume_size parameter must be greater than the block buffer size for the device multiplied by the backup_buffer_size parameter. backup_buffer_size This parameter speeds up the backup by providing a way to increase the block buffering between the backupdb utility and the backup device. The value specifies multiples of the default block size for the device. For example, a value of 10 gives a 10x increase in the block size of the data buffered to the device. This parameter is particularly helpful when backing up to streaming tape devices. Since each device has its own buffer size, the default value is both operating system and device dependent. For example, on Solaris, the default buffer for backups to most disk drives is 8192 bytes. On Windows systems, the backup buffer is always 4096 bytes. The parameter default is 1, and the upper bound is the maximum allowed integer value for the system. The recommended value is 4–10. This parameter applies only when the backups are being created. Upon restore, the block buffering used to create the backup is automatically used to do the restore. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 334 checkpoint_interval The value of this parameter specifies the number of log pages to fill before a checkpoint is performed. The purpose of a checkpoint is to limit the number of log pages that must be scanned and the amount of work that must be redone during the restart recovery process. Each time a checkpoint occurs, SQL Access flushes committed and/or uncommitted changed data pages that have occurred since a previous checkpoint. Pages that remain uncommitted for a long time are flushed, to avoid delays during a recovery. That is, a checkpoint flushes a changed and frequently used data page without waiting for replacement of the buffer containing the page. In addition, the checkpoint process records (in the log) the state of each transaction in the system. If the value of this parameter is very large, recovery of your SQL Access Server and bringing it online after a system failure may take a long time. A very small parameter value reduces the time necessary for system recovery in case of system failures. However, a small parameter value has a negative impact on performance because the frequency of checkpoints increases. You should choose a value based on your system’s performance. If you are more concerned with efficient runtime performance than recovery time, set checkpoint_interval to a higher value. If you are more concerned with fast recovery time, choose a smaller value. Cincom recommends a value of 50–100. The system default value is 100 pages. The minimum value for this parameter is 10. If a number less than the minimum is given, the default value is used. In addition, if the value of this parameter is smaller that the value of num_log_buffers parameter, the system uses the value of num_log_buffers instead. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 335 flush_data_buffer_factor The recovery system of SQL Access allows the execution of commits and rollbacks without forcing dirty data pages to the SQL Access Server. You can force out dirty pages asynchronously to the SQL Access Server later. This approach benefits not only the commit and rollback operations but also multiple updates to the same pages by future transactions because I/O is reduced. If all data buffers are filled with only dirty pages, the SQL Access page buffer replacement algorithm executes two I/Os. One I/O writes out the dirty page currently placed in the replacement buffer. The other I/O reads in the desired page. The system avoids this undesirable situation by forcing dirty data pages out when the value of this parameter is reached and either SQL Access is idle or a checkpoint operation is in progress. The value of this parameter indicates the desirable saturation factor of dirty pages in the data buffer. When this factor is reached, dirty data pages are forced written to disk. The minimum value for this parameter is .30 (30%). However, Cincom recommends a value between 0.70 and 0.90 (70–90%). The default value is 0.80. If you specify a value less than 0.30 or greater than 1, the system uses the default value. log_path This parameter is a string that specifies the location (directory) of the log files and default locations for SQL Access Server backups. The default value of this parameter is the location of the SQL Access Server. If you specify a NULL value or no value, the system uses the default value. Cincom strongly recommends that you place the SQL Access Server files, log files, and SQL Access Server backup files in physically different disk/media devices. Otherwise, if the disk where a volume of the SQL Access Server is located fails, the log and SQL Access Server backups may have been damaged, and it may be impossible to recover the SQL Access Server. The log_path is also the default destination for backups unless a different backup directory was specified at the original run of createdb. log_reserve_space When you create a SQL Access Server, SQL Access verifies that enough space exists for the log without reserving the space. It is possible for the space to be used by another application. SQL Access will not be able to find the required space if it was claimed by another application. Setting the value of this parameter to 1 forces SQL Access to reserve the active log space at the time the SQL Access Server is created to avoid an out-of-disk-space condition in the future. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 336 log_size This parameter indicates the number of log file pages (active log and archive logs). The system determines the page size for the log files by the value entered for the -ps option of the createdb utility. The size of the log should be large enough to handle all dynamic changes of concurrent transactions without reaching saturation. Cincom recommends a value that is at least as large as the number of SQL Access Server pages. The minimum value for this parameter is 200. The default value is the number of pages for the SQL Access Server as specified by the -p option of the createdb utility. If you specify a number less than the minimum, the system uses the default value. To alleviate performance problems, the active log acts as a circular file, wrapping around when it becomes saturated. However, before a portion of the log file is reused, you must archive it in an archive log. An archive log process may be done in one or several steps (for example, when the system is idle, some archiving may take place). To estimate the active log size, first determine the peak transaction load using the following formula: Peak Transaction Load = (largest-amount-of-data-changes / longest-transaction time) * number-of-current-transactions You can estimate the transaction that changes the largest amount of data in the longest transaction time by using the estimatedb_data and estimatedb_index utilities. For INSERTs and DELETEs, use the value obtained with these utilities. For UPDATEs, multiply that value by 2. Next, determine the frequency of finished transactions during the longest transaction time, as follows: Frequency of Finished Transactions = (Transactions To Finish / Longest Transaction Time) Your desired log size is then calculated as follows: Log Size = peak-transaction-load / frequency-of-finishedtransactions Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 337 media_failures_are_supported This parameter specifies whether you wish to support media failures. When this parameter is set to 0, SQL Access automatically removes archive log files that do not contain active changes. The default value of this parameter is 1, indicating that media failures are supported. SQL Access will not remove archive log files. When you activate media_failures_are_supported for a SQL Access Server for which it was not formerly set, a backup of the SQL Access Server must be made to ensure that log records of removed archives are not needed. num_log_buffers This parameter specifies the number of log buffers cached in memory for logging purposes. The size of each buffer is in SQL Access Server pagesize (which is determined when the SQL Access Server is created using the -ps option of createdb). A large value reduces log I/O when transactions are long and numerous. It also reduces synchronization of log writes against the disk. Cincom recommends a value between 50–100 buffers. The default value is 50 buffers (which, in a SQL Access Server with a page size of 4K, requires 400K). The minimum value for num_log_buffers is three buffers. The maximum value depends directly on the amount of memory available in the machine where you run SQL Access. If you specify a value smaller than the minimum, the system uses the default value. 8 The num_log_buffers parameter is one of the most important parameters to improve the performance of SQL Access under SQL Access Server modifications and numerous concurrent transactions. Keep in mind that increasing this parameter increases machine memory usage and may induce swapping in your machine. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 338 Parameters related to concurrency/locking The SQL Access concurrency control system uses these parameters. keep_schema_locks When set to 1 (the default), read locks on schema information will be held across transaction boundaries. This can increase performance since schema locks will not be dropped and re-acquired repeatedly in the same SQL Access Client application. If you set this parameter to 0, schema locks will be released at the end of a transaction. You should only set this to 0 if your application does a lot of schema modifications to existing classes (is ALTER class commands, etc.). lock_escalation SQL Access synchronizes concurrent access to shared data using a multigranularity locking mechanism. SQL Access may lock the SQL Access Server as a whole, specific classes, or instances, depending on the operation being executed. Under this scheme, all classes and instances are implicitly locked with the lock on the SQL Access Server. If a class is locked, all its instances are implicitly locked with the lock on the class. The value of this parameter automatically determines the locks needed to access any type of SQL Access Server data. This parameter specifies the maximum number of locks acquired on individual instances of a class before the locks on instances are escalated to a class lock. The minimum value for this parameter is 5. The default value is 1000. If a value less than the minimum is given, the system uses the default value. In general, larger values for this parameter achieve greater concurrency; however, the overhead of lock management will also increase. It is important to specify a value for this parameter to avoid an excessively large lock table, which can affect concurrency control performance. lock_timeout_in_secs This parameter indicates the minimum amount of time to wait for a lock. If a lock is not granted within the amount of time specified, the lock is denied and execution of the operation is canceled. SQL Access returns an error indicating cancellation of the operation due to a lock timeout. The system cancels only the current operation and not the entire transaction. Time-outs must be carefully handled by users and applications. The default value of this parameter is to wait 20 seconds for the lock to be granted. A value of zero indicates not to wait for a lock. If a negative value is given, the system uses the default value. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 339 lockf_enable This parameter locks the SQL Access Server to prevent several applications from opening the SQL Access Server at one time. If you disable this parameter, concurrent application access to the same SQL Access Server could occur, resulting in SQL Access Server corruption. The user should not modify this parameter unless severe NFS network problems are occurring. UNIX uses a distributed locking mechanism based on rpc.lockd. A system function, called lockf( ), provides the interface to this mechanism. The lockf( ) function has proven troublesome in certain versions of SunOS. If you experience problems with SQL Access Server access (such as when using createdb), the lockf_enable parameter in the ordbinit.txt file turns the locking enable feature to NO (0) or YES (1). If set to YES or 1, (lockf_enable=YES or lockf_enable=1), lockf( ) is enabled. If set to NO or 0, it is disabled. If a client mounts a file system using NFS that is physically on a remote server and that client does not have an entry in that server’s /etc/hosts file (as might happen if the site is not running NIS), and that client subsequently issues a lockf( ) call (locking a file system on that NFS-mounted file system), the server’s lockd and statd become confused and are unable to connect to their counterparts on the client. Essentially, the user experiences a “hang.” Whatever operation was in progress at the time blocks in an uninterruptible state inside the system call, and it is impossible to kill the process. In addition, as the statd and lockd on the server continue to spend time trying to contact the client, other clients with apparently unrelated processes hang. The following messages display on the NFS server console: rpc.lockd: cannot do cnvt rpc.statd: cannot talk to statd at <client> The workaround is to ensure that any client that mounts a file system from a Server via NFS is also present in the host's files of that server. This should happen automatically if you are running NIS. If you disable this parameter, concurrent application access to the same SQL Access Server could result in data corruption or collision problems. Disable locking only if you are experiencing access problems. Exercise caution in simultaneous SQL Access Server operations (from two different windows and/or two different users across the network). Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 340 deadlock_detection_interval It is possible to get into a deadlock situation where two or more transactions are waiting for each other to finish. When a deadlock occurs, SQL Access resolves it by rolling back one of the transactions in the deadlock. The transaction that is rolled back is likely the most recent transaction. The deadlock detection program is run every deadlock_detection_interval (the value of this parameter) when there are at least two suspended transactions and one of those transactions has not been suspended during the last deadlock detection run. If the interval value is very small, a lot of time is expended looking for deadlocks even if deadlocks are rare. If the interval is very long, less cost is incurred for deadlock detection; however, a real deadlock may go undetected for a long time. The system default value for deadlock detection is 30 seconds. If either zero or a negative value is given, the system uses the default. isolation_level This parameter indicates the isolation level of the transaction. Isolation levels allow transactions to run with less restrictive levels of consistency. The isolation level of a transaction is a measure of the degree of interference that the transaction can tolerate from other concurrent transactions. The higher the isolation levels the less interference and the lower the concurrency. The default value of this parameter is TRAN_REP_CLASS_COMMIT_INSTANCE. The following table indicates the possible values for this parameter. The values are grouped according to isolation levels, and you can specify any value in a group for the same isolation level (some of the names have aliases). Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 341 For example, you can specify TRAN_REP_CLASS_REP_INSTANCE, TRAN_REP_READ, or TRAN_SERIALIZABLE and get the same isolation level (for complete descriptions of these isolation levels and concurrency control, refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503): Isolation level parameter values Description Isolation level parameter number REPEATABLE READ CLASS with REPEATABLE READ INSTANCES (or SERIALIZABLE) TRAN_REP_CLASS_REP_INSTANCE TRAN_REP_READ TRAN_SERIALIZABLE 5 REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) TRAN_REP_CLASS_COMMIT_INSTANCE TRAN_READ_COMMITTED TRAN_CURSOR_STABILITY 4 REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES TRAN_READ_UNCOMMITTED TRAN_REP_CLASS_UNCOMMIT_INSTANCE 3 READ COMMITTED CLASS with READ COMMITTED INSTANCES TRAN_COMMIT_CLASS_COMMIT_INSTANCE 2 READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE 1 use_index_concurrency By default, locks on index keys can be used to increase concurrency during query executions. This parameter can be set to 0 to disable this behavior. max_lock_structures Sets the maximum number of structures kept for reuse by the locking module. An increase in this parameter can improve performance by reducing the number of times that memory is allocated and freed but at the expense of increasing memory consumption by the SQL Access Server. The valid range of values is 10 to 1000. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 342 Parameter related to threads request_threads_to_start This parameter specifies the number of request threads that the SQL Access Server will create and initiate at startup. The default value is 0, indicating that the minimum number (determined by the SQL Access Server) of request threads are created/started at startup. A value of –1 indicates the maximum number of request threads should be created/started at startup. This is beneficial if the SQL Access Server is required to obtain all the thread resources it will use upfront. If the value is lower than a system determined minimum, the minimum number of request threads will be started. The SQL Access Server will start up a number system threads in addition to the request threads. Additional request threads will be created/started as required; for example, as more SQL Access Clients connect and the number of requests handled concurrently increases. Parameters related to communication services The SQL Access communication subsystem uses these parameters. When a SQL Access Client starts an application, the system requests a connection to a particular SQL Access Server. The SQL Access communication subsystem connects the application to the SQL Access Server process/machine that administers (maintains) the requested SQL Access Server through the service name. The values of these parameters are usually specified during the installation procedure and are not normally altered. Thus, you should only define these parameters in the ordbinit.txt file of the installation (found in %ORDB%\admin\ordbinit.txt (Windows) or $ORDB/admin/ordbinit.txt (UNIX)). The /etc/hosts and /etc/services files must be present on each UNIX client and UNIX server computer that runs SQL Access or on the NIS server if your network uses Network Information Server (NIS). On NIS systems, the /etc/hosts and /etc/services files are maintained on the NIS server. The files that reside on your local computer are not used and may be obsolete. network_service_name This parameter is similar to the master_port_id parameter, except that it indicates a symbolic address instead of a numeric address. This parameter is a string (must be enclosed in double quotes) that indicates the port name of the SQL Access communication service that has been assigned in the UNIX network software table (/etc/services). Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 343 The default value of this parameter is sqlx. This default value is initially assigned to the network_service_name parameter in your ordbinit.txt file, but it can be changed to suit your site’s requirements. However, whether you use the system-supplied value or provide a new value of your own, you must still update the UNIX network software table (usually located in /etc/services) to reflect this value. The value of the network_service_name parameter is only used if the value of the master_port_id parameter is unknown. master_port_id This parameter is similar to the network_service_name parameter, except that it indicates a numeric address instead of a symbolic address. The default value of this parameter is 1978. This value is initially assigned to the master_port_id parameter in your ordbinit.txt file, but it can be changed to suit your site’s requirements. However, whether you use the systemsupplied value or provide a new value, you must still update the UNIX network software table (usually located in /etc/services) to reflect this value. The port number indicates to the SQL Access Client how to find the SQL Access Server on the specified host. It does not matter what service name you choose, as long as it agrees with the name specified in your /etc/services file. Only if the value of the master_port_id parameter is unknown, the network_service_name parameter is used. network_pagesize The network_pagesize parameter specifies the size in bytes that SQL Access used as the communication block between the SQL Access Client and the SQL Access Server. This value must be a power of two and greater than or equal to 1K (1024 bytes). The default value is 32K. max_ping_wait Set this parameter to the maximum number of seconds the SQL Access Server blocks before determining that the SQL Access Client is unreachable. A value less than or equal to 0 turns off this test. The default value is 5. Windows SQL Access Servers ignore values greater than 0 and may block for the full timeout period (about 1 minute). socket_recv_timeout Sets a time limit in seconds for the socket receive function. When 0 (the default), no time limit is set on a socket receive. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 344 Parameters related to SQL Access Client requests on the SQL Access Server Use these parameters to manage SQL Access Server resources more efficiently. active_requests This parameter sets the number of simultaneously active requests for which the SQL Access Server is tuned. The default value is 50. max_clients This parameter identifies the maximum number of concurrent SQL Access Client connections that the SQL Access Server can accept. If the max_clients limit has been reached and a new SQL Access Client connects to the SQL Access Server, the system refuses the new connection. The default value is 500. Parameter related to the query cache query_cache_server_statistics This parameter tells the SQL Access Server to print query cache statistics when the SQL Access Server is terminated. The default value is 0, meaning no statistics will be printed. When the parameter is set to 1, statistics will be printed to standard out when the SQL Access Server terminates. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 345 Parameters related to SQL Access Server file based objects The following parameter is used to identify valid directory/file locations for SQL Access Server file based objects. fbo_root The SQL Access Server FBO storage mechanism gives users the ability to read and write files in the SQL Access Server's host file system. To protect the host system from accidental damage, it is necessary to place limits on which files and directories can contain Server FBOs. This is accomplished using the fbo_root system parameter. The fbo_root parameter can be set to a colon- or semicolon-delimited list of SFBO files or directories that may contain SFBO files. Each element of the list must be the full pathname of a file or a directory. If it is a file, it is explicitly allowed as an SFBO file. If it is a directory, then files that are in or descended from that directory are allowed as SFBO files. The first pathname in the list has special significance. It is the “starting point” for all FBOs created with a relative pathname. If this value is a file rather than a directory, relative paths will effectively be disabled for this installation. The first element of any pathname in the list may be the name of an environment variable preceded by a dollar sign ($). The environment variable will be evaluated at run time on the SQL Access Server. Windows Server example. fbo_root=c:\FBODir;d:\images\mypic.jpg;$IMAGES\fbos; value of $IMAGES at runtime is ‘\\serverhost\c\images’ The value of fbo_root is checked on every access to an SFBO, not only at create time. Therefore, changing the value of fbo_root could cause previously created SFBOs to not be accessible any longer. In particular, SFBOs having a relative path will not be accessible if the first pathname in fbo_root is modified. The default value of fbo_root is NULL, effectively disabling the use of SFBOs for this installation. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Server parameters 346 SQL Access Client parameters This section describes a variety of parameters that can be selected to configure and tune a SQL Access Client. These parameters are usually defined by a user or application of SQL Access. Parameters related to connecting to SQL Access Server connection_timeout When a SQL Access Server’s host is overloaded, the system can forcefully refuse or “time out” an incoming new SQL Access Client connection. This may happen when a SQL Access Server (or SQL Access Master) receives a large number of incoming connections in a very short period and its queue of backlog connections overflows. If a SQL Access Client connection is refused, the SQL Access Client can continue to retry its connection during the number of seconds specified by the value of connection_timeout. The default value is 3 seconds. The lowest value is 1 second. No maximum value exists. multiple_connection_shared_objects This parameter is for applications that do not use multiple SQL Access Server connections. When this parameter is set to 0, the system is prevented from creating a shared cache. The shared cache only benefits multiple connection applications. standalone When this parameter is set to 1, the default connection mode for an application that does not explicitly set the connection mode will be standalone. The default is 0. Setting this to 1 does not mean that the SQL Access Server will always be in standalone mode, it only defines the default when no specific mode (standalone or client/server) is specified. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Client parameters 347 Parameters related to workspace memory The system uses these parameters to manage memory space in the SQL Access Client workspace. hot_load_workspace If this parameter is true, then threads will attempt to preload their workspace during startup. hot_fault_objects If this parameter is true, then threads will attempt to hot fault objects during object fetching. max_quick_size The workspace uses a storage management algorithm called quick fit, which maintains free blocks of the same size on individual lists. Free blocks are maintained on these special lists as long as they are below the number of bytes specified by max_quick_size. Allocations larger than this size are handled in a different manner with somewhat more overhead. You can increase this parameter if you determine that an application makes frequent use of objects that are larger than the current setting of max_quick_size. The default value is 256 bytes. A value greater than or equal to 32 bytes and less than 1K is accepted. If a number outside this range is given, the system uses the default. max_block_size The quick fit algorithm allocates large blocks of storage and manages small allocations inside these blocks. If all of the available storage inside a block is allocated, the quick fit algorithm allocates an additional block of storage. The max_block_size parameter specifies the size of these blocks. This has the side effect of also defining the maximum size of any single allocation within the workspace. The minimum value for this parameter is 16K. The default value is 128K. If a number less than 16K is given, the system uses the default. max_block_count This parameter is closely related to max_block_size. This sets the number of large workspace blocks that may be allocated before the system begins to issue warning messages. If the application requires huge amounts of storage, it may run out of virtual address space, which causes program termination. Workspace warning messages allow the application to know in advance that large amounts of memory are being consumed. The minimum and default value for this parameter is 0, which indicates no limit on the number of blocks allocated. If a negative value is given, use the system default. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Client parameters 348 initial_workspace_table_size You can set this parameter to an estimate of the total number of objects that are referenced during a session. The system maintains an internal table of object identifiers that grows as objects are brought into the workspace. Because extending this table incurs some overhead, creating a table of the maximum required size once at the beginning of the session can be beneficial. The minimum value for this parameter is 1K. The default value is 4096 (4K) objects. If a number less than the minimum is given, use the system default. Parameters related to query services execute_queries_streaming When 1 (the default), streaming queries will be used. When 0, streaming queries will be disabled. query_max_rows Sets a limit for the maximum number of rows that can be returned to a query. When 0 (the default), all rows will be returned. server_inserts This parameter tells the SQL Access Client whether to execute inserts on the SQL Access Server or the SQL Access Client. The default value is 1 meaning that most inserts will be executed on the SQL Access Server. This makes the best use of the query cache and normally provides the best performance. When this parameter is set to 0 the SQL Access Client will perform most inserts on the SQL Access Client using the SQL Access Client workspace. Inserts are flushed to the SQL Access Server in groups of 100. The query cache is not used to perform these inserts. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Client parameters 349 query_stream_window The query_stream_window parameter is an integer that controls how many instances in a result set will be available for reverse (fetch previous) cursor operations. A value of 0 implies that no streaming queries will be supported. A large value for this parameter will increase the storage needed by the SQL Access Server, but it will allow applications to perform “get previous cursor” over a broader range of results. The default value is 2. This parameter can be also modified for a particular application with the db_query_stream_window api function: SQLX_query_stream_window( ) DB_ERROR SQLX_query_stream_window( SQLHDBC sqlhdbc, DB_INT32 nPages); Arguments Return value Description sqlhdbc⎯(IN) Connection handle nPages⎯(IN) Number of pages maintained on the SQL Access Server for query results Error status This function changes the number of pages the SQL Access Server reserves for query results. The SQL Access Server sends the results to the SQL Access Client as soon as it has enough results to fill a network buffer. The SQL Access Server can reclaim space that was used for results that have already been transmitted to the SQL Access Client. This can cause a problem if the SQL Access Client needs to perform a large number of reverse cursor reads. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Client parameters 350 object_mode_character The object_mode_character is used to tell SQL Access how to format oids (identities) and collections in result sets. If set to 1, oids and collections will be returned in char(254) format. Unlike object pointers, character representation of an oid can be passed across connection handles. The default is 0. When 0 the data will be returned as in previous releases (DB_COLLECTIONS and DB_OBJECTS). This behavior can be also modified for a particular application using any of the following: ♦ SET OBJECT MODE CHARACTER sqlx statement (refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503) ♦ SET OBJECT MODE OBJECT sqlx statement (refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503) ♦ SQLX_set_object_mode_char api function (shown here) SQLX_set_object_mode_char() DB_BOOL SQLX_set_object_mode_char( SQLHDBC con, DB_BOOL* display_as_char); Arguments con—(IN) Connect handle display_as_char—(IN) DB_TRUE is string display is desired Return value The previous setting Description This function sets OIDs to be displayed as character strings if display_as_char is DB_TRUE, or not if display_as_char is DB_FALSE. optimization_level Setting this parameter to 0 will turn off SQL Access’s query optimizer. query_cache_max_entries This parameter controls the number of query cache entries available for each connection to a SQL Access Server. The default number of query cache entries is 100. Setting this parameter to 0 turns off query caching. query_cache_threshold This parameter controls the number of times a query will be compiled before is cached. The default is 1, meaning that a query will be compiled twice before it is cached. The setting effectively eliminates adhoc queries that are executed only once from using query cache entries. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Client parameters 351 query_oidset_threshold This parameter is used to control when the SQL Access Server should abandon an index scan in favor of a sequential scan. The parameter specifies the percentage of qualified index hits that should be reached before switching to a sequential scan. The default of 9 was found to result in the smallest amount of I/O over a variety of indices and queries. query_timeout Sets the default query timeout in seconds. When 0 (the default), no time limit is set on queries. select_star_includes_identity If this is 1, then a “select *…” sqlx statement will include the identity attribute as the first attribute in the result set. The default for this parameter is 0. This behavior can be also modified for a particular application using any of the following: ♦ ♦ ♦ SET SELECT IDENTITY ON sqlx statement (refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503) SET SELECT IDENTITY OFF sqlx statement (refer to the SQL Access for SUPRA Server PDM SQL Reference Guide, P25-9503) SQLX_set_select_identity api function (shown below) SQLX_set_select_identity() DB_BOOL SQLX_set_select_identity( SQLHDBC con, DB_BOOL* select_identity); Arguments con—(IN) Connect handle select_identity—(IN) DB_TRUE if adding identity attribute is desired Return value There is no return value Description This function will add the identity attribute to the result set as the first column if select_identity is DB_TRUE, or not if select_identity is DB_FALSE. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Client parameters 352 Parameters related to quitting/disconnecting from applications commit_on_shutdown SQL Access consults the value of the commit_on_shutdown parameter to commit or roll back work when an application/user exits from SQL Access. Accepted values for this parameter are YES (or 1) and NO (or 0). If YES (or 1) is given, then the active work is committed. Otherwise, it is rolled back. The default value of this parameter is NO or 0 (roll back work when exiting). Cincom recommends finishing an application or SQL Access tool with either a commit or rollback statement before exiting. This parameter is not consulted when you exit a SQL Access interactive tool; instead, the system asks you whether to commit the transaction. query_cache_statistics This parameter tells the SQL Access Client to print query cache statistics when the SQL Access Client application disconnects from the SQL Access Server. The default setting is 0, meaning that query cache statistics will not be printed. Setting this parameter to 1 will cause query cache statistics to be printed to standard out. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: SQL Access Client parameters 353 Utility parameter This section describes the parameter that can be selected to configure SQL Access utility operation. unload_max_column This parameter controls the line width for strings written to the unloaddb object file. If the length of a string exceeds the value of this parameter, the string continues on the next line. The default value for this parameter is 70. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Utility parameter 354 Foreign Database parameter This section describes the parameter that can be used to configure SQL Access CID Foreign Database operation. default_adapter_dir When a CID Foreign Database is registered without a directory parameter, this parameter controls where a CID Foreign Database host will look for adapters. The default is %ORDB% on Windows and $ORDB/utilities on UNIX. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Foreign Database parameter 355 Data validation parameters This section describes parameters that can be used to configure SQL Access data validation. charcode_check If this parameter is set to 0 (the default), the system will check inserted and updated string data against the valid range based on the current character set being used. Invalid characters will generate an error condition. The valid ranges are as follows: 1. EUC Encoding ASCII character Full-width character First byte Second byte Half-width Katakana First byte (ss2) Second byte JIS X 0212 First byte (ss3) Second byte Third byte 2. Shift JIS Encoding ASCII character Full-width character First byte Second byte Half-width Katakana 0x00 – 0x7f 0xa1 – 0xfe 0xa1 – 0xfe 0x8e 0xa1 – 0xdf 0x8f 0xa1 – 0xfe 0xa1 – 0xfe 0x00 – 0x7f 0x81 – 0x9f , 0xe0 – 0xef 0x40 – 0x7e , 0x80 – 0xfc 0xa1 – 0xdf ignore_timezone When changed to 1, this parameter causes the system to ignore the TZ (time zone) environment variable when storing/retrieving time values. Use this parameter with caution and then only for new SQL Access Servers for which the SQL Access Server and all SQL Access Clients will use this parameter consistently. Administration Guide, P25-9501-04 Chapter: 9. SQL Access for SUPRA Server PDM system parameters Section: Data validation parameters 356 A. Advanced Topics Sample foreign tables for the MVS Burrys PDM database The sample Burrys database is delivered with SUPRA Server PDM. The following foreign table definitions were created for the files in the Burrys database. For details on the Burrys SQL Access for SUPRA Server PDM (SQL Access) Server, refer to the SUPRA Server PDM DBA Utilities User’s Guide (z/OS and VSE), P26-6260. First register the Burrys CID Foreign Database: REGISTER CID FOREIGN DATABASE burrysdb NAME 'CENTCPDM' HOST 'earth' CID_HOST ‘mvs’ CID_PORT ‘9999’; After registering the CID Foreign Database, you then can create the foreign tables. Each foreign table maps one PDM file or one PDM record code. branch foreign table mapping to the E$BR file: create foreign table branch on burrysdb (branch_number char(4), branch_name char(20), branch_reg_no char(3), branch_address char(20), branch_city char(13), branch_state_code char(2), branch_zipcode numeric(5,0), branch_delivery_route char(2), branch_staff_quota numeric(5,0), branch_sales_quota numeric(9,2)) as select "BRANCH-NO", "BRANCH-NAME", "BRANCH-REGION", "BRANCH-ADDR", "BRANCH-CITY", "BRANCH-STATE", "BRANCH-ZIPCODE", "BRANCH-DEL-ROUTE", "BRANCH-STF-QUOTA", "BRANCH-SLS-QUOTA" from "E$BR"; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the MVS Burrys PDM database 357 customer foreign table mapping to the E$CU file: create foreign table customer on burrysdb (customer_number char(6), customer_name char(20), customer_branch_no char(4), customer_address char(20), customer_city char(13), customer_state_code char(2), customer_zipcode numeric(5,0), customer_class char(2), customer_credit_limit numeric(9,2), customer_credit_rating char(2)) as select "CUSTOMER-NO", "CUSTOMER-NAME", "CUSTOMER-BRANCH", "CUSTOMER-ADDR", "CUSTOMER-CITY", "CUSTOMER-STATE", "CUSTOMER-ZIPCODE", "CUSTOMER-CLASS", "CUSTOMER-CR-LIM", "CUSTOMER-CR-CODE" from "E$CU"; invoice_line_item foreign table mapping to the E$IL file: create foreign table invoice_line_item on burrysdb (invline_invoice_no char(4), invline_product_no char(9), invline_price numeric(9,2), invline_quantity numeric(5,0)) as select "E$ILE$IN", "E$ILE$PG", "E$ILPRCE", "E$ILQNTY" from "E$IL"; invoice foreign table mapping to the E$IN file: create foreign table invoice on burrysdb (invoice_number char(4), invoice_date numeric(5,0), invoice_sales_person char(4), invoice_total numeric(9,2), invoice_branch_no char(4), invoice_customer_no char(6)) Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the MVS Burrys PDM database 358 as select "E$INCTRL", "E$INDATE", "E$INSLMN", "E$INTOTL", "E$INBRAN", "E$INCUST" from "E$IN"; manifest_branch foreign table mapping to the E$MB file: create foreign table manifest_branch on burrysdb (manb_branch_no char(4), manb_manifest_no char(5)) as select "E$MBBRAN", "E$MBE$MF" from "E$MB"; manifest foreign table mapping to the E$MF file: create foreign table manifest on burrysdb (manifest_number char(5), manifest_date numeric(5,0), manifest_total numeric(9,2), manifest_branch_no char(4)) as select "E$MFCTRL", "E$MFDATE", "E$MFTOTL", "E$MFBRAN" from "E$MF"; manifest_line_item foreign table mapping to the E$ML file: create foreign table manifest_line_item on burrysdb ( manline_manifest_no char(5), manline_product_no char(9), manline_quantity numeric(5,0), manline_value numeric(9,2)) as select "E$MLE$MF", "E$MLE$PD", "E$MLQNTY", "E$MLVLUE" from "E$ML"; product foreign table mapping to the E$PD file: create foreign table product on burrysdb (product_number char(9), product_description char(30), product_price numeric(9,2), product_whse_quantity numeric(5,0), Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the MVS Burrys PDM database 359 product_group_no char(2)) as select "E$PDCTRL", "E$PDDESC", "E$PDPRCE", "E$PDWQTY", "E$PDPGRP" from "E$PD"; product_group foreign table mapping to the E$PG file: create foreign table product_group on burrysdb (group_code char(2), group_description char(30)) as select "E$PGCTRL", "E$PGDESC" from "E$PG"; purchase_order_header foreign table mapping to the E$PL(HD) file: create foreign table purchase_order_header on burrysdb (po_item_rc char(2), po_no char(6), po_header_date numeric(5,0), po_supplier_no char(6)) as select "E$PLCODE", "E$PLE$PO", “E$PLDATE", "E$PLE$SU" from "E$PL_HD"; purchase_order_line_item foreign table mapping to the E$PL(LN) file: create foreign table purchase_order_line_item on burrysdb (po_item_rc po_no char(2), char(6), po_item_cost numeric(9,2), po_item_quantity numeric(5,0), po_item_product_no char(9)) as select "E$PLCODE", "E$PLE$PO", "E$PLCOST", "E$PLQNTY", "E$PLE$PD" from "E$PL_LN"; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the MVS Burrys PDM database 360 purchase_order_received_product foreign table mapping to the E$PL(PD) file: create foreign table purchase_order_received_product on burrysdb (po_item_rc char(2), po_no char(6), po_received_date numeric(5,0), po_received_quantity numeric(5,0), po_received_delivery numeric(3,0), po_received_product_no char(9)) as select "E$PLCODE", "E$PLE$PO", "E$PLDELD", "E$PLDELQ", "E$PLDELN", "E$PLDELP" from "E$PL_PD"; purchase_order foreign table mapping to the E$PO file: create foreign table purchase_order on burrysdb (pord_number char(6), pord_date numeric(5,0), pord_total numeric(9,2)) as select "E$POCTRL", "E$PODATE", "E$POTOTL" from "E$PO"; region foreign table mapping to the E$RG file: create foreign table region on burrysdb region_number char(3), region_name char(20)) as select "E$RGCTRL", "E$RGNAME" from "E$RG"; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the MVS Burrys PDM database 361 stock foreign table mapping to the E$SK file: create foreign table b_stock on burrysdb ( stock_product_no char(9), stock_branch_no char(4), stock_quantity numeric(5,0), stock_location char(5), stock_ytd numeric(9,2)) as select "E$SKE$PD", "E$SKE$BR", "E$SKQNTY", "E$SKBINL", "E$SKSYTD" from "E$SK"; product_structure foreign table mapping to the E$ST file: create foreign table product_structure on burrysdb (product_assm_product_no char(9), product_comp_product_no char(9), component_quantity numeric(5,0)) as select "E$STASSM", "E$STCOMP", "E$STQNTY" from "E$ST"; supplier foreign table mapping to the E$SU file: create foreign table supplier on burrysdb (supplier_number char(6), supplier_name char(20), supplier_addr char(20), supplier_city char(13), supplier_state char(2), supplier_zip numeric(5,0)) as select "E$SUCTRL", "E$SUNAME", "E$SUADDR", "E$SUCITY", "E$SUSTAT", "E$SUZIPC" from "E$SU"; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the MVS Burrys PDM database 362 vendor_stock foreign table mapping to the E$VS file: create foreign table vendor_stock on burrysdb ( vs_key char(15), vs_supplier_no char(6), vs_product_no char(9), vs_number char(20), vs_cost numeric(9,2)) as select "E$VSCTRL", "E$VSE$SU", "E$VSE$PD", "E$VSNUMB", "E$VSVCST" from "E$VS"; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the MVS Burrys PDM database 363 Sample foreign tables for the OpenVMS and UNIX Burrys PDM database The sample Burrys database is delivered with SUPRA Server PDM. The following foreign table definitions were created for the files in the Burrys database. First register the Burrys CID Foreign Database: REGISTER CID FOREIGN DATABASE burrysdb NAME 'DBMOD' HOST 'earth' CID_HOST ‘pdm’ CID_PORT ‘9999’; After registering the CID Foreign Database, you then can create the foreign tables. Each foreign table maps one PDM file or one PDM record code. branch foreign table mapping to the BRAN file: create foreign table branch on burrysdb (branch_number char(4), branch_name char(20), branch_reg_no char(3), branch_address char(20), branch_city char(13), branch_state_code char(2), branch_zipcode numeric(5,0), branch_delivery_route char(2), branch_staff_quota numeric(5,0), branch_sales_quota numeric(9,2)) as select "BRANCH-NO", "BRANCH-NAME", "BRANCH-REGION", "BRANCH-ADDR", "BRANCH-CITY", "BRANCH-STATE", "BRANCH-ZIPCODE", "BRANCH-DEL-ROUTE", "BRANCH-STF-QUOTA", "BRANCH-SLS-QUOTA" from BRAN; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the OpenVMS and UNIX Burrys PDM database 364 customer foreign table mapping to the CUST file: create foreign table customer on burrysdb (customer_number char(6), customer_name char(20), customer_branch_no char(4), customer_address char(20), customer_city char(13), customer_state_code char(2), customer_zipcode numeric(5,0), customer_class char(2), customer_credit_limit numeric(9,2), customer_credit_rating char(2)) as select "CUSTOMER-NO", "CUSTOMER-NAME", "CUSTOMER-BRANCH", "CUSTOMER-ADDR", "CUSTOMER-CITY", "CUSTOMER-STATE", "CUSTOMER-ZIPCODE", "CUSTOMER-CLASS", "CUSTOMER-CR-LIM", "CUSTOMER-CR-CODE" from CUST; invoice_line_item foreign table mapping to the INVL file: create foreign table invoice_line_item on burrysdb (invline_invoice_no char(4), invline_product_no char(9), invline_price numeric(9,2), invline_quantity numeric(5,0)) as select INVLINVC, INVLPROD, INVLPRCE, INVLQNTY from INVL; invoice foreign table mapping to the INVC file: create foreign table invoice on burrysdb (invoice_number char(4), invoice_date numeric(5,0), invoice_sales_person char(4), invoice_total numeric(9,2), invoice_branch_no char(4), invoice_customer_no char(6)) Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the OpenVMS and UNIX Burrys PDM database 365 as select INVCCTRL, INVCDATE, INVCSLMN, INVCTOTL, INVCBRAN, INVCCUST from INVC; manifest_branch foreign table mapping to the BRMA file: create foreign table manifest_branch on burrysdb (manb_branch_no char(4), manb_manifest_no char(5)) as select BRMABRAN, BRMAMANF from BRMA; manifest foreign table mapping to the MANF file: create foreign table manifest on burrysdb (manifest_number char(5), manifest_date numeric(5,0), manifest_total numeric(9,2), manifest_branch_no char(4)) as select MANFCTRL, MANFDATE, MANFTOTL, MANFBRAN from MANF; manifest_line_item foreign table mapping to the MANL file: create foreign table manifest_line_item on burrysdb ( manline_manifest_no char(5), manline_product_no char(9), manline_quantity numeric(5,0), manline_value numeric(9,2)) as select MANLMANF, MANLPROD, MANLQNTY, MANLVLUE from MANL; product foreign table mapping to the PROD file: create foreign table product on burrysdb (product_number char(9), product_description char(30), product_price numeric(9,2), product_whse_quantity numeric(5,0), Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the OpenVMS and UNIX Burrys PDM database 366 product_group_no char(2)) as select PRODCTRL, PRODDESC, PRODPRCE, PRODWQTY, PRODPGRP from PROD; product_group foreign table mapping to the PGRP file: create foreign table product_group on burrysdb (group_code char(2), group_description char(30)) as select PGRPCTRL, PGRPDESC from PGRP; purchase_order_header foreign table mapping to the POLN(HD) file: create foreign table purchase_order_header on burrysdb (po_item_rc char(2), po_no char(6), po_header_date numeric(5,0), po_supplier_no char(6)) as select POLNCODE, POLNPORD, POLNDATE, POLNSUPP from POLN_HD; purchase_order_line_item foreign table mapping to the POLN(LN) file: create foreign table purchase_order_line_item on burrysdb (po_item_rc po_no char(2), char(6), po_item_cost numeric(9,2), po_item_quantity numeric(5,0), po_item_product_no char(9)) as select POLNCODE, POLNPORD, POLNCOST, POLNQNTY, POLNPROD from POLN_LN; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the OpenVMS and UNIX Burrys PDM database 367 purchase_order_received_product foreign table mapping to the POLN(PD) file: create foreign table purchase_order_received_product on burrysdb (po_item_rc char(2), po_no char(6), po_received_date numeric(5,0), po_received_quantity numeric(5,0), po_received_delivery numeric(3,0), po_received_product_no char(9)) as select POLNCODE, POLNPORD, POLNDELD, POLNDELQ, POLNDELN, POLNDELP from POLN_PD; purchase_order foreign table mapping to the PORD file: create foreign table purchase_order on burrysdb (pord_number char(6), pord_date numeric(5,0), pord_total numeric(9,2)) as select PORDCTRL, PORDDATE, PORDTOTL from PORD; region foreign table mapping to the REGN file: create foreign table region on burrysdb region_number char(3), region_name char(20)) as select REGNCTRL, REGNNAME from REGN; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the OpenVMS and UNIX Burrys PDM database 368 stock foreign table mapping to the STCK file: create foreign table b_stock on burrysdb ( stock_product_no char(9), stock_branch_no char(4), stock_quantity numeric(5,0), stock_location char(5), stock_ytd numeric(9,2)) as select STCKPROD, STCKBRAN, STCKQNTY, STCKBINL, STCKSYTD from STCK; product_structure foreign table mapping to the STRU file: create foreign table product_structure on burrysdb (product_assm_product_no char(9), product_comp_product_no char(9), component_quantity numeric(5,0)) as select STRUASSM, STRUCOMP, STRUQNTY from STRU; supplier foreign table mapping to the SUPP file: create foreign table supplier on burrysdb (supplier_number char(6), supplier_name char(20), supplier_addr char(20), supplier_city char(13), supplier_state char(2), supplier_zip numeric(5,0)) as select SUPPCTRL, SUPPNAME, SUPPADDR, SUPPCITY, SUPPSTAT, SUPPZIPC from SUPP; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the OpenVMS and UNIX Burrys PDM database 369 vendor_stock foreign table mapping to the VSNO file: create foreign table vendor_stock on burrysdb ( vs_key char(15), vs_supplier_no char(6), vs_product_no char(9), vs_number char(20), vs_cost numeric(9,2)) as select VSNOCTRL, VSNOSUPP, VSNOPROD, VSNONUMB, VSNOVCST from VSNO; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Sample foreign tables for the OpenVMS and UNIX Burrys PDM database 370 Extending the CID Adapter Schema During startup, the CID Adapter Server builds an internal schema, which it uses during the execution of queries. The internal schema is built by reading the PDM directory and/or by requesting VSAM file information from CICS using the VSAM_FILE_LIST input parameter. For PDM files, the internal schema contains all of the files, data fields, access methods, external field names, and domains defined in the PDM Directory. The internal schema may be extended or modified using the CID Adapter Extensions XML file. Extensions include subfields, access methods, foreign keys and CID Adapter Views. Modifications include type overrides, date fields, external names and file statistics information. The IBM CICS CID Adapter Server may be used to access VSAM files defined to CICS. This Adapter may be used to access PDM database files, VSAM files or both. For VSAM files the internal schema contains all of the files and access methods defined in the VSAM_FILE_LIST input parameter(s). Each file element will contain a single field representing the entire VSAM data record with subfields defined for each access method key value. Messages CSHP954I, CSHP676I and CSHP677I display the file, field and access methods automatically added to the internal schema. The CID Adapter Extensions XML file is used to provide the additional information required to define the fields and subfields of the records. Optionally, additional access methods, foreign keys and Adapter Views may be added. Throughout the remainder of this section, references to file or files refer to either PDM files or VSAM files. After loading the schema information from the PDM Directory, the CID Adapter Server will extend the schema with the field definitions in the CID Adapter Extensions XML file. This occurs each time the CID Adapter Server initializes, regardless of the value of the BIND_SCHEMA parameter. The CID Adapter Server must be restarted in order to load any changes made to the CID Adapter Extensions XML file. In prior releases, the CID Adapter Server’s schema was extended with the foreign key file. The CID Adapter Extensions XML file replaces the foreign key file. The foreign key file will continue to function as documented in earlier releases. Both files may be used to extend the same CID Adapter Server schema in this release. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 371 The CID Adapter Extensions XML file must start with the following line: <?xml version="1.0"?> The CID Adapter Extensions XML file for a CID Adapter Server is located as follows, depending on the platform: Platform Location Alternate Location MVS // XMLFILE DD DSN=<xmlfilename> CICS // XMLFILE DD DSN=<xmlfilename> OpenVMS CSI_XML_SCHEMA logical name CSI_XML_SCHEMA file in the default directory UNIX CSI_XML_SCHEMA environment variable CSI_XML_SCHEMA file in the current directory All schema extensions must be enclosed in a single root element named Adapter_extensions as follows: <Adapter_extensions> schema extensions as described below </Adapter_extensions> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 372 The following diagram shows the main elements of the CID Adapter Extenstions XML file: Adapter Extensions 0..n 0..n File View 1.. 0..n Field 1..n Access_Method 0..n 0..n Access Foreign_Key Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 373 File The internal schema contains memory structures for each file found in the PDM directory and/or in the VSAM_FILE_LIST input parameter(s). The File element is used to extend the metadata description of an internal record defined for a file. You must define a separate File element for each record code in a PDM file. The file elements in the internal schema are identified by: PDM VSAM The 4 character PDM file name, along with the 2 character record code, if the PDM file has record codes. The VSAM file name provided in the VSAM_FILE_LIST input parameter(s). A File element can contain Field elements that describe the layout of the internal record. A File element may also contain Access_method elements to define additional metadata that can aid the optimizer, and foreign key elements describing the fields in one file that reference a unique key in another file. The File element has the following structure: <File > <Field/> [<Field/> | <Subfield/>] <Access_method/> <Foreign_key/> </File> A File element has the following attributes: Attribute Name Required Description Name Yes (PDM) The 4 character name of the PDM file. This must be defined in the PDM Directory. (VSAM) The 1 to 8 character DD name of the VSAM file. The VSAM file name must be specified in the VSAM_FILE_LIST initialization parameter. Record_code No (PDM) This is required only if the PDM file contains record code(s). You must use a separate FILE element for each record code. External_name No The external name of this file. May be up to 32 characters. This name will be used to reference this file in foreign tables. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 374 Record_count No Used by the optimizer. Specify this attribute if you want to override the value defined in the PDM directory. Active_record_count No Used by the optimizer. Specify this attribute if you want to override the value calculated by the CID Adapter Server – 80% of the Record_count. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 375 Field The Field element is used to define new fields and subfields and/or modify existing field information. All of the fields defined in the PDM directory will be added to the internal schema automatically, including any domain information found in the directory. The typical COBOL shop will define one large data item to PDM and sub-define that data area using COBOL copybooks. The names, sizes and types of these sub-defined fields are known only to the COBOL applications that use the copybooks. The naming conventions follow the rules of COBOL names. These sub-defined fields must be added to the internal schema via the CID Adapter Extensions XML file before they can be used in SQL queries. For VSAM files, the CID Adapter Server will create the base field for each VSAM file specified in the VSAM_FILE_LIST initialization parameter. The base field defines the entire VSAM record and is named file-name_BASE. It must be used as the base field for all fields in the file. Except for the fields automatically created for the keys of access methods, all sub-definitions of the VSAM records must be added to the internal schema via the CID Adapter Extensions XML file before they can be used in SQL queries. The Field element has the following structure: <Field> [<Field/> | <Subfield/>] </Field> A Field element has the following attributes: Attribute Name Required Description Name Yes Either the 8 character name of the PDM Field or up to 32 character field name. External_na me No Up to 32 character external name of the field. When present, this name will be used in foreign table definitions. Type No One of the data types from the table in "Data Types" on page 381. Parent No The field name of the parent. This may not be used in a hierarchy. Displacement No Displacement into the parent field. Subfields automatically start at displacement 0 in the parent field. Length No The physical length of the field, including decimals. Decimals No The number of decimal places. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 376 Nulls No May be set to one of the following: ALLOWED, NOT_ALLOWED, NOT_NULL. NOT_ALLOWED and NOT_NULL are equivalent. Null No The NULL value. This can be a string that will be converted to the data type of the field or a hex value in the form X’nnnnnnnn’. Default No The Default Value. This can be a string that will be converted to the data type of the field or a hex value in the form X’nnnnnnnn’. Date_type No One of the following date types: DATE, TIME, TIMESTAMP Date_format No The date format string as described in "Date_type and Date_format" on page 382. Subfields There are three ways to define subfields: in a hierarchy, using the Parent attribute or using the Subfield element. When a subfield is defined in a hierarchy, the parent field is the immediate parent of the inner field. The Parent attribute may not be used in this case. The displacement of the subfield is calculated automatically beginning with zero (0), unless it is overridden with a Displacement attribute. The automatic displacement of the next subfield will be immediately following this subfield. When the Parent attribute is used to define a subfield, the field containing the Parent attribute may not be a subfield defined within a Field. The displacement may be used to define the displacement into the parent field. If the displacement is not specified it will be calculated automatically starting with displacement zero (0). The Subfield element looks just like the Field element in a hierarchy. It can be used to clarify the fact that this is a subfield. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 377 The following XML syntax may be used to define a hierarchy of fields and subfields: <File Name="file-name" Record_code=”Record-code” External_name=”external-file-name”> <Field Name="field-name" External_name=”external-field-name” Type="data-type" Parent=”parent-field-name” Decimals="decimal-places" Nulls=”ALLOWED | NOT_ALLOWED| NOT_NULL” Null=”null-value” Default=”default-value”> <Field Name="subfield-name" External_name=”external-field-name” Type="data-type" Displacement="displacement" Length="physical-length" Decimals="decimal-places" Nulls=”ALLOWED | NOT_ALLOWED| NOT_NULL” Null="null-value" Default=”default-value”> </Field> </Field> </File> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 378 The following XML syntax may be used to define a hierarchy using the Field and Subfield elements: <File Name="file-name" Record_code=”Record-code” External_name=”external-file-name”> <Field Name="field-name" External_name=”external-field-name” Type="data-type" Parent=”parent-field-name” Decimals="decimal-places" Nulls=”ALLOWED | NOT_ALLOWED| NOT_NULL” Null=”null-value” Default=”default-value”> <Subfield Name="subfield-name" External_name=”external-field-name” Type="data-type" Displacement="displacement" Length="physical-length" Decimals="decimal-places" Nulls=”ALLOWED | NOT_ALLOWED| NOT_NULL” Null="null-value" Default=”default-value”/> </Field> </File> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 379 The following XML syntax may be used to define a subfield using the Parent attribute: <File Name="file-name" Record_code=”Record-code” External_name=”external-file-name”> <Field Name="field-name" External_name=”external-field-name” Type="data-type" Decimals="decimal-places" Nulls=”ALLOWED | NOT_ALLOWED| NOT_NULL” Null=”null-value” Default=”default-value”> </Field> <Field Name="subfield-name" External_name=”external-field-name” Type="data-type" Parent=”parent-field-name” Displacement="displacement" Length="physical-length" Decimals="decimal-places" Nulls=”ALLOWED | NOT_ALLOWED| NOT_NULL” Null="null-value" Default=”default-value”> </Field> </File> The physical length of pre-defined fields in the internal schema may not be modified using the Length attribute. The Length attribute is required for new subfields. New subfields having no Type attribute default to character. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 380 Data Types The Type attribute of the Field element allows the type information in the internal schema to be specified or changed. For PDM fields, the type attributes may be used to supply type information required by the CID Adapter Server when the type information is not provided in the PDM Directory. Type attributes may also be used to override any type information that exists in the PDM directory. The data type defaults to character for new subfields with no Type attribute. For VSAM fields and subfields, the data type will default to character if the Type attribute is not specified. It is occasionally desirable to have data returned to the SQL Access Client application without the normal data conversion that occurs in the CID Adapter Client and Server. This can be accomplished by overriding the PDM data type to BIT. Any data field may be overridden to type BIT. If a data field is defined as BIT, it is transmitted to the SQL Access Server with no data translation regardless of the platform or the original PDM data type. The data is displayed in hex unless further modified with a SQL Access Server method. The size of BIT types is in bytes in the CID Adapter Server. The size of BIT types is in bits in the SQL Access Server. This means that an eight character CID Adapter BIT type must be mapped as BIT(64) in the SQL Access Server foreign table. The Type attribute may be set to any one of the following data-types: TYPE PDM/RDM type PDM/RDM sign PDM PLATFORM COBOL PICTURE CHARACTER CHARACTER All X(n) BIT Any All Any COBOL USAGE UNSIGNED_BINARY BINARY No All 9(n) COMP-4 SIGNED_BINARY BINARY Yes All S9(n) COMP-4 UNSIGNED_PACKED PACKED DECIMAL No All 9(n) COMP COMP-3 SIGNED_PACKED PACKED DECIMAL Yes All S9(n) COMP COMP-3 FLOAT FLOATING POINT All S9(n) COMP-1 COMP-2 All 9(n) DISPLAY MVS Treated as unsigned numeric 9(n) DISPLAY UNSIGNED_NUMERIC UNSIGNED_NUMERIC ZONED Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema No COBOL SIGN 381 PDM/RDM type TYPE PDM/RDM sign PDM PLATFORM COBOL PICTURE COBOL USAGE UNSIGNED_NUMERIC LEADING SEPARATE NUMERIC No VMS/UNIX Treated as unsigned numeric 9(n) DISPLAY UNSIGNED_NUMERIC NUMERIC TRAILING OVERPUNCH No VMS/UNIX Treated as unsigned numeric 9(n) DISPLAY UNSIGNED_NUMERIC ZONED TRAILING NUMERIC No VMS/UNIX Treated as unsigned numeric 9(n) DISPLAY MVS S9(n) DISPLAY LEADING_ZONED COBOL SIGN LEADING TRAILING_ZONED ZONED Yes MVS S9(n) DISPLAY TRAILING TRAILING_ZONED ZONED TRAILING NUMERIC Yes VMS/UNIX S9(n) DISPLAY TRAILING LEADING_SEPARATE LEADING SEPARATE NUMERIC Yes All S9(n) DISPLAY LEADING SEPARATE TRAILING_SEPARATE All S9(n) DISPLAY TRAILING SEPARATE LEADING_OVERPUNCH VMS/UNIX S9(n) DISPLAY LEADING VMS/UNIX S9(n) DISPLAY TRAILING TRAILING_OVERPUNCH NUMERIC TRAILING OVERPUNCH Yes Null and Default values The null-value and default-value strings are converted to the data type of the data item and stored in the schema in that format. They may also contain a hex string composed of the letter x or X followed immediately by a single quoted hex value, i.e. Default=“X’80000000’”. The hex string will be converted to a hex value and stored directly into the schema without conversion. The hex string must contain valid data for the data item’s type. The maximum length of a null or default value is 32 characters. Date_type and Date_format The Date_type and Date_format attributes may be used in a Field or Subfield element to allow any field containing date information to be defined as an SQL date, time or timestamp. This allows comparison and arithmetic operations to take place during query execution in the CID Adapter Server. The format-string contains alphanumeric characters and escape sequences. The following table lists the supported escape sequences: Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 382 Valid escape sequences Equals %% % %a Abbreviated day of the week (Mon, Tue, ...) %A Day of the week %b Abbreviated name of month (Jan, Feb, ...) %B Name of the month %c Full date and time formatted by locale %C 2-digit century number [00-99] (the year divided by 100 and truncated to an integer). %d 2-digit day of the month (01-31) %D Date formatted as %m/%d/%y (2 digit year) %e Day of the month (1-31) single digits preceded by space %H 2-digit hour (00 – 23) 24 hour clock %I 2-digit hour (01-12) 12 hour clock %j 3-digit day of the year %m 2-digit month (01-12) %M 2-digit minute (00-59) %p AM/PM from locale %q The quarter of the year (0-3) %S 2-digit second (00-59) %T Time formatted by %H:%M:%S 24 hour clock %U Week of the year where Sunday is the first day of the week %w Day of the week (0-6) where Monday if the first day of the week %W Week of the year where Monday is the first day of the week %x Date formatted according to locale %X Time formatted according to locale %y 2-digit year (00-99) %Y 4-digit year (0000-9999) %1 Century as number of centuries since 1900 (0-9) %t Tab %n Newline Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 383 Dates stored in numeric data items in the PDM database or a VSAM file will be converted to strings before applying the date format string. For example, if dates were stored in the database in 4 byte binary data items such as 19920116, the format string “%Y%m%d” would be required to convert the number to a date, and date back to a number. If the dates are stored in the database in character data items with a format such as “January 16, 1992” the format string “%B %d, %Y” would be used to interpret the date in the CID Adapter Server. The internal format of all dates, times and timestamps is a 4 byte binary number that can be used to compare dates and can be used in arithmetic expressions. The CID Adapter Server will convert date fields to this internal format when records are read that contain dates. The internal format will be converted to the database format on inserts and updates. This is the same internal format used by the SQL Access SQL processor, thus requiring no conversion beyond the initial and/or final conversion in the CID Adapter Server. The following restrictions on dates, times and timestamps apply to CID Adapter dates, as well as SQL dates: ♦ The range of values allowed in the representation of a time value is constrained by the 24-hour clock. ♦ For dates, the values used are constrained by the Gregorian calendar. ♦ If values are entered for a date or time that does not exist, an error is flagged. ♦ The year component of a DATE must fall between A.D. 0 and 9999. ♦ The year component of a TIMESTAMP value has a smaller range, specifically 00:00:00 January 1, 1970 through 03:14:07 January 19, 2038 GMT. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 384 In addition, the following rolling century algorithm is used to calculate the century of two-digit years stored in the database (%y or %D): Current Year Range 2 Digit Year Range Century 0-24 0-49 Current century 0-24 50-99 Previous century 25-74 All Current century 75-99 0-49 Previous century 75-99 50-99 Current century This provides a sliding 50 year window where dates are valid. Forward dates up to 25 years ahead of the current date are valid through the transition points and for 25 years after the transition point. Holding two digit year dates in a database for longer than 50 years results in century creep. Example The CUSTOMER file is extended to include a field called DATE-OF-LAST-SALE defined as follows: 10 CUST-DATE-OF-LAST-SALE PIC 9(10) COMP-3. The database definition for this field would be: <Field Name="DATE-OF-LAST-SALE" Type="UNSIGNED-PACKED" Length="5" Date_type=”date” Date_format=”0%m%d%Y” /> Unsigned packed fields have a sign nibble even though they are unsigned. In order to store 8 digits in the field, there must be 10 digits with one digit being wasted. 10 digits can be stored in 5 packed characters. The sign nibble is never considered as a character of the field. It is necessary to consume the entire packed field with the format. Any valid numeric character may be used as a filler for unused nibbles. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 385 Foreign_key Foreign keys are one or more fields in one file that, taken together within one record, contain a unique key value in another file. The access method of the referenced file may be a PDM control key, or a unique index. All referback fields in PDM related files are automatically defined as foreign keys. There are other frequently used instances of foreign keys in databases that are not defined to the database and therefore do not exist in the internal schema. Primary file control keys can be stored in any record in the database and used to locate data in a one to one relationship. These foreign keys are not defined in the PDM Directory and must be defined in the CID Adapter Extensions XML file if they are to be used by the CID Adapter Server. For VSAM files, all foreign keys must be defined in the CID Adapter Extensions XML file. There are none that are automatically defined. The File element may include Foreign_key elements. The Foreign_key element has the following structure: <Foreign_key > <References > </References> </Foreign_key> A Foreign_key element has the following attributes: Attribute Name Fields Required Yes Description A comma-separated list of field names composing the foreign key in this file. A References element has the following attributes: Attribute Name Required Description Name Yes The name of the file to which the foreign key refers. Fields Yes A comma-separated list of field names composing the key in the referenced file. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 386 Example The customer file, CUST, contains a field CUSTBRAN which contains the control key of the related branch record in the BRAN file. The following XML will define this foreign key: <File Name="CUST"> <Foreign_key Fields=”CUSTBRAN”> <References Name="BRAN" Fields=”BRANCTRL”> </References> </Foreign_key> </File> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 387 Access_method All standard PDM Access methods, control keys, linkpaths, and indices defined in the PDM Directory will automatically be added to the internal schema. All VSAM access methods defined for the files in the VSAM_FILE_LIST (KSDS files and all Alternate Index files) will automatically be added to the internal schema. In addition, all of the above mentioned access methods that contain fields with sub-definitions will have extra access methods automatically defined using the lowest level subfields of each field in the key. Under certain circumstances it may be necessary to add additional access methods to the schema. Additional access methods may be defined in the schema using the Access_method element in a File element. The Access_method element also can be used to modify the statistics of an existing access method. In the case of VSAM alternate key access methods, the Unique attribute also may be modified. The value set automatically for the Unique attribute in this case is No (nonunique). The Access_method element has the following structure: <Access_method > </Access_method> An Access_method element has the following attributes: Attribute Name Required Description Name Yes Up to 32 character name of the access method in the format <access-methodname>[_extension]. Type No One of the following access method types: INDEX, HASH, LINKPATH, or KSDS, where INDEX includes PDM secondary keys and VSAM alternate keys. Unique_keys No The number of unique keys in the index. Overrides the value obtained from the PDM directory. Num_rows No The total number of rows available through this access method. Overrides the value obtained from the PDM Directory. Num_nulls No The number of keys in the access method that are NULL. Overrides the value obtained from the PDM directory. Fields No Comma-separated list of fields that compose the key. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 388 Unique No YES if the access method contains only unique keys, No if there are duplicate keys in the access method. For VSAM alternate keys, the default is NO and can be overriden. For performance reasons, it may be useful to add access methods to a file when an access method key contains multiple levels of subdefinitions and it is necessary to use the sub-defined fields that are not automatically defined as access methods in join queries. Any number of access methods may be defined using different combinations of subdefinitions of the key. The name of each access method must be unique and must begin with the name of the access method followed by an underscore and an extension. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 389 For example, if the PDM control key CUSTCTRL were defined as 10 characters and sub-defined as CUSTCUID=2 and CUSTNUMB=8, the following Access_method should be added to the CUST file: <File Name=”CUST”> <Access_method Name=”CUSTCTRL_IDNUM” Type=”HASH” Unique=”TRUE” Fields=”CUSTCUID, CUSTNUMB”/> </File> This Access_method will allow the join optimizer to use the control key to access the file if a join query specifies the CUSCUID and CUSTNUMB fields. Without this access method the join optimizer will not recognize that the two fields compose the control key and will produce a scan of the file. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 390 File Example A PDM database or CICS VSAM system contains file(s) that are defined with a large data item named DATA. COBOL copybooks define the record layouts. The PART file has the following copybook: 05 PART-DATA. 10 PART-NUMBER PIC X(15). 10 PART-DESCRIPTION PIC X(30). 10 PART-LIST-PRICE PIC 9(6)V99 COMP-3. 10 PART-DEALER-PRICE PIC 9(6)V99 COMP-3. 10 PART-WAREHOUSE-PRICE PIC 9(6)V99 COMP-3. 10 PART-COST PIC 9(6)V99 COMP-3. 10 PART-QTY-ON-HAND PIC 9(8) COMP-3. 10 PART-QTY-ON-ORDER PIC 9(8) COMP-3. 10 PART-AVG-MONTHLY-SALES PIC 9(8) COMP-2. The XML definition for this copybook would be as follows: <File Name="PART"> <Field Name="PARTDATA"> <Subfield Name="PART-NUMBER" Type="CHARACTER" Length="15" Nulls=”NOT_NULL” /> < Subfield Name="DESCRIPTION" Type="CHARACTER" Length="30" Nulls=”ALLOWED” /> < Subfield Name="LIST-PRICE" Type="UNSIGNED-PACKED" Length="5" Decimals="2" Nulls=”NOT_NULL” /> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 391 < Subfield Name="DEALER-PRICE" Type="UNSIGNED-PACKED" Length="5" Decimals="2" Nulls=”NOT_NULL” /> < Subfield Name="WAREHOUSE-PRICE" Type="UNSIGNED-PACKED" Length="5" Decimals="2" Nulls=”NOT_NULL” /> < Subfield Name="COST" Type="UNSIGNED-PACKED" Length="5" Decimals="2" Nulls=”NOT_NULL” /> < Subfield Name="QTY-ON-HAND" Type="UNSIGNED-PACKED" Length="5" Nulls=”NOT_NULL” Default=”0” /> < Subfield Name="QTY-ON-ORDER" Type="UNSIGNED-PACKED" Length="5" Nulls=”NOT_NULL” Default=”0” /> < Subfield Name="AVG-MONTHLY-SALES" Type="FLOAT" Length="8" Nulls=”NOT_NULL” Default=”0” /> </Field> </File> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 392 Unsigned packed fields have a sign nibble even though they are unsigned. In order to store 8 digits in the field, there must be 10 digits with one digit being wasted. 10 digits can be stored in 5 packed characters. View A CID Adapter View can be defined to provide complex navigation rules to access multiple PDM and/or VSAM files in a single view. This allows simple SQL select statements to be used to access complex data relationships in PDM and VSAM. This is accomplished by adding CID Adapter View definitions to the CID Adapter Extensions XML file, which is read by the CID Adapter Server to extend the CID Adapter schema. Once the CID Adapter View has been added to the schema, you can create a foreign table on that CID Adapter View. You then select from the foreign table just as you would from a foreign table created for an individual PDM or VSAM file. See "View example" on page 400 for a complete example. The View element has the following structure: <View > <Access/> </View> The View element has the following attribute: Attribute Name Required Description Name Yes Up to 32 character name of the view. It may include alphabetic characters, numbers, and dashes (but not underlines). External_name No Up to 32 character external name of the view. If present, this name will be used in the foreign table definition. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 393 Access An Access element defines one database or CICS VSAM access to the named file. The first Access element in the View will always be accessed first. It must not have a Using, From, Via, Once or Reverse attribute. Subsequent Access elements are executed in the order specified and require either a Using or Via attribute, or both. Any number of Access elements may be included in a View. The Access element has the following structure: <Access > </Access > An Access element has the following attributes. These are discussed in more detail later in this section. Attribute Name Required Description Name Yes The file name to be accessed. May include a comma separated list of record codes enclosed in parentheses; for example, (HD,IT). Alias No Up to 32 character alias for this access. From No An alias name or file name and a single record code. Provides a starting point for a linkpath Access Using No A comma-separated list of field names or string literals composing the key for this Access. Via No An access method name or comma-separated list of field names composing the key of an access method enclosed in parentheses. Once No Either TRUE or FALSE. If set to TRUE the Access will return only one record. Reverse No Either TRUE or FALSE. If set to TRUE the records will be returned in reverse order. The WHERE clause of the SQL query or the foreign table query is used to optimize the first Access. If no key values are supplied, a scan is implied. The WHERE clause is also used to qualify the records read for each Access. Records are qualified after they are read. If a record does not qualify, the next record is read. The WHERE clause is also used to qualify the view record after all Accesses have been executed. View qualification will be done when the WHERE clause contains a comparison between two attributes read from two different Accesses. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 394 If an Access has no records (MRNF or END. is returned on the read), the fields requested from that Access will be set to NULL. If no keys are required from that Access, the next Access is executed. If keys are required from the NULL record, all of the fields from the remaining Accesses will be set to NULL. All Accesses in a view will be performed even if no data is being selected from them. This can cause what appears to be duplicate records in the result set. Duplicate records in the result set can be eliminated by using the UNIQUE keyword in the select list. Examples <Access Name=”PO1=PORD” …/> <Access Name=”POLN(HD)” …/> <Access Name=”POLN(HD,LN)” …/> Name This attribute has the following syntax: Name=”[alias-name=]file-name [(record-code[, record-code...])]” Name identifies the dataset and record containing the field values to be returned. One or more record codes may be specified with this attribute. When more than one record code is specified an OR is implied. The dataset is read until one of the record codes specified is found. The fields requested in the select clause for that record code are returned with the remaining fields from all other record codes set to NULL. Alias-name Alias allows you to assign an identifier to a file-name so as to distinguish ambiguous Access elements; that is, multiple Access elements for the same data-set. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 395 From This attribute has the following syntax: From=”alias-name | file-name [(record-code)]” From applies only to PDM file access; it does not apply to VSAM file access. From provides a starting point for a linkpath Access. It may be used to identify a particular Access from which to extract the control key or refer, if the named access method is a linkpath. Also see the discussion of the Via attribute, below, for additional information. The From attribute can only be used with a Via attribute that specifies a linkpath. Either an alias name or data-set name may be specified. If the specified Access is for a primary data-set, the control key of the record read by that Access is used as the referback of this Access and the refer is set to the linkpath name. If the specified Access is for a related dataset, the referback and refer fields from the referenced Access are used for this Access. If the specified Access contains multiple record codes, the From attribute must contain one of the specified record codes. Three uses are possible: ♦ To access an ordered chain when different coded records, such as header(HD)/detail(LN), are stored on the same linkpath. The From attribute refers to a related file Access. The current refer and referback field of the referenced Access will be used to begin this Access. The Access returns records until a record is read that contains a different record code than the code of this Access. Examples <Access Name=”PORD”/> <Access Name=”POLN(HD)” Via=”PORDLK01”/> <Access Name=”POLN(LN)” Via=”PORDLK01” From=”POLN(HD)”/> ♦ To switch linkpaths from one primary dataset to another using the referback field of the linkpath as the control key for the Access. Examples <Access Name=”SUPP” <Access Name=”POLN(HD)” Via=”SUPPLK01”/> <Access Name=”POLN(LN)” Via=”PORDLK01” From=”POLN(HD)”/> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 396 ♦ To specify the primary Access from which the linkpath specified in a Via attribute is to be accessed when there is more than one Access attribute for the same primary data-set. The control key of the primary Access specified will be used with the LKxx refer to start the access. Examples <Access Name=”SUPP” Alias=”SUPPLIER”/> <Access Name=”SUPP” Alias=”WAREHOUSE” Using “SUPPLIER:SUPPWHSE”/> <Access Name=”POLN(HD)” Via=”SUPPLK01” From=”WAREHOUSE”/> <Access Name=”POLN(LN)” Via=”PORDLK01” From=”POLN(HD)”/> These examples assume that the field SUPPWHSE contains the control key of a warehouse record for a supplier that is also in the supplier data-set. Using This attribute has the following syntax: Using=”[(][alias-name:]field-name | subfield | “string-literal”[, [alias-name:]field-name…]][)]” Using may be used by itself to specify the control key value of a PDM primary file or may be used in conjunction with a Via attribute to specify the value of the key for an indexed access method named in the Via attribute. The Using attribute may not be used with a Via attribute that specifies a linkpath. See the discussion of the Via attribute, below, for additional information. The fields referenced must be available from Access elements previously defined in the view. They may not refer to fields in the current or subsequent Access elements. Alias names may be used to specify a specific Access from which to extract the key value. If no alias name is specified, the next prior Access containing the field will be chosen. String literals may be supplied in the Using attribute using double quoted strings (e.g. “string-literal”). Examples <Access Name=”INVC”/> <Access Name=”BRAN” Using=”INVCBRAN”/> <Access Name=”CUST” Via=”CUSTSK01" Using=”INVCCUST”/> These examples assume that there is an index on the customer file. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 397 In this PDM example, the INVC file is accessed first. Then the BRAN file is accessed using the field INVCBRAN from the INVC file. Then the CUST file is accessed via the index named CUSTSK01 using a field from the INVC file named INVCCUST. This example assumes that there is an index on the CUST file. <Access Name=”invoice”/> <Access Name=”branch” Using=”invoice_branch_no”/> In this VSAM example, the invoice file is accessed first. Then the branch file is accessed using the field invoice_branch_no from the invoice file. Via Via defines the access method to use to access this dataset. The named access method can be either a secondary key name or a linkpath name for PDM or it can be an alternate index name for a VSAM file. If the named access method is a secondary key (for PDM) or an alternate index (for VSAM), the Access element must contain a Using attribute (see above) to identify the key value. If the named access method is a linkpath, the From attribute (see above) may be used to identify a particular Access from which to extract the control key or refer. If a From attribute is not used, the control key of the previously defined primary dataset for the linkpath is assumed. When the Via attribute is used, the Once, Reverse or From attributes may also be specified. Examples <Access Name=”INVC”/> <Access Name=”INVL” Via=”INVCLK01”/> <Access Name=”CUST Via=”CUSTSK01” Using=”INVCCUST” In this PDM example, the INVC file is accessed first. Then the INVL file is accessed using the INVCLK01 linkpath from the INVC file. Then the CUST file is accessed via the index CUSTSK01 in the CUST file using the INVCCUST field from the INVC file. <Access Name=”INVOICE”/> <Access Name=”INVLINE” Via=”INVLNPTH” Using=”INVOICE_NO”/> In this VSAM example, the invoice file is accessed first. Then the invline file is accessed using the alternate index access method named invline using the invoice_no field from the invoice file. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 398 Once This attribute has the following syntax: Once=”TRUE | FALSE” Once indicates whether or not only the first record is to be retrieved from the data-set. This attribute can be used only if the Via attribute is also used. The named access method can be either a linkpath or a secondary key. Examples <Access Name=”INVC”/> <Access Name=”INVL” Via=”INVLLK01” Once=”TRUE”/> <Access Name=”INVOICE”/> <Access Name=”INVLINE” Via=”INVLNPTH” Using=”INVOICE_NO Once=”TRUE”/> In this VSAM example, the invoice file is accessed first. Then the invline file is accessed ONCE using the alternate index access method named invline using the invoice_no field from the invoice file. Reverse This attribute has the following syntax: Reverse=”TRUE | FALSE” Reverse is not applicable to VSAM files. Reverse indicates whether or not the named access method will be read in reverse order. This attribute can be used only if the Via attribute is also used. Examples <Access Name=”INVC”/> <Access Name=”INVL” Via=”INVLLK01” Reverse=”TRUE”/> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 399 View example The following is an example of a CID Adapter View in the CID Adapter Extensions XML file: <View Name=”INVOICE-CUSTOMER”> <Access=”INVC”/> <Access=”INVL” Via=”INVLLK01”/> <Access=”CUST” Via=”CUSTSK01” Using=”INVCCUST”/> </View> With this view definition in the CID Adapter Extensions XML file, a foreign table can be created that uses this CID Adapter View named INVOICE-CUSTOMER: create foreign_table invoice_cust (invoice_no char(4), invoice_slsprsn char(4), invoice_total char(9), invoice_branch char(4). invoice_date numeric(5), invoice_customer char(6), invline_invoice char(4), invline_product char(9). invline_qnty numeric(5), invline_price numeric(9,2), customer_no char(6), customer_name char(20), customer_addr char(20), customer_city char(13), customer_state char(2), customer_zipcode numeric(5), customer_class char(2), customer_cr_code char(2), customer_cr_limit numeric(9,2), customer_branch char(4)) as Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 400 select invoice_no, invoice_slsprsn, invoice_total, invoice_branch, invoice_date, invoice_customer, invline_invoice, invline_product, invline_qnty, invline_price, customer_no, customer_name, customer_addr, customer_city, customer_state, customer_zipcode, customer_class, customer_cr_code, customer_cr_limit, customer_branch from “INVOICE-CUSTOMER” Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 401 The following is an example of a CID Adapter View in the CID Adapter Extensions XML file for VSAM files: <View Name=”INVOICE-CUSTOMER”> <Access=”INVOICE”/> <Access Name=”INVLINE” Via=”INVLNPTH” Using=”INVOICE_NO”/> <Access=”CUSTOMER” Via=”CUSTOMER” Using=”INVOICE_CUST_NO”/> </View> With this view definition in the CID Adapter Extensions XML file, a foreign table can be created that uses this CID Adapter View name INVOICE-CUSTOMER: create foreign_table invoice_cust (invoice_no char(4), invoice_slsprsn char(4), invoice_total char(9), invoice_branch char(4). invoice_date numeric(5), invoice_customer char(6), invline_invoice char(4), invline_product char(9). invline_qnty numeric(5), invline_price numeric(9,2), customer_no char(6), customer_name char(20), customer_addr char(20), customer_city char(13), customer_state char(2), customer_zipcode numeric(5), customer_class char(2), customer_cr_code char(2), customer_cr_limit numeric(9,2), customer_branch char(4)) as select invoice_no, invoice_slsprsn, invoice_total, invoice_branch, invoice_date, invoice_customer, invline_invoice, invline_product, invline_qnty, invline_price, customer_no, customer_name, customer_addr, customer_city, customer_state, customer_zipcode, customer_class, customer_cr_code, customer_cr_limit, customer_branch from “INVOICE-CUSTOMER” Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 402 Cincom recommends that you include all the fields in all three files in this foreign table, because you can only create one foreign table for the view. You can then create SQL Access views that contain only the fields that you wish to display. See "Creating a view" on page 57 for more information. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Extending the CID Adapter Schema 403 COPY2XML COBOL copybook tool The Copy2XML tool is available only on Windows. In order to assist you in creating the CID Adapter Extensions XML file, we have provided a tool that will convert a COBOL copybook into XML-formatted output. The Copy2XML tool will read a COBOL copybook and create a file that follows the XML format described in the section "Extending the CID Adapter Schema" on page 371. This output can be used to create a CID Adapter Extensions XML file or merged into an existing CID Adapter Extensions XML file. To execute: 1. If the copybook(s) do not currently exist on Windows, move the copybook(s) to Windows in the ORDB directory using a utility such as FTP. 2. Open a command prompt window on the PC and change the directory to your ORDB directory. 3. Execute the Copy2XML as follows for each copybook: PDM Copy2XML -c <copybook name> -d <database_type> -x <XML output file name> -f <native file name> -e <PDM element name> -r <record code> -l <list file name> where: <copybook name> is the input copybook filename. <database_type> is PDM ; default is PDM. <XML output file name> is the name where XML output for copybook is placed. Default is output.xml. <native file name> is the name of the PDM file that the copybook describes. <PDM element name> {PDM ONLY} is the name of the PDM element that this copybook redefines. <record code> {PDM ONLY} is the record code of the related file that this copybook redefines. <list file name> is the name of a file on the PC that processes multiple copybooks in one execution. If this option is specified, the only other valid option is -x <XML output file name>. See #6 for further details on the list file. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: COPY2XML COBOL copybook tool 404 VSAM Copy2XML -c <copybook name> -d <database_type> -x <XML output file name> -f <native file name> -o <ORDB Server name> -f <foreign database name> -u <ORDB user name> -p <ORDB password> -l <list file name> where: <copybook name> is the input copybook filename. <database_type> is PDM ; default is PDM. <XML output file name> is the name where XML output for copybook is placed. Default is output.xml. <native file name> is the name of the file that the copybook describes. For VSAM this is the name in the VSAM_FILE_LIST. Defaults to copybook name. <ORDB Server name> [VSAM ONLY] is the name of the ORDB Server that will connect to the CID Adapter Server. <foreign database name> {VSAM ONLY} is the name of the foreign file that contains the native file that this copybook redefines. <user name> {VSAM ONLY} is the name of the DBA user for the ORDB Server. <ORDB password> {VSAM ONLY} is the password for the DBA user for the ORDB Server. <list file name> is the name of a file on the PC that processes multiple copybooks in one execution. If this option is specified, the only other valid option is -x <XML output file name>. See #6 for further details on the list file. 4. This utility will generate a file named <XML output file name> and a log file in this same directory named Copy2XML.log. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: COPY2XML COBOL copybook tool 405 5. Review the generated file to ensure: VSAM ♦ That the File element has a Name parameter that matches the VSAM file name in the VSAM_FILE_LIST parameter. VSAM ♦ That the high-level/base Field element has NAME=<file-name>_BASE. PDM ♦ That the File element has a Name parameter that is the 4 character PDM file name. PDM ♦ If it is a coded file you must add Record_code=”<record-code>”. This is not generated by the Copy2XML tool. See "File" on page 374 for further information. 6. If you have more than one copybook you wish to add to the XMLFILE, you may use the –l parameter on the command file. This allows you to create an input file that lists all the copybooks and their parameters in this form. This parameter (-l) may only be accompanied by one other parameter on the command line: the –x parameter, which specifies the name of the XML output file. The default name is output.xml if –x is not supplied. All the copybooks in the list file will be translated into the same output file. The parameters within the list file differ slightly for PDM copybooks versus VSAM copybooks. PDM ♦ List parameters for each copybook on a separate line in this order: <copybook name> <database type> <native file name> <PDM element name> <record code> VSAM ♦ List parameters for each copybook on a separate line in this order: < copybook name> <database type> <native file name> <ORDB Server name> <foreign database name> <ORDB user name> <ORDB password > Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: COPY2XML COBOL copybook tool 406 7. The resulting output file is then moved to the CID Adapter Server platform using a utility such as FTP. It can then be used as the CID Adapter Extensions XMLFILE or merged into an existing XMLFILE for the CID Adapter Server. If merging this file into an existing XMLFILE, remove the first two lines of the <XML output file>: <?xml version="1.0" encoding="UTF-16" standalone="no" ?> <Adapter_Extensions> and the last line of the <XML output file>: </Adapter_Extensions> These lines will already be present in the existing XMLFILE. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: COPY2XML COBOL copybook tool 407 Example Copybook named branch.cob on Windows in the ORDB directory. This describes a VSAM file in which BRANCH-NUMBER is the primary key and BRANCH-REGION is an alternate index whose path name is BRANREG: 05 BRANCH-DATA. 10 BRANCH-NUMBER PIC X(4). 10 BRANCH-NAME PIC X(20). 10 BRANCH-REGION PIC X(3). 10 BRANCH-ADDRESS PIC X(20). 10 BRANCH-CITY PIC X(13). 10 BRANCH-STATE-CODE PIC X(2). 10 BRANCH-ZIPCODE PIC 9(5). 10 BRANCH-DELIVERY-ROUTE PIC X(2). 10 BRANCH-STAFF-QUOTA PIC 9(5). 10 BRANCH-SALES-QUOTA PIC 9(7)v99. To execute: C:\%ORDB%\Copy2XML -c branch.cob –f BRANCH –d VSAM –o burry_vsam –f vsam_cics –u dba –p test Resulting XML file: <?xml version="1.0" encoding="UTF-16" standalone="no" ?> <Adapter_Extensions> <File Name="BRANCH"> <Field Length="85" Name="BRANCH-BASE"> <Subfield Length="04" Name="BRANCH_KEY" Type="CHARACTER" External Name = “BRANCH-NUMBER”/> <Subfield Length="20" Name="BRANCH-NAME" Type="CHARACTER"/> <Subfield Length="03" Name="BRANREG_KEY" Type="CHARACTER" External Name=”BRANCH-REGION”/> <Subfield Length="20" Name="BRANCH-ADDRESS" Type="CHARACTER"/> <Subfield Length="13" Name="BRANCH-CITY" Type="CHARACTER"/> <Subfield Length="02" Name="BRANCH-STATE-CODE" Type="CHARACTER"/> <Subfield Decimals="0" Length="05" Name="BRANCH-ZIPCODE" Type="UNSIGNED_NUMERIC"/> <Subfield Length="02" Name="BRANCH-DELIVERY-ROUTE" Type="CHARACTER"/> <Subfield Decimals="0" Length="05" Name="BRANCH-STAFF-QUOTA" Type="UNSIGNED_NUMERIC"/> <Subfield Decimals="2" Length="09" Name="BRANCH-SALES-QUOTA" Type="UNSIGNED_NUMERIC"/> </Field> </File> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: COPY2XML COBOL copybook tool 408 </Adapter_Extensions> Copybook named poln.cob for a PDM record-coded file named POLN. The record code is PD and the PDM element that the copybook subdefines/redefines is POLNDATA: 03 POLN-DATA. 05 PO-NO PIC X(6). 05 PO-RECEIVED-DATE PIC 9(5). 05 PO-RECEIVED-QUANTITY PIC 9(5). 05 PO-RECEIVED-DELIVERY PIC 9(3). 05 PO-RECEIVED-PRODUCT-NO PIC x(9). To execute: C:\%ORDB%\Copy2XML -c poln.cob –f POLN –d PDM –p POLNDATA –r PD Output: <?xml version="1.0" encoding="UTF-16" standalone="no" ?> <Adapter_Extensions> <File Name="POLN" Record_Code=”PD” > <Field Length="28" Name="POLNDATA"> <Subfield Length="06" Name="PO-NO" Type="CHARACTER"/> <Subfield Decimals="0" Length="05" Name="PO-RECEIVED-DATE" Type="UNSIGNED_NUMERIC"/> <Subfield Decimals="0" Length="05" Name="PO-RECEIVED-QUANTITY" Type=" UNSIGNED_NUMERIC "/> <Subfield Decimals="0" Length="03" Name="PO-RECEIVED-DELIVERY" Type=" UNSIGNED_NUMERIC "/> <Subfield Length="09" Name="PO-RECEIVED-PRODUCT-NO" Type="CHARACTER"/> </Field> </File> </Adapter_Extensions> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: COPY2XML COBOL copybook tool 409 If you wished to generate output for both of these copybooks using the list file the command line would be: C:\%ORDB%\Copy2XML -l list.txt –x xmlout.xml The content of input file list.txt: branch.cob BRANCH VSAM burry_vsam vsam_cics dba test poln.cob POLN PDM POLNDATA PD Output: <?xml version="1.0" encoding="UTF-16" standalone="no" ?> <Adapter_Extensions> <File Name="BRANCH"> <Field Length="85" Name="BRANCH_BASE"> <Subfield Length="04" Name="BRANCH_KEY" Type="CHARACTER" External Name=”BRANCH-NUMBER”/> <Subfield Length="20" Name="BRANCH-NAME" Type="CHARACTER"/> <Subfield Length="03" Name="BRANREG_key" Type="CHARACTER" External Name=”BRANCH-REGION”/> <Subfield Length="20" Name="BRANCH-ADDRESS" Type="CHARACTER"/> <Subfield Length="13" Name="BRANCH-CITY" Type="CHARACTER"/> <Subfield Length="02" Name="BRANCH-STATE-CODE" Type="CHARACTER"/> <Subfield Decimals="0" Length="05" Name="BRANCH-ZIPCODE" Type="UNSIGNED_NUMERIC"/> <Subfield Length="02" Name="BRANCH-DELIVERY-ROUTE" Type="CHARACTER"/> <Subfield Decimals="0" Length="05" Name="BRANCH-STAFF-QUOTA" Type="UNSIGNED_NUMERIC"/> <Subfield Decimals="2" Length="11" Name="BRANCH-SALES-QUOTA" Type="UNSIGNED_NUMERIC"/> </Field> </File> <File Name="POLN" Record_Code=”PD” > <Field Length="28" Name="POLNDATA"> <Subfield Length="06" Name="PO-NO" Type="CHARACTER"/> <Subfield Decimals="0" Length="05" Name="PO-RECEIVED-DATE" Type="UNSIGNED_NUMERIC"/> <Subfield Decimals="0" Length="05" Name="PO-RECEIVED-QUANTITY" Type=" UNSIGNED_NUMERIC "/> <Subfield Decimals="0" Length="03" Name="PO-RECEIVED-DELIVERY" Type=" UNSIGNED_NUMERIC "/> <Subfield Length="09" Name="PO-RECEIVED-PRODUCT-NO" Type="CHARACTER"/> </Field> </File> Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: COPY2XML COBOL copybook tool 410 </Adapter_Extensions> The resulting XML file is then moved to the CID Adapter Server platform using a utility such as FTP. The following table shows how the COBOL Picture clause is converted to the SQL Access data type in the XML file: SQL ACCESS TYPE PLATFORM COBOL PICTURE COBOL USAGE CHARACTER All X(n) BIT All Any UNSIGNED_BINARY All 9(n) SIGNED_BINARY All S9(n) COMP-4 UNSIGNED_PACKED All 9(n) COMP COMP-3 SIGNED_PACKED All S9(n) COMP COMP-3 FLOAT All S9(n) COMP-1 COMP-2 UNSIGNED_NUMERIC All 9(n) DISPLAY UNSIGNED_NUMERIC MVS Treated as unsigned numeric 9(n) DISPLAY UNSIGNED_NUMERIC VMS/UNIX Treated as unsigned numeric 9(n) DISPLAY UNSIGNED_NUMERIC VMS/UNIX Treated as unsigned numeric 9(n) DISPLAY UNSIGNED_NUMERIC VMS/UNIX Treated as unsigned numeric 9(n) DISPLAY COBOL SIGN COMP-4 LEADING_ZONED MVS S9(n) DISPLAY LEADING TRAILING_ZONED MVS S9(n) DISPLAY TRAILING TRAILING_ZONED VMS/UNIX S9(n) DISPLAY TRAILING LEADING_SEPARATE All S9(n) DISPLAY LEADING SEPARATE TRAILING_SEPARATE All S9(n) DISPLAY TRAILING SEPARATE LEADING_OVERPUNCH VMS/UNIX S9(n) DISPLAY LEADING TRAILING_OVERPUNCH VMS/UNIX S9(n) DISPLAY TRAILING Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: COPY2XML COBOL copybook tool 411 Modifying the ASCII/EBCDIC translation tables The CID Adapter Server uses two translation tables that translate characters between EBCDIC (SAA code page 1047) and ASCII (ISO 8859-1 Latin-1). Listings of these tables are provided below. If you desire, you can override one or both of these tables. Assembler versions of these tables are contained in the MACLIB library installed from the release tape. Each override table is coded in a separate load module. The load module has exactly 256 bytes of translation values. The translation tables can be generated using any language desired as long as the entry point address of the load module points to the first byte of data. The load modules must be placed in the JOBLIB or STEPLIB library so they can be loaded during CID Adapter Server initialization. The TOASCII= and TOEBCDIC= initialization parameters are used to specify the names of the modules to be loaded for translation. Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Modifying the ASCII/EBCDIC translation tables 412 EBCDIC to ASCII default translation table unsigned char EbcdicToAscii[256] = { 0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f, /* 00 - 07 */ 0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 08 - 0F */ 0x10, 0x11, 0x12, 0x13, 0x9d, 0x0a, 0x08, 0x87, /* 10 - 17 */ 0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f, /* 18 - 1F */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b, /* 20 - 27 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* 28 - 2F */ 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, /* 30 - 37 */ 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* 38 - 3F */ 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /* 40 - 47 */ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* 48 - 4F */ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /* 50 - 57 */ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* 58 - 5F */ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /* 60 - 67 */ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* 68 - 6F */ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /* 70 - 77 */ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* 78 - 7F */ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 80 - 87 */ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* 88 - 8F */ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /* 90 - 97 */ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* 98 - 9F */ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* A0 - A7 */ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae, /* A8 - AF */ 0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /* B0 - B7 */ 0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7, /* B8 - BF */ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* C0 - C7 */ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* C8 - CF */ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* D0 - D7 */ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /* D8 - DF */ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* E0 - E7 */ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* E8 - EF */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* F0 - F7 */ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f /* F8 - FF */ }; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Modifying the ASCII/EBCDIC translation tables 413 ASCII to EBCDIC default translation table unsigned char AsciiToEbcdic[256] = { 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 00 - 07 */ 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 08 - 0F */ 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 10 - 17 */ 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 18 - 1F */ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 20 - 27 */ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 28 - 2F */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 30 - 37 */ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 38 - 3F */ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 40 - 47 */ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 48 - 4F */ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 50 - 57 */ 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 58 - 5F */ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 60 - 67 */ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 68 - 6F */ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 70 - 77 */ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 78 - 7F */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, /* 80 - 87 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 88 - 8F */ 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 90 - 97 */ 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 98 - 9F */ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* A0 - A7 */ 0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc, /* A8 - AF */ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* B0 - B7 */ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* B8 - CF */ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* C0 - C7 */ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* C8 - DF */ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* D0 - D7 */ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59, /* D8 - DF */ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* E0 - E7 */ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* E8 - EF */ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* F0 - F7 */ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* F8 - FF */ }; Administration Guide, P25-9501-04 Appendix: A. Advanced Topics Section: Modifying the ASCII/EBCDIC translation tables 414 B. S1_ADAPTER_SETUP OpenVMS **************************************************************** CINCOM SUPRA CID Adapter Setup Script **************************************************************** This script may be used to set up any number of CID Adapter Servers for the V1HUB PDM System. The current user V1HUBDEV will be the owner of the files associated with all PDM Adapters created by this s1_adapter_setup session. The files associated with the PDM Adapters will be maintained in the directory [V1HUBDEV]. -> Continue? (Y/N) [Y]: The following is a list of the V1HUB SUPRA PDM databases. Each CID Adapter Server is associated with exactly one PDM database. 1. 001_TESTDB GROUP_000212 2. BURRYS GROUP_000212 3. SYSWID SYSTEM_TABLE -> Enter your menu selection or press ENTER to exit CID Adapter Server setup: 2 The adapter name must be unique on this system. In order make the adapter name unique, it can be extended with 1 to 4 alpha numeric characters. For example, you might add PROD to one adapter_name and TEST to another. -> Enter the adapter name extension or press ENTER for none: Each CID Adapter Server must have a TCPIP port number associated with it. The port number must be available and unique on this machine. The port number will be used in the SQL Access REGISTER FOREIGN DATABASE statement to identify which CID Adapter Server will service the database requests for the CID Foreign Database. -> Enter the TCPIP port number to be used for this CID Adapter Server [5014]: The TCPIP service BURRYS has a limit Administration Guide, P25-9501-04 Appendix: B. S1_ADAPTER_SETUP Section: OpenVMS 415 parameter that controls the maximum number of copies that are allowed to run. One copy is required for each client connection, therefore, the limit parameter must correspond to the MAX_ACTIVE parameter specified in the SQL Access REGISTER statement for this CID Foreign Database. -> Enter the TCPIP limit parameter to be used for this CID Adapter Server [10]: Each CID Adapter Server has a record limit that specifies the maximum number of PDM reads that are allowed to be used to retrieve data during a query. The default of 0 indicates that there is no limit. -> Enter the MAX_RECORDS_LIMIT to be used for this CID Adapter Server [0]: Copying or creating BURRYS initialization files in [V1HUBDEV]. Creating BURRYS_INIT.DAT in [V1HUBDEV] Creating BURRYS_COORD_START.COM in [V1HUBDEV] -> Creating BURRYS_SERVER_START.COM in [V1HUBDEV] The CID Adapter Coordinator can be either submitted to a batch queue or run detached. Which would you prefer? (1=batch, 2=detached) [1]: Creating BURRYS_RUN.COM in [V1HUBDEV] Creating BURRYS_STOP.COM in [V1HUBDEV] -> Press ENTER to continue: The MAX_RECORDS_LIMIT parameter of the BURRYS_INIT.DAT file has been set to 0. The TCPPORT parameter of the BURRYS_INIT.DAT file has been set to 5014. The DBMOD parameter of the BURRYS_INIT.DAT file has been set to BURRYS. -> Press ENTER to continue: The TCPIP service BURRYS has been created or modified with the following information: port=5014 file=[V1HUBDEV]BURRYS_SERVER_START.COM user=V1HUBDEV limit=10 Administration Guide, P25-9501-04 Appendix: B. S1_ADAPTER_SETUP Section: OpenVMS 416 process=BURRYS -> Press ENTER to continue: The BURRYS CID Adapter Server is now ready to run. The adapter can be run by executing the following command: @[V1HUBDEV]BURRYS_RUN The adapter can be stopped by executing the following command: @[V1HUBDEV]BURRYS_STOP If you are in the process of installing SQL Access, it is recommended that you start the BURRYS PDM Adapter Server before continuing with Part 2 of the Windows installation. This will allow you to define PDM foreign tables using VSQL. -> Start the BURRYS CID Adapter Server now? (Y/N) [Y]: Job BURRYS (queue SYS$BATCH, entry 44) started on SYS$BATCH This completes the set up for BURRYS CID Adapter Server in the V1HUB PDM System. -> Press ENTER to set up a CID Adapter Server for another database or enter Q to quit: The following is a list of the V1HUB SUPRA PDM databases. Each CID Adapter Server is associated with exactly one PDM database. 1. 001_TESTDB GROUP_000212 2. BURRYS GROUP_000212 3. SYSWID SYSTEM_TABLE -> Enter your menu selection or press ENTER to exit CID Adapter Server setup: Exiting s1_adapter_setup Administration Guide, P25-9501-04 Appendix: B. S1_ADAPTER_SETUP Section: OpenVMS 417 UNIX **************************************************************** CINCOM SUPRA PDM Adapter Setup Script **************************************************************** This script may be used to set up any number of CID Adapter Servers for the XSQL PDM System. The CID Adapter Server service level 2400 has been installed in the standard PDM install directory /supra1/adapters. The current user xsql will be the owner of the files associated with all PDM Adapters created by this s1_adapter_setup session. The files associated with the PDM Adapters will be maintained in the directory /supra1/XSQL. -> Continue? (Y/N) [Y]: The following is a list of the XSQL SUPRA PDM databases available to user xsql. Each CID Adapter Server is associated with exactly one PDM database. Building database menu. Please wait... 1. BURRYS -> group_523 Enter your menu selection or press ENTER to exit CID Adapter Server setup: 1 The adapter name must be unique on this system. In order to make the adapter name unique it can be extended with 1 to 4 alpha numeric characters. For example, you might add PROD to one adapter_name and TEST to another. -> Enter the adapter name extension or press ENTER for none: Each CID Adapter Server must have a TCPIP port number associated with it. The port number must be available and unique on this machine. The port number will be used in the SUPRA Relational Access REGISTER FOREIGN DATABASE statement to identify which CID Adapter Server will service the database requests for the CID Foreign Database. -> Enter the TCPIP port number to be used for this CID Adapter Server [5010]: Administration Guide, P25-9501-04 Appendix: B. S1_ADAPTER_SETUP Section: UNIX 418 The /etc/services file is not writable and cannot be updated. Please insert the following line in /etc/services: BURRYS 5010/tcp The service BURRYS 5010/tcp has been appended to the /supra1/adapters/services file. Each CID Adapter Server has a record limit that specifies the maximum number of PDM reads that are allowed to be used to retrieve data during a query. The default of 0 indicates that there is no limit. -> Enter the MAX_RECORDS_LIMIT to be used for this CID Adapter Server [0]: Copying or creating BURRYS initialization files in /supra1/XSQL. Creating BURRYS.init in /supra1/XSQL -> Press ENTER to continue: The MAX_RECORDS_LIMIT parameter of the BURRYS.init file has been set to 0. The TCPPORT parameter of the BURRYS.init file has been set to 5010. The DBMOD parameter of the BURRYS.init file has been set to BURRYS. -> Press ENTER to continue: The /supra1/XSQL/BURRYS_run script has been created. The /supra1/XSQL/BURRYS_stop script has been created. The BURRYS CID Adapter Server is now ready to run. The CID Adapter Server can be run by executing the following command: /supra1/XSQL/BURRYS_run The CID Adapter Server can be stopped by executing the following command: /supra1/XSQL/BURRYS_stop If you are in the process of installing SQL Access, it is recommended that you start the BURRYS CID Adapter Server before continuing with Part 2 of the Windows installation. This will allow you to define CID foreign tables using VSQL. Administration Guide, P25-9501-04 Appendix: B. S1_ADAPTER_SETUP Section: UNIX 419 -> Start the BURRYS CID Adapter Server now? (Y/N) [Y]: Waiting for BURRYS_server to start. BURRYS_server started - process number 9316. By default, the BURRYS_run and BURRYS_stop scripts are hard coded to use service level 2400. The scripts can be made service level independent by setting the UNIX environment variable, CSI_ADAPTER_SERVICE_LEVEL, to the desired service level prior to executing these scripts. This completes the set up for BURRYS CID Adapter Server in the XSQL PDM System. -> Press ENTER to set up a CID Adapter Server for another database or enter Q to quit: q Exiting s1_adapter_setup. Administration Guide, P25-9501-04 Appendix: B. S1_ADAPTER_SETUP Section: UNIX 420 Index A accessing a prefixed database 142 Active Schema Maintenance 38 active_requests parameter 345 add_member method 80 add_user method 69, 78 addvoldb utility 263 allow_core_dump UNIX CID Adapter Client parameter 174 ALLOW_CORE_DUMP MVS and CICS server parameter 99 OpenVMS server parameter 131 UNIX CID Adapter Server parameter 150 ALTER authorization 43 ALTER statement 43 ASCII translation (MVS) 412 attribute DEFAULT value 58 dropping 50 renaming 52 authorization 61 for a foreign table 62 granting 63 revoking 66 auto_volext_factor parameter 331 B backup_buffer_size parameter 334 backup_max_volume_size parameter 334 BIND_SCHEMA 99, 132, 151 MVS and CICS server parameter 99 OpenVMS server parameter 132 UNIX CID Adapter Server parameter 151 bound schema file 88 Administration Guide, P25-9501-04 Index bring down master and servers 311 b-tree check 297 BYPASS_OPT_CTRL_LINKPATH MVS and CICS server parameter 100 OpenVMS server parameter 133 UNIX CID Adapter Server parameter 152 BYPASS_OPT_INDEX MVS and CICS server parameter 100 OpenVMS server parameter 133 UNIX CID Adapter Server parameter 152 BYPASS_QUAL MVS and CICS server parameter 100 OpenVMS server parameter 133 UNIX CID Adapter Server parameter 152 C CHANGE clause 47 change_owner method 82 changedb utility 299 client/server mode 299 current password 300 DBA password 300 DBA user 300 new password 299 no specified options 301 prompt for remove password 300 remove password 300 return values 299 standalone mode 299 syntax 299 changing a SQL Access Server password 299 charcode_check parameter 356 421 checkdb utility 296 b-tree check 297 class check 297 client/server mode 297 DBA password 298 DBA user 297 heap page check 297 heap page check and b-tree check 297 page header check 297 quiet 297 return values 296 standalone mode 297 syntax 296 volume header check 297 volume path check 297 checking a SQL Access Server 296 checkpoint_interval_factor parameter 335 CICS CID Adapter Server starting on MVS 14 CID Adapter Client start and shutdown 23 starting 22 tailoring 160 CID Adapter Client component parameters allow_core_dump 174 db_pdm_database-name 175 dbname 176 display_options 176 driver_directory 177 init_file 177 interproc_key 178 lang 178 load_path 179 max_rcv_pdu 179 max_records_limit 180 oid_cache_max 180 read_only 180 schema_segment_address 181 schema_segment_size 181 schema_table_size 181 table_segment_address 182 trace 182 CID Adapter Client component parameters, summary UNIX 173 Administration Guide, P25-9501-04 Index CID Adapter Client component, traceable binaries 185 CID Adapter Coordinator 88 CID Adapter Server shutting down 20 shutting down on MVS 20 shutting down on MVS CICS 21 shutting down on OpenVMS 21 shutting down on UNIX 21 starting on MVS 14 starting on OpenVMS 15 starting on UNIX 16 startup procedure UNIX 148 tailoring 88 CID Adapter Server init file, coding rules UNIX 149 CID Adapter Server initialization parameters UNIX 149 CID Adapter View 393 CID foreign Database altering registration 42 overview 28 registration, removing 53 CID foreign Database parameters default_adapter_dir 355 overview 355 class check 297 class_representation_cache parameter 330 client component, tailoring UNIX 170 client/server mode 297, 299 client/server requests SQL Access Server parameters 345 coded record processing 38 coding rules OpenVMS server init file 130 UNIX CID Adapter Server init file 149 422 commdb utility 19, 307 bring down master and servers 311 command-line arguments 308 halt shutdown 308 identify host name 308 print master and server status 308, 311 quiet 308 quit commdb 311 reinitialize master 311 reinitialize SQL Access Master 308 shutdown database server 311 shutdown master and servers 308 shutdown server 311 shutdown SQL Access Server 308 SQL Access Server password 308 start database server 311 startup database SQL Access Server 308 terminate previous shutdown request 311 COMMIT statement 83 communication services SQL Access Server parameters 343 concurrency/locking SQL Access Server parameters 339 connecting to a database host 189 connecting to server SQL Access Client parameters 347 connection_timeout parameter 347 controlling communication between client and server 129 Administration Guide, P25-9501-04 Index copydb utility 285 overwriting a SQL Access Server 287 return values for 286 copying a SQL Access Server in quiet mode 287 specifying destination password 287 destination SQL Access Server password 288 source password 287 copying SQL Access Servers 285 CSI_FOREIGN_KEY OpenVMS 123 UNIX 148 CSI_INIT_FILE OpenVMS 123 UNIX 148 CSI_MESSAGE_FILE OpenVMS 123 UNIX 148 CSI_SERVER_SCHEMA OpenVMS 123 UNIX 148 CSI_TRACE_FILE OpenVMS 123 UNIX 148 CSI_TRACE_OPEN OpenVMS 123 CSIHUBSHR 124 CSIHUBSHR_DEB 124 CSISERVER 124 CSISERVER_DEB 124 CSV1PING 96 csv1ping utility 17 CSV1PORT 97 csv1shut utility 20 current password 300 D data type mapping 36 data validation parameters charcode_check 356 ignore_timezone 356 overview 356 423 database bring down master and servers 311 host connecting 189 Visual Administration Tool 189 identify host name 308 print master and server status 311 print SQL Access Master and Server status 308 quit commdb 311 reinitialize master 311 shutdown database server 311 shutdown master and servers 308 shutdown server 311 start database server 311 terminate previous shutdown request 311 database-specific parameters 176 DATBASUPD_LOCK 84 MVS and CICS server parameter 101 date-time data types properties of 384 range of supported values 384 db_authorizations class 76 db_pdm_database-name UNIX CID Adapter Client parameter 175 db_pdm-database-name 164, 175 db_user class 75 DBA password 300 DBA user 62, 300 DBA user, renaming 74 DBMOD OpenVMS server parameter 134 UNIX CID Adapter Server parameter 153 dbname 165, 176 UNIX CID Adapter Client parameter 176 DBUGLINK library 184 deadlock_detection_interval parameter 341 Administration Guide, P25-9501-04 Index default parameter values, defining 320 default_adapter_dir parameter 355 defining database parameter values UNIX 171 environment variables 148 initialization parameters OpenVMS 130 UNIX 149 installation parameter values UNIX 171 defining TCP/IP, for OpenVMS server component 129 deletedb utility 290 output redirection 291 quiet 291 SQL Access Server password 291 deleting a SQL Access Server after copying 287 deletedb utility 290 disable information banners 308 disk storage SQL Access Server parameters 331 display_options 166 UNIX CID Adapter Client parameter 176 DISPLAY_OPTIONS MVS and CICS server parameter 101 OpenVMS server parameter 134 UNIX CID Adapter Server parameter 153 displaying database transactions 211 ordbinit parameters 325 SQL Access release version 295 SQL Access Server lock information 214 transaction lock information 213 displaying current parameter values 176 domain changing 50 information 35 424 driver_directory 166, 176, 177, 178, 179, 180, 181, 182 UNIX CID Adapter Client parameter 177 DROP FOREIGN DATABASE statement 54 drop_member method 73, 80 drop_user method 73, 79 E EBCDIC translation (MVS) 412 environment variables 148 ORDB 143 overriding values in the ordbinit.txt file 321 error message SQL Access Server parameters 328 event_handler parameter 328 execute_queries_streaming parameter 349 exit, user logon MVS 111 OpenVMS 140 UNIX 158 F fbo_root parameter 346 find_user method 79 flush_data_buffer_factor parameter 336 foreign key file 88 foreign table altering 43 creating 30 definition, removing 53 joining 56 Foreign Table Generator Utility 30 foreign_table_query_specifica tion 33 G get_owner method 82 GRANT statement 61, 63 group 60 adding 70 group member, deleting 73 Administration Guide, P25-9501-04 Index H halt shutdown 308 heap page check 297 heap page check and b-tree check 297 HOSTNAME LOOKUP OpenVMS 138 UNIX 156 hot_fault_objects parameter 348 hot_load_workspace parameter 348 I ignore_timezone parameter 356 init_file 166 UNIX CID Adapter Client parameter 177 initial_workspace_table_size parameter 349 initialization file 88 initialization parameters defining for OpenVMS 130 defining for UNIX 149 interactive options 311 interproc_key, UNIX CID Adapter Client parameter 178 isolation_level parameter 341 J java method broker statusdb 315 K keep_schema_locks parameter 339 killing database transactions Visual Administration tool 212 killing transactions 316 options 317 SQL Access Server 187 425 killtran utility associated with SQL Access Client host 317 SQL Access Client program name 317 transaction index 317 user 317 disable banner informtion 317 display active transaction information 317 options 317 overview 316 password of the DBA user 317 prompt to verify 317 L lang 166 UNIX CID Adapter Client parameter 178 limitations maximum number of rows 349 Server FBOs 346 time set on queries 352 load_path 167 UNIX CID Adapter Client parameter 179 loaddb utility cached page size 284 debug flag 284 load schema file 266 modify system class 306 options for 306 override TCP/IP port 306 quiet 306 quiet mode 283 read-only schema 306 lock_escalation parameter 339 lock_timeout_in_secs parameter 339 lockf_enable parameter 340 locking 84 log file, specifying directory path 286 log_path parameter 336 log_reserve_space parameter 336 log_size parameter 337 Administration Guide, P25-9501-04 Index login method 78 logon exit MVS 111 OpenVMS 140 UNIX 158 LOGON_EXIT MVS and CICS server parameter 101 OpenVMS server parameter 134 UNIX CID Adapter Server parameter 153 M maintaining a SQL Access Server password 299 maintaining SQL Access Servers 247 master process, Visual Administration Tool 189 master utility 305 as an NT service 302 master_port_id parameter 344 max_block_count parameter 348 max_block_size parameter 348 max_clients parameter 345 MAX_DATAAREA, MVS and CICS server parameter 102 MAX_DATALIST, MVS and CICS server parameter 102 MAX_DATBAS_PDU, MVS and CICS server parameter 102 max_lock_structures parameter 342 max_ping_wait parameter 344 max_quick_size parameter 348 max_rcv_pdu 167 UNIX CID Adapter Client parameter 179 MAX_RCV_PDU, MVS and CICS server parameter 103 max_records_limit 168 UNIX CID Adapter Client parameter 180 426 MAX_RECORDS_LIMIT MVS and CICS server parameter 103 OpenVMS server parameter 135 UNIX CID Adapter Server parameter 154 maximum number of rows, limitations 349 maxlength_error_log parameter 329 maxtmp_pages parameter 331 media_failures_are_supported parameter 338 memory space SQL Access Server parameters 330 method broker printing status 315 statusdb 315 modify system class 306 moving SQL Access Servers 285 MULTI OpenVMS server parameter 135 UNIX CID Adapter Server parameter 154 MultiNet Server, defining TCP/IP 129 multiple_connection_shared_o bjects parameter 347 MVS and CICS server parameter ALLOW_CORE_DUMP 99 BIND_SCHEMA 99 BYPASS_OPT_CTRL_LINKPAT H 100 BYPASS_OPT_INDEX 100 BYPASS_QUAL 100 DATBASUPD_LOCK 101 DISPLAY_OPTIONS 101 LOGON_EXIT 101 MAX_DATAAREA 102 MAX_DATALIST 102 MAX_DATBAS_PDU 102 MAX_RCV_PDU 103 MAX_RECORDS_LIMIT 103 OPT_EXPLAIN 104 PDM_THREADS 104 Administration Guide, P25-9501-04 Index PDM_USER_DATA 104 SEARCHUPD_LOCK 105 SELECTUPD_LOCK 105 SERVER_CONNECTIONS 105 SHARED_MEM 106 SHUTDOWN_PASSWORD 106 SHUTDOWN_USER 106 STATS 107 TCP_HOSTFILE 108 TCP_HOSTNAME_LOOKUP 107 TCP_LISTEN_PORT 108 TCP_PREFIX 109 TR_TOASCII 109 TR_TOEBCDIC 109 TRACE_OPTIONS 110 VSAM_FILE_LIST 110 N network port 88 network_pagesize parameter 344 network_service_name parameter 343 new password 299 no prompt for DBA user/password 294, 298 no specified options 301 no trace binary 183, 184, 185 NT Service, running master utility 302 num_data_buffers parameter 330 num_log_buffers parameter 338 number of rows, limitations 349 O object_mode_character parameter 351 oid_cache_max 168 UNIX CID Adapter Client parameter 180 OpenVMS server component, no trace binary 185 OpenVMS server init file, coding rules 130 427 OpenVMS server parameter ALLOW_CORE_DUMP 131 BIND_SCHEMA 132 BYPASS_OPT_CTRL_LINKPAT H 133 BYPASS_OPT_INDEX 133 BYPASS_QUAL 133 DBMOD 134 DISPLAY_OPTIONS 134 LOGON_EXIT 134 MAX_RECORDS_LIMIT 135 MULTI 135 OPERATOR 135 OPT_EXPLAIN 136 PERFORMANCE_STATS 136 PREFIX 136 SHUTDOWN_PASSWORD 136 SHUTDOWN_USER 137 STATS 137 SYSTEM 137 TCP_HOSTNAME_LOOKUP 138 TCPIP_SUPPORT 138 TCPPORT 138 TRACE 139 OPERATOR, OpenVMS server parameter 135 OPT_EXPLAIN MVS and CICS server parameter 104 OpenVMS server parameter 136 UNIX CID Adapter Server parameter 155 optimization_level parameter 351 ORDB environment variable, setting HP-UX 143 ORDB server, starting and stopping 18 ordbinit defined 320 displaying parameters 325 summary of system parameters 322 syntax rules for parameters 326 ordbmb, statusdb 315 override TCP/IP port 306 overwriting a SQL Access Server Administration Guide, P25-9501-04 Index copydb 287 P page header check 297 parameter values defining for UNIX 171 displaying current 176 parameter values, defining 320 parameters active_requests 345 auto_volext_factor 331 backup_buffer_size 334 backup_max_volume_size 334 charcode_check 356 checkpoint_interval_factor 335 class_representation_cache 330 commit_on_shutdown 353 connection_timeout 347 database-specific 176 deadlock_detection_interval 341 default_adapter_dir 355 event_handler 328 execute_queries_streaming 349 fbo_root 346 flush_data_buffer_factor 336 hot_fault_objects 348 hot_load_workspace 348 ignore_timezone 356 initial_workspace_table_size 349 isolation_level 341 keep_schema_locks 339 lock_escalation 339 lock_timeout_in_secs 339 lockf_enable 340 log_path 336 log_reserve_space 336 log_size 337 master_port_id 344 max_block_count 348 max_block_size 348 max_clients 345 max_lock_structures 342 428 max_ping_wait 344 max_quick_size 348 maxlength_error_log 329 maxtmp_pages 331 media_failures_are_supporte d 338 multiple_connection_shared _objects 347 network_pagesize 344 network_service_name 343 num_data_buffers 330 num_log_buffers 338 object_mode_character 351 OpenVMS server initialization 130 optimization_level 351 query_cache_max_entries 351 query_cache_server_statistic s 345 query_cache_statistics 353 query_cache_threshold 351 query_max_rows 349 query_oidset_threshold 352 query_stream_window 350 query_timeout 352 request_threads_to_start 343 select_star_includes_identit y 352 server_inserts 349 socket_recv_timeout 344 sr_buffers 330 standalone 347 syntax rules 326 unfill_factor 332 unfill_index_factor 332 UNIX CID Adapter Server initialization 149 unload_max_column 354 use_index_concurrency 342 volext_path 331 voltmp_path 331 warn_outofspace_factor 333 parameters, system 320 PDM database alias 29 registering 29 PDM Directory 27 PDM indices 39 PDM_THREADS, MVS and CICS server parameter 104 Administration Guide, P25-9501-04 Index PDM_USER_DATA, MVS and CICS server parameter 104 PERFORMANCE_STATS, OpenVMS server parameter 136 PREFIX OpenVMS server parameter 136 UNIX CID Adapter Server parameter 155 prefixed database, setting up access 142 print master and server status 311 print SQL Access Master and Server status 308 print_authorizations method 81 printing status 315 privileges 61 granting 63 revoking 66 prompt for remove password 300 PUBLIC group 60 PUBLIC user 62 PUBLIC user, renaming 74 Q query cache server parameters 345 query services SQL Access Client parameters 349 query specification adding 46 changing 48 dropping 51 query, time limitations 352 query_cache_max_entries parameter 351 query_cache_server_statistics parameter 345 query_cache_statistics parameter 353 query_cache_threshold parameter 351 query_max_rows parameter 349 query_oidset_threshold parameter 352 429 query_stream_window parameter 350 query_timeout parameter 352 quiet 297, 306 quit commdb 311 quitting/disconnecting from applications parameter 353 quitting/disconnecting from applications SQL Access Client parameters 353 R RDM functions and facilities 38 read_only 168 UNIX CID Adapter Client parameter 180 read-only schema 306 recovery/logging SQL Access Server parameters 333 recycle CID Adapter Client 39 CID Adapter Server 39 REGISTER CID DATABASE statement 40 reinitialize master 311 reinitialize SQL Access Master 308 release version, displaying 295 remove password 300 RENAME clause 47 renamedb utility DBA password 294 DBA user 294 no prompt for DBA user/password 294 overview 292 quiet 293 SQL Access Server files pathname 293 SQL Access Server password 294 volume rename path file 293 renaming a SQL Access Server 292 request_threads_to_start parameter 343 reserved keywords 57 resource sharing in CID Adapter Client component 178 Administration Guide, P25-9501-04 Index RLSE 84 ROLLBACK statement 83 rules for parameters 326 S schema_segment 169 schema_segment_address UNIX CID Adapter Client parameter 181 schema_segment_size 169 UNIX CID Adapter Client parameter 181 schema_table_size, UNIX CID Adapter Client parameter 181 SEARCHUPD_LOCK 84 SEARCHUPD_LOCK, MVS and CICS server parameter 105 select_star_includes_identity parameter 352 SELECTUPD_LOCK, MVS and CICS server parameter 105 server component startup procedure OpenVMS 127 tailoring UNIX 142 server file based objects SQL Access Server parameters 346 server init file, coding rules OpenVMS 130 server initialization parameters OpenVMS 130 SERVER_CONNECTIONS, MVS and CICS server parameter 105 server_inserts parameter 349 servers interactive options 311 master as an NT service 302 master utility 305 shutdown 19 utilities to start/shutdown SQL Access Master 305 set_password method 81 setting parameter values UNIX 171 setting up prefixed database access 142 430 shared resources 178 SHARED_MEM, MVS and CICS server parameter 106 SHLIB_PATH environment variable 143 show transactions, SQL Access Servers 187 shutdown database server 311 master and servers 308 server 311 SQL Access Server 308 SHUTDOWN_PASSWORD MVS and CICS server parameter 106 OpenVMS server parameter 136 UNIX CID Adapter Server parameter 155 SHUTDOWN_USER MVS and CICS server parameter 106 OpenVMS server parameter 137 UNIX CID Adapter Server parameter 155 SHUTRAK 95 single phase commit 38 socket_recv_timeout parameter 344 SQL Access Client parameters commit_on_shutdown 353 connecting to SQL Access Server 347 connection_timeout 347 execute_queries_streaming 349 hot_fault_objects 348 hot_load_workspace 348 initial_workspace_table_size 349 max_block_count 348 max_block_size 348 max_quick_size 348 multiple_connection_shared _objects 347 object_mode_character 351 optimization_level 351 overview 347 query services 349 query_cache_max_entries 351 Administration Guide, P25-9501-04 Index query_cache_statistics 353 query_cache_threshold 351 query_max_rows 349 query_oidset_threshold 352 query_stream_window 350 query_timeout 352 quitting/disconnecting from applications 353 select_star_includes_identit y 352 server_inserts 349 standalone 347 workspace memory 348 SQL Access for SUPRA Server PDM CID foreign Database parameters 355 data validation parameters 356 flow diagram 12 ordbinit.txt file 320 servers. See servers. SQL Access Client parameters. See SQL Access Client parameters. SQL Access Server parameters. See SQL Access Server parameters. 328 standalone parameters 327 system parameters 320, 322 utility parameters 354 SQL Access Master reinitialize SQL Access Master 308 SQL Access Master, printing status 315 SQL Access Server b-tree check 297 changing password 299 checking 296 class check 297 client/server mode 297, 299 copying 285 copying in quiet mode 287 current password 300 DBA password 294, 298, 300 DBA user 294, 297, 300 deleting 290 deleting after copying 287 431 directory pathname to copy a new database 286 displaying transaction lock information 213 displaying transactions 211 halt shutdown 308 heap page check 297 heap page check and b-tree check 297 killing transactions 212 lock information 214 maintaining 247 modify system class 306 moving 285 new password 299 no prompt for DBA user/password 294 no specified options 301 output redirection 291 override TCP/IP port 306 page header check 297 password 308 placing volumes in different directories 287 printing status 315 prompt for remove password 300 quiet 297 read-only schema 306 remove password 300 renaming 292 setting the log file directory path 286 shutdown SQL Access Server 308 specifying destination password while copying 287 specifying destination SQL Access Server password 288 specifying source password while copying 287 specifying the path name to create the destination database 286 SQL Access Server files pathname 293 SQL Access Server password 291, 294, 308 SQL Access Server utility 306 standalone mode 297, 299 Administration Guide, P25-9501-04 Index starting 193 starting and stopping 187 starting on UNIX 18 starting on Windows 18 startup SQL Access Server 308 stopping 193 volume extensions directory path 286 volume header check 297 volume path check 297 volume rename path file 293 SQL Access Server FBOs, limitations 346 SQL Access Server parameters active_requests 345 auto_volext_factor 331 backup_buffer_size 334 backup_max_volume_size 334 checkpoint_interval_factor 335 class_representation_cache 330 client/server requests 345 communication services 343 concurrency and locking 339 deadlock_detection_interval 341 disk storage 331 error messages 328 event_handler 328 fbo_root 346 flush_data_buffer_factor 336 isolation_level 341 keep_schema_locks 339 lock_escalation 339 lock_timeout_in_secs 339 lockf_enable 340 log_path 336 log_reserve_space 336 log_size 337 master_port_id 344 max_clients 345 max_lock_structures 342 max_ping_wait 344 maxlength_error_log 329 maxtmp_pages 331 media_failures_are_supporte d 338 memory space 330 432 network_pagesize 344 network_service_name 343 num_data_buffers 330 num_log_buffers 338 overview 328 query cache 345 query_cache_server_statistic s 345 recovery/logging 333 request_threads_to_start 343 server file based objects 346 socket_recv_timeout 344 sr_buffers 330 unfill_factor 332 unfill_index_factor 332 use_index_concurrency 342 volext_path 331 voltmp_path 331 warn_outofspace_factor 333 SQL Access Server utility 306 sr_buffers parameter 330 standalone mode 297 standalone mode 299 standalone parameter 347 start database server 311 start_server utility 19 startfdb 24 startfdb utility 22 starting a SQL Access Server 193 starting SQL Access Server 187 startup procedure, for OpenVMS server component 127 startup procedure, for UNIX CID Adapter Server 148 startup script 88 statistics 85 statistics, enabling OpenVMS 137 UNIX 156 STATS MVS and CICS server parameter 107 OpenVMS server parameter 137 UNIX CID Adapter Server parameter 156 STATS=FUNCTION 85 STATS=LUW 85 STATS=SYSTEM 86 Administration Guide, P25-9501-04 Index statusdb utility method broker 315 options 315 stop_server utility 19 stopfdb 25 stopping a SQL Access Server 193 SQL Access Server 187 sup1drvr.err file, location 177 sup1drvr.ini file 161 supported data types 58 supra1.bat 161 syntax rules for parameters 326 system parameters 320 summary 322 SYSTEM, OpenVMS server parameter 137 T table_segment_size, UNIX CID Adapter Client parameter 182 tailoring client components 170 tailoring server components 142 TCP/IP port number specification 175 TCP/IP, defining service through MultiNet 129 TCP_HOSTFILE, MVS and CICS server parameter 108 TCP_HOSTNAME_LOOKUP MVS and CICS server parameter 107 OpenVMS server parameter 138 UNIX CID Adapter Server parameter 156 TCP_LISTEN_PORT CID Adapter Client consideration 175 TCP_LISTEN_PORT, MVS and CICS server parameter 108 TCP_PREFIX, MVS and CICS server parameter 109 TCPIP_SUPPORT, OpenVMS server parameter 138 433 TCPPORT OpenVMS server parameter 138 UNIX CID Adapter Server parameter 157 TCPPORT CID Adapter system parameter 88 terminate previous shutdown request 311 time set on queries, limitations 352 TR_TOASCII, MVS and CICS server parameter 109 TR_TOEBCDIC, MVS and CICS server parameter 109 trace 169 UNIX CID Adapter Client parameter 182 TRACE OpenVMS server parameter 139 UNIX 148 UNIX CID Adapter Server parameter 157 TRACE_OPTIONS, MVS and CICS server parameter 110 traceable binaries 183, 184, 185 transactions, killing 316, 317 translation tables, ASCII EBCDIC 414 U unfill_factor parameter 332 unfill_index_factor parameter 332 UNIX CID Adapter Client component parameters, summary 173 UNIX CID Adapter Client parameter allow_core_dump 174 db_pdm_database-name 175 dbname 176 display_options 176 driver_directory 177 init_file 177 interproc_key 178 lang 178 load_path 179 max_rcv_pdu 179 Administration Guide, P25-9501-04 Index max_records_limit 180 oid_cache_max 180 read_only 180 schema_segment_address 181 schema_segment_size 181 schema_table_size 181 table_segment_size 182 trace 182 UNIX CID Adapter Server component, no trace binary 184 UNIX CID Adapter Server init file, coding rules 149 UNIX CID Adapter Server parameter ALLOW_CORE_DUMP 150 BIND_SCHEMA 151 BYPASS_OPT_CTRL_LINKPAT H 152 BYPASS_OPT_INDEX 152 BYPASS_QUAL 152 DBMOD 153 DISPLAY_OPTIONS 153 LOGON_EXIT 153 MAX_RECORDS_LIMIT 154 MULTI 154 OPT_EXPLAIN 155 PREFIX 155 SHUTDOWN_PASSWORD 155 SHUTDOWN_USER 155 STATS 156 TCP_HOSTNAME_LOOKUP 156 TCPPORT 157 TRACE 157 unload_max_column parameter 354 unloaddb utility class names 283 hash filename 283 include references options 283 name of current user 283 output file prefix 283 password for current user 283 verbose output 283 use_index_concurrency parameter 342 434 user 62 adding 69 deleting 73 user definition file 71 user logon exit MVS 111 OpenVMS 140 UNIX 158 utilities commdb 19, 307, 308, 311 copydb 285 deletedb 290 killtran 316, 317 master 305 master as an NT service 302 renamedb 292 SQL Access Server 306 start_server 19 statusdb 315 stop_server 19 utility parameters overview 354 unload_max_column 354 V V1DRV_BASE 124 V1DRV_BURRYS 124 V1DRV_COMS 124 V1DRV_EXE 124 V1DRV_HELP 124 V1DRV_LOGS 124 V1DRV_PATCHES 124 verifying a SQL Access Server 296 view, defined 57 virtual class 57 Visual Administration tool connecting to a database host 189 displaying database transaction 211 displaying SQL Access Server lock information 214 displaying transaction lock information 213 general information 187 killing database transactions 212 overview 187 requirements 187 starting 188 Administration Guide, P25-9501-04 Index starting SQL Access Server 193 stopping SQL Access Server 193 Visual SQL to create foreign tables 30 to create views 57 to edit a registration of a CID foreign Database 42 to register a CID foreign Database 29 volext_path parameter 331 voltmp_path parameter 331 volume header check 297 volume path check 297 VSAM_FILE_LIST, MVS and CICS server parameter 110 W warn_outofspace_factor parameter 333 Windows service, running master utility 302 WITH GRANT OPTION 65 workspace memory SQL Access Client parameters 348 435