Installation
prerequisites
Before
installing TimesTen, ensure the appropriate requirements are met
for your operating system.
On both UNIX and Windows platforms
where JDBC is supported you must have the
appropriate version of the JDK installed on your computer to use
JDBC.
For improved JDBC performance on
TimesTen, when using a XenNet virtual device, configure
the LargeSendOffload parameter
to FALSE. By
default, theLargeSendOffload parameter
is set to TRUE for the XenNet
virtual device. This parameter can be modified either in the
Windows registry or in the Advancedtab of the XenNet
properties dialog.
In addition,
be aware that if you use automatic client failover, to accommodate
a firewall you must specify a UDP port or port range. (Also
see "Configuring
automatic client
failover" in Oracle TimesTen In-Memory
Database Operations Guide.)
This section also discusses the
platform-specific prerequisites:
General UNIX
requirements
In
general, on UNIX systems, you must configure the following:
The number of
semaphores
Allowable shared
memory
In addition, you may need to perform
the following:
Ensure you have the latest
operating system patches.
Configure your file system
to allow large files.
Configure your Java
environment.
Configure your
Client/Server environment.
Configure network settings
for replication.
The following sections outline some
changes that may be required on any UNIX system. In addition, some
of these sections describe changes required for each specific UNIX
platform on which TimesTen is supported.
Veritas file system
options
On
the Veritas file system, if you plan to have TimesTen applications
that use DurableCommits=1, use
the mincache=direct and convosync=direct options
to ensure durability.
Options that
convert dsync into sync or fdatasync into sync or
those that treat all writes such that the file is opened
with O_SYNC should be
avoided.
On the Veritas file system you should
also set the options discovered_direct_iosz and max_direct_iosz to
3 MB.
The absence of these direct I/O
settings could result in poor file system performance for TimesTen
operations.
To set these options, log in
as root and use:
# /usr/sbin/vxtunefs -o discovered_direct_iosz=3145728
# /usr/sbin/vxtunefs -o max_direct_iosz=3145728
Using vxtunefs online option
requires Advanced VxFS.
Semaphores
TimesTen consumes one SEMMNI per active
database, plus one additional SEMMNI per TimesTen
instance where Client/Server communication is done through shared
memory. For each active database, TimesTen consumes
155 SEMMSL,
plus one SEMMSL for each
connection.
For example, if the value of
the Connections attribute is
set to 100,
then TimesTen requires a minimum of
255 SEMMSL.
It is best to set parameter to a higher value, for example for
Linux x8664 to support 2000
connections you should set
kernel.sem = 2200 6400 200 25
Note:
You can use the following formula as a guide, although in
practice, SEMMNS and SEMMNU can
be much less than SEMMNI * SEMMSLbecause
not every program in the system needs semaphores.
SEMMNS=SEMMNU = (SEMMNI * SEMMSL)
For more information about
the Connections attribute,
see the "Connection
Attributes" chapter in
the Oracle TimesTen In-Memory Database
Reference.
Java
If you are running JDBC, install the latest JDK and
any vendor required patches. Refer to the website of the JDK
provider for the patches you may need.
To run 64-bit Java applications on all
systems except AIX systems, if you are using the Sun 64-bit JVM,
you may need to pass the -d64 option on
the javacommand line.
Other Client/Server
settings
The maximum number of concurrent IPC connections to
a TimesTen Server allowed by TimesTen is 9,999. However, system
limits can take precedence on the number of connections to a single
DSN. Client/Server users can increase the file descriptor limit to
support a large number of connections and processes.
For example, on Solaris, you may change
the file descriptor limit to have a maximum of 1024 simultaneous
server connections by adding the following line to/etc/system:
set rlim_fd_max = 1080
In this case, 1080 is greater than the
number of anticipated client/server connections and allows for a
few extra connections.
AIX prerequisites
On
AIX, before installation, set the kernel
parameter sb_max to a minimum of
512 KB if you plan to use replication. The replication agent requests TCP
send and receive buffers of a minimum size of 512 KB. The value may
be changed using the following command.
# /usr/sbin/no -p -o sb_max=524288
To query the value, use the following
command:
# /usr/sbin/no -o sb_max
Large pages
On
AIX 5.3 systems with the required patch levels, TimesTen can use
large pages. Using large pages locks the shared segment into memory
so it cannot be paged. Users must have
the CAP_BYPASS_RAC_VMM and CAP_PROPAGATE capabilities.
The capabilities are granted by a root user by editing
the /etc/security/userfile or for locally
authenticated users with:
# chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE user_id
The system default is to not have any
memory allocated to the large page physical memory pool. You can
use the vmo command to configure the size of the large page
physical memory pool. The following example allocates 4 GB to the
large page physical memory pool:
# vmo -r -o lgpg_regions=256 -o lgpg_size=16777216
To use large pages for shared memory,
you must enable the SHM_PIN shmget() system call
with the following command, which persists across system
restarts:
# vmo -p -o v_pinshm=1
Asynchronous I/O
If you plan to use PL/SQL with AIX
versions preceding 6.1, enable the AIO (Asynchronous Input Output)
device drivers on the system where the TimesTen software is
installed. To manually enable asynchronous I/O:
Start smitty
aio.
Run Change/Show
Characteristics of Asynchronous I/O.
Set
the STATE to be
configured at system
restart as available.
This procedure is neither applicable
nor feasible in AIX Version 6.1, where AIO is enabled
dynamically.
Note:
The above procedure does not require a system restart.
Linux prerequisites
For Linux, TimesTen has been tested with releases
of Oracle Linux, Asianux, Red Hat Enterprise Linux, the MontaVista
Linux Carrier Grade Edition, and SuSE LINUX Enterprise Server.
Consult
Important:
Because Oracle Database does not support MontaVista Linux Carrier
Grade Edition, there are significant restrictions to TimesTen
functionality on that platform. See the release notes for
details.
The C development tools are required if
you intend to do native development.
On Linux, before installation, the
following sections describe steps you can perform to improve the
performance of TimesTen on your system:
Large pages
Large pages can be enabled only if the running Linux
kernel supports large pages (also called "huge pages" in the Linux
community).
If large pages are supported by the
kernel, there should be special files in
the /proc directory that
indicate the number and size of the large pages.
On Linux 2.4.x systems,
the /proc/sys/vm/hugetlb_pool indicates
the total size of the large pages.
On 2.6.x systems,
the /proc/sys/vm/nr_hugepages file
indicates the total number of large pages.
You can change the total number and
size of the large pages by changing the contents of those files.
For example, you can use:
echo 32 > /proc/sys/vm/nr_hugepages
To see the number and size of the
allocated large pages:
cat /proc/meminfo
The following output from this command
would indicate that you have 16 large pages, each of the size 256
MB for a total of 4 GB:
HugePages_Total: 16
HugePages_Free: 16
Hugepagesize: 262144 kB
Note:
Since large pages must be allocated on a contiguous memory space,
the actual large page size allocated may be smaller than requested.
Also, the large page size itself is not configurable. The value
of Hugepagesize in /proc/meminfo indicates
the system's fixed large page size.
If PAM (Pluggable Authentication
Modules) is enabled, you may need to modify
the /etc/security/limits.conf file
to increase the memlock limit. By
default, the limit is 32 KB.
You must also
set /proc/sys/vm/hugetlb_shm_group to
the group ID of the user that is running the main TimesTen
daemon.
The operating system now is ready for
the large page support. To enable this feature on TimesTen, simply
set -linuxLargePageAlignment Size_in_MB in
the daemon options file (ttendaemon.options).
You should specify the large page
alignment size in MB, which is the Hugepagesize value
in /proc/meminfo.
After you set up large pages, TimesTen
uses as many large pages as possible. If there are not enough
pages, TimesTen uses the normal pages after consuming all available
large pages.
When TimesTen uses large pages,
the HugePages_Free file
in /proc/meminfo changes.
Required Library
Packages
For TimesTen to work properly on
MontaVista Linux, include the libaio and libelf library
packages.
Semaphores
To
view existing kernel parameter settings, log in
as root and use:
# /sbin/sysctl -a
On Linux systems, the first parameter
of kernel.sem must be a
minimum of 128. TimesTen uses 155 SEMMSL, plus one for each active
connection. You must increase the kernel parameter settings if you
plan to use a large number of connections.
For example, if you plan to use 200
connections, we recommend that you add the following line to
the /etc/sysctl.conf file:
kernel.sem = 400 32000 100 128
The first parameter is the maximum
number of semaphores per array (SEMMSL), the second parameter is maximum
semaphores systemwide (SEMMNS), the third parameter is maximum
operations per semop call (SEMOPM), and the fourth parameter is
maximum arrays (SEMNI).
Then restart or run the following
command:
# /sbin/sysctl -p
Shared memory
To
increase the shared memory size to 2048 MB, log in
as root and edit
the /etc/sysctl.conf file by
adding the following line.
kernel.shmmax=2147483648
If your configuration is greater than 8
GB, you should also increase the value of
the shmall parameter. The
value is in KB and should be equal toceil(SHMMAX/PAGE_SIZE). Page size is
generally 4K on x86 systems and 16K on Itanium. For example, for a
64 GB database on Itanium, you should specify the following
parameters values:
kernel.shmmax=68719476736
kernel.shmall=4194304
To increase the shared memory size
without restarting:
% /sbin/sysctl -w kernel.shmmax=2147483648
If you have your kernel configured with
the /proc file system and it
is mounted, then the current maximum shared memory segment size (in
bytes) can be viewed by the following command:
% cat /proc/sys/kernel/shmmax
You can also change this value by the
following command:
% echo 2147483648 > /proc/sys/kernel/shmmax
This command has the same effect as
the sysctl command.
IPC Client/Server
On
Red Hat Linux systems, to enable more than six ShmIpc Client/Server
connections, add the following line to
the /etc/sysctl.conf file:
kernel.sem = 270 32000 100 128
Then restart or run the following
command.
# /sbin/sysctl -p
Replication
For replication, TCP send and receive buffers
should be increased to a minimum of 512 KB.
To increase the buffers to 4 MB, add the following lines to
the/etc/sysctl.conf file:
net.ipv4.tcp_rmem=4096 4194304 4194304
net.ipv4.tcp_wmem=98304 4194304 4194304
net.core.rmem_default=65535
net.core.wmem_default=65535
net.core.rmem_max=4194304
net.core.wmem_max=4194304
net.ipv4.tcp_window_scaling=1
Then restart or run this command:
# /sbin/sysctl -p
IMDB Cache
For IMDB Cache, TCP send and receive buffers should
be increased to even greater values. To make these changes, add the
following lines to the/etc/sysctl.conf file:
net.ipv4.tcp_rmem=4096 4194304 4194304
net.ipv4.tcp_wmem=98304 4194304 4194304
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=4194304
net.ipv4.tcp_window_scaling=1
net.ipv4.ip_local_port_range="1024 65000"
Then restart or run this command:
# /sbin/sysctl -p
Solaris prerequisites
On Solaris, before installation, the following
sections enable you to improve the performance of TimesTen on your
system.
File system options
In addition to
the file
system options listed in the section "General
UNIX requirements", on Solaris UFS file systems, if you plan to
have TimesTen applications that use DurableCommits=1, mount the file system
with the -forcedirectio option.
Create a project
For Solaris 10 and 11 systems, you must
create a project to manage system resources, such as shared memory,
file descriptors and semaphores.
You can create a group project or a
user project.
Note:
If you create a user group, the instance administrator must run
the newtask command each
time the TimesTen daemons must be restarted. If the TimesTen
daemons start at system start time, add
the newtask command to the
system startup scripts.
For example, to create a group project
for the group timesten g500, with 500 GB of shared memory, 4096
semaphores and 65,535 file descriptors:
Login as
user root.
Add the group project.
# projadd -G g500 timesten
Modify the shared memory for the group
to 500 GB.
# projmod -a -K "process.max-shm-memory=(priv,500GB,deny)" timesten
Modify the maximum number of semaphores
to 4096.
# projmod -a -K "process.max-sem-nsems=(priv,4096,deny)" timesten
Note:
For each active database, TimesTen consumes
155 SEMMSL,
plus one SEMMSL for each
connection.
Modify the maximum number of file
descriptors to 65,535.
# projmod -a -K "process.max-file-descriptor=(priv,65535,deny)" timesten
Run the newtask command before
restarting the TimesTen daemons.
# newtask -p timesten -c $$
Or, for example, to create a user
project for the user timesten, with 500 GB of shared memory,
4096 semaphores and 65,535 file descriptors:
Login as
user root.
Add the user project.
# projadd -U timesten user.timesten
Modify the shared memory for the group
to 500 GB.
# projmod -a -K "process.max-shm-memory=(priv,500GB,deny)" user.timesten
Modify the maximum number of semaphores
to 4096.
# projmod -a -K "process.max-sem-nsems=(priv,4096,deny)" user.timesten
Note:
For each active database, TimesTen consumes
155 SEMMSL,
plus one SEMMSL for each
connection.
Modify the maximum number of file
descriptors to 65,535.
# projmod -a -K "process.max-file-descriptor=(priv,65535,deny)" user.timesten
Every user and every group are
associated to a default project, which is the project under which
their processes are run. The project or process settings used by a
user are those that occur first in
the /etc/project file.
If you have not modified the project file, the system
default project settings occur first.
Note:
Do not remove the default project settings from
the project file. Instead,
place your project settings at the top of
the projectfile above the default
settings.
For either the user project method or
group project method, you have the following options for
associating your project settings with the specified user or
group.
Edit the /etc/project file to
move the timesten project entry so that it proceeds the default
entry.
Or:
Add the following line to
a .profile or .cshrc script
or execute it before restarting daemons. This uses the project and
process settings. This is required if project created
with -G only.
# newtask -p timesten -c $$
Windows requirements
The TimesTen debug libraries depend on Visual Studio
2003, 2005, 2008, or 2010. If you intend to use the debug
libraries, ensure that one of these versions is installed.
On more recent Windows versions, such
as Vista, Windows 2008, and Windows 7, you must have Administrator
privileges to perform certain operations, such as starting and
stopping the TimesTen daemon. If User Account Control is enabled,
and you are logged in as the local Administrator, then you can
successfully run these operations in the usual way. However, if you
are logged in as a member of the TimesTen users group, then you
must explicitly invoke these tasks with Windows Administrator
privileges.
To start a command prompt window with
Windows Administrator privileges, you can right-click
the cmd.exe executable. (In
Windows 7, for example, this executable is located in
the C:\Windows\System32 folder.)
When the command window opens, it will
indicate "Administrator" in the title bar.