Jump to: navigation, search

Oracle Databases

You must have Oracle Client software accessible in the environment where the Genesys application is running. Genesys uses Oracle 11g client software to access all supported versions of Oracle.

Using Full Installation of Oracle Client

Connectivity to an Oracle database relies on TCP/IP to work between an Oracle server and its client.

You must set the following environment variables for DB client for Oracle:
     ORACLE_HOME
     ORACLE_SID

In addition, you must specify the full path to the bin of the Oracle home directory in the PATH variable, and either LIBPATH for AIX or LD_LIBRARY_PATH for Linux and Solaris, depending on the platform you are using. If the DBMS client for Oracle runs on a different host other than the Oracle server, you must also configure the SQLNet file on both hosts. Note that a TCP/IP Adapter is also required. For more information, refer to the Oracle documentation for your platform.

If you are using the UNIX/Linux platform, you might want to create a link to the DB client so that the server accessing the database can find the library using the default name. Enter the following on the operating system command line:

ln -s libclntsh.so.11.1 libclntsh.so

You must use the tnsnames.ora file to specify database access as defined in Oracle documentation. Genesys DB Client will load the .tns file.

The following is an example of TNS name content:

 
CMES =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =<your oracle host>)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = cmes)
    )
  )

With this definition in the .tns file, the parameters of the Genesys Database Access Point can be set as follows:

dbengine=oracle
dbserver=CMES
dbname=
username=<oracle schema user>
password=<oracle schema user's password>

Using Oracle Instant Client

Instead of a full Oracle client installation, you can use the Instant Client package from Oracle, downloadable from here.

For core Genesys servers to work, you must have the Basic package. If you have to perform conversion of character set encodings for languages other than English, make sure that the Instant Client package contains all necessary encoding tables. If you cannot find the proper package of Instant Client, you may want to use a full Oracle installation.

Connectivity to an Oracle database relies on TCP/IP to work between the Oracle server and client. You do not need to set up the ORACLE_HOME or ORACLE_SID environment variables. However, you must specify the full path to the folder where you put the Oracle Instant Client in the appropriate environment variable—PATH for Windows, LIBPATH for AIX, or LD_LIBRARY_PATH for Linux and Solaris.

For example, the configuration of Genesys Database Access Points without using TNS should be as follows:

dbengine=oracle
dbserver=<oracle host>:1521/<oracle service name>
dbname=
username=<oracle schema user>
password=<oracle schema user's password>

You can still use TNS-based connection information with Instant Client if you set up the TNS_ADMIN environment variable, or you can use the SQL Connect URL string <host>[:port]/<service name>. Both are described in Oracle Instant Client documentation.

Service Name

Instant Client requires a Service Name, rather than the SID required by the full Oracle installation package. The Service Name can be found in the tnsnames.ora file, which is found in the <oracle home>/network/admin folder on the server. For example, in the following excerpt from the tnsnames.ora file, the SID appears below ORCL, and the Service Name is orcl.us.int.genesyslab.com.

ORCL =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = <IP of a host>)(PORT = 1521))
  (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = orcl.us.int.genesyslab.com)
  )
 )

Secure Communications with Oracle DBMS

You can use Transport Layer Security (TLS) to secure connections with an Oracle database.

Warning
You must be using Oracle Full Client if you want to configure secure connections. Do not configure TLS/SSL support if you are using Oracle Instant Client.

Can Secure Connections be Set?

Before you can configure secure connections, you have to determine if the Oracle tnsnames.ora file can be set to enforce TLS/SSL. To do this, open the tnsnames.ora file and look for the SECURITY section and its accompanying parameter SSL_SERVER_CERT_DN under DESCRIPTION. It will look something like this:

<net_service_name>= 
 (DESCRIPTION=
   (ADDRESS=...)
   (ADDRESS=...)
   (CONNECT_DATA=
    (SERVICE_NAME=...))
   (SECURITY=
    (SSL_SERVER_CERT_DN=...)))

If this section and its parameter is present, you can configure secure connections.

For more information about the tnsnames.ora file and its parameters, refer to the tnsnames.ora section of the Oracle Database Net Services Reference.

Configure the Secure Connections

Secure connections using TLS with the Oracle database are configured in the .tns file, not in or by the DAP or Configuration Server configuration files. However, these files contain the net_service_name used to locate the TNS listener definition in the client configuration.

To configure the secure connections, do the following:

  1. In the Oracle server, open the listener.ora file and configure the following parameters:

    • SID_LIST_LISTENER
    • WALLET_LOCATION
    • LISTENER

    For example:

    # listener.ora Network Configuration File: /opt/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = db01)
          (ORACLE_HOME = /opt/oracle/app/oracle/product/11.2.0/dbhome_1)
          (SID_NAME = db01)
        )
      )
    
    SSL_CLIENT_AUTHENTICATION = FALSE
    
    WALLET_LOCATION =
      (SOURCE =
        (METHOD = FILE)
        (METHOD_DATA =
          (DIRECTORY = /opt/oracle/app/oracle/product/11.2.0/dbhome_1/owm/wallets/oracle)
        )
      )
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = vce-u0047.us.int.genesyslab.com)(PORT = 1521))
        )
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCPS)(HOST = vce-u0047.us.int.genesyslab.com)(PORT = 2484))
        )
      )
    
    ADR_BASE_LISTENER = /opt/oracle/app/oracle
    For more information about the listener.ora file and its parameters, refer to the Listener Control Utility section of the Oracle Database Net Services Reference.

  2. In the Oracle client, open the tnsnames.ora file and configure the following:
    • The Oracle secure port 2484 to use the secure protocol TCPS.
    • The SECURITY section.

    For example:

    DB_GENCHNGC3031_SSL=
      (DESCRIPTION=
        (ADDRESS_LIST=
          (ADDRESS= (PROTOCOL = TCPS)(HOST = GEN-CHN-GC3-031)(PORT = 2484))
        (CONNECT_DATA=
          (SERVER= DEDICATED)
          (SERVICE_NAME= GENCHNGC3031.genesys.lab))
        (SECURITY =
          (SSL_SERVER_CERT_DN="CN=GENCHNGC3031.genesys.lab,C=US")))
    For more information about the tnsnames.ora file and its parameters, refer to the tnsnames.ora section of the Oracle Database Net Services Reference.
  3. In the Oracle client, open the sqlnet.ora file and configure the following parameters:
    • SQLNET.AUTHENTICATION_SERVICES
    • SSL_SERVER_DN_MATCH
    • WALLET_LOCATION
  4. For example:

    SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS)
    
    SSL_SERVER_DN_MATCH= ON
    
    WALLET_LOCATION=
      (SOURCE =
        (METHOD = FILE)
        (METHOD_DATA =
          (DIRECTORY = C:\app\wallet)))
    For more information about the sqlnet.ora file and its parameters, refer to the sqlnet.ora section of the Oracle Database Net Services Reference.

Additional Information

For additional information about using TLS with Oracle databases, refer to the Oracle Database Advanced Security Administrator's Guide, and Configuring Secure Sockets Layer Authentication in particular.

Using Oracle Database with National Languages

Single Language Deployment

You must create all Oracle databases using the same character set, such as WE8MSWIN1252. You must select an encoding that matches Microsoft Windows Operating System default encoding for a selected language, so that applications, like Interaction Routing Designer, display data correctly.

On every host that has a Genesys application accessing an Oracle database, make sure that the NLS_LANG environment variable is set to match the language and character encoding of data in the Oracle database, as defined in the following table . For example, NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252.

[+] Show table

If you are unable to setup MS Windows compatible character encoding when creating the Oracle database, make sure that the Oracle client software on all hosts with Genesys applications has been set to use character encoding that matches the target as close as possible, by following these steps:

  1. Set up NLS_LANG to use the closest compatible encoding. For example, WE8ISO8858P1 to match WE8MSWIN1252 if you are using Linux to host Genesys applications that should access Oracle Databases.
  2. Make sure that Oracle client software contains NLS tables allowing conversion between character encoding of the database and the host. Refer to Oracle documentation for more information about supported character conversions.

With your environment set up this way, you can use character data in a single language (such as French) for all information stored and transmitted between Genesys applications.

Multi-Language Deployment

To enable storage and processing of data in multiple languages using Oracle Databases, you must create all your database instances using the AL32UTF8 character set. For example:

CREATE DATABASE orclutf8
...
  CHARACTER SET AL32UTF8
  NATIONAL CHARACTER SET AL16UTF16

On every host that has a Genesys application accessing an Oracle database, make sure the NLS_LANG environment variable is set to match the character encoding of data in the Oracle database; for example, NLS_LANG=.UTF8.

Using Oracle TAF

Genesys supports using the Oracle Real Application Cluster to provide redundant access to database storage. You must use the TNS file to define cluster access, as specified in Oracle documentation.

For example:

LORAC =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =<oracle RAC listener> )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =<oracle service name>)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD=BASIC)
        (RETRIES = 2)
        (DELAY = 1)
      )
    )
  )

The RETRIES and DELAY parameters might affect how long the Genesys application will wait for Oracle to respond before it attempts to reconnect. Refer to the Oracle TAF guide for more details.

Failure of an Oracle 12g RAC Database

The Oracle 12g Real Application Cluster (RAC) DBMS includes a client-side feature called Transparent Application Failover (TAF). If an instance of a database fails, TAF automatically reconnects to a surviving database instance (node).

However, TAF only restores the connection; it is the responsibility of the application to restart on the new node any operations that were in process on the failed node. These operations could be any of the following:

  • Individual Data Manipulation Language (DML) statements, such as INSERT, UPDATE, and DELETE.
  • Active transaction involving DML statements, issuing ROLLBACK instructions to these transactions first.
  • Active binding packages.

To support Oracle 12g RAC in TAF mode, Configuration Server can optionally resubmit DML statements (DML transactions or binding package execution) when the appropriate error messages are received from the DBMS. This is implemented using the configuration option dml-retry. Refer to the Framework Configuration Options Reference Manual for the full description of this option.

This page was last edited on May 5, 2017, at 18:12.
Comments or questions about this documentation? Contact us for support!