Oracle® Application Server Integration Adapter for IMS/DB Installation and User's Guide 10g (9.0.4) Part Number B10505-01 |
|
Oracle Connect for IMS/DB includes a number of tuning parameters that can improve performance. Specifically, the daemon can be configured to optimize communication between the OS/390 machine and the client machine and the binding environment can be tuned to optimize the way actual requests are handled.
This chapter contains the following sections:
The daemon workspace is responsible for allocating server processes to clients. You can configure a workspace to use a pool of server processes so that a server process is always available for a client request. Use Oracle Studio to maintain daemon and daemon workspace parameters to control the allocation of server processes and their management in a pool.
You can also have a number of daemon workspace configurations. Thus, you can tailor individual workspaces for use with different adapters.
The workspace that will be used is specified in the delivery channel, as described in Defining the Delivery Channel.
Use Oracle Studio to add a new daemon configuration. You can set up different daemon configurations for different situations.
To copy the properties of an existing workspace, click the ellipsis button and select the workspace from which you want to copy the properties.
Once the workspace is defined the daemon editor is displayed, showing the WS Info tab.
You edit a workspace using the following tabs:
The server mode dictates how the daemon starts up new processes. The daemon supports the following server modes:
Single Client - Each client receives a dedicated server process. The account in which a server process runs is determined either by the client login information or by the specific server workspace.
This mode enables servers to run under a particular user account and isolates clients from each other (since each receives its own process). However, this server mode incurs a high overhead due to process startup times and may use a lot of server resources (since it requires as many server processes as concurrent clients).
Multi-Client - Clients share a server process and are processed serially.
This mode has low overhead since the server processes are already initialized. However, because clients share the same process, they may impact one another, especially if they issue lengthy queries.
The number of clients that share a process is determined by the Clients per server limit
(the maximum number of concurrent clients a server process for the current workspace accepts).
Reusable - This is an extension of the single client mode. Once the client processing finishes, the server process does not die and can be used by another client, reducing startup times and application startup overhead.
This mode does not have the high overhead of single client mode since the servers are already initialized. However, this server mode may use a lot of server resources (since it requires as many server processes as concurrent clients).
The other modes can be set so that the server processes are reusable by setting the number of times a process can be reused with the Reuse limit
value (the maximum number of times a particular server process can be reused or how many clients it can serve before it is retired). Reuse of servers enhances performance since it eliminates the need to repeat initializations. However, reuse runs a risk of higher memory leakage over time. The default for the Reuse limit
field value is None, indicating that no reuse limit is enforced.
Set the server mode in the WS Server tab of the daemon editor:
When using any of the server modes you can specify a pool of server processes. These server processes are started when the daemon starts and are maintained in a pool. The server processes are available for use by new client requests from the pool, saving initialization time. Instead of starting a new server process each time one is requested by a client, the client receives a process immediately from the pool of available processes. When the client finishes processing, this server process either dies, or if reusable servers have been specified, it is returned to the pool.
You set up a pool of server processes by specifying the following parameters in the WS Server tab.
Initial number of servers - The number of server processes that are prestarted for this workspace when the daemon starts up. These are available for use by new client processes with minimal initialization time. Instead of starting a new server process each time one is requested by a client, the daemon immediately allocates (to the client) a server from a pool of available servers. When the number of available server processes drops below the value specified in the Minimum number of available servers
field, the daemon again starts server processes until the specified number of available servers is reached. The default for this parameter is 0, meaning that no servers are prestarted for this workspace.
Minimum number of available servers - The minimum number of server processes in the prestarted server's pool before the Oracle Connect daemon resumes creating new server processes (up to the number specified in the Initial number of servers field
value, described above). If this parameter is set to a value greater than that of the Initial number of servers
field value, the daemon considers the value to be the same as the value specified in the Initial number of servers
field. In this case, a new server process is started and added to the pool each time a server process is removed from the pool and allocated to a client). The default for this parameter is 0, meaning that new servers are created only when there are no other available servers.
Set maximum number of servers - The maximum number of available server processes pooled for this workspace. If the server is reusable, once a client disconnects from the server, the daemon returns the server to the pool of available servers. If the limit is reached, excess server processes are discarded.
Number of sub-tasks - The number of sub-tasks for a server that are prestarted for this workspace when the daemon starts up. In addition to setting up a pool of server processes as described above, you can set additional server processes as sub-tasks by specifying this parameter. Thus, setting 10 servers and 10 prestarted sub-tasks results in 100 tasks started (10 sub-tasks for each process).
Each binding configuration includes the following:
Configuring data sources, adapters and inbound queues are described in Chapter 3, "Modeling Interactions for Oracle Application Server Integration Adapter for IMS/DB". The following section describes the environment settings.
To edit an environment setting, expand the property category and click the value to edit. The binding environment is divided into the following categories:
The following parameters define communication buffers:
comCacheBufferSize - The size of a memory buffer on a client, which is used by the Oracle Connect client/server to store read-ahead data. The default is 200000 bytes.
comMaxSocketSize - The maximum bytes that can be written in one chunk on a socket. The default is -1 (no limitation).
comMaxXmlInMemory - The maximum size of an XML document held in memory. The default is 65535 bytes.
comMaxXmlSize - The maximum size of an XML document passed to another machine. The default is 65535 bytes.
The following parameters define debugging and logging operations.
acxTrace - When set to "true", the input xml sent to the backend adapter and the output xml returned by the backend adapter, are written to the log.
analyzerQueryPlan - For internal use.
gdbTrace - For internal use.
generalTrace - When set to "true", logs general trace information. The default writes only error messages to the log.
logFile - The high-level qualifier of the log file for messages. The following types of message are written to the log:
oledbTrace - For internal use.
optimizerTrace - When set to "true", trace information and information about the Query Optimizer strategy is written to the log.
queryWarnings - When set to "true", generates a log of Query Processor warnings.
traceDir - For internal use.
The following parameters define miscellaneous operations, including national language support (NLS) and the directory where temporary files are written.
codepage - For use with National Language Support (NLS) to identify the codepage for the workspace.
cvtSeverityLevel - The data type conversion policy when a conversion error occurs:
edit - For internal use.
language - Identifies the application language. A default codepage is selected based om the value specified for this parameter.
nlsString - Specifies the codepage used by a field whose data type is defined as "nlsString". You use this for a field whose codepage is other than that of the machine's codepage. This parameter includes the following values:
tempDir - The directory where temporary files are written, including the temporary files created for use by hash joins and for sorting files. The default is the current high-level qualifier.
year2000Policy - Determines the way 2-digit years are converted into 4-digit years. When the parameter year2000Policy is not set, or when it is set to a value outside the range of values defined for the policy, as described below, a default value of 5 and the Sliding Base Year policy is used. Two policies are provided:
Fixed Base Year - year2000Policy is set to a value greater than, or equal to 1900. In this case, the value of year2000Policy is the first 4-digit year after 1900 that can be represented by a 2-digit year. For example, if year2000Policy is set to 1905, the years 2000->2004 will be represented by 00->04. All other 2 digits will map to 19xx.
This solution is most appropriate if there is live data at the low end (close to the year 1900), which the user wants to keep with the current 2-digit format.
The user will probably change the base date only after ensuring that these old dates have been deleted from the data source.
Sliding Base Year - year2000Policy is set to a positive value less than 100. In this case, the value of year2000Policy represents the number of years ahead of the current year that can be represented by a 2-digit number. With each passing year the earliest year that can be represented by a 2-digit number changes to a year later.
The odbc parameters are for internal use.
The oledb parameters are for internal use.
The following parameters enable you to customize the performance.
goal - The optimization policy, which can be specified as one of the following:
Aggregate queries automatically use all row optimization, regardless of the value of this parameter.
noHashJoin - When set to "true", disables hash join optimization. When hash joins are enabled, a significant amount of disk space is required. Therefore, if the system does not have much available disk space, disable hash join optimization.
noSemiJoin - For internal use.
preferredSite - For internal use.
semiJoinInValuesFactor - For internal use.
The following parameters enable you to fine tune how queries are processed.
compileAfterLoad - For internal use.
dsoThreadingBoth - For internal use.
emptyStringIsNull - When set to "true", all empty strings are reported as "NULL".
firstTreeExtensions - The maximum size allowed for an SQL query after compilation. The default value is 150 KB.
forceQualifiedNames - For internal use.
ignoreSegmentBindFailure - For internal use.
maxColumnsInParsing - The maximum number of columns that a query references. The default is 500 columns.
maxSqlCache - The maximum number of SQL queries stored in cache memory. The default value is 3.
noCommandReuse - When set to "true", sets Query Processor not to cache for reuse the executed state of a query.
noCompilationCache - When set to "true", sets Query Processor not to save a successfully compiled statement in the cache.
noDSPropertyCache - For internal use.
noInsertParameterization - When set to "true", sets Query Processor not to parameterize constants in INSERT statements.
noMarkRowFailedFetch - When set to "true", enables Query Processor to continue fetching data after a failure in retrieving a row.
noMetadataCaching - When set to "true", Query Processor does not take object metadata from the cache but directly from IMS/DB.
noParallelExecution - For internal use.
noQueryParametrization - When set to "true", sets Query Processor not to convert constants into parameters when accessing IMS/DB.
noQueryReadAhead - For internal use.
noSessionPooling - For internal use.
noSQSCache - For internal use.
noThreadedReadAhead - For internal use.
noThreads - For internal use.
noTreeAutoExtend - For internal use.
optimisticForUpdate - When set to "true", optimistic locking becomes the default for locking behavior.
parserDepth - The maximum depth of the expression tree.
proceduresCacheSize - For internal use.
promptDbUserPassword - For internal use.
tokenSize - The maximum length of a string in an SQL query. The minimum value is 64. The default value is 350.
useAlternateQualifier - For internal use.
useTableFilterExpressions - When set to "true", enables the use of tables that have filter expressions specified in their metadata.
The transactions parameters are for internal use.
The following parameters define tuning.
dsmMaxBufferSize - The maximum size of a cache memory. This cache is used when memory is required on a temporary basis (as when Oracle Connect sorts data for a query output, for a subquery, or for aggregate queries). This cache size is not used for hash joins and lookup joins (see the hashBufferSize parameter, below). The default is 1000000 bytes.
dsmMaxSortBufferSize - The maximum size of the sort buffers. Use this parameter instead of dsmMaxBufferSize for sorts only. The default is 1000000 bytes.
dsmMidBufferSize - The maximum size of the index cache. This cache is not used for hash joins and lookup joins. The default is 100000 bytes.
hashBufferSize - The amount of cache memory that is available for each hash join or lookup join. The default is 1000000 bytes.
hashEnableParallelism - Both sides of a hash join are read concurrently. The default is "true".
hashMaxDiskSpace - The maximum amount of disk space (in MBs) that a query can use for hash joins. The default is unlimited (all the free space on the allocated disk). If a query requires more space than allocated via this parameter, the query execution will stop. The minimum value for this parameter is 20 MB.
Temporary files are written per query. Therefore, if several users can execute queries at the same time, adjust the amount of space available, so that the total that can be allocated at any one time does not exceed the available space.
hashMaxOpenFiles - The maximum number of files that a query can open at one time for use when performing hash joins. The number assigned to this parameter must not exceed the system maximum. The default is 90 files.
|
![]() Copyright © 2003 Oracle Corporation. All Rights Reserved. |
|