Beruflich Dokumente
Kultur Dokumente
Contents
1. Introduction ............................................................................................................................................................ 3
2. The Progress SQL92 Server Architecture............................................................................................................ 4
2.1. SQL92 Architecture Overview.................................................................................................................. 4
2.2. Progress General Client/Server Architecture ........................................................................................... 5
2.3. SQL92 Server Internal Architecture ......................................................................................................... 6
2.3.1. Example 1: Selecting information from an SQL92 client............................................ 7
2.3.2. Example 2: Inserting new rows with a before insert trigger defined .......................... 8
2.3.3. Example 3: Creating a stored procedure ................................................................... 9
3. The SQL92 Server Installation ............................................................................................................................ 10
3.1. Availability Per Operating Systems........................................................................................................ 10
3.2. Operating System Prerequisites ............................................................................................................ 11
3.2.1. Operating System Patches ...................................................................................... 11
3.2.2. JDK........................................................................................................................... 11
3.3. License Requirements ........................................................................................................................... 13
3.4. Installation Process................................................................................................................................ 14
3.4.1. Local installation....................................................................................................... 14
3.4.2. NetSetup configuration............................................................................................. 16
4. The SQL92 Server Environment ......................................................................................................................... 17
4.1. Under UNIX ........................................................................................................................................... 18
4.1.1. Operating System Environment Variables ............................................................... 18
Compaq Tru64: .............................................................................................................................. 20
HP-UX: ............................................................................................................................................ 21
IBM AIX:.......................................................................................................................................... 22
Linux:.............................................................................................................................................. 22
SCO UnixWare: .............................................................................................................................. 23
Sun Solaris Sparc:......................................................................................................................... 24
4.1.2. What Progress Provides........................................................................................... 25
4.2. Under Microsoft Windows or Citrix......................................................................................................... 31
4.2.1. Operating System Environment Variables ............................................................... 31
4.2.2. What Progress Provides........................................................................................... 33
4.3. Moving the JDK into Another Directory .................................................................................................. 37
4.3.1. Under UNIX .............................................................................................................. 38
4.3.2. Under Windows ........................................................................................................ 38
5. SQL92 Server Administration ............................................................................................................................. 39
5.1. Starting and Stopping the SQL92 Server............................................................................................... 39
5.1.1. Using the Progress Explorer and the Admin Service............................................... 39
5.1.2. Using the Command-line Interface to the Admin Service ........................................ 41
5.1.3. Using the Progress proserve Script ......................................................................... 45
5.1.4. Using the _mprosrv Executable in a Custom Script................................................. 46
5.2. Best Practices: Some Guidelines........................................................................................................... 46
5.2.1. Server Startup Parameters....................................................................................... 46
5.2.2. Guidelines for Administrating Your Database Servers............................................. 47
A Appendix ............................................................................................................................................................... 49
A.1 Progress Licenses That Install the Progress Explorer and Administration Server ................. 49
A.2 Manually Modifying the conmgr.properties File ...................................................................... 51
A.3 Table of Equivalence between Progress Explorer Entries, conmgr.properties Entries
and proserve Command-line Parameters ....................................................................................... 55
2
Progress SQL92 Server: Installation, Environment, and Administration
1. Introduction
This white paper is mainly targeted towards a technical audience that has little to medium understanding of the
Progress SQL92 server. It can also be used as a reference or summary document for technical readers that have a
medium to good understanding of the Progress SQL92 server.
• Help avoid the most common issues a user may face while performing one of the tasks mentioned above
and highlights the current limits with the Progress SQL92 server. Some of those issues are due to the
absence of a JDK that may be required by the Progress SQL92 server in order to compile and execute
SQL92 triggers or stored procedures, or resource problems when connecting the database that could be
caused by the maximum number of connections allowed to a database, for instance.
Installing, configuring, and administrating the Progress SQL92 server can be daunting to anyone who does not
understand the Progress architecture, especially if a working configuration needs to be set up in a minimum
amount of time.
For this reason, this document starts by providing a general description of the Progress SQL92 server architecture,
followed by technical information concerning installation / deployment, configuration and database administration
of the Progress SQL92 server for Progress Version 9.1 on all the operating systems where this server is available.
As a result, this white paper is organized in the following way, where each section has subsections related to the
operating system on which the specific task needs to be performed:
• “The Progress SQL92 Server Architecture” section covers the server architecture starting by an overview
describing how it fits in the ‘Big Picture’ and is followed by a simplified description of the internal
processing performed by the SQL92 server. In other words, this is theory and really serves as an
introduction or reference point to the following 3 sections.
• “The SQL92 Server Installation” section covers mainly the availability per operating system, the license
requirements, the Java requirements and the operating systems pre-requisites that have to be in place
before performing the installation itself. After this, it is followed by a short description of the installation
process and SQL92 and issues you could have during this process.
• “The SQL92 Server Configuration” section covers mainly the different ways to configure the Progress
SQL92 server through the different tools that are available with Progress 9.1 and the environment
requirements depending on the different functionality you need to use with the SQL92 server.
3
Progress SQL92 Server: Installation, Environment, and Administration
• “The SQL92 Server Administration” section provides a complete list of the server startup parameters
that can be used in specific configurations and some guidelines to facilitate the database administration
task with the different tools available. It also describes database maintenance tasks (Dump / Load) and
performance management (in terms of database server parameters only). In other words, this section
could also be considered as an introduction to advanced database administration for Progress SQL92.
However, the goal of this document is not to discuss database design and maintenance issues in terms of table
structure, constraints etc. or interoperation with the Progress 4GL server or application. Nor does it discuss
security management for SQL92 or other database administration tasks that could be performed on the database
itself (such as updating the data used by the SQL92 cost-based optimizer – UPDATE STATISTICS).
By reading this document you should gain a clearer understanding of the Progress server architecture in general
and more specifically the SQL92 server architecture with a brief summary of its internals. You should gain
enough understanding of the SQL92 server environment and its requirements during installation and configuration
depending on the functionalities you need to use. Ultimately you should gain full control over the server
environment so that you can perform maintenance tasks in the most efficient manner, such as modifying the server
environment in order to update some elements such as the JDK. You should also gain the ability to configure your
SQL92 server in the most efficient way to avoid networking resource issues.
This section covers the Progress SQL92 server architecture starting with an overview describing how it fits in the
‘Big Picture’ with some background information to understand the architectural choice.
It then describes in more detail the Progress client/server architecture involving 4GL and SQL92 clients to
establish a common framework for best describing the practical issues presented in Section 5 of this document.
A general description of the internal processing performed by the SQL92 server in relation with requests received
from SQL92 clients is also part of this white paper. This mainly helps in understanding what the SQL92 server is
doing in different cases.
In other words, this section is mainly theory and really serves as an introduction or reference point to the
following three sections, which discuss how to install, configure, and administrate the Progress SQL92 server.
In 1997, Progress took the decision to develop a new set of products, the SQL92 products which were
distinct from the Progress 4GL world and its SQL89 interface. The new SQL92 components have been
available since Version 9.1A. It is still at the beginning of its development path and future releases will see it
grow and evolve in different areas.
In the early planning phases for the SQL92 server, Progress Software conducted market studies and
researched software requirements for deployed applications. Progress decided to implement the SQL92
interface in a client/server configuration only as most of the SQL applications in use today are in effect
composed of:
4
Progress SQL92 Server: Installation, Environment, and Administration
Further conclusions of market study led to supporting interfaces to the Progress RDBMS through SQL92
along the following connection paths:
• Through a JDBC Driver
As a result of these choices, the Progress SQL92 server can only be accessed and used in client/server from
one of the above 3 interfaces. There is no shared-memory connection or no single-user access to a
Progress SQL92 database. This results in the architecture shown in Figure 1 below where “N” stands for
“Network.”
Since every SQL92 connection is a client/server connection, it is required to detail how the SQL92
client/server architecture integrates with the 4GL client/server architecture.
In Figure 2 below, you have a quite detailed snapshot of the architecture when 4GL and SQL92 clients are
connected to the database in a client/server configuration.
As you can notice in the Figure 2:
• The Progress database broker is common to the SQL92 server and 4GL servers. It can start both
processes depending which type of client connects the database.
• The SQL92 server integrates perfectly with Progress background process and the Admin Service
through which it can be started.
• The SQL92 database server processes always perform database operation through the shared
memory attached to the database. This shared memory is in fact common to all processes running
against a specific Progress database.
5
Progress SQL92 Server: Installation, Environment, and Administration
• The SQL92 database servers are only accessible from SQL92 clients. The connection is always
established through the network layer from the SQL92 clients.
• Each Progress SQL92 server handles a single SQL92 client. The SQL92 server process is not
designed to handle more then one client at the same time. This can lead to severe resource issues on a
machine handling either 4GL and SQL92 connections or a high number of concurrent SQL92 clients.
• An SQL92 server cannot access and query several databases at the same time. This means that the
SQL92 server is attached to only one physical database. This also highlights the fact that SQL requests
over several databases need to be handle by the client. If there are joins to be made between 2 tables in 2
different databases, the join operation needs to be performed by and within the client application itself.
(The same rule is applicable to the Progress 4GL.)
Note: the “multiple” volumes, on the right side of Figure 2, symbolize the fact that the database is multi-
volume with Progress V9. They do not symbolize multiple databases connections.
To go a bit deeper into the subject of this white paper, let’s have a closer look at the SQL92 server and the
tasks it is performing when answering SQL92 client requests.
Generally speaking, the SQL92 server is composed of 3 elements:
• The database storage manager, which is common with the 4GL server and handles all requests on the
database, shared memory and other resources such as BI and AI notes. This white paper does not go into
more detail on the storage manager as it is not central to understanding the SQL92-specific database
management processing performed from the SQL92 server.
• The SQL92 server itself, which performs several actions handled by different subcomponents. Figure 3
below gives a basic idea of the SQL92 server structure.
• The Java layer interface and the Java Virtual Machine (JVM), which is in charge of executing stored
procedures and database triggers. Figure 3 below includes the Java interface as it is specific to the
6
Progress SQL92 Server: Installation, Environment, and Administration
SQL92 server. However, Figure 3 leaves out the JVM because it plays no role in the SQL92-specific
database management processing performed from the SQL92 server.
To understand what the SQL92 server is doing we will walk through 3 examples. This will at the same time
help define the role of each SQL92 server component (also called Manager).
• The Communication Manager checks if there is a need for a transaction. If yes (based on the
transaction isolation level – for more information on this subject please check any good SQL manual) it
starts one transaction through the Local Transaction Manager. If not, it goes to the next step.
• The Statement Manager requests to get it parsed against the database to verify the syntax for all objects
names referenced in the statement (such as tables, views, synonyms, columns and stored procedures)
defined in the database. (You would get syntax error messages if this step fails.) Parsing is done with the
information retrieved by the Schema Manager.
• If the statement contains views, the definition of each view used is retrieved and integrated in the original
SQL statement. This means that the View Manager will replace each occurrence of a view name by the
corresponding select statement defining this view in the original select statement.
• The Statement Manager asks the Authorization Manager to verify that the user issuing the request has
sufficient privileges to really access the data requested. (You would get insufficient privileges error
messages if this step fails.)
7
Progress SQL92 Server: Installation, Environment, and Administration
• The Statement Manager asks for an optimized query before processing it. The Optimizer’s goal is to
execute the query against the database in the most efficient way. The end result of this operation is an
SQL statement defining the order in which the table will be accessed and with which “WHERE”
condition and indexes each tables will be accessed.
• The Statement Manager passes the optimized SQL select statement to the Execution Manager for
processing against the database.
• The Statement Manager receives the result set and passes this information to the Communication
Manager.
• The Communication Manager formats the result set to send it to the SQL92 client.
• The Communication Manager checks if there is an active transaction and if not will start one
transaction through the Local Transaction Manager when allowed by the transaction isolation level in
use (Read uncommitted does not allow to start transactions on the database – for more information on
this subject please check any good SQL manual). If it cannot start a transaction due to the transaction
isolation level, an error message is returned; otherwise it goes to the next step.
• The Statement Manager requests to get it parsed against the database to verify the syntax for all object
names referenced in the statement (such as tables, views, synonyms, columns and stored procedures)
defined in the database. (You would get syntax error messages if this step fails.) Parsing is done with the
information retrieved by the Schema Manager.
• If the statement contains views, the definition of each view used is retrieved and integrated in the original
SQL statement. This means that the View Manager will replace each occurrence of a view name by the
corresponding select statement defining this view in the original select statement.
• The Statement Manager asks the Authorization Manager to verify that the user issuing the request has
sufficient privileges to really access the data requested. (You would get insufficient privileges error
messages if this step fails.)
• Since there is a “before insert” trigger, the Statement Manager will call the JVM and ask to process the
trigger.
• The JVM processes the before insert trigger and discusses subsequent database accesses with the Stored
Procedure Manager.
• Assuming there are other SQL requests in the before insert trigger, during this operation any additional
SQL requests (coming from the trigger code) are processed on the database and handled by the Stored
Procedure Manager. The Stored Procedure Manager passes the SQL requests defined in the trigger
code to the Statement Manager.
• The Statement Manager will consider those “trigger” requests as new requests received from the same
user and follow again the same steps for each of them.
8
Progress SQL92 Server: Installation, Environment, and Administration
• Once the trigger is processed, the Statement Manager passes the insert statement to the Execution
Manager and retrieves errors or successful completion messages. (Row locking issues are error
messages.)
• The Statement Manager passes the previous message to the Communication Manager.
• The Communication Manager checks if there is an active transaction and if not will start one
transaction through the Local Transaction Manager when allowed by the transaction isolation level in
use. (Read uncommitted does not allow to start transactions on the database – for more information on
this subject please check any good SQL manual.) If it cannot start a transaction due to the transaction
isolation level, an error message is returned; otherwise it goes to the next step.
• The Statement Manager asks the Authorization Manager to verify that the user issuing the request has
sufficient privileges to really perform the insert statement. (You would get insufficient privileges error
messages if this step fails.)
• The Statement Manager will pass the Request to the Stored Procedure Manager.
• The Stored Procedure Manager generates a Java file out of the code received from the request itself.
• The Stored Procedure Manager passes the file to the Java Compiler.
• The Java Compiler executes its tasks but establishes no connections to the database. This means that
SQL statements against the database are not parsed to verify their syntax.
• Once the Java class is generated, the Stored Procedure Manager retrieves the file and passes it back to
the Statement Manager.
• The Statement Manager passes the Java class and the original statement to the Execution Manager so
that the stored procedure is made available in the database
• The Execution Manager returns errors or successful completion messages to the Statement Manager.
• The Statement Manager passes the previous message to the Communication Manager.
Note: This is only an overview of what the SQL92 server does internally as the overall processing is in fact
more complex.
9
Progress SQL92 Server: Installation, Environment, and Administration
Before actually performing the installation of the Progress SQL92 server, we will review the product
availability per operating system. We will also cover in this section the operating system pre-requisite before
performing the installation (including the JDK requirements). This is followed by a list of Progress product
licenses that include and will install the SQL92 server. The last section covers the installation process itself
with a list of points to check before and after the installation.
The Progress SQL92 server is not available on all operating systems supported by Progress products. The
following table mentions the earliest version of the SQL92 server for each operating system where a
Progress product can be installed.
Notes:
• Versions that are older than the ones listed do not contain the Progress SQL92 server. For instance, 9.1a
on SCO UnixWare.
10
Progress SQL92 Server: Installation, Environment, and Administration
• In 9.0a or b, the SQL92 server was either a beta product or an SDK (Software Development Kit) product
and is not supported in production/deployment. For this reason, these versions are not referenced in this
table.
• For more information on the specific operating system versions supported please contact your Progress
sales representative or Progress Technical Support, or check the latest Product Availability Guide
available at www.Progress.com/products/pavail.pdf.
Before performing the installation itself, it is wise to check if the machine and operating system can support
a fully functional Progress version. In this section we will cover the operating system patches and JDK that
may be required to have a fully functional Progress SQL92 server.
Operating system patches may be required with specific configurations, for example:
• OS patch MUP-2 needs to be installed for AIX 4.3.2.
• Sun Sparc 2.6 requires operating system patch #105591-07 before installing Progress.
To have a complete list of required patches on a specific Operating System, check in this order:
• The installation documentation for your operating system
• The Progress Knowledge Base (www.Progress.com/support) where you would find, for instance, the
following entries:
o KB-19574: SQL-92 AIX Patch information 9.1A
o KB-19635: Patch Requirements for V9.1A on AIX, Solaris
Note: In general, the keywords to use when looking for operating system patches are the operating
system name and “patch” (for instance, Solaris patch)
3.2.2. JDK
With 9.1a and following releases, having the JDK installed prior to a Progress installation is a requirement.
Progress made it a requirement to prevent future issues due to the absence of a valid JDK version installed on the
machine with the Progress SQL92 server. If no valid JDK is detected while installing the different products you
have purchased and Progress does not install a JDK on the machine where the installation takes place, Progress
will simply prevent the installation of any licenses containing the SQL92 server. This ensures that the SQL92
server is fully functional and can support stored procedures and database triggers even if they are not immediately
required.
The SQL92 server will require a JDK only when it processes requests from an SQL92 client application that are
accessing stored procedures or database triggers. As described in the previous chapter (section: SQL92 server
Internal Architecture) those objects are server-side objects and the language supporting them is Java.
11
Progress SQL92 Server: Installation, Environment, and Administration
Changing the JDK version after installing Progress is possible but requires a good understanding of the Progress
configuration files that we will provide in one of the following sections. As a result it is simpler to install the
correct JDK version before installing Progress.
The following table provides information on the JDK required prior to a Progress install. This information is listed
per Progress version. In fact compatibility tests with the different JDK versions are done for each new Progress
versions. These tests are intended to find the most recent and most stable JDK version that works with all
products. As a result, the required JDK to install can be different for each Progress version and operating system.
They can also differ by version or provider. The table below additionally provides the information required to find
the correct JDK from the correct provider, based on the operating system and the Progress version.
Table 2: JDK Requirement for each Progress version per operating system
(4) (1)
Linux Intel Not Available** 1.1.8 1.3.0
Notes:
(1)
: Provided by Sun (http://java.sun.com/)
(2)
: Provided by Compaq (http://www.compaq.com/)
(3)
: Provided by Hewlett-Packard (http://www.hp.com/)
(4)
: Provided by IBM (http://www.ibm.com/)
(5)
: Provided by SCO (http://www.sco.com/java)
*: Progress may automatically install the JDK, depending on the licenses installed (see the following
section, “License requirements”).
**: Progress Version 9.1A SQL92 Server was not a commercial release under Linux Intel.
12
Progress SQL92 Server: Installation, Environment, and Administration
This section deals only with license requirements for installing the Progress SQL92 server on a specific
machine. As there is no specific SQL92 server license in 9.1a, b, c etc., the following table lists the Progress
licenses that offer the possibility to install the SQL92 server.
To install the SQL92 server with at least one of the licenses mentioned below, you need to execute the
install procedure required for any Progress product. However, the Progress SQL92 server is not installed by
default. You need to request its installation specifically by performing a complete installation.
Additionally, the table below gives extra information about the JDK. This additional information clarifies
which Progress licenses containing the SQL92 server may also install the required JDK. This same
information needs to be cross-referenced with the table from the previous section, “JDK Requirement for
each Progress version per operating system” because Progress installs a JDK only on some specific
operating systems.
Progress will only perform the installation of one of the following licenses if any of the following condition
is met:
• The required JDK is already installed on the machine and is detected through the PATH environment
variable
This explains why on most UNIX operating systems (On every operating system where Progress does not
install the JDK), it is mandatory to download the required JDK from the vendor we have certified our
product with and install it manually prior to the Progress installation.
As a reminder, Progress SQL92 requires a JDK local to the SQL92 server for:
• SQL92 database triggers
• The JDK enables the Progress SQL92 server to compile and execute stored procedures as well as
database triggers each time it is required. A JRE is sufficient only for executing existing stored
procedures; it will not allow creation of new stored procedures or database triggers.
Note: The JDK contains the JRE.
Enterprise Database No
Personal Database No
ProVision * Yes
Visual Translator * No
13
Progress SQL92 Server: Installation, Environment, and Administration
Workgroup Database No
Notes:
* Available for Microsoft Windows/Citrix types of operating systems only.
With Progress, two types of installation can be performed. To install a specific Progress product on a
machine you can do a local installation or a NetSetup. The NetSetup installation is specific to Windows
operating systems and cannot be performed under any other operating system (such as UNIX-based
operating systems).
Moreover, in terms of best practices, local installations are always preferred over NetSetup installations
because they offer a better stability to a configuration used in production. Getting the binary code for
processes from a machine remote to the one where the process is running can go wrong due to networking
issues. Attempting to access some specific shared library that was not loaded on the machine where the
process is running while the network is down can lead to a database crash.
When installing server licenses this is the installation to perform for a production system. It ensures that the
database processes are still able to get executed no matter what is happening else where on your network.
The server processes and the databases should always be considered as a logical unit regrouped on a single
machine. In this grouping, the binary code for the processes and the database files should be local to the
machine where the processes are started and should never get separated on two (or more) different machines.
It is mandatory to:
• Install the correct JDK version on the machine prior to installing Progress, or to check that Progress
installs the JDK for you depending on the licenses installed, the operating system and the Progress
version to install.
• Read the hard-copy Progress Release Notes for the installation. The Progress Release Notes might
replace or supplement the installation instructions in this white paper or in the Progress Installation and
Configuration Guide product documentation.
14
Progress SQL92 Server: Installation, Environment, and Administration
During the installation process itself (after supplying the serial numbers and control numbers of the licenses
to be installed), Progress will ask you for the following SQL92 server related information:
• Server Engines (to install): Select Both server engines or SQL92 only.
• Java Home Pathname: Specify the directory where the JDK is installed. For instance, if jdk118 is
installed in /usr/jdk118 then you should enter /usr/jdk118 (not requested under Windows).
• Type of Installation: always choose a complete installation of the licenses that provide access to the
SQL92 server will install that specific product or custom if you know which products to select for
installation.
• The destination path name offers the chance to change the installation directory path.
• The working directory where Progress processes temporary files will also be stored (including SQL92
server processes).
Troubleshooting questions:
Note: These questions only apply to UNIX-based operating systems as Progress installs a JDK under
windows.
What would happen, during the installation, if a JDK has not been detected and if Progress does not
install the JDK on your specific operating system or for the licenses you are installing?
• Installing products that require Java is prevented. A warning is first displayed notifying that not JDK has
been detected: “A JVM has not been detected. Installation of products that require Java will not be
allowed.”
• If you ignore this warning message and proceed, the installation of all licenses requiring the presence of
a JDK on your operating system is prevented. In this case, the Progress installation process informs you
that this specific license requires a functional JDK. Since all licenses containing the SQL92 server
require the presence of a JDK, none of them will be installed.
15
Progress SQL92 Server: Installation, Environment, and Administration
Since the local installation was performed as root, it is mandatory to ensure that everybody can create files
in the working directory specified at install time. This is required because the SQL92 server processes do not
use the root privileges as other Progress processes commonly do. Instead, the SQL92 processes always use
the privileges of the user who started the database server. For this reason granting read and write access on
the working directory to everyone on the system who can start and stop the Progress servers is the first task
to perform once the installation has completed successfully.
For testing purpose (and not in a production environment), the installation of a Progress SQL92 server can be
done with a NetSetup.
The reasons this type of installation should never be used in a production environment are simple:
• This slows down the processes to start a broker on a Progress database.
• This additional factor will add to the connection time of remote clients as the process may need to access
shared library that are stored on some other machines.
• If a networking problem occurs between the machine where the process is running and the machine
where the binary code of that process is stored, what happens to that process? It will crash.
• If the server processes accessing the database are crashing, Progress cannot completely guarantee the
data integrity of all information stored in the database or currently being manipulated.
However, if the intention is only to test an application against a test database, then this configuration is
acceptable, but only if it is for test purposes.
Considering that we are building a test environment, the next section includes points that you will need to
pay attention too when installing a Progress server through a NetSetup under Windows operating systems.
• You also need to know on which drive this Progress product was installed when performing the local
installation. With this information, you need to create a mapped drive with the same letter and mounted
at the same point in the directory structure than what was done from the machine from which the local
installation was performed.
The reason is that Progress not only stores information in the registry of the machine from which the first
install is performed, but it also creates files (for instance .bat files or even the progress.ini file) at install
time that are used from the command prompt. These files contain references to the drive letter and
directory where Progress is installed and are stored in %DLC%\bin or in %DLC%.
To clarify, let’s take an example. For instance, if the original installation was performed under a
directory seen as H:\Progress where H:\ is a drive mapped on a file server, you need to create the same
H:\ driver mapping the same mounting point on the machine where you intend to perform the NetSetup.
16
Progress SQL92 Server: Installation, Environment, and Administration
• You need to ensure that every user using this configuration has enough privileges to access the mapped
drive (at least has read privileges).
• You need to ensure that there is a JDK available on the same network drive or at least installed and
accessible through the same directory path than what was configured on the machine from which the
original installation was performed if Progress did not install one for you.
For example, you installed only a workgroup server license on a shared drive. With this license installed
Progress does not install the JDK. You need to have one installed prior to your installation. It is best to
install this product on the shared drive that will also be used with the Progress installation. With this
configuration you share the JDK and the Progress product on your network.
If you have ensured all the above is set, you are ready to perform a NetSetup installation.
During NetSetup, no questions related to the Progress server processes will be asked (such as the location of
the JDK). This is expected as you are performing a Shared Network Installation. This means that you have
access to everything that has been previously installed on the network file system (including the JDK).
• proserve script
• _mprosrv.exe
The next two sections will describe these scripts and ways to administrate a Progress SQL92 server.
17
Progress SQL92 Server: Installation, Environment, and Administration
This section covers the environment used by the SQL92 server under UNIX starting with operating system
environment variables and followed by the two scripts built at the end of the Progress install during the
tailoring process. Scripts that start Progress processes (e.g., proserve) reference two specific scripts that
define all the variables required to ensure a fully functional SQL92 server.
Assuming a database server is started through the _mprosrv executable, under UNIX, the minimum
environment required to have a fully functionally SQL92 server should contain the variables described
below. The different variables required are sorted by the type of functionality that they enable in the SQL92
server.
• PATH: Contains $DLC/bin so that the executable can be found from the command line
• PROMSGS: Points toward the Progress error message file so that processes can return the correct error
messages
More information on those variables is available in the Progress Installation and Configuration Guide for
UNIX.
• On the other hand, the JDK (Java Development Kit) allows execution of existing Java application and
allows compilation of Java classes into Java binary code. When used with the Progress SQL92 server,
this means that it allows compilation of stored procedures and database triggers so that they can be
executed later.
The above points highlight that you can allow or prevent users to create stored procedures and database
triggers based on the values you specify for the environment variables provided below. However providing
an environment pointing to a JRE instead of a JDK is not a good practice. If a user should not have the
ability to create stored procedures and database triggers, this should be managed with the privileges used
within the SQL92 database. As a result, we will not provide, in the next sections, an example of environment
limited to the JRE.
The variables provided below help the SQL92 server find the Java executables required when executing
stored procedures or database triggers:
• JVMEXE: The executable name of the JVM (Java in most cases)
18
Progress SQL92 Server: Installation, Environment, and Administration
The variables provided below help the SQL92 server find the compiled classes (binary Java code) required
by the Java executables when processing stored procedures or database triggers:
• PROGRESSCP: Java Classpath specific to Progress objects for stored procedures and database triggers
This variable defines the java policy required by the SQL92 server:
• JAVAPOLICY: Policy defined by Progress
These variables define values that are dependant on the operating systems and the Progress implementation
for the SQL92 server to properly use and access the Java environment. Their value usually changes per
operating system.
• THREADS_FLAG: The Java threading model used by the JVM. This is dependant on the operating
system.
• JVMARGS: JVM Argument for memory management model. This is dependant on the operating
system.
• VMTYPE: Java Virtual Machine Type. This is dependant on the operating system.
Note: See the section, “Examples: Environment scripts under various operating systems” to get the proper
value for THREADS_FLAG, JVMARGS and VMTYPE as they are operating-system dependant.
Any Progress server requires this environment variable as the different engines are provided in different
shared libraries starting with V9.
The shared library path should also include the correct path to the Java JVM library:
• Compaq Tru64 (formerly Digital UNIX): LD_LIBRARY_PATH
• HP-UX: SHLIB_PATH
• Linux: LD_LIBRARY_PATH
19
Progress SQL92 Server: Installation, Environment, and Administration
• SQLREUSE: Specify the SQL92 server behavior. If a connection ends, should the server stop or should
it wait for some other connection? To set the SQLREUSE variable:
SQLREUSE=on (to enable it)
SQLREUSE=false (to disable it)
Compaq Tru64:
#!/bin/sh
# Progress Environment (For Compaq TRU64 + PRGS 9.1c)
echo "Setting Progress Environment manually for Compaq TRUE 64 + Prgs 9.1c"
20
Progress SQL92 Server: Installation, Environment, and Administration
VMTYPE=client
ARCH=alpha
# Set the shared library search path for the server engine based
# on the previous variables.
LD_LIBRARY_PATH=$JREHOME/lib/$ARCH/${THREADS_FLAG}_threads:$JREHOME/lib/$ARCH/$VMTYPE:$JREHOME/lib/$ARCH:$LD_LIBRA
RY_PATH:$DLC/lib
HP-UX:
#!/bin/sh
# Progress Environment (For HP-UX + Prgs 9.1c)
echo "Setting Progress Environment manually for HP-UX + Prgs 9.1c"
# Set the shared library search path for the server engine based
# on the previous variables.
SHLIB_PATH=$JREHOME/lib/$ARCH/$THREADS_FLAG:$JREHOME/lib/$ARCH/$VMTYPE:$JREHOME/lib/$ARCH:$SHLIB_PATH:$DLC/lib
Note: Under HP-UX, if a variable does not exist in your environment, before doing something like:
$SHLIB_PATH=.:..:$SHLIB_PATH (done in the above script example), an error message is returned and
the variable is not set. Make sure this variable is initialized before calling the above script.
21
Progress SQL92 Server: Installation, Environment, and Administration
IBM AIX:
#!/bin/sh
# Progress Environment (For IBM AIX + PRGS 9.1c)
echo "Setting Progress Environment manually for IBM AIX + Prgs 9.1c"
# Set the shared library search path for the server engine based
# on the previous variables.
LIBPATH=$JREHOME/bin:$LIBPATH:$DLC/lib
Linux:
#!/bin/sh
# Progress Environment (For Linux + Prgs 9.1c)
echo "Setting Progress Environment manually for Linux + Prgs 9.1c"
22
Progress SQL92 Server: Installation, Environment, and Administration
# Set the shared library search path for the server engine based
# on the previous variables.
LD_LIBRARY_PATH=$JDKHOME/lib/$ARCH:$JREHOME/lib/$ARCH:$JREHOME/lib/$ARCH/${THREADS_FLAG}_threads:$JREHOME/bin:$JRE
HOME/lib/$ARCH/$VMTYPE:${LD_LIBRARY_PATH}:$DLC/lib
PROLIBPATH=$LD_LIBRARY_PATH
Notes:
• Under Linux, if a variable does not exist in your environment, before doing something like:
$LD_LIBRARY_PATH=.:..:$LD_LIBRARY_PATH (done in the above script example), an error
message is returned and the variable is not set. Make sure this variable is initialized before calling the
above script.
• Under Linux with Progress 9.1c a problem has been detected when retrieving the LD_LIBRARY_PATH
variable from the SQL92 server. To solve this issue, an additional variable is required: PROLIBPATH.
This variable needs to be set to the same value as LD_LIBRARY_PATH.
SCO UnixWare:
#!/bin/sh
# Progress Environment (For SCO UnixWare + Prgs 9.1c)
echo "Setting Progress Environment manually for SCO UnixWare + Prgs 9.1c"
23
Progress SQL92 Server: Installation, Environment, and Administration
# Set the shared library search path for the server engine based
# on the previous variables.
LD_LIBRARY_PATH=$JREHOME/lib/$ARCH/${THREADS_FLAG}_threads:$JREHOME/lib/$ARCH/$VMTYPE:$JREHOME/lib/$ARCH:$LD_LIBRA
RY_PATH:$DLC/lib
Note: Under SCO UnixWare, if a variable does not exist in your environment, before doing something like:
$LD_LIBRARY_PATH=.:..:$LD_LIBRARY_PATH (done in the above script example), an error message
is returned and the variable is not set. Make sure this variable is initialized before calling the above script.
# Set the shared library search path for the server engine based
24
Progress SQL92 Server: Installation, Environment, and Administration
Note: Under Solaris, if a variable does not exist in your environment, before doing something like
$LD_LIBRARY_PATH=.:..:$LD_LIBRARY_PATH (done in the above script example), an error message
is returned and the variable is not set. Make sure this variable is initialized before calling the above script.
Progress already provides script files that set the environment variables mentioned in section 4.1.1.
In the next sections, we will detail the two scripts provided by Progress: slib_env and java_env. We will also
enhance the proenv script so that it calls those two environment scripts. This will allow starting an SQL92
server and make sure it runs with all required functionality.
For descriptions of those variables, see section 4.1.1.2, “Java Environment for the SQL92 Server.”
Most of the values provided in this script should never be changed with the exception of JDKHOME and
JREHOME (if the version is updated or the install directory has changed). Their value should be changed
only in the section related to your operating system.
The java_env script below is the one Progress provides with V9.1C and V9.1D for all UNIX operating
systems.
25
Progress SQL92 Server: Installation, Environment, and Administration
#!/bin/sh
# Setup the Java environment for JDK/JRE and Progress,
# this script expects the DLC environment variable to be set
: ${DLC?"DLC variable must be set"}
ProgressCP=${ProgressCP-
$DLC/java/Progress.zip:/usr1/v91C/java/sonicMQ/lib/client.jar:/usr1/v91C/java/sonicMQ/lib/jndi.jar}
export ProgressCP
JAVAPOLICY=${JAVAPOLICY-$DLC/java/java.policy}
export JAVAPOLICY
# If the FATHOMCP environment File exists, source the file. This will set
# the FATHOMCP, the Application Mgmt Classpath, if Fathom has been
# installed
if [ -f $FATHOMTARG/bin/fathomcp_env ]
then
. $FATHOMTARG/bin/fathomcp_env
elif [ -f $DLC/bin/fathomcp_env ]
then
. $DLC/bin/fathomcp_env
fi
# Set the shared library search path - snippet from the java script
LD_LIBRARY_PATH=$JREHOME/lib/$ARCH/$VMTYPE:$JREHOME/lib/$ARCH:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
;;
# set the shared library search path - snippet from the java script
SHLIB_PATH=$SHLIB_PATH:$JREHOME/lib/$ARCH/$THREADS_FLAG:$JREHOME/lib/$ARCH/$VMTYPE:$JREHOME/lib/$ARCH
export SHLIB_PATH
;;
26
Progress SQL92 Server: Installation, Environment, and Administration
JDKCP=$JDKHOME/lib/tools.jar
JRECP=
VMTYPE=client
ARCH=aix
LIBPATH=$JREHOME/bin:${LIBPATH}
export LIBPATH
SQL_LIBPATH=$LIBPATH
export SQL_LIBPATH
;;
LD_LIBRARY_PATH=$JREHOME/lib/$ARCH/$VMTYPE:$JREHOME/lib/$ARCH:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
;;
LD_LIBRARY_PATH=
$JREHOME/lib/$ARCH/${THREADS_FLAG}_threads:$JREHOME/lib/$ARCH/$VMTYPE:$JREHOME/lib/$ARCH:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
;;
LD_LIBRARY_PATH=
$JREHOME/lib/$ARCH/${THREADS_FLAG}_threads:$JREHOME/lib/$ARCH/$VMTYPE:$JREHOME/lib/$ARCH:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
;;
LD_LIBRARY_PATH=$JREHOME/lib/$ARCH/${THREADS_FLAG}_threads:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
;;
"Linux")
THREADS_FLAG=native
27
Progress SQL92 Server: Installation, Environment, and Administration
JIT=""
JVMARGS="-ms8m"
JDKHOME=
JREHOME=$JDKHOME
JAVAHOME=$JREHOME
export JAVAHOME
JDKCP=$JDKHOME/lib/classes.zip
JRECP=$JDKCP
VMTYPE=classic
ARCH=i386
LD_LIBRARY_PATH=
$JREHOME/lib/$ARCH:$JREHOME/jre/lib/$ARCH:$JREHOME/jre/lib/$ARCH/${THREADS_FLAG}_threads:$JREHOME/jre/bin:$JREHOME
/jre/lib/$ARCH/$VMTYPE:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
PROLIBPATH=$LD_LIBRARY_PATH
export PROLIBPATH
;;
CLASSPATH=$JRECP:$ProgressCP:$FATHOMCP
export THREADS_FLAG
export JVMARGS
export JREHOME
export JDKHOME
export JDKCP
export JRECP
export CLASSPATH
For instance, the SQL92 server can be started via the proserve script. As a result the proserve script calls the
slib_env script in order to set the shared library environment variable.
All the values provided in this script should never be changed as they are set to enable Progress to work
properly. The only case where the value would require to be modified is when moving Progress to a
28
Progress SQL92 Server: Installation, Environment, and Administration
different directory; however, it is easier and safer to re-install the complete product. The slib_env script
below is the one Progress provides with V9.1C and V9.1D for all UNIX operating systems.
#!/bin/sh
# Progress Shared Library setup
"UnixWare") # Unixware 7
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DLC/lib
export LD_LIBRARY_PATH
;;
"Linux")
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DLC/lib
export LD_LIBRARY_PATH
PROLIBPATH=$LD_LIBRARY_PATH
export PROLIBPATH
;;
*) # Unrecognized uname
echo "WARNING: not setting shared library include path"
;;
esac
fi
29
Progress SQL92 Server: Installation, Environment, and Administration
To improve this script and offer access to more functionality (for instance, enable reuse of scripts developed
with former Progress versions for database startup procedures that were calling the _mprosrv executables) a
modified version of this script (below) is required.
This original script is usually used to set up a command-line environment with basic settings. The modified
version can be used as a base to develop an environment script or other database startup / shutdown scripts.
(Keep a copy of the original before any modification.)
This modified script is enhanced with the items marked in bold. Those items will set the required Java
environment and shared-library environment to ensure a fully functioning SQL92 server. As presented here,
the script can be used directly under any UNIX flavor.
# proenv
DLC="/usr1/v91A05/dlc"
WRKDIR="/usr1/v91A05/wrk"
PATH=$DLC/bin:$PATH
PS1="proenv>"
export DLC WRKDIR PATH PS1
30
Progress SQL92 Server: Installation, Environment, and Administration
Although the environment variables under UNIX and Windows are similar they are not set in the same
places. Progress takes full advantage of the registry mechanism available under the Windows based
operating systems and, as a result, sets and repeats its environment variables in different locations. Progress
processes will check those different places in a specific order when starting.
Assuming a database server is started through the _mprosrv executable, under Windows, the minimum
environment required to have a fully functionally SQL92 server should contain the variables described in the
following sections. The different variables required are sorted by the type of functionality that they enable in
the SQL92 server.
• PATH: Contains %DLC%\bin so that the executable can be found from the command line
• PROMSGS: Points toward the Progress error message file so that processes can return the correct error
messages
• LIB: Points towards the Progress libraries available in %DLC%\lib under Windows
More information on those variables is available in the Progress Installation and Configuration Guide for
Windows Section 5.4, The Windows Registry and the Progress.ini File.
• On the other hand, the JDK (Java Development Kit) allows execution of existing Java applications and
allows compilation of Java classes into Java binary code. When used with the Progress SQL92 server,
this means that it allows compilation of stored procedures and database triggers so that they can be
executed later.
The above points highlight that you can allow or prevent users to create stored procedures and database
triggers based on the values you specify for the environment variables provided below. However providing
an environment pointing to a JRE instead of a JDK is not a good practice. If a user should not have the
ability to create stored procedures and database triggers, this should be managed with the privileges used
within the SQL92 database. As a result, we will not provide, in the next sections, an example of environment
limited to the JRE.
31
Progress SQL92 Server: Installation, Environment, and Administration
The variables provided below help the SQL92 server find the Java executables required when executing
stored procedures or database triggers:
• JVMEXE: The executable name of the JVM (Java in most cases)
The variables provided below help the SQL92 server find the compiled classes (binary Java code) required
by the Java executables when processing stored procedures or database triggers.
• PROGRESSCP: Java Classpath specific to Progress objects for stored procedures and database triggers
These variables define values that are required by the Progress implementation for the SQL92 server to
properly use and access the java environment.
• JAVAPOLICY: Policy defined by Progress
• SQLREUSE: Specify the SQL92 server behavior. If a connection ends, should the server stop or should
it wait for some other connection? To set the WRKDIR variable:
WRKDIR =C:\temp
You may need to update the values of the variables marked in bold according to the location of the different
elements after install (Progress and JDK mainly). You can also add to or modify the other two variables
mentioned in the previous section, “Other Environment Variables.”
32
Progress SQL92 Server: Installation, Environment, and Administration
You can modify the following script to start specific Progress processes.
echo off
echo Setting Progress Environment manually for Windows 2000 + Prgs 9.1c
Progress already provides script files that set the environment variables mentioned in section 4.2.1. In this
section, we will detail the three different places where Progress sets these environment variables. We will
also enhance the proenv script so that it allows execution of scripts developed for previous Progress
versions. This will allow starting an SQL92 server and make sure it runs with all required functionality.
The Progress servers will load their environment variables from specific locations. These locations are listed
below in the order in which they are accessed.
First, the server process will look in the Windows registry system under the following location in this order:
• HKEY_local_machine\software\PSC\Progress\<version>
• HKEY_current_user\software\PSC\Progress\<version>
If the required environment is not completely defined or is not available in the Windows registry, all
Progress processes will look for and try to access the progress.ini file available under %DLC%\bin.
33
Progress SQL92 Server: Installation, Environment, and Administration
• Colors
• Debug-Buttons
• Debug-Init
• Debug-Macros
• Fonts
• JAVA
• Proedit
• ReportBuilderDefaults
• ReportBuilderPreferences
• ReportBuilderSaveList
• Startup
• WinChar Colors
• WinChar Startup
The JAVA section contains the definition of the Java-related environment variables and the Startup section
contains the other environment settings with the exception of the LIB and PROMSGS variables that are reset
by default. The PATH variable should be set in the Windows environment.
Important Note: Under no circumstances should the registry entries be modified manually. Use the init2reg
utility provided by Progress to update the entries (see section 4.3.2). The extract below is provided only for
informational purposes.
Below is a list of the variables set in the registry for Progress 9.1c (after an export). The ‘…’ at the
beginning of the keys is to be replaced by one of the following values:
• HKEY_local_machine
• HKEY_current_user
The following is an excerpt. The Progress SQL92 server specifically accesses the variables and keys marked
in bold.
[…\SOFTWARE\PSC\Progress\9.1C]
"WorkPath"="d:\\work\\91c"
.
.
.
[…\SOFTWARE\PSC\Progress\9.1C\Java]
"JDKHOME"="w:\\dlc\\jdk"
"JREHOME"="w:\\dlc\\jre"
"JRECP"="w:\\dlc\\jre\\lib\\rt.jar;w:\\dlc\\jre\\lib\\i18n.jar"
"JDKCP"="w:\\dlc\\jdk\\lib\\tools.jar"
"FATHOMCP"=""
34
Progress SQL92 Server: Installation, Environment, and Administration
"ProgressCP"="w:\\dlc\\java\\Progress.zip;w:\\dlc\\java\\sonicMQ\\lib\\client.jar;w:\\dlc\\java\\sonicMQ\\lib\\jnd
i.jar"
"JVMEXE"="java"
"JVMARGS"="-ms8m"
"JAVAPOLICY"="w:\\dlc\\java\\java.policy"
[…\SOFTWARE\PSC\Progress\9.1C\Startup]
"V6Display"="no"
"DefaultFont"="MS Sans Serif, size=8"
"DefaultFixedFont"="Courier New, size=8"
"DLC"="w:\\dlc"
"Use-3D-Size"="Yes"
"PROBUILD"="w:\\dlc\\PROBUILD"
"PROPATH"=".,w:\\dlc\\gui,w:\\dlc,w:\\dlc\\bin,w:\\dlc\\PROBUILD\\EUCAPP\\EUC.PL,w:\\dlc\\PROBUILD\\EUCAPP"
"UseSourceEditor"="yes"
"EditorConfigPath"="d:\\work\\91c\\proedit"
.
.
.
• Startup
• Colors
• Default Window
• Fonts
• WinChar Startup
• WinChar Colors
• WinChar Keys
• Debug-Init
• Debug-Macros
• Debug-Buttons
• ProADE
• Proedit
• RBStartup
• ReportBuilderSaveList
• ReportBuilderPreferences
• ReportBuilderDefaults
• JAVA
35
Progress SQL92 Server: Installation, Environment, and Administration
The JAVA section contains the definition of the Java-related environment variables and the Startup section
contains the other environment settings with the exception of the LIB and PROMSGS variables that are reset
by default. The PATH variable should be set in the Windows environment.
Important Note: if the Progress environment needs to be modified, the modification should be done in the
Progress.ini file and later on that file should be transferred to the Windows registry using the Progress
ini2reg utility (see section 4.3.2). Before modifying the Progress.ini file, make sure a backup copy is
available.
Below is an excerpt from the Progress.ini after a local installation in the W:\dlc directory of Progress 9.1C.
The Progress SQL92 server specifically accesses the variables and keys marked in bold.
[Startup]
V6Display=no
;ImmediateDisplay=yes
;MultitaskingInterval=100
DefaultFont=MS Sans Serif, size=8
DefaultFixedFont=Courier New, size=8
DLC=w:\dlc
Use-3D-Size=Yes
PROBUILD=w:\dlc\PROBUILD
PROPATH=.,w:\dlc\gui,w:\dlc,w:\dlc\bin,w:\dlc\PROBUILD\EUCAPP\EUC.PL,w:\dlc\PROBUILD\EUCAPP
UseSourceEditor=yes
EditorConfigPath=d:\work\91c\proedit
.
.
.
Unfortunately, the Java-related environment and the shared-library-related environment are not set with this
script. This slightly limits the functionality offered under this environment but is still very useful when
starting a Progress process from the command prompt.
To improve this script and offer access to more functionality (for instance enable reuse of scripts developed
with former Progress versions for database startup procedures that were calling the _mprosrv executables) a
modified version of this script (below) is required.
This original script is usually used to set up a command-line environment with basic settings. The modified
version can be used as a base to develop environment scripts or other database startup / shutdown scripts.
(Keep a copy of the original before making any modifications.)
36
Progress SQL92 Server: Installation, Environment, and Administration
This modified script is enhanced with the items marked in bold. Those items will set the required Java
environment and shared library environment to have a fully functional SQL92 server.
# proenv
DLC="/usr1/v91A05/dlc"
WRKDIR="/usr1/v91A05/wrk"
PATH=$DLC/bin:$PATH
PS1="proenv>"
export DLC WRKDIR PATH PS1
Some of the tasks required when administrating a machine where Progress 9.1a, b, c or d is installed are:
• Moving an installed JDK from one directory to another directory (for space management reasons)
• Upgrading a JDK from one release to the next release (although Progress supports and tested only the
JDK versions listed in this white paper, the Progress Installation and Configuration Guide, or the
Progress Release Notes).
Basically, all the operations affecting either the install location of a Progress product or the JDK it requires
to be fully functional result in modifications to the environment used by Progress processes such as the
SQL92 server.
This section explains how to maintain the environment in use by Progress and suggests guidelines or best
practices to achieve the type of modification mentioned above. However for the sake of clarity, we will
present only one example in detail: moving the JDK from one directory to another directory under Microsoft
Windows-based operating systems and UNIX-based operating systems.
37
Progress SQL92 Server: Installation, Environment, and Administration
After moving the JDK to another directory, modify the $DLC/bin/java_env with the new information.
This simply means that you need to update the following environment variables in the java_env file or in
your custom scripts:
• JDKHOME
• JREHOME
• JDKCP
• JRECP
• CLASSPATH
The goal:
• Move the JDK to C:\JDK.
• JDKHOME
• JREHOME
• JDKCP
• JRECP
• CLASSPATH
4. Save the updated Progress.ini file in the %DLC%\bin directory.
5. Transfer the Progress.ini file into the Windows registry system using the ini2reg.exe utility.
6. Remove the extra copy of the JRE located under W:\DLC (as the JDK already contains the JRE).
38
Progress SQL92 Server: Installation, Environment, and Administration
Progress Version 9 offers four ways to start and manage database servers, regardless if they are serving 4GL
or SQL92 clients. These are:
• Through the Progress Explorer and the Admin Service
We will review each of these techniques for starting Progress database servers in the next sections.
The methods provided above are presented in order of increasing difficulty. This means that the first method
presented is the easiest to use, and the last one is the most difficult to use.
Each section gives additional information trying to identify requirements (in terms of installed products and
their usage, knowledge required to use them).
This section describes the usage of the Progress Explorer in combination with the Progress Administration
Server.
The Progress Explorer is the graphical interface to the Administration Server. This utility is only provided
under Windows operating systems. It is the only way to properly configure processes handled by and from
the Administration Server.
The Administration Server is provided on all operating systems where a database license (such as Personal,
Workgroup, or Enterprise licenses) can be installed. This means that this process can be started on the
machine where the Progress Explorer is installed (for instance Windows operating systems) or a remote
machine where the Progress Explorer is not installed (for instance, on UNIX-based operating systems).
Because of the different architectural choices you can make and because the Progress Explorer is only
available on Windows operating systems, there is no requirement to have both elements running on the same
machine. In fact, a good practice is to have a specific Windows machine dedicated to the use of the Progress
Explorer where you should perform all the administration tasks (configuration / maintenance / starting and
stopping processes) for all the databases available through your local network. In this way you have a central
point to perform any task required by your databases.
39
Progress SQL92 Server: Installation, Environment, and Administration
To connect to an existing Administration Server from the Progress Explorer and create a database
configuration, please refer to the Progress Explorer online Help (or more directly, open the file called:
proexp.chm, located under %DLC%\prohelp\html\). In this online help, check mainly the following sections:
• Getting Started with the Progress Explorer
Example of a simple configuration to start an SQL92 broker with the Progress Explorer:
• Create a new entry under the Database Node. (Expand the AdminServer node that you just connected.):
o You will need to provide:
- A name for this group of database configuration
- The complete database path as seen by the Administration Server
40
Progress SQL92 Server: Installation, Environment, and Administration
o For a complete description of how to create a new database entry from your Progress Explorer
session, please refer to the Progress Explorer online Help. Check the following section:
- Database Configuration and Administration / Adding a Database to the Progress Explorer
• At this stage, Progress has immediately created a default configuration for your database. This
configuration contains the default server group. The properties of the Default configuration should be
modified depending on what you are trying to achieve. (Details about modifying a default configuration
are beyond the scope of this white paper.)
• Edit the properties of your default server group and add the following values:
o Service Name or Port Number: 5000 (or any other number above 1024 that is not used by any other
process running on your machine)
o Number of Server: 5 to allow at least 5 SQL92 servers to start on your database (or any number
above 1)
• Start your default configuration by selecting the Default Configuration, right-clicking, and selecting Start
in the pop-up menu.
You have now started the Progress broker (with a specific service) on the machine where the Administration
Server is running. This broker is ready to handle SQL92 connections as well as 4GL connections.
Note: If you wish to test the SQL92 server and therefore establish a simple SQL92 connection, please refer
to the “Progress SQL92 Guide and Reference” Section 1.5: Progress SQL Explorer.
Conclusion:
This method is the easiest and simplest to use when starting to configure and administrate the Progress
SQL92 server. It provides good control over the architecture you may want to put in place and provides a
flexible interface. It also gives good control over the server processes providing ways to perform most of the
tasks required by database administration. However, it does not offer the possibility to build your own
scripts to start the database server processes.
This method requires the use of the Progress Administration Server on the machine where your database is
located and the Progress Explorer on a PC running a Windows based operating system. These two additional
components need to be installed before using them.
Complex or subtle database administration tasks require some practice to fully understand how they work
together and master the possibilities they offer as a database administration framework.
Note: If you cannot find the Administration Server or the Progress Explorer on your machine, please refer to
the Appendix. A table gives you, for each existing Progress licenses, additional information about the
installation of the Progress Explorer and the Administration Server.
This section describes the usage of the command-line interface (dbman) to the Progress Administration
Server, which is always provided on all operating systems where a database license (such as Personal,
Workgroup or Enterprise licenses) can be installed.
The command-line interface accesses a running Administration Server through its listening port number,
which means that its available and usable from a session running on the machine were the Administration
Server has been started or from an other machine. However this utility is always provided on the machine
where the Administration Server is installed. It is a simple way to manage databases within the
Administration Server framework.
41
Progress SQL92 Server: Installation, Environment, and Administration
The configuration available through an Administration Server must be defined and stored in the Progress
file: conmgr.properties (usually located under %dlc%\properties or $DLC/properties). The command line
interface to the Administration Server (dbman) does not offer an interface to update this file.
The tool to use to maintain the conmgr.properties file is the Progress Explorer. Progress strongly
recommends using this tool to modify this file rather than doing it manually. However, in some extreme
circumstances, you may need to update this file manually within a text editor (for instance when you do not
have any machine with the Progress Explorer installed). Because of manual modification of and possible
typos in the conmgr.properties file and its specific requirements described below, we cannot guarantee that
the configurations you manually define / modify in the conmgr.properties file will be working.
The conmgr.properties file is not operating-system dependant; it has the same structure on all operating
systems. In fact, the only point that will differ between UNIX and Windows operating systems is the way
you provide the path to a specific file or directory (such as the database file). This means that you can do the
operations described here under UNIX as well as under Windows operating systems.
Starting a database server with this technique is basically a two-step operation that we will expand on later
on:
• Edit the conmgr.properties file to create a new configuration or update an existing configuration.
• Use the command-line interface to the Administration Server to start and stop the database
processes.
These are the prerequisites to verify before defining or modifying a configuration and starting / stopping the
database processes:
• The Progress Database Server:
o The SQL92 server executable (_sqlsrv2 located in $DLC\bin under UNIX or %DLC%/bin
under Windows) is installed on each machine hosting one or more database for which you want
to provide SQL access.
42
Progress SQL92 Server: Installation, Environment, and Administration
The appendix of this white paper contains an equivalence table between Progress
Explorer entries, conmgr.properties entries, and proserve command-line parameters.
Example of a simple configuration to start an SQL92 broker with the command line interface to the
Progress Administration Server:
• Start a command-line session on the machine where the Administration server is running.
• Make a copy of the conmgr.properties file located in %DLC%\properties or $DLC/properties. Name the
copy conmgr.properties.back and edit the original conmgr.properties file.
• Create a new section in the conmgr.properties file by copying the following section under the last section
marked as [database.<A name>]. This section defines the key elements that are associated with a
physical database. The name used for this section is always based on the following template:
[database.<A name>]
[database.whitepaper]
configurations=whitepaper.defaultconfiguration
databasename=D:\Work\91c\db\sports
defaultconfiguration=whitepaper.defaultconfiguration
displayname=WhitePaper
• Create a new entry in the conmgr.properties file (located under %DLC%\properties or $DLC/properties)
by copying the following section under the last section marked as [configuration.<A name>.<A
configuration name>]. We are now providing the required information for the only configuration
43
Progress SQL92 Server: Installation, Environment, and Administration
(whitepaper.defaultconfiguration) that has been declared with the information previously added to the
conmgr.properties file. The name used for this section is always based on the following template:
[configuration.<A name>.<A configuration name>] where the combination <A Name>. <A
configuration name> is declared in the ‘configurations’ entry provided in the previous section.
[configuration.whitepaper.defaultconfiguration]
database=whitepaper
displayname=defaultConfiguration
servergroups=whitepaper.defaultconfiguration.defaultservergroup
• Create a new sub-section (in the [environment] section) in the conmgr.properties file by copying the
following section under the last section marked as [servergroup.<A name>.<A configuration name>.<A
Server Group name]. This section defines the settings specific to your Server group. The name used for
this section is always based on the following template: [servergroup.<A name>.<A configuration
name>.<A server group name>] where the combination <A Name>.<A configuration name><A server
group name> is declared in the ‘servergroups’ entry provided in the previous section.
[servergroup.whitepaper.defaultconfiguration.defaultservergroup]
configuration=whitepaper.defaultconfiguration
displayname=defaultServerGroup
numberofservers=5
port=5000
• At this stage you should have created a default configuration for your database. This configuration
contains the default server group. The properties of the Default servergroup should be modified
44
Progress SQL92 Server: Installation, Environment, and Administration
depending on what you are trying to achieve, however, those instructions are beyond the scope of this
white paper.
• Stop and restart your Administration Server to reload the new conmgr.properties file.
You have now started the Progress broker (with a specific service) on the machine where the Administration
Server is running. This broker is ready to handle SQL92 connections as well as 4GL connections.
Note: If you wish to test the SQL92 server and therefore establish a simple SQL92 connection, please refer
to the “Progress SQL92 Guide and Reference” section 1.5: Progress SQL Explorer
Conclusion:
This method is easy to use for starting and stopping a defined configuration. However, manually defining
configurations in the conmgr.properties file is not a simple task and should never be attempted by someone
new to Progress.
• Advanced users, or at least users very familiar with the Administration Server framework and more
specifically the structure of the conmgr.properties file, can use this method, although it remains tricky to
define a new configuration in the conmgr.properties file. Defining and maintaining entries in the
conmgr.properties is much easier when done from the Progress Explorer.
• It only requires the Progress Administration Server up and running on the machine where your database
is located and your own scripts to start and stop predefined configurations.
• Your scripts should also contain the required Progress environment or call the environment files Progress
provides (see section 4.1 and 4.2 in this document for more information).
Note: If you cannot find the Administration Server on your machine, please refer to the Appendix. A
table gives you, for each existing Progress licenses, additional information about the installation of the
Administration Server.
The goal of this section is to describe how to start a database server from the proenv (or your customized
Progress environment) and use the proserve script provided with a Progress installation.
From this interface you can create your own startup scripts so that your databases are configured in the most
efficient way and according to your exact needs.
Within this environment you gain some additional control over the actual SQL92 server process and you
have access to some environment variables that can be set specifically for the server process started through
your current environment (for instance, SQLREUSE).
45
Progress SQL92 Server: Installation, Environment, and Administration
• The SQL92 server installed on the machine where the database is located.
The goal of this section is to describe how to start a database server from your customized Progress
environment (or the Progress proenv script) and start your database server by directly calling the _mprosrv
executable.
From this interface you can create your own startup scripts so that your databases are configured in the most
efficient way and according to your exact needs.
Within the context defined here, please note that you are in charge of making sure that the complete Progress
environment has been properly defined before starting the database server. In this environment you have full
control over the actual SQL92 server process. You are in charge of, and responsible for, defining everything.
• The SQL92 Server installed on the machine where the database is located.
We just covered in the previous section the different ways to start and stop a database server. This section
describes which parameters have particular impact on the Progress SQL92 database server and how to use
them effectively.
To achieve this goal we will need to review the different types of parameters that are available with Progress
9.1. Then we will attempt to define criteria to help administrate the database to the best possible standards
and define how to set up the parameter values based on your production environment and requirements. Two
setup examples show how to apply these guidelines.
The Progress server parameters are grouped into five different categories. Each of those categories defines
specific resources to be used with the database.
• Database server type parameters (Example: -m3 for secondary login broker)
Note: For a list of the parameters in each group, see the Progress Startup Command and Parameter
Reference.
46
Progress SQL92 Server: Installation, Environment, and Administration
They are common to all brokers and servers running on a single physical database. They are set by the first
broker started on the database.
One category of parameters defines ‘database broker resources.’ They define the client access resources
shared by all servers spawned from the broker:
• Database sever network parameters (Example: -Mi, -Mn, -Ma, -minport, -maxport)
In this category you can also find some specific parameters linked to the Admin Service and Java classpath
for SQL92 (Example: -adminport & -classpath).
Here is a summary of the key points to keep in mind when managing your SQL92 servers:
• Separate as much as possible the client application environment from the server environment
(especially if running on the same machine)
o Separate the SQL92 server from the 4GL server (avoid using the same broker for both
types of connections). Use the –m3 for the secondary login broker if started manually.
o Ensure you know which broker is started first (4GL or SQL) to control easily the database
access shared resources parameters.
• Separate the start of each broker by at least 30 seconds if started from scripts.
• Under a Windows operating system, the ODBC driver uses the same registry keys as the SQL92
server when these are installed on the same machine.
• The Java part of the JDBC driver is only a set of java classes that can be integrated into most
environments (with respect to the minimal JDK level required).
47
Progress SQL92 Server: Installation, Environment, and Administration
CLASSPATH
JREHOME
48
Progress SQL92 Server: Installation, Environment, and Administration
A Appendix
This table gives you the complete list of licenses available. For each of those licenses it informs you if the
Progress Administration Server or the Progress Explorer is installed.
Is the Administration Is the Progress Explorer
Progress Product License Server installed with this installed with this license
license? under Windows?
Client Networking No No
Client-side Security No No
Debugger No No
ESQL-89/C No No
49
Progress SQL92 Server: Installation, Environment, and Administration
Query/Results No No
Report Builder* No No
Toolkit No No
Translation Manager* No No
Visual Translator* No No
WebClient* No No
WebSpeed Messenger No No
Note: To make sure that the Progress Explorer and/or the Administration Server are installed on your
machine, you must perform a Typical or Complete Installation of one of the licenses that provides these
components.
50
Progress SQL92 Server: Installation, Environment, and Administration
The operations described here can be performed under UNIX as well as Windows operating systems. The only
noticeable difference with regards to the conmgr.propreties on both operating system types is the way a PATH is
specified.
These are the prerequisites to verify before defining or modifying a configuration in the conmgr.properties file:
• The Progress Database Server:
o The SQL92 server executable (_sqlsrv2 located in $DLC\bin under UNIX or %DLC%/bin
under Windows) is installed on each machine hosting one or more database for which you want
to provide SQL access.
• The Progress Administration Server (This ensures that the conmgr.properties file is available on the
machine where you will attempt this modification.):
o The Admin Service is installed on each machine hosting one or more database and server
processes (regardless if they are 4GL or SQL92 servers).
o The Admin Service is usable on this machine. Please refer to the following sections in your
Progress documentation for more information on how to start the Progress Administration
Server:
If your Administration Server is installed under UNIX, “Progress Installation and
Configuration Guide Version 9 for UNIX” Section 8: Configuring Progress Unified
Broker Products.
If your Administration Server is installed under Windows, “Progress Installation and
Configuration Guide Version 9 for Windows” Section 7: Configuring Progress
Unified Broker Products.
51
Progress SQL92 Server: Installation, Environment, and Administration
A command prompt on the Windows machine, preferably where you have installed
and started the Administration Server.
o Must have the complete Progress environment. To make sure all environment variables are
properly defined, please refer to sections 4.1 or 4.2 depending on the operating system running
on the machine where you have started your command prompt.
Example of a new configuration created in the conmgr.properties with a text file editor:
• Start a command-line session on the machine where the Administration server is running.
• Make a copy of the conmgr.properties file located in %DLC%\properties or $DLC/properties. Name the
copy conmgr.properties.back and edit the original conmgr.properties file. It should look as follows as
there were no configurations defined in my conmgr.properties file when I wrote this white paper.
#
# Connection Manager Properties File
#
%% Juniper Properties File
%% version 1.1
%% 01-Apr-90 4:02:09 PM
• Create a new section in the conmgr.properties file by copying the following section under the last section
marked as [database.<A name>]. If you started with a blank conmgr.properties file, please check the
conmgr.propreties file provided at the end of this section.
• This part of the file defines the key elements that are associated with a physical database. The name used
for this sections is always based on the following template: [database.<A name>]
[database.whitepaper]
configurations=whitepaper.defaultconfiguration
databasename=D:\Work\91c\db\sports
defaultconfiguration=whitepaper.defaultconfiguration
displayname=WhitePaper
• For optional entries in this section, please refer to the table of equivalence between Progress Explorer
and conmgr.properties, which presents every possible entry in the conmgr.properties file.
52
Progress SQL92 Server: Installation, Environment, and Administration
• Create a new entry in the conmgr.properties file (located under %DLC%\properties or $DLC/properties)
by copying the following section under the last section marked as [configuration. <A name>.<A
configuration name>]. If you started with a blank conmgr.properties file, please check the
conmgr.propreties file provided at the end of this section.
• We are now providing the required information for the only configuration
(whitepaper.defaultconfiguration) that has been declared with the information previously added to the
conmgr.properties file. The name used for this section is always based on the following template:
[configuration. <A name>.<A configuration name>] where the combination <A Name>.<A
configuration name> is declared in the ‘configurations’ entry provided in the previous section.
[configuration.whitepaper.defaultconfiguration]
database=whitepaper
displayname=defaultConfiguration
servergroups=whitepaper.defaultconfiguration.defaultservergroup
• For optional entries in this section, please refer to the table of equivalence between Progress Explorer
and conmgr.properties, which presents every possible entry in the conmgr.properties file.
• Create a new sub-section (after the [environment] section flag) in the conmgr.properties file by copying
the following section under the last section marked as [servergroup.<A name>.<A configuration
name>.<A Server Group name]. If you started with a blank conmgr.properties file, please check the
conmgr.propreties provided at the end of this section.
• This section defines the settings specific to your Server group. The name used for this section is always
based on the following template: [servergroup.<A name>.<A configuration name>.<A server group
name>] where the combination <A Name>.<A configuration name><A server group name> is declared
in the ‘servergroups’ entry provided in the previous section.
[servergroup.whitepaper.defaultconfiguration.defaultservergroup]
configuration=whitepaper.defaultconfiguration
displayname=defaultServerGroup
numberofservers=5
port=5000
53
Progress SQL92 Server: Installation, Environment, and Administration
o The ‘displayname’ entry simply states the name to display in the Progress Explorer when
administrating the different server groups for this specific configuration. This name is usually
extracted from the name of this section.
o The ‘numberofservers’ entry specifies the maximum number of servers (4GL and SQL92) this
server group can start.
o The ‘port’ entry specifies the port number on which the broker configured here will listen for client
server connections.
• For optional entries in this section please refer to the table of equivalence between Progress Explorer and
conmgr.properties, which presents every possible entry in the conmgr.properties file.
• At this stage you should have created a default configuration for your database. This configuration
contains the default server group. The properties of the Default servergroups should be modified
depending on what you are trying to achieve, however those instructions are beyond the scope of this
white paper.
• Stop and restart your Administration Server to reload the new conmgr.properties file.
In other words, after all the modifications described above, your conmgr.properties should like this:
#
# Connection Manager Properties File
#
%% Properties File
%% version 1.1
%% May 5, 2002 4:32:05 PM
[configuration.whitepaper.defaultconfiguration]
database=whitepaper
displayname=defaultConfiguration
servergroups=whitepaper.defaultconfiguration.defaultservergroup
[database.whitepaper]
configurations=whitepaper.defaultconfiguration
databasename=D:\Work\91c\db\sports
defaultconfiguration=whitepaper.defaultconfiguration
displayname=WhitePaper
[environment]
[servergroup.whitepaper.defaultconfiguration.defaultservergroup]
configuration=whitepaper.defaultconfiguration
displayname=defaultServerGroup
numberofservers=5
port=5000
Once more, this manual modification is difficult. Attempting it can create more problems than help solve them. As
a result, a person new to Progress should never attempt this modification. Only an advanced DBA should attempt
it.
54
Progress SQL92 Server: Installation, Environment, and Administration
55
Progress SQL92 Server: Installation, Environment, and Administration
56
Progress SQL92 Server: Installation, Environment, and Administration
Notes:
• Each entry stating “Not Applicable” in the Command line startup parameter column means in fact
that this Progress Explorer/conmgr.property triggers a command line to start a process, it is a specific
label used internally to bundle everything together, or because these are properties specific to the
Administration server when describing configurations. These have no equivalent in command-line
parameters.
• For each parameter listed in the Command line startup parameter column, the values you can use are
documented in the Progress Startup Command and Parameter Reference manual. However for some
specific entries, values are listed here:
o –server type is command-line startup parameter only available starting with Version 9.1D.
Values to use are: 4gl, sql or both.
• For each parameter listed in the Conmgr.properties entries column, the values you can use are
documented in the Progress Startup Command and Parameter Reference. However, for some specific
entries, values are listed here:
o afterimageprocess= takes the following values: “true” or “false”.
o beforeimagestall=
o bithold= takes a positive integer.
o beforeimageprocess= takes the following values: “true” or “false”.
o asynchronouspagewriters= takes the following values: “true” or “false”.
o watchdogprocess= takes the following values: “true” or “false”.
o autostart= takes the following values: “true” or “false”.
57
Progress SQL92 Server: Installation, Environment, and Administration
58