Overview of the TimesTen Client/Server

The TimesTen server is a process that runs on a server system that takes network requests from TimesTen clients and translates them into operations on databases on the server system. This enables clients to connect to databases that are located on different systems, potentially running a different platform and operating system.

You can install the TimesTen client on a separate or the same system as the TimesTen server. If you install the TimesTen client on the same system as the TimesTen server, you can use it to access TimesTen databases on the local system.

Note:

You can create a client/server connection between any combination of platforms that TimesTen supports.

TimesTen does not support IP-level failover or load-balancing with client/server.

Figure 3-1 demonstrates how the TimesTen client and TimesTen server communicate using their respective drivers.

Figure 3-1 Diagram of TimesTen Client and TimesTen Server

Description of Figure 3-1 follows
Description of "Figure 3-1 Diagram of TimesTen Client and TimesTen Server"
  • TimesTen client: To access TimesTen databases on remote systems, link your application with the TimesTen client ODBC driver. The application then communicates with the TimesTen server process. Using the TimesTen client ODBC driver, applications can connect transparently to TimesTen databases on a remote or local system that has TimesTen installed.

    You can link a client application directly with the TimesTen client ODBC driver or with the Windows ODBC driver manager to access the TimesTen database. TimesTen supplies a driver manager for Linux, UNIX, and Windows with the Quick Start sample applications. Note that there are performance considerations in using a driver manager.

    Also, you can link a client application through a provided interface, like JDBC, OCI or Pro*C/C++, to access the TimesTen database.

    Note:

    For details on how the application can use different drivers and interfaces to access a TimesTen database, see Connecting to TimesTen with ODBC and JDBC Drivers

  • TimesTen server: On the server system, the TimesTen server uses the TimesTen Data Manager driver. The server's responsibility is to listen for requests from a client application, process the request through the TimesTen Data Manager driver, and then send the results and any error information back to the client application.

Note:

For details on compiling and linking TimesTen applications, see Setting the Classpath for Java Development in the Oracle TimesTen In-Memory Database Java Developer's Guide or Compiling and Linking Applications the Oracle TimesTen In-Memory Database C Developer's Guide.

The following sections describe the restrictions and the communication protocols for client/server communication:

Restrictions on Client/Server Communication

On Linux and UNIX, some TimesTen utilities only work over direct connections, such as ttAdmin, ttRepAdmin, and ttBackup.

The utilities that can be run over a client/server connection on the Linux and UNIX platforms are named with a suffix of CS, such as ttIsqlCS, ttBulkCpCS, ttMigrateCS and ttSchemaCS.

The following are the restrictions on client/server communication:

  • These utilities have been linked with the TimesTen client driver and can be used to connect to client DSNs when accessing a database over a client/server connection. Each utility listed in Utilities in the Oracle TimesTen In-Memory Database Reference provides the name of the client/server version of that utility, if there is one.

  • XLA cannot be used over a client/server connection and is only supported within TimesTen Classic.

  • The ttCacheUidPwdSet built-in procedure cannot be used over a client/server connection.

  • You cannot connect with an external user defined on one host to a TimesTen data source on a remote host. There are no restrictions for connecting with internal users. See Overview of TimesTen Users in the Oracle TimesTen In-Memory Database Security Guide for details on internal and external users.

  • You cannot create or alter internal users over a client/server connection. Thus, you can only issue the CREATE USER or ALTER USER statements using a direct connection to the TimesTen database. Once created, the user that connects from the client to the server must be granted the CREATE SESSION privilege or the connection fails. For more information on how to create the user on the TimesTen database and how the administrator grants the CREATE SESSION privilege, see Creating or Identifying a Database User and Privileges to Connect to the Database in the Oracle TimesTen In-Memory Database Security Guide.

  • On Linux and UNIX, TimesTen does not allow a child process to use a connection opened by its parent. Any attempt from a child process using fork() to use a connection opened by the parent process returns an error.

Communication Protocols for Client/Server Communication

The following sections describe the communication protocols that the TimesTen client can use with the TimesTen server.

TCP/IP Communication

By default, the TimesTen client communicates with the TimesTen server using TCP/IP sockets.

This is the only form of communication available when the TimesTen client and server are installed on different systems.

Shared Memory Segment Used for Communication

Client/server connections use shared memory for communication.

A small shared memory segment is allocated (one for each client/server connection) for the duration of each client/server connection. This shared memory segment is created at connect time and is destroyed when the client/server connection is disconnected from the TimesTen database.

The SHMMNI value controls the number of shared memory segments that the host can create simultaneously. You must configure the SHMMNI parameter setting to account for the number of client/server connections. Set SHMMNI to a value that is greater than number of expected client/server connections. See Set the SHMMNI Parameter in the Oracle TimesTen In-Memory Database Installation, Migration, and Upgrade Guide.

UNIX Domain Socket Communication

On Linux and UNIX platforms, if both the TimesTen client and server are installed on the same system, you can use UNIX domain sockets for communication.

Using a shared memory segment enables for the best performance but slightly greater memory usage. Using UNIX domain sockets allows for improved performance over TCP/IP, but with less memory consumption than a shared memory segment connection. To use domain sockets, you must define the network address of the logical server as ttLocalHost. See Defining a Logical Server Name.