

# Java および DAX
<a name="DAX.client.run-application-java"></a>

DAX SDK for Java 2.x は [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) と互換性があります。Java 8 以降をベースに構築されており、非ブロック I/O がサポートされています。AWS SDK for Java 1.x での DAX の使用については、「[DAX を AWS SDK for Java 1.x で使用する](DAX.client.java-sdk-v1.md)」を参照してください。

## クライアントを Maven 依存関係として使用する
<a name="DAX.client.run-application-java.maven"></a>

これらのステップに従って、アプリケーションで Java 用 DAX SDK のクライアントを依存関係として使用します。

1. Apache Maven をダウンロードし、インストールします。詳細については、「[Apache Maven のダウンロード](https://maven.apache.org/download.cgi)」および「[Apache Maven のインストール](https://maven.apache.org/install.html)」を参照してください。

1. Maven 依存関係クライアントをアプリケーションのプロジェクトオブジェクトモデル (POM) ファイルに追加します。この例では、{{x.x.x}} を クライアントの実際のバージョン番号に置き換えます。

   ```
   <!--Dependency:-->
   <dependencies>
       <dependency>
           <groupId>software.amazon.dax</groupId>
           <artifactId>amazon-dax-client</artifactId>
           <version>{{x.x.x}}</version>
       </dependency>
   </dependencies>
   ```

## TryDax サンプルコード
<a name="DAX.client.run-application-java.sample"></a>

ワークスペースを設定し、DAX SDK を依存関係として追加したら、[TryDax.java](DAX.client.TryDax.java.md) をプロジェクトに追加します。

このコマンドを使用してコードを実行します。

```
java -cp {{classpath}} TryDax
```

次のような出力が表示されます。

```
Creating a DynamoDB client

Attempting to create table; please wait...
Successfully created table.  Table status: ACTIVE
Writing data to the table...
Writing 10 items for partition key: 1
Writing 10 items for partition key: 2
Writing 10 items for partition key: 3
...

Running GetItem and Query tests...
First iteration of each test will result in cache misses
Next iterations are cache hits

GetItem test - partition key 1-100 and sort keys 1-10
  Total time: 4390.240 ms - Avg time: 4.390 ms
  Total time: 3097.089 ms - Avg time: 3.097 ms
  Total time: 3273.463 ms - Avg time: 3.273 ms
  Total time: 3353.739 ms - Avg time: 3.354 ms
  Total time: 3533.314 ms - Avg time: 3.533 ms
Query test - partition key 1-100 and sort keys between 2 and 9
  Total time: 475.868 ms - Avg time: 4.759 ms
  Total time: 423.333 ms - Avg time: 4.233 ms
  Total time: 460.271 ms - Avg time: 4.603 ms
  Total time: 397.859 ms - Avg time: 3.979 ms
  Total time: 466.644 ms - Avg time: 4.666 ms

Attempting to delete table; please wait...
Successfully deleted table.
```

タイミング情報を書き留めます。これは、`GetItem` および `Query` テストに必要なミリ秒の数字です。このケースでは、DynamoDB エンドポイントに対してプログラムを実行しました。次に、プログラムを再度実行します。今回は DAX クラスターに対して実行します。

DAX クラスターのエンドポイントを確認するには、次のいずれかを選択します。
+ DynamoDB コンソールで DAX クラスターを選択します。次の例のように、クラスターエンドポイントがコンソールに表示されます。

  ```
  dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
  ```
+ AWS CLI を使用して、次のコマンドを入力します。

  ```
  aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"
  ```

  次の例のように、クラスターエンドポイントのアドレス、ポート、URL が出力に表示されます。

  ```
  {
      "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com",
      "Port": 8111,
      "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com"
  }
  ```

ここでプログラムを再度実行しますが、今度はクラスターエンドポイント URL をコマンドラインパラメータとして指定します。

```
java -cp {{classpath}} TryDax dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
```

出力を見て、タイミング情報を書き留めます。`GetItem` および `Query` の経過時間は、DynamoDB を使用した場合より DAX を使用した方が大幅に低いはずです。

## SDK のメトリクス
<a name="DAX.client.run-application-java.metrics"></a>

DAX SDK for Java 2.x を使用すると、アプリケーションのサービスクライアントに関するメトリクスを収集し、Amazon CloudWatch で出力を分析できます。詳細については、「[メトリクスを有効にする](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/metrics.html)」を参照してください。

**注記**  
DAX SDK for Java は `ApiCallSuccessful` および `ApiCallDuration` メトリクスのみを収集します。