About Using Client/Server Drivers

Applications that are running in other Pods in your Kubernetes cluster can use your TimesTen database by using the standard TimesTen Client/Server drivers. You must configure your application containers with a TimesTen client instance. That instance must contain a configured $TIMESTEN_HOME/conf/sys.odbc.ini file, or your application must use an appropriate Client/Server connection string.

In TimesTen Classic, if you chose to configure a sys.odbc.ini file, the contents of sys.odbc.ini contains a client DSN definition that references the Pods that are running your TimesTen databases. In TimesTen Scaleout, you can export a sys.odbc.ini file for use by client/server clients outside of the grid. Use the ttGridAdmin utility with the gridClientExport or gridClientExportAll for this purpose. See ttGridAdmin in the Oracle TimesTen In-Memory Database Reference.

This example creates the sample DSN and references the sample TimesTenClassic object in the mynamespace namespace.

% vi $TIMESTEN_HOME/conf/sys.odbc.ini

[sample]
TTC_SERVER_DSN=sample
TTC_SERVER1=sample-0.sample.mynamespace.svc.cluster.local
TTC_SERVER2=sample-1.sample.mynamespace.svc.cluster.local

Applications connect to the TimesTen database using this DSN. In the TimesTen Classic active standby pair configuration, TimesTen automatically routes application connections to the active database. (sample-0 and sample-1 are used for example purposes.)

Client/Server applications must connect to the database using a defined username and password. The Operator can create such a user with ADMIN privileges. You can then connect to the database, as that user, to create other users and grant these users the CREATE SESSION privilege. See Overview of Configuration Metadata and Kubernetes Facilities.

In this example, use a connection string to connect to the sample database as the sampleuser user. (If you use a connection string that requires all the required connection attributes, you do not need to define them in the sys.odbc.ini file.) The sampleuser user was created by the Operator and already exists in the sample database. After connecting, you can verify that the sampleuser.emp table exists. (The Operator also previously created this table. See schema.sql for information on how the Operator created this table.)

% ttIsqlCS -connstr "TTC_SERVER1=sample-0.sample.mynamespace.svc.cluster.local;
TTC_SERVER2=sample-1.sample.mynamespace.svc.cluster.local;
TTC_SERVER_DSN=sample;UID=sampleuser;PWD=samplepw";

 
Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights 
reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
 
 
 
connect "TTC_SERVER1=sample-0.sample.mynamespace.svc.cluster.local;
TTC_SERVER_DSN=sample;uid=sampleuser;pwd=********";
Connection successful: 
DSN=;TTC_SERVER=sample-0.sample.mynamespace.svc.cluster.local;
TTC_SERVER_DSN=sample;UID=sampleuser;DATASTORE=/tt/home/timesten/datastore/sample;
DATABASECHARACTERSET=AL32UTF8;CONNECTIONCHARACTERSET=AL32UTF8;PERMSIZE=200;
DDLREPLICATIONLEVEL=3;
(Default setting AutoCommit=1)
Command> tables;
  SAMPLEUSER.EMP
1 table found.