3 Installing a Client Distribution

Coherence provides C++ and .NET client distributions that can be installed as required. There is no separate Java client distribution. Java extend clients are created using the Coherence for Java. In addition, the Coherence cluster is implemented in Java. Therefore, Coherence for Java must be installed to use any client distribution.

This chapter includes the following sections:

Installing Coherence for Java

The Coherence for Java distribution is used to build and use Java-based extend clients. To install Coherence for Java, see Installing Oracle Coherence for Java.

Installing the C++ Client Distribution

The Oracle Coherence for C++ distribution is used to develop and run C++ extend clients. The latest version of the distribution can be downloaded at Oracle Coherence Software Downloads.

This section contains the following topics:

Supported Environments for Coherence C++ Client

Table 3-1 lists the supported platforms and operating systems for Coherence for C++:

Table 3-1 Platform and Operating System Support for Coherence for C++

Operating System Compiler Architecture

Microsoft Windows Server: 2012R2+ Client: Windows 7+

Visual Studio 2012, 2013, 2015, 2017, and 2019

x86, x64

Oracle Solaris 10+

SunPro 5.9+Foot 1,Foot 2

SPARC64, x64

Linux

GCC 4.8.5+, GNU libc 2.1.7+

x86, x64

Apple macOS 10.13+Foot 3

Xcode 9.4+ (GCC)

x64

Footnote 1

Specifically Sun C++ 5.9 SPARC Patch 124863-14 or later are supported.

Footnote 2

Specifically Sun C++ 5.9 x64 Patch 124864-14 or later are supported.

Footnote 3

When building C++ applications with Apple OS X, you must compile with the command "g++" (as opposed to "CC").

Microsoft-Specific Requirements

When deploying on Microsoft Windows, just as with any Visual Studio based application, the corresponding Visual Studio runtime libraries must be installed on the deployment computer.

Extracting the Coherence for C++ Distribution

Coherence for C++ is distributed as a ZIP file. Use a ZIP utility or the unzip command-line utility to extract the ZIP file to a location on the target computer. The extracted files are organized within a single directory called coherence-cpp.

The following example uses the unzip utility to extract the distribution to the /opt directory which is the suggested installation directory on UNIX-based operating systems. Use the ZIP utility provided with the target operating system if the unzip utility is not available.

unzip /path_to_zip/coherence-cpp-version_number-platform-architecture-compiler.zip -d /opt

The following example extracts the distribution using the unzip utility to the C:\ directory on the Windows operating system.

unzip C:\path_to_zip\coherence-cpp-version_number-platform-architecture-compiler.zip -d C:\

The following list describes the directories that are included in installation directory:

  • bin – This directory includes sanka.exe, which is an application launcher that is used to invoke executable classes embedded within a shared library.

  • doc – This directory contains Coherence for C++ documentation including the API documentation

  • include – This directory contains header files that use the Coherence API and must be compiled with an application.

  • lib – This directory includes the Coherence for C++ library. The coherence.dll file is the main development and run-time library and is discussed in detail throughout this documentation.

    Note:

    • For Visual Studio 2015, 2017, and 2019 support, use \lib\vs2015\coherence.dll.

    • For Solaris, STLport, /lib/stlport/libcoherence.so.

Installing the .NET Client Distribution

The Oracle Coherence for .NET distribution is used to develop and use .NET extend clients. The latest version of the distribution can be downloaded at Oracle Coherence Software Downloads.

This section contains the following topics:

Prerequisites

The following are required to use Coherence for .NET:

  • Microsoft .NET 4.0 or higher runtime and SDK

  • Supported Microsoft Windows operating system (see the system requirements for the appropriate .NET runtime above)

  • MSHelp 2.x runtime, which is included in Visual Studio

  • Microsoft Visual Studio 2010 or higher is required to build and run the examples in the example.zip file that is provided as part of the Coherence for Java distribution

Running the Installer

Coherence for .NET is distributed as a ZIP file which contains an installer. Use a ZIP utility or the unzip command-line utility to extract the installer to a location on the target computer. The following example extracts the installer using the unzip utility to the C:\ directory:

unzip C:\path_to_zip\coherence-net-version_number.zip -d C:\

To run the installer:

  1. From the directory where the ZIP was extracted, double-click the coherence-net-version.msi file.
  2. Follow the instructions in the installer to complete the installation.

Note:

If the installer indicates that it is rolling back the installation, then run the installer in elevated execution mode. For example, executing the MSI file from a command prompt that was started as an Administrator should enable the installation process to complete. For Windows 7, right-click the command prompt and select run as Administrator.

The following list describes the directories that are included in the installation directory:

  • bin – This directory includes the Coherence for .NET library. The Coherence.dll file is the main development and run-time library and is discussed in detail throughout this documentation.

  • config – This directory contains XML schemas for Coherence client configuration files and also includes a POF configuration file for Coherence-defined user types.

  • doc – This directory contains Coherence for .NET API documentation. The API documentation is available as: HTML Help (Coherence.chm), MSHelp 2.0, and MS Help Viewer.

Coherence .NET Version Number Mapping

A Coherence assembly uses a custom version number mapping. Oracle version numbers use 5 digits (N.N.N.N.N), but .NET version numbers can only have up to 4 digits (N.N.N.N). To support the .NET version convention, the 4th and 5th Oracle digits are combined for the 4th .NET version digit.

The following calculation is used to create the 4th .NET version digit:

4th .NET digit = 4th Oracle digit * 1000 + 5th Oracle digit

The following calculations are used to convert the 4th .NET version digit to the 4th and 5th Oracle version digits:

4th Oracle digit = int(4th .NET digit / 1000)

5th Oracle digit = 4th .NET digit - (4th Oracle digit * 1000)

For example:

.NET Version Number Oracle Version Number

12.2.1.0

12.2.1.0.0

12.2.1.1

12.2.1.0.1

12.2.1.1000

12.2.1.1.0

12.2.1.1001

12.2.1.1.1

12.2.1.2010

12.2.1.2.10

12.2.1.10010

12.2.1.10.10

Note:

For logging, the .NET 4th digit is converted to the Oracle 4th and 5th digits so that logging messages appear the same as Java and C++ log messages.

Deploying Coherence for .NET

Coherence for .NET requires no specialized deployment configuration. Simply add a reference to the Coherence.dll found in the bin\ folder to your Microsoft.NET application.

Compatibility Between Coherence*Extend Versions

Coherence client distributions support both forward and backwards compatibility with cluster proxies.

Compatibility for the extend protocol and POF is maintained between the second digit of major releases (for example, 12.1, 12.2, and so on) but may not be maintained between the first digit of major releases (for example, 12.x, 13.x, and so on).

Note:

Compatibility requires that the serializers in the different Coherence*Extend versions be compatible. For non-Java clients, compatibility requires the use of POF. For Java clients that use java.io.Serializable for serialization, the major version of Java Standard Edition used by the client must be the same as, or within one major version of, that used by the cluster.

Prior to version 12.1.2.0.1, extend clients only support forward compatibility with cluster proxies. That is, extend clients can connect to cluster proxies that have either the same or higher second digit of a major release.

Starting with version 12.1.2.0.1, extend clients support both forward and backward compatibility with cluster proxies. That is, extend clients can connect to cluster proxies that have lower or higher version numbers. For example, a 12.1.2.0.2 extend client can connect to a 12.1.2.0.1 proxy. Extend client backward compatibility is not supported on proxy versions prior to 12.1.2.0.1, including 12.1.2.0.0 and proxy versions 3.7.1 or earlier.

Coherence 12.1.2.0.0 extend clients require 12.1.2.0.0 or later cluster proxies. Coherence 12.1.2 extend clients other than 12.1.2.0.0 (for example 12.1.2.0.1 and 12.1.2.0.2) require 12.1.2.0.1 or later cluster proxies.

Backward compatibility to cluster proxies is intended as an upgrade convenience and not as a long term solution. It allows extend clients to upgrade to a new version before the proxy server and cluster. However, a cluster should always be upgraded to the latest version as a best practice. When an extend client and the server it connects to are on different versions, the extend client is limited to the functionality of the older of the two releases or patch set versions.