Control-M for Databases

Control-M for Databases is a plug-in that enables you to do the following:

  • Define and monitor Stored Procedures, SQL Scripts, SQL Server Integration Services (SSIS) Packages, and Embedded Query database jobs.

  • Connect to any supported database from a single computer with secure login, which eliminates the need to provide authentication.

  • Integrate Databases jobs with other Control-M jobs into a single scheduling environment.

  • Attach an SLA job to your Databases jobs.

  • Introduce all Control-M capabilities to Control-M for Databases, including advanced scheduling criteria, complex dependencies, Resource Pools, Lock Resources, and variables.

Compatibility

The following table lists the Control-M for Databases plug-in prerequisites, each with its minimum required version.

Prerequisites

Version

Helix Control-M/Agent

9.0.20.080 or higher

Oracle Database

Any

MSSQL Database

  • 2022

  • 2019

  • 2017

  • 2016

  • 2014

  • 2012

  • 2008

  • 2005

DB2 Database

Any

Sybase Database

Any

PostgreSQL Database

Any

SAP ASE Database

Any

Setting Up Control-M for Databases

This procedure describes how to install the Databases plug-in, create a connection profile, and define a Databases job in Control-M Web and in Automation API.

Begin

  1. Create a temporary directory to save the downloaded files.

  2. Download the Control-M for Databases plug-in.

  3. Install Control-M for Databases, as described in Installing a Plug-in.

  4. Create a Databases connection profile, as follows:

  5. (Optional) Add a database type to Control-M for Databases, which enables you to connect to any SQL database that has a JDBC driver, as described in Adding a Database Type.

  6. Define a Databases job, as follows:

Setting Up SSL on Control-M for Databases

This procedure describes how to set up SSL on Control-M for Databases. To configure SSL for Oracle databases, see Oracle SSL Configuration.

Before You Begin

Back up the Control-M for Databases plug-in keystore located at <Agent_instance>/cm/DBCM/data/security/dbcmcerts.

Begin

  1. Import the new SSL certificate from CA to the keystore, using the following commands:

    $JAVA_HOME/bin/keytool -import -alias <alias_name> -keystore <AGENT_HOME>/cm/DBCM/data/security/dbcmcerts -storepass appass -file <path/to/the/ssl_cert.cer>

  2. (Optional) Confirm the keystore content by typing one of the following command:

    $JAVA_HOME/bin/keytool -list -v -keystore <AGENT_HOME>/cm/DBCM/data/security/dbcmcerts > <output_filename>

  3. Re-start the Control-M for Databases plug-in (the cm container process) for the action to take effect.

Oracle SSL Configuration

If your Oracle database is configured with SSL, ensure that you have met the following requirements:

  • Control-M for Databases with Oracle SSL configuration is supported with Oracle Wallet only. If your certificates are from JKS or another type, you might need to convert your keystore into a wallet.

  • The Control-M for Databases Oracle SSL JDBC driver relies on a pre-defined secured connection between the Oracle Client and the Server. BMC recommends to verify the following before you start using Control-M for Databases with Oracle SSL:

    • Verify the connection from the client machine to the database server by using SQL Plus or another tool.

    • After the connection is established, verify that Oracle database is configured with SSL by running the following query:

      select sys_context( 'USERENV','NETWORK_PROTOCOL') protocol from dual;

    • Define the DBCM_ORACLE_WALLET parameter and set the wallet location, as defined in one of the following locations:

      • Windows: <Agent_Home>\<Agent instance>\CM\DBCM\data\one_params.properties

      • UNIX: <Agent_Home>/cm/DBCM/data/one_params.properties

      You might need to restart Control-M/Agent for the change to occur.

  • Control-M for Databases with Oracle SSL can only be defined as a connection string in Oracle Database Connection Parameters.

    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=<DB hostname>)(PORT=<Port>))(CONNECT_DATA=(SERVICE_NAME=<Service Name>)))