About the Oracle Parameter File

The Oracle parameter file is a small text file named init<SID>.ora that defines the Oracle instance.

The Oracle parameter file contains a list of Oracle instance configuration parameters, including database and instance defaults, database limits, and the size of the System Global Area (SGA). It also specifies control files, archived log files, and trace files settings. The parameter file is read only during instance startup, and the database does not write to it. If the file is modified, the instance must be shut down and restarted to make the new version of the parameter file effective.

To use Oracle with ENOVIA Live Collaboration Server, several initial settings in the Oracle init<SID>.ora file must be adjusted. The file is located in the ORACLE_HOME/dbs/ directory. ORACLE_HOME is the path where Oracle was installed, and <SID> is the server instance identification. For example, for a SID named "orcl," the parameter file would be called initorcl.ora. Notice that many settings have several options, with all but one "commented out" with a pound sign, #.

The sections that follow describe the recommended settings.

If you modify the Oracle parameter file using the Windows Instance Manager, be sure to right-click and choose Export to File from the Stored Configurations menu, or your changes may not be written to the OS level file.

System Global Area

The System Global Area (SGA) is defined by three settings in the init<SID>.ora file:


  • DB_BLOCK_BUFFERS
  • SHARED_POOL_SIZE
  • LOG_BUFFERS

The SGA should be configured to use no more than 40% of the available RAM on a server that is dedicated to the ENOVIA Live Collaboration/Oracle instance.The first setting is the most important for ENOVIA Live Collaboration.

The DB_BUFFER area, defined by the product of DB_BLOCK_SIZE and DB_BLOCK_BUFFERS, is the key memory buffering cache for database transaction activity. If you specify too small a value, it will impact performance. The Oracle default of 200 is inadequate. A larger cache reduces the number of disk writes of modified data.

DB_BLOCK_SIZE should be set to match the system's OS block size value. Considerable performance improvements have been noted when, for instance, Solaris machines used 8k instead of 2k, and AIX used a DB_BLOCK_SIZE size of 4k to match the OS default of 4k.

Note: Oracle should never use swap, otherwise performance will degrade. Too large a DB_BLOCK_BUFFER value could induce memory paging or swapping.

SHARED_POOL_SIZE is the data dictionary library cache. A value of 9000000 is suggested, but larger databases may want to use 15m.

So, for example, if a server for a large database had 256k of RAM, you could configure it as follows:

db_block_buffers = 20000 (20000 x 4k = 80mb. Note that this is assuming a block size of 4k at database creation.)

shared_pool_size = 9000000

log_buffers = 16384000

If this server will also run the ENOVIA Live Collaboration Server, use a smaller SGA, reducing the size of DB_BLOCK_BUFFERS only.

Identifying Rollback segments

All new rollback segments should be identified with the rollback_segments setting. For example:

rollback_segments = r01, r02, r03, r04 (and so on...)

Rollback segments must first be created with the "Storage Manager" or SQL*Plus applications.

You may also need to specify the maximum transactions per rollback segment. For Oracle Version 10.x, use the following parameter:

transactions_per_rollback_segment = 32 (at a maximum)

Configuring for Concurrent Users

Adjustments should be made to the number of processes, open cursors, and dml locks based on the number of concurrent users. Use these formulas as a guide for configuring:

processes= should be 5 times the number of concurrent users.

open_cursors sets the number of open cursors per process. 200 is suggested, but may be scaled up as necessary.

dml_locks = should be 10 times the number of concurrent users.

The number of threads in the ENOVIA Live Collaboration Server should be included in the "concurrent user" count for all settings.

Note: Increasing the number of processes may require more semaphores to be created on some UNIX servers. Refer to the Oracle installation guides for system configuration requirements.

Note: If Adaplets will be used, the open_cursors setting should be 12 times the number of concurrent users.

Configuring for Adaplets

When using an adaplet with a ENOVIA Live Collaboration Server, the Oracle instance needs to be able to support more sessions than the connection pool size. The following Oracle parameters should be set in init<SID>.ora as follows:

sessions=200
processes=250 

These values should be considered guidelines, but both should be set greater than the value of MX_CONNECTION_POOL_SIZE, which is set in the enovia.ini file for the ENOVIA Live Collaboration Server. The default value for MX_CONNECTION_POOL_SIZE is determined by the Java heap size selected during installation of the ENOVIA Live Collaboration Server (on UNIX, that is small = 10, medium = 20, large = 30).

Also note that when adaplets will be used, the open_cursors setting should be 12 times the number of concurrent users. Refer to the ENOVIA Studio Federation Toolkit Adaplet Programming Guide for details.

Log Settings

LOG_CHECKPOINT_INTERVAL is defined as:

So, for a 10m redo log, an OS block size of 2k, and 2 checkpoints per redo log, we have:

Given that the redo is really used for recovery, Oracle increments a Sequence Change Number (SCN) with each checkpoint write. So, if you need to recover a database, having multiple SCNs per redo log permits recovery to any SCN.

For dataload or upgrade conditions, consider setting the LOG_CHECKPOINT_INTERVAL to a large number (such as 4096000), essentially disabling the SCN write and tuning the database for performance.

The log buffers writes to the redo every 3 seconds or at 33 percent fill of the log buffer. It is essential that the sum of the sizes of the redo logs exceeds the log buffer size. This means that a 16mb log buffer demands redo logs larger than the Oracle defaults of 500k /1m.

A redo log switch rate of 20 to 30 minutes is recommended for a production system.

Archive Logging

Although not documented in our sample init<SID>.ora file (which is shown for creation purposes) archive logging is highly recommended for production mode. The following settings may be added to the initialization file:

log_archive_start = true 
log_archive_dest = directory path for Archive logs 
log_archive_format = arch%S.arc(for example)

Refer to the Oracle Server Administrator's Guide for discussion of these and other settings. For example, to enhance archiving performance, consider setting:

log_archive_buffers = 2

However, for writes to disk or fast tape, try a larger value. Oracle documentation provides many more details.

Oracle Setup for ENOVIA Live Collaboration with Case-sensitive Off

If you plan to work with ENOVIA Live Collaboration in a case-insensitive environment, the Oracle database must be configured to use a function-based index by adding the following to init<SID>.ora:

QUERY_REWRITE_ENABLED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED
optimizer_mode = choose

If you have done some Oracle tuning, the optimizer may be in "Choose" mode. This is acceptable as long as you calculate statistics regularly, since the system will use cost-based optimizing if statistics are available. Refer to Oracle documentation for more information on optimizer modes. Refer to the MQL Guide for more information on the ENOVIA Live Collaboration case-sensitive setting and for recalculating statistics.