Managing TimesTen Daemon Attributes

The timesten.conf file contains TimesTen daemon attributes.

  • In TimesTen Scaleout, you can import the values in the timesten.conf file by using the ttGridAdmin instanceConfigImport command. See Import Instance Configuration Attributes (instanceConfigImport) in the Oracle TimesTen In-Memory Database Reference.

  • In TimesTen Classic, you can create or change values for the timesten.conf file through connection attributes, through editing this file by hand, or with the ttInstanceCreate or ttInstanceModify utilities.

    Use the ttInstanceModify utility to make changes to the timesten.conf file for most commonly changed attributes. If you cannot use ttInstanceModify to change a particular attribute and must modify the timesten.conf file directly, stop the TimesTen daemon before you change the file. Restart the TimesTen daemon after you have finished changing the file. To change TimesTen server attributes, it is only necessary to stop the server. It is not necessary to stop the TimesTen daemon.

    See ttInstanceCreate and ttInstanceModify in the Oracle TimesTen In-Memory Database Reference.

For more information about the timesten.conf file, see TimesTen Instance Configuration File in the Oracle TimesTen In-Memory Database Reference.

On Linux and UNIX, the timesten.conf file is located in the daemon home directory:

timesten_home/conf 

Some features that the timesten.conf file controls are:

  • The network interfaces on which the daemon listens

  • The minimum and maximum number of TimesTen subdaemons that can exist for the TimesTen instance

  • Whether or not the TimesTen server is started

  • Whether or not you use shared memory segments for client/server inter-process communication

  • The number of server processes that are prespawned on your system

  • The location and size of daemon log files and user log files

  • The duration of daemon logging to save for critical events

  • Backward compatibility

  • The maximum number of users for a TimesTen instance

  • Data access across NFS mounted systems. This is for Linux only.

  • The TNS_ADMIN value for an application using cache, OCI, Pro*C/C++, or ODP.NET. This option cannot be modified in this file.

  • Modifying the default database recovery after a fatal error

The rest of this section includes the following topics:

Determining the Daemon Listening Address

By default, the TimesTen main daemon, all subdaemons and agents listen on a socket for requests, using any available address.

All TimesTen utilities and agents use the loopback address to talk to the main daemon, and the main daemon uses the loopback address to talk to agents.

By default, both IPv4 and IPv6 addresses are used. You can disable the use of IPv6 addresses by setting the enableIPv6 attribute to 0 on a separate line in the timesten.conf file:

enableIPv6=0

This change takes effect after the TimesTen main daemon restarts. You cannot disable the use of IPv4 addresses.

You can control which IP addresses that TimesTen listens on by specifying those addresses with the listen_addr attribute for IPv4 addresses and the listen_6_addr attribute for IPv6 addresses in the timesten.conf file. The addresses specified with this option can be either a host name or a numerical IP address. If you specify a hostname that resolves to multiple IP addresses, then TimesTen listens on all of those addresses.

The listen_addr and listen_6_addr attributes exist for situations where a server has multiple network addresses and multiple network cards. You can limit the network addresses on which the TimesTen daemon is listening to a subset of the server's network addresses by making entries only for those addresses on which the daemon listens.

Note:

Use of either the listen_addr or listen_6_addr attributes disables all available addresses listening for both IPv4 and IPv6. This means that if you set the listen_addr attribute, then you also must set the listen_6_addr attribute (and vice versa).

For example:

  • Given a situation where a server has a "public" network address that is accessible both inside and outside the local network and a "private" address that is accessible only within the local network, adding a listen_addr attribute and/or a listen_6_addr attribute containing only the private address blocks all communications to TimesTen coming on the public address.

  • By specifying only the local host (or the loopback addresses), the TimesTen main daemon can be cut off from all communications coming from outside the server and limited to communicate only with local clients and subdaemons.

TimesTen replication does not use the listen_addr or listen_6_addr attributes. There is no requirement for setting these attributes when replication is used. If replication is going to be used in an environment where listen_addr or listen_6_addr attributes are used, then the replication scheme needs to be configured to use the allowable network addresses.

To explicitly specify the address on which the daemons should listen, enter on a separate line in the timesten.conf file:

listen_addr=Ipv4Address
listen_6_addr=Ipv6Address

For example, if you want to restrict the daemon to listen to just the loopback addresses, you add:

listen_addr=127.0.0.1
listen_6_addr=::1

or

listen_addr=localhost
listen_6_addr=localhost

This means that only processes on the local system can communicate with the daemon. Processes from other systems would be excluded, so operations such as client access from other systems is not possible.

If you have multiple ethernet cards on different subnets, you can specify multiple listen_addr and/or listen_6_addr attributes to control which addresses the daemon listens on.

For example, if you set both listen_addr=10.20.30.51 and listen_6_addr=2020:100:100:300::51 in the timesten.conf file, the daemon listens on the IPv4 loopback address, the specified IPv4 address, the IPv6 loopback address and the specified IPv6 address.

127.0.0.1
10.20.30.51
::1
2020:100:100:300::51

You can enter up to four entries of each attribute on separate lines in the timesten.conf file. In addition to the addresses you specify, TimesTen always listens on the loopback address for its own purposes.

Managing Subdaemons

The main TimesTen daemon spawns subdaemons dynamically as they are needed. You can manually specify a range of subdaemons that the daemon may spawn, by specifying a minimum and maximum.

At any point in time, one subdaemon is potentially needed for TimesTen process recovery for each failed application process that is being recovered at that time.

By default, TimesTen spawns a minimum of 4 subdaemons and specifies the default maximum number of subdaemons at 50. However, you can change these settings by assigning new values to the min_subs and max_subs attributes in the timesten.conf file.

Configuring a Range for Shared Memory Keys

You can configure a range for all shared memory keys used by TimesTen with the shmkey_range daemon attribute.

You can constrain shared memory keys to a specific range to prevent shared memory collisions. However, if you use this option, it is your responsibility to ensure that no other shared memory segments use shared memory keys in the specified range.

Note:

This option is only available on UNIX or Linux platforms. This option cannot be used for Windows platforms.

The syntax is as follows:

shmkey_range=low-high

For example:

shmkey_range=0x4000000-0x40FFFFFF

There can be no space in the low-high clause. The range is inclusive; thus, in the preceding example, both 0x40000000 and 0x40FFFFFF are valid keys. In addition, the minimum range size is 16.

With this option, it is possible to run out of shared memory keys, especially if there multiple invalidations or there are more TimesTen databases in use than originally anticipated.

If a user provides any of the following invalid values for the shared memory keys, then the TimesTen daemon terminates the startup process.

  • Invalid numeric strings

  • Only one number is specified for the range

  • The first number is greater than the second number in the range specification

  • The range size is less than 16.

  • The range is specified incorrectly.