

# IBM CLPPlus を使用して Amazon RDS for Db2 DB インスタンスに接続する
<a name="db2-connecting-with-ibm-clpplus-client"></a>

IBM CLPPlus などのユーティリティを使用して、Amazon RDS for Db2 DB インスタンスに接続できます。このユーティリティは IBM Data Server Runtime Client の一部です。IBM Fix Central からクライアント****をダウンロードするには、IBM サポートの「[IBM Data Server Client Packages Version 11.5 Mod 8 Fix Pack 0](https://www.ibm.com/support/pages/node/6830885)」を参照してください。

**重要**  
グラフィカルユーザーインターフェイスをサポートする macOS、Windows、または Linux with Desktop などのオペレーティングシステムで IBM CLPPlus を実行することをお勧めします。ヘッドレス Linux を実行している場合は、CLPPlus コマンドでスイッチ **-nw** を使用します。

**Topics**
+ [クライアントをインストールする](#db2-connecting-ibm-clpplus-install-client)
+ [DB インスタンスに接続する](#db2-connecting-ibm-clpplus-connect-db-instance)
+ [DB2 ストアドプロシージャから CLOB データを取得する](#db2-connecting-ibm-clpplus-retrieve-clob-data)

## クライアントをインストールする
<a name="db2-connecting-ibm-clpplus-install-client"></a>

Linux のパッケージをダウンロードしたら、クライアントをインストールします。

**注記**  
クライアントを AIX または Windows にインストールするには、同じ手順に従いますが、オペレーティングシステムに応じてコマンドを変更します。

**Linux にクライアントをインストールするには**

1. を実行します。。**`./db2_install`**

1. **`clientInstallDir/instance/db2icrt -s client` *instance\$1name* **を実行します。*instance\$1name* は、Linux の有効なオペレーティングシステムユーザーに置き換えます。Linux では、Db2 DB インスタンス名はオペレーティングシステムのユーザー名に関連付けられます。

   このコマンドは、Linux の指定ユーザーのホームディレクトリに **`sqllib`** ディレクトリを作成します。

## DB インスタンスに接続する
<a name="db2-connecting-ibm-clpplus-connect-db-instance"></a>

RDS for Db2 DB インスタンスに接続するには、DNS 名とポート番号が必要です。これを確認する方法の詳細については、「[エンドポイントの検索](db2-finding-instance-endpoint.md)」を参照してください。また、RDS for Db2 DB インスタンスの作成時に定義したデータベース名、マスターユーザー名、マスターパスワードも把握しておく必要があります。これを確認する方法の詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。

**IBM CLPPlus を使用して RDS for Db2 DB インスタンスに接続するには**

1. コマンドの構文を確認します。次の例では、*clientDir* をクライアントがインストールされている場所に置き換えます。

   ```
   cd clientDir/bin
       ./clpplus -h
   ```

1. Db2 サーバーを設定します。次の例では、*dsn\$1name*、*database\$1name*、*endpoint*、*port* を DSN 名、データベース名、エンドポイント、RDS for Db2 DB インスタンスのポートに置き換えます。詳細については、「[Amazon RDS for Db2 DB インスタンスのエンドポイントを発見する](db2-finding-instance-endpoint.md)」を参照してください。

   ```
   db2cli writecfg add -dsn dsn_name -database database_name -host endpoint -port port -parameter "Authentication=SERVER_ENCRYPT"
   ```

1. RDS for Db2 DB インスタンスに接続します。次の例では、*master\$1username* と *dsn\$1name* をマスターユーザー名と DSN 名に置き換えます。

   ```
   ./clpplus -nw master_username@dsn_name
   ```

1. Java Shell ウィンドウが開きます。RDS for Db2 DB インスタンスのマスターパスワードを入力します。
**注記**  
Java Shell ウィンドウが開かない場合は、`./clpplus -nw` を実行して同じコマンドラインウィンドウを使用します。

   ```
   Enter password: *********
   ```

   接続が確立され、次の例のような出力が生成されます。

   ```
   Database Connection Information :
   ---------------------------------
   Hostname = database-1.abcdefghij.us-east-1.rds.amazonaws.com
   Database server = DB2/LINUXX8664  SQL110590
   SQL authorization ID = admin
   Local database alias = DB2DB
   Port = 50000
   ```

1. クエリを実行し、結果を表示します。次の例は、作成したデータベースを選択する SQL ステートメントを示しています。

   ```
   SQL > select current server from sysibm.dual;
   ```

   このコマンドでは、次の例のような出力が生成されます。

   ```
   1
       --------------------
       DB2DB
       SQL>
   ```

## DB2 ストアドプロシージャから CLOB データを取得する
<a name="db2-connecting-ibm-clpplus-retrieve-clob-data"></a>

rdsadmin.db2pd\$1command などのストアドプロシージャは、最大 2 GB のデータをサポートする CLOB 列で結果を返します。ただし、DB2 CLP は CLOB 出力を 8 KB (8192 バイト) に制限し、このしきい値を超えるデータは切り捨てられます。完全な出力を取得するには、代わりに CLPPLUS を使用します。

1. タスク ID (task\$1id) の取得 

   ```
   db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params,
   cast(task_output as varchar(500)) as task_output, CREATED_AT, LAST_UPDATED_AT from table(rdsadmin.get_task_status(null,null,null))"
   ```

1. CLPPLUS コマンドを実行する

   task\$1id を取得したら、Unix プロンプトから次のコマンドを実行します (TASK\$1ID を実際の数値タスク ID に置き換えます)。

   ```
   $ (echo "select task_output from table(rdsadmin.get_task_status(task_id,null,null));" ; echo "disconnect;" ; echo "exit;") | clpplus -nw -silent masteruser/MasterUserPassword@hostname:port_num/rdsadmin
   ```