JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Cluster Data Services Developer's Guide     Oracle Solaris Cluster 4.0
search filter icon
search icon

Document Information

Preface

1.  Overview of Resource Management

2.  Developing a Data Service

Analyzing the Application for Suitability

Determining the Interface to Use

Setting Up the Development Environment for Writing a Data Service

How to Set Up the Development Environment

Transferring a Data Service to a Cluster

Setting Standard Properties

Cluster Properties

Resource Type Properties

Resource Properties

Resource Group Properties

Resource Property Attributes

Node List Properties

Setting Resource and Resource Type Properties

Declaring Resource Type Properties

Declaring Resource Properties

Declaring Extension Properties

Implementing Callback Methods

Accessing Resource and Resource Group Property Information

Idempotence of Methods

How Methods Are Invoked in Zones

Generic Data Service

Controlling an Application

Starting and Stopping a Resource

Using Start and Stop Methods

Deciding Which Start and Stop Methods to Use

Using the Optional Init, Fini, and Boot Methods

Using the Init Method

Using the Fini Method

Guidelines for Implementing a Fini Method

Using the Boot Method

Monitoring a Resource

Implementing Monitors and Methods That Execute Exclusively in the Global Zone

Adding Message Logging to a Resource

Providing Process Management

Providing Administrative Support for a Resource

Implementing a Failover Resource

Implementing a Scalable Resource

Validation Checks for Scalable Services

Writing and Testing Data Services

Using TCP Keep-Alives to Protect the Server

Testing HA Data Services

Coordinating Dependencies Between Resources

Legal RGM Names

RGM Legal Names

Rules for Names Except Resource Type Names

Format of Resource Type Names

RGM Values

3.  Resource Management API Reference

4.  Modifying a Resource Type

5.  Sample Data Service

6.  Data Service Development Library

7.  Designing Resource Types

8.  Sample DSDL Resource Type Implementation

9.  Oracle Solaris Cluster Agent Builder

10.  Generic Data Service

11.  DSDL API Functions

12.  Cluster Reconfiguration Notification Protocol

A.  Sample Data Service Code Listings

B.  DSDL Sample Resource Type Code Listings

C.  Requirements for Non-Cluster-Aware Applications

D.  Document Type Definitions for the CRNP

E.  CrnpClient.java Application

Index

Setting Up the Development Environment for Writing a Data Service

Before you begin to develop your data service, you must install the Oracle Solaris Cluster development IPS package (ha-cluster/developer/api) to have access to the Oracle Solaris Cluster header and library files. Although this package is already installed on all cluster nodes, you typically develop your data service on a separate, non-cluster development machine, rather than on a cluster node. In this typical case, you must use the pkg install command to install the ha-cluster/developer/api IPS package on your development machine.

When compiling and linking your code, you must set particular options to identify the header and library files.


Note - You cannot mix compatibility-mode compiled C++ code and standard-mode compiled C++ code in the Oracle Solaris Operating System and Oracle Solaris Cluster products. Consequently, if you intend to create a C++ based data service for use on Oracle Solaris Cluster software, you must use the standard mode to compile that data service.


When you have finished development (on a noncluster node), you can transfer the completed data service to a cluster for testing.

The procedures in this section describe how to complete the following tasks:

How to Set Up the Development Environment

This procedure describes how to install the ha-cluster/developer/api IPS package and set the compiler and linker options for data service development.

  1. Become superuser or assume a role that provides solaris.cluster.modify RBAC authorization.
  2. Ensure that the solaris and ha-cluster publishers are valid.
    # pkg publisher
    PUBLISHER                           TYPE     STATUS   URI
    solaris                             origin   online   solaris-repository
    ha-cluster                          origin   online   ha-cluster-repository

    For information about setting the solaris publisher, see Set the Publisher Origin To the File Repository URI in Copying and Creating Oracle Solaris 11 Package Repositories.

  3. Install the ha-cluster/developer/api package in the current directory.
    # pkg install ha-cluster/developer/api
  4. Verify that the package installed successfully.
    phys-schost% pkg info ha-cluster/developer/api

    Installation is successful if output shows that State is Installed.

  5. In the makefile, specify compiler and linker options that identify the include and library files for your data service code.

    Specify the -I option to identify the Oracle Solaris Cluster header files, the -L option to specify the compile-time library search path on the development system, and the -R option to specify the library search path to the runtime linker in the cluster.

    # Makefile for sample data service
    ...
    
    -I /usr/cluster/include
    
    -L /usr/cluster/lib
    
    -R /usr/cluster/lib
    ...

Transferring a Data Service to a Cluster

When you have completed the data service on a development machine, you must transfer the data service to a cluster for testing. To reduce the chance of error during the transfer, combine the data service code and the RTR file into a package. Then, install the package on the Oracle Solaris hosts on which you want to run the service.


Note - Agent Builder creates a System V Revision 4 (SVR4) package automatically.