IBM Cloud Docs
ドライバー・パッケージを使用したプログラムによる接続

ドライバー・パッケージを使用したプログラムによる接続

Db2 Warehouse on Cloud ドライバー・パッケージには、クライアント・アプリケーションを Db2 Warehouse on Cloud データベースに接続するためのソフトウェアが含まれています。

JDBC

Java™ アプリケーションと Db2 Warehouse on Cloud データベースの間の接続を定義します。

前提条件

Db2 Warehouse on Cloud データベースへの接続を試行する前に、前提条件を満たしていることを確認します。

手順

各 Java アプリケーションで、DriverManager.getConnection メソッドを組み込んでユーザー ID とパスワードを指定し、次のいずれかの JDBC URL ストリングを組み込みます。

  • SSL を使用する接続の場合:

    jdbc:db2://<host_name>:50001/BLUDB:sslConnection=true;

  • SSL を使用しない接続の場合:

    jdbc:db2://<host_name>:50000/BLUDB

.NET

.NET アプリケーションと Db2 Warehouse on Cloud データベースの間の接続を定義します。

前提条件

Db2 Warehouse on Cloud データベースへの接続を試行する前に、前提条件を満たしていることを確認します。

手順

以下のステップは、.NET を使用してアプリケーションをデータベースに接続する方法を示しています。

  1. コマンド・プロンプトから、以下のコマンドを入力します。 これらのコマンドは、コンピューター上のドライバー構成ファイル (db2dsdriver.cfg) に新規エントリーを作成し、接続属性を設定します。 このステップは 1 回だけ実行する必要があります。

    • SSL を使用する接続の場合:

      db2cli writecfg add -database BLUDB -host <hostname> -port 50001

      db2cli writecfg add -dsn <alias> -database BLUDB -host <hostname> -port 50001

      db2cli writecfg add -database BLUDB -host <hostname> -port 50001 -parameter "SecurityTransportMode=SSL"

      ここで、

      <hostname>: サーバーのホスト名。

      <alias>: .NET 接続を確立するために使用する DSN 別名の名前。 何を指すのかがわかる名前にしてください (例、analytics)。

    • SSL を使用しない接続の場合:

      db2cli writecfg add -database BLUDB -host <hostname> -port 50000

      db2cli writecfg add -dsn <alias> -database BLUDB -host <hostname> -port 50000

  2. (オプション): データベースへの .NET 接続を検証するには、コマンド・プロンプトから以下のコマンドを実行します。

    testconn40 "DATABASE=<alias>;UID=<user_id>;PWD=<password>;"

    ここで、

    <alias>: ステップ 1 で db2cli writecfg コマンドを使用して作成した DSN 別名の名前。

    <user_id>: Db2 Warehouse on Cloud のユーザー ID。

    <password>: Db2 Warehouse on Cloud データベースに接続するために使用するパスワード。

以下の構文は、.NET ドライバーを使用してデータベースへの接続を行うサンプルの C# コードです。

using System;
using IBM.Data.DB2;

namespace dotNetSSLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            DB2Command MyDB2Command = null;
            // Use the dsn alias that you defined in db2dsdriver.cfg with the db2cli writecfg command in step 1.
            String MyDb2ConnectionString = "database=alias;uid=userid;pwd=password;";
            DB2Connection MyDb2Connection = new DB2Connection(MyDb2ConnectionString);
            MyDb2Connection.Open();
            MyDB2Command = MyDb2Connection.CreateCommand();
            MyDB2Command.CommandText = "SELECT branch_code, city from GOSALES.BRANCH";
            Console.WriteLine(MyDB2Command.CommandText);

            DB2DataReader MyDb2DataReader = null;
            MyDb2DataReader = MyDB2Command.ExecuteReader();
            Console.WriteLine("BRANCH\tCITY");
            Console.WriteLine("============================");
            while (MyDb2DataReader.Read())
            {
                for (int i = 0; i <= 1; i++)
                {
                    try
                    {
                        if (MyDb2DataReader.IsDBNull(i))
                        {
                            Console.Write("NULL");
                        }
                        else
                        {
                            Console.Write(MyDb2DataReader.GetString(i));
                        }
                    }
                    catch (Exception e)
                    {
                        Console.Write(e.ToString());
                    }
                    Console.Write("\t");

                }
                Console.WriteLine("");
            }
            MyDb2DataReader.Close();
            MyDB2Command.Dispose();
            MyDb2Connection.Close();
        }
    }
}

ODBC または CLI

Microsoft Windows ODBC または CLI アプリケーションと Db2 Warehouse on Cloud データベースの間の接続を定義します。

前提条件

Db2 Warehouse on Cloud データベースへの接続を試行する前に、前提条件を満たしていることを確認します。

手順

  1. Linux オペレーティング・システムのコマンド・シェル、Windows コマンド・プロンプト、または Windows オペレーティング・システムの Db2 コマンド・ウィンドウに、以下のコマンドを入力します。

    : これらのコマンドは、コンピューター上のドライバー構成ファイル (db2dsdriver.cfg) に新規エントリーを作成し、接続属性を設定します。 このステップは 1 回だけ実行する必要があります。

    • SSL を使用する接続の場合:

      db2cli writecfg add -database BLUDB -host <hostname> -port 50001 -parameter "SecurityTransportMode=SSL"

      db2cli writecfg add -dsn <alias> -database BLUDB -host <hostname> -port 50001

    • SSL を使用しない接続の場合:

      db2cli writecfg add -database BLUDB -host <hostname> -port 50000

      db2cli writecfg add -dsn <alias> -database BLUDB -host <hostname> -port 50000

    ここで、

    <hostname>: サーバーのホスト名。

    <alias>: 選択した DSN 別名。

  2. (オプション): データベースへの接続をテストするには、コマンド・プロンプトから次のコマンドを実行します。

    db2cli validate -dsn <alias> -connect -user <user_id> -passwd <password>

    ここで、

    <alias> は、db2cli writecfg コマンドを使用して作成した DSN 別名です。

    <user_id> は、事前に収集した接続資格情報からのものです。

    <password> は、事前に収集した接続資格情報からのものです。

  3. (オプション): Microsoft ODBC ドライバー・マネージャーにデータ・ソース名 (DSN) を登録し、Microsoft ODBC アプリケーションと連携させるには、次のコマンドを実行します。 デフォルトでは、DSN はユーザー DSN として作成されます。

    db2cli registerdsn -add -dsn <alias>

    ここで、

    <alias> は、db2cli writecfg コマンドを使用して作成した DSN 別名です。

ODBC データ ソース アドミニストレータ

Microsoft ODBC データ ソース アドミニストレータ・ツールを使用して、ODBC または CLI アプリケーションと Db2 Warehouse on Cloud データベース間の接続を定義します。

前提条件

Db2 Warehouse on Cloud データベースへの接続を試行する前に、前提条件を満たしていることを確認します。

手順

  1. Db2 ドライバー・パッケージをインストールします。

  2. ODBC データ ソース アドミニストレータを開いて、Db2 ドライバー・パッケージのユーザー DSN またはシステム DSN を作成します。

  3. **「詳細設定」**をクリックします。 ホスト名ポートデータベースの CLI パラメーターに Db2 Warehouse on Cloud サーバーの値を入力します。

  4. SSL 接続の場合は、CLI パラメーター Security を、値 SSL を指定して入力します。

  5. **「適用」**をクリックします。

  6. 接続をテストするには、ODBC データ ソース アドミニストレータのメインページに戻ります。 作成した DSN で**「構成」をクリックします。 サーバーのユーザー ID とパスワードを入力し、「接続」**をクリックします。

PHP

PHP アプリケーションと Db2 Warehouse on Cloud データベースの間の接続を定義します。

前提条件

Db2 Warehouse on Cloud データベースへの接続を試行する前に、前提条件を満たしていることを確認します。

手順

シナリオ 1: IBM Cloud の外部からの接続:

  1. Web コンソールから Db2 ドライバー・パッケージをダウンロードして、PHP アプリケーションが実行されるマシンにドライバー・パッケージをインストールします。

  2. odbc_connect 関数 を使用して、BLUDB データベースに接続します。

    次に PHP コードの例を示します。

    <?php
    $database = "BLUDB";        # Get these database details from
    $hostname = "<Host-name>";  # the web console
    $user     = "<User-ID >";   #
    $password = "<Password>";   #
    $port     = 50000;          #
    $ssl_port = 50001;          #
    # Build the connection string
    #
    $driver  = "DRIVER={IBM DB2 ODBC DRIVER};";
    $dsn     = "DATABASE=$database; " .
               "HOSTNAME=$hostname;" .
               "PORT=$port; " .
               "PROTOCOL=TCPIP; " .
               "UID=$user;" .
               "PWD=$password;";
    $ssl_dsn = "DATABASE=$database; " .
               "HOSTNAME=$hostname;" .
               "PORT=$ssl_port; " .
               "PROTOCOL=TCPIP; " .
               "UID=$user;" .
               "PWD=$password;" .
               "SECURITY=SSL;";
    $conn_string = $driver . $dsn;     # Non-SSL
    $conn_string = $driver . $ssl_dsn; # SSL
    # Connect
    #
    $conn = odbc_connect( $conn_string, "", "" );
    if( $conn )
    {
        echo "Connection succeeded.";
        # Disconnect
        #
        odbc_close( $conn );
    }
    else
    {
        echo "Connection failed.";
    }
    ?>
    

    この PHP コードの例を C:\sample.php と呼ばれるスクリプト・ファイルに保存してから、スクリプトをコマンド・ラインから実行すると、以下の出力が作成されます。

    C:\> php –f sample.php
    
    Connection succeeded.
    

シナリオ 2: IBM Cloud での PHP Web アプリからの接続

  1. IBM Cloud カタログから、新しい PHP アプリを作成します。

  2. IBM Cloud ダッシュボード内の新しい PHP アプリの「開始」セクションから、アプリのスターター・コードをローカル作業ディレクトリーにダウンロードします。

  3. IBM Cloud ダッシュボードで、Db2 サービスから新しい PHP アプリへの新しい接続を作成します。 (IBM Cloud でこの接続を作成すると、PHP アプリに VCAP_SERVICES 環境変数を使用できるようになります。 VCAP_SERVICES 環境変数には、Db2 サービスに関するデータベースの詳細が含まれています。 VCAP_SERVICES を使用する方が、PHP アプリ内でデータベースの詳細をハードコーディングするよりも便利です。)

  4. ローカル作業ディレクトリーで、db2_connect 関数を使用して BLUDB データベースに接続するように index.php ファイルを更新します。

    以下に例を示します。

    <!DOCTYPE html>
    <html>
    <head>
        <title>PHP Starter Application</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link rel="stylesheet" href="style.css" />
    </head>
    <body>
    <?php
    if( getenv( "VCAP_SERVICES" ) )
    {
        # Get database details from the VCAP_SERVICES environment variable
        #
        # *This can only work if you have used the Bluemix dashboard to
        # create a connection from your dashDB service to your PHP App.
        #
        $details  = json_decode( getenv( "VCAP_SERVICES" ), true );
        $dsn      = $details [ "dashDB" ][0][ "credentials" ][ "dsn" ];
        $ssl_dsn  = $details [ "dashDB" ][0][ "credentials" ][ "ssldsn" ];
        # Build the connection string
        #
        $driver = "DRIVER={IBM DB2 ODBC DRIVER};";
        $conn_string = $driver . $dsn;     # Non-SSL
        $conn_string = $driver . $ssl_dsn; # SSL
        $conn = db2_connect( $conn_string, "", "" );
        if( $conn )
        {
            echo "<p>Connection succeeded.</p>";
            db2_close( $conn );
        }
        else
        {
            echo "<p>Connection failed.</p>";
        }
    }
    else
    {
        echo "<p>No credentials.</p>";
    }
    ?>
    </body>
    </html>
    
  5. ローカル作業ディレクトリーから、IBM Cloud ダッシュボード内の PHP アプリの「開始」セクションの指示に従って、更新内容を IBM Cloud にプッシュします。 その後、IBM Cloud 内でアプリを再始動し、ブラウザーでアプリを表示します。