This topic documents the initialization parameters used to configure the multi-threaded server (MTS). Only the currently recommended parameters are described here. Parameters that were made obsolete when Oracle8i was released are listed in the following table, but have been omitted from this appendix.

Parameter Obsolete in Release Description
MTS_DISPATCHERS 8.0

MTS_DISPATCHERS itself is not obsolete, but there is an obsolete syntax that looks like this:

MTS_DISPATCHERS="tcp,3"

This example configures three TCP/IP dispatchers. This syntax is still supported for backward compatibility, but you should switch to the newer syntax documented in this appendix.

MTS_LISTENER_ADDRESS 8.1 Specifies the address of a listener with which the dispatchers should register.
MTS_MULTIPLE_LISTENERS 8.1 Modifies the syntax accepted by MTS_LISTENER_ADDRESS.
MTS_RATE_LOG_SIZE 8.1 Specifies the sample size that the instance uses to calculate dispatcher rate statistics.
MTS_RATE_SCALE 8.1 Specifies the time scale used for dispatcher rate statistics.

The remainder of this topic lists the currently recommended parameters.


LOCAL_LISTENER

Format:

LOCAL_LISTENER = "ADDRESS_LIST = (ADDRESS = address_data)
	                                [(ADDRESS = address_data)...]"

	address_data (TCP/IP) :=
	   (PROTOCOL = TCP)(HOST = {hostname | ip_address})(PORT = port_number)
	address_data (IPC) :=
	   (PROTOCOL = IPC)(KEY = key_name)
	address_data (SPX) :=
	   (PROTOCOL = SPX)(SERVICE = spx_service_name)
	address_data (Named Pipes) :=
	   (PROTOCOL = NMP)(SERVER = server_name)(PIPE = pipe_name)

Purpose:

Defines the addresses of local listeners so that the instance and the instance's dispatchers can register with them. This is a static parameter, and may not be changed while the instance is running.

The LOCAL_LISTENER parameter overrides the now obsolete MTS_LISTENER_ADDRESS and MTS_MULTIPLE_LISTENERS parameters.

Parameter Description
address_data The protocol-specific address data required to identify a listener address. The address data specified in the LOCAL_LISTENER parameter should match that specified in the target listener's listener.ora file.
host_name The TCP/IP hostname of the machine on which the listener is running.
ip_address The TCP/IP address of the machine on which the listener is running.
port_number The TCP/IP port number that the listener is monitoring.
key_name The listener's IPC key name.
spx_service_name The listener's SPX service name.
server_name The name of the server on which the listener is running.
pipe_name The name of the pipe over which you want to communicate.
Default value

The default value is as follows:

LOCAL_LISTENER = "(ADDRESS_LIST = \
		(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) \
		(ADDRESS = (PROTOCOL = IPC)(KEY = database_name)))"

Notice that, by default, the LOCAL_LISTENER parameter points to the address used by the default Net8 listener. That's why you can often get away without setting this parameter. You only need it when you are using a listener with an address other than the default.


MTS_DISPATCHERS

Format:

MTS_DISPATCHERS = "(proto_addr)[(attribute)[(attribute)...]]"

	proto_addr := {ADDRESS = address_data
	              |DESCRIPTION = address_description
	              |PROTOCOL = protocol)

	address_data (TCP/IP) :=
	   (PARTIAL = TRUE)(PROTOCOL = TCP)(HOST = {hostname | ip_address})
	   (PORT = port_number)
	address_data (IPC) :=
	   (PARTIAL = TRUE)(PROTOCOL = IPC)(KEY = key_name)
	address_data (SPX) :=
	   (PARTIAL = TRUE) (PROTOCOL = SPX)(SERVICE = spx_service_name)
	address_data (Named Pipes) :=
	   (PARTIAL = TRUE)(PROTOCOL = NMP)(SERVER = server_name)(PIPE = pipe_name)

	attribute :=  CONNECTIONS = max_connections
	             |DISPATCHERS = num_dispatchers
	             |LISTENER = (ADDRESS_LIST = (ADDRESS = listener_address_data)
	                                    [(ADDRESS = listener_address_data)...])
	             |MULTIPLEX = {1 | ON | YES | TRUE | BOTH | IN | OUT | 0 | NO | OFF |
	                           FALSE}
	             |POOL = {ticks | ON | YES | TRUE | BOTH | IN | OUT | NO | OFF | FALSE}
	             |POOL = ({IN | OUT} = ticks)[({IN | OUT} = ticks...)]
	             |SERVICE = service_name
	             |SESSIONS = max_sessions
	             |TICKS = seconds

Purpose:

Defines MTS dispatchers for an instance. More than one MTS_DISPATCHERS parameter may be used to define dispatchers for multiple protocols, or on multiple addresses. However, when multiple MTS_DISPATCHERS parameters are used, they must all be together in the instance parameter file.

Parameter Description
address_data A protocol-specific address that the dispatcher (or dispatchers) use. In the case of TCP/IP, this may be either a complete or a partial address.
address_description Allows you to specify additional attributes along with an address. This option is rarely used when defining MTS dispatchers.
protocol Specifies the protocol that you want the dispatcher(s) to support. This is the most common option used when defining MTS dispatchers. When it is used, the instance automatically determines the address to be used by each dispatcher that is created. The valid protocol codes are TCP, IPC, SPX, and NMP. MTS does not support Bequeath (BEQ) connections.
host_name The TCP/IP hostname you want the dispatcher to use.
ip_address The TCP/IP address you want the dispatcher to use.
port_number The TCP/IP port number you want the dispatcher to use.
key_name The IPC key name you want the dispatcher to use.
spx_service_name The SPX service name you want the dispatcher to use.
server_name The server name you want a Named Pipes dispatcher to use.
pipe_name The name of the pipe over which you want the dispatcher to communicate.
attribute A dispatcher attribute used to specify the number of dispatchers to create, and to define how they operate.
max_connections Places a limit on the number of connections that a dispatcher can handle at one time. This value can never be greater than the operating system-specific connection limit. This defaults to the operating system limit.
num_dispatchers Specifies the number of dispatcher processes to create for the specified protocol. This defaults to 1.
listener_address_data The protocol-specific address for the local listener. This is in the same format as address_data, except that (PARTIAL = TRUE) is not used when defining the local listener.
MULTIPLEX={ 1 | ON | YES | TRUE | BOTH | IN | OUT | 0 | NO | OFF | FALSE }

Enables or disables multi-threaded server's multiplexing feature. By default, multiplexing is off.

  • 1 | ON | YES | TRUE | BOTH – Enables multiplexing for both inbound and outbound network connections.
     
  • IN – Enables multiplexing for inbound network connections only.
     
  • OUT – Enables multiplexing for outbound network connections only.
     
  • 0 | NO | OFF | FALSE – Disables multiplexing completely.
POOL={ ticks | ON | YES | TRUE | BOTH | IN | OUT | NO | OFF | FALSE }

Enables or disables Net8's connection pooling feature.

  • ticks – Enables connection pooling, and sets the timeout to the specified number of ticks for both inbound and outbound network connections.
     
  • ON | YES | TRUE | BOTH – Enables connection pooling for inbound and outbound network connections. 
     
  • IN – Enables connection pooling for inbound network connections only.
     
  • OUT – Enables connection pooling for outbound network connections only.
     
  • NO | OFF | FALSE – Disables connection pooling.
{ IN | OUT }=ticks) Represents an alternate syntax for enabling connection pooling. IN or OUT is used to enable connection pooling for inbound or outbound connections, and you can specify a different timeout for each.
service_name The database service name that you want the dispatcher or dispatchers to register with the listener. This overrides the now obsolete MTS_SERVICE parameter.
max_sessions Places a limit on the maximum number of user sessions that can be serviced by any one dispatcher. This attribute only applies when connection pooling is used.
seconds Specifies the number of seconds in a network tick. The default value is platform-specific.

Examples:

To configure four TCP/IP dispatchers for an instance:

MTS_DISPATCHERS = "(PROTOCOL = TCP)(DISPATCHERS = 4)"

To configure four TCP/IP dispatchers for an instance, enable connection pooling, limit the number of active connections for each dispatcher to 50, and limit the total number of user sessions for each dispatcher to 75:

MTS_DISPATCHERS = "(PROTOCOL = TCP)(DISPATCHERS = 4)(POOL = BOTH) \
	(CONNECTIONS = 50)(SESSIONS = 75)"

To configure one TCP/IP dispatcher, and have it register with a specific listener:

MTS_DISPATCHERS = "(PROTOCOL = TCP)(DISPATCHERS = 1) \
	(LISTENER = (ADDRESS_LIST = (ADDRESS = \
(PROTOCOL = TCP)(HOST = donna.gennick.org)(PORT = 1523))))"

MTS_MAX_DISPATCHERS

Format:

MTS_MAX_DISPATCHERS = dispatcher_limit

Purpose:

Places a limit on the number of dispatchers that may be started for an instance. The default limit is 5, and but that is adjusted upwards, if necessary, to match the number of dispatchers configured when the instance is started. This is a static parameter that cannot be changed once the instance has started.


MTS_MAX_SERVERS

Format:

MTS_MAX_SERVERS = shared_server_limit

Purpose:

Places a limit on the number of shared server processes that can be started. The default limit is 20. This is a static parameter that cannot be changed once the instance has started.


MTS_SERVERS

Format:

MTS_SERVERS = shared_server_minimum

Purpose:

Specifies the minimum number of shared server processes that the instance should maintain. This is the number of shared server processes that are started when the instance is started. The default minimum is 1. This is a dynamic parameter—it may be changed while the instance is running, but it cannot be increased beyond the limit specified by MTS_MAX_SERVERS.

Start the discussion at forums.toadworld.com