com.amazonaws

## クラス ClientConfiguration

- java.lang.Object
- - com.amazonaws.ClientConfiguration

-     public class ClientConfiguration
      extends java.lang.Object

  プロキシ設定、ユーザエージェント文字列、最大リトライ回数などのクライアント設定オプション

- - ### フィールドの概要

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static int` | `DEFAULT_MAX_CONNECTIONS` デフォルトの最大接続プール数
    `static int` | `DEFAULT_MAX_RETRIES` エラーレスポンスに対するデフォルトの最大リトライ回数
    `static int` | `DEFAULT_SOCKET_TIMEOUT` 接続されたソケットに対するデフォルトの最大タイムアウト時間
    `static java.lang.String` | `DEFAULT_USER_AGENT` AWS Java SDK クライアントに対するデフォルトの HTTP ユーザエージェント

  - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `ClientConfiguration()`
    `ClientConfiguration(ClientConfiguration other)`

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `getConnectionTimeout()` 接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間を返します。
    `int` | `getMaxConnections()` HTTP 最大接続数を返します。
    `int` | `getMaxErrorRetry()` リトライ可能な失敗リクエスト (例: サーバからの応答が 5xx の場合) が再送される 最大回数を返します。
    `Protocol` | `getProtocol()` Amazon Web Service への接続で利用するプロトコル (HTTP または HTTPS) を返します。
    `java.lang.String` | `getProxyDomain()` NTLM プロキシの設定に用いる Windows ドメイン名を返します。
    `java.lang.String` | `getProxyHost()` 接続で利用する付加的なプロキシホストを返します。
    `java.lang.String` | `getProxyPassword()` 接続で利用する付加的なプロキシでのパスワードを返します
    `int` | `getProxyPort()` 接続で利用する付加的なプロキシポートを返します。
    `java.lang.String` | `getProxyUsername()` 接続で利用する付加的なプロキシでのユーザ名を返します
    `java.lang.String` | `getProxyWorkstation()` NTLM プロキシの設定に用いる Windows ワークステーション名を返します。
    `int[]` | `getSocketBufferSizeHints()` 低レベルな TCP 送信 / 受信バッファに対する付加的なサイズヒント (バイト) を返します。
    `int` | `getSocketTimeout()` 接続が確立され、コネクションで転送されるデータに対して、接続がタイムアウトするまでの 待ち時間を返します。
    `java.lang.String` | `getUserAgent()` 送信するすべてリクエストの HTTP ユーザエージェントを返します。
    `void` | `setConnectionTimeout(int connectionTimeout)` 接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間をセットします。
    `void` | `setMaxConnections(int maxConnections)` HTTP 最大接続数を指定します。
    `void` | `setMaxErrorRetry(int maxErrorRetry)` リトライ可能な失敗リクエスト (例: サーバからの応答が 5xx の場合) が再送される 最大回数をセットします。
    `void` | `setProtocol(Protocol protocol)` Amazon Web Service への接続で利用するプロトコル (HTTP または HTTPS) をセットします。
    `void` | `setProxyDomain(java.lang.String proxyDomain)` NTLM プロキシの設定に用いる Windows ドメイン名をセットします。
    `void` | `setProxyHost(java.lang.String proxyHost)` 接続で利用する付加的なプロキシホストをセットします。
    `void` | `setProxyPassword(java.lang.String proxyPassword)` 接続で利用する付加的なプロキシでのパスワードをセットします。
    `void` | `setProxyPort(int proxyPort)` 接続で利用する付加的なプロキシポートをセットします。
    `void` | `setProxyUsername(java.lang.String proxyUsername)` 接続で利用する付加的なプロキシでのユーザ名をセットします。
    `void` | `setProxyWorkstation(java.lang.String proxyWorkstation)` NTLM プロキシの設定に用いる Windows ワークステーション名をセットします。
    `void` | `setSocketBufferSizeHints(int socketSendBufferSizeHint, int socketReceiveBufferSizeHint)` 低レベルな TCP 送信 / 受信バッファに対する付加的なサイズヒント (バイト) をセットします。
    `void` | `setSocketTimeout(int socketTimeout)` 接続が確立され、コネクションで転送されるデータに対して、接続がタイムアウトするまでの 待ち時間をセットします。
    `void` | `setUserAgent(java.lang.String userAgent)` 送信するすべてのリクエストの HTTP ユーザエージェントヘッダをセットします
    `ClientConfiguration` | `withConnectionTimeout(int connectionTimeout)` 接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間をセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withMaxConnections(int maxConnections)` HTTP 最大接続数をセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withMaxErrorRetry(int maxErrorRetry)` リトライ可能な失敗リクエスト (例: サーバからの応答が 5xx の場合) が再送される 最大回数をセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withProtocol(Protocol protocol)` チェインして付加的な呼び出しをしたいときのために、Amazon Web Service への接続で 利用するプロトコル (HTTP または HTTPS) をセットした上で、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withProxyDomain(java.lang.String proxyDomain)` NTLM プロキシの設定に用いる Windows ドメイン名をセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withProxyHost(java.lang.String proxyHost)` 接続で利用する付加的なプロキシホストをセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withProxyPassword(java.lang.String proxyPassword)` 接続で利用する付加的なプロキシでのパスワードをセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withProxyPort(int proxyPort)` 接続で利用する付加的なプロキシポートをセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withProxyUsername(java.lang.String proxyUsername)` 接続で利用する付加的なプロキシでのユーザ名をセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withProxyWorkstation(java.lang.String proxyWorkstation)` NTLM プロキシの設定に用いる Windows ワークステーション名をセットし、更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withSocketBufferSizeHints(int socketSendBufferSizeHint, int socketReceiveBufferSizeHint)` 低レベルな TCP 送信 / 受信バッファに対する付加的なサイズヒント (バイト) をセットし、 更新された ClientConfiguration オブジェクトを返します。
    `ClientConfiguration` | `withSocketTimeout(int socketTimeout)` 接続が確立され、コネクションで転送されるデータに対して、接続がタイムアウトするまでの 待ち時間をセットし、更新された ClientConfiguration を返します。
    `ClientConfiguration` | `withUserAgent(java.lang.String userAgent)` 送信するすべてのリクエストの HTTP ユーザエージェントヘッダをセットし、更新された ClientConfiguration オブジェクトを返します。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### フィールドの詳細

    - #### DEFAULT_SOCKET_TIMEOUT

          public static final int DEFAULT_SOCKET_TIMEOUT

      接続されたソケットに対するデフォルトの最大タイムアウト時間
      関連項目:
        定数フィールド値

    - #### DEFAULT_MAX_CONNECTIONS

          public static final int DEFAULT_MAX_CONNECTIONS

      デフォルトの最大接続プール数
      関連項目:
        定数フィールド値

    - #### DEFAULT_USER_AGENT

          public static final java.lang.String DEFAULT_USER_AGENT

      AWS Java SDK クライアントに対するデフォルトの HTTP ユーザエージェント

    - #### DEFAULT_MAX_RETRIES

          public static final int DEFAULT_MAX_RETRIES

      エラーレスポンスに対するデフォルトの最大リトライ回数
      関連項目:
        定数フィールド値

  - ### コンストラクタの詳細

    - #### ClientConfiguration

          public ClientConfiguration()

    - #### ClientConfiguration

          public ClientConfiguration(ClientConfiguration other)

  - ### メソッドの詳細

    - #### getProtocol

          public Protocol getProtocol()

      Amazon Web Service への接続で利用するプロトコル (HTTP または HTTPS) を返します。

      デフォルトの設定では、セキュリティ向上のためにすべてのリクエストは HTTPS を利用します。

      `AmazonWebServiceClient.setEndpoint(String)` を呼び出すときに プロトコルを含むエンドポイント URL を明示的に指定することで個々のクライアントでも 上書きすることができます。

      戻り値:
        Amazon Web Service への接続で利用するプロトコル

    - #### setProtocol

          public void setProtocol(Protocol protocol)

      Amazon Web Service への接続で利用するプロトコル (HTTP または HTTPS) をセットします。

      デフォルトの設定では、セキュリティ向上のためにすべてのリクエストは HTTPS を利用します。

      `AmazonWebServiceClient.setEndpoint(String)` を呼び出すときに プロトコルを含むエンドポイント URL を明示的に指定することで個々のクライアントでも 上書きすることができます。

      パラメータ:
        `protocol` - Amazon Web Service への接続で利用するプロトコル

    - #### withProtocol

          public ClientConfiguration withProtocol(Protocol protocol)

      チェインして付加的な呼び出しをしたいときのために、Amazon Web Service への接続で 利用するプロトコル (HTTP または HTTPS) をセットした上で、更新された ClientConfiguration オブジェクトを返します。

      デフォルトの設定では、セキュリティ向上のためにすべてのリクエストは HTTPS を利用します。

      `AmazonWebServiceClient.setEndpoint(String)` を呼び出すときに プロトコルを含むエンドポイント URL を明示的に指定することで個々のクライアントでも 上書きすることができます。

      パラメータ:
        `protocol` - Amazon Web Service への接続で利用するプロトコル
      戻り値:
        新しい HTTP 接続設定をもつ更新された ClientConfiguration オブジェクト

    - #### getMaxConnections

          public int getMaxConnections()

      HTTP 最大接続数を返します。
      戻り値:
        HTTP 最大接続数

    - #### setMaxConnections

          public void setMaxConnections(int maxConnections)

      HTTP 最大接続数を指定します。
      パラメータ:
        `maxConnections` - HTTP 最大接続数

    - #### withMaxConnections

          public ClientConfiguration withMaxConnections(int maxConnections)

      HTTP 最大接続数をセットし、更新された ClientConfiguration オブジェクトを返します。
      パラメータ:
        `maxConnections` - HTTP 最大接続数
      戻り値:
        HTTP 最大接続数がセットされ、更新された ClientConfiguration オブジェクト

    - #### getUserAgent

          public java.lang.String getUserAgent()

      送信するすべてリクエストの HTTP ユーザエージェントを返します。
      戻り値:
        送信リクエストで使われるユーザエージェント文字列

    - #### setUserAgent

          public void setUserAgent(java.lang.String userAgent)

      送信するすべてのリクエストの HTTP ユーザエージェントヘッダをセットします
      パラメータ:
        `userAgent` - 送信リクエストで使われるユーザエージェント文字列

    - #### withUserAgent

          public ClientConfiguration withUserAgent(java.lang.String userAgent)

      送信するすべてのリクエストの HTTP ユーザエージェントヘッダをセットし、更新された ClientConfiguration オブジェクトを返します。
      パラメータ:
        `userAgent` - 送信リクエストで使われるユーザエージェント文字列
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getProxyHost

          public java.lang.String getProxyHost()

      接続で利用する付加的なプロキシホストを返します。
      戻り値:
        クライアントが接続で利用するプロキシホスト

    - #### setProxyHost

          public void setProxyHost(java.lang.String proxyHost)

      接続で利用する付加的なプロキシホストをセットします。
      パラメータ:
        `proxyHost` - クライアントが接続で利用するプロキシホスト

    - #### withProxyHost

          public ClientConfiguration withProxyHost(java.lang.String proxyHost)

      接続で利用する付加的なプロキシホストをセットし、更新された ClientConfiguration オブジェクトを返します。
      パラメータ:
        `proxyHost` - クライアントが接続で利用するプロキシホスト
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getProxyPort

          public int getProxyPort()

      接続で利用する付加的なプロキシポートを返します。
      戻り値:
        クライアントが接続で利用するプロキシポート

    - #### setProxyPort

          public void setProxyPort(int proxyPort)

      接続で利用する付加的なプロキシポートをセットします。
      パラメータ:
        `proxyPort` - クライアントが接続で利用するプロキシポート

    - #### withProxyPort

          public ClientConfiguration withProxyPort(int proxyPort)

      接続で利用する付加的なプロキシポートをセットし、更新された ClientConfiguration オブジェクトを返します。
      パラメータ:
        `proxyPort` - クライアントが接続で利用するプロキシポート
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getProxyUsername

          public java.lang.String getProxyUsername()

      接続で利用する付加的なプロキシでのユーザ名を返します
      戻り値:
        接続で利用する付加的なプロキシでのユーザ名

    - #### setProxyUsername

          public void setProxyUsername(java.lang.String proxyUsername)

      接続で利用する付加的なプロキシでのユーザ名をセットします。
      パラメータ:
        `proxyUsername` - 接続で利用する付加的なプロキシでのユーザ名

    - #### withProxyUsername

          public ClientConfiguration withProxyUsername(java.lang.String proxyUsername)

      接続で利用する付加的なプロキシでのユーザ名をセットし、更新された ClientConfiguration オブジェクトを返します。
      パラメータ:
        `proxyUsername` - 接続で利用する付加的なプロキシでのユーザ名
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getProxyPassword

          public java.lang.String getProxyPassword()

      接続で利用する付加的なプロキシでのパスワードを返します
      戻り値:
        接続で利用する付加的なプロキシでのパスワード

    - #### setProxyPassword

          public void setProxyPassword(java.lang.String proxyPassword)

      接続で利用する付加的なプロキシでのパスワードをセットします。
      パラメータ:
        `proxyPassword` - 接続で利用する付加的なプロキシでのパスワード

    - #### withProxyPassword

          public ClientConfiguration withProxyPassword(java.lang.String proxyPassword)

      接続で利用する付加的なプロキシでのパスワードをセットし、更新された ClientConfiguration オブジェクトを返します。
      パラメータ:
        `proxyPassword` - 接続で利用する付加的なプロキシでのパスワード
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getProxyDomain

          public java.lang.String getProxyDomain()

      NTLM プロキシの設定に用いる Windows ドメイン名を返します。 もし、Windows NTLM プロキシを利用しない場合は、このフィールドをセットする必要はありません。
      戻り値:
        NTLM プロキシの設定に用いる Windows ドメイン名

    - #### setProxyDomain

          public void setProxyDomain(java.lang.String proxyDomain)

      NTLM プロキシの設定に用いる Windows ドメイン名をセットします。 もし、Windows NTLM プロキシを利用しない場合は、このフィールドをセットする必要はありません。
      パラメータ:
        `proxyDomain` - NTLM プロキシの設定に用いる Windows ドメイン名

    - #### withProxyDomain

          public ClientConfiguration withProxyDomain(java.lang.String proxyDomain)

      NTLM プロキシの設定に用いる Windows ドメイン名をセットし、更新された ClientConfiguration オブジェクトを返します。 もし、Windows NTLM プロキシを利用しない場合は、このフィールドをセットする必要はありません。
      パラメータ:
        `proxyDomain` - NTLM プロキシの設定に用いる Windows ドメイン名
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getProxyWorkstation

          public java.lang.String getProxyWorkstation()

      NTLM プロキシの設定に用いる Windows ワークステーション名を返します。 もし、Windows NTLM プロキシを利用しない場合は、このフィールドをセットする必要はありません。
      戻り値:
        NTLM プロキシの設定に用いる Windows ワークステーション名

    - #### setProxyWorkstation

          public void setProxyWorkstation(java.lang.String proxyWorkstation)

      NTLM プロキシの設定に用いる Windows ワークステーション名をセットします。 もし、Windows NTLM プロキシを利用しない場合は、このフィールドをセットする必要はありません。
      パラメータ:
        `proxyWorkstation` - NTLM プロキシの設定に用いる Windows ワークステーション名

    - #### withProxyWorkstation

          public ClientConfiguration withProxyWorkstation(java.lang.String proxyWorkstation)

      NTLM プロキシの設定に用いる Windows ワークステーション名をセットし、更新された ClientConfiguration オブジェクトを返します。 もし、Windows NTLM プロキシを利用しない場合は、このフィールドをセットする必要はありません。
      パラメータ:
        `proxyWorkstation` - NTLM プロキシの設定に用いる Windows ワークステーション名
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getMaxErrorRetry

          public int getMaxErrorRetry()

      リトライ可能な失敗リクエスト (例: サーバからの応答が 5xx の場合) が再送される 最大回数を返します。
      戻り値:
        リトライ可能な失敗リクエストが再送される最大回数

    - #### setMaxErrorRetry

          public void setMaxErrorRetry(int maxErrorRetry)

      リトライ可能な失敗リクエスト (例: サーバからの応答が 5xx の場合) が再送される 最大回数をセットします。
      パラメータ:
        `maxErrorRetry` - リトライ可能な失敗リクエストが再送される最大回数

    - #### withMaxErrorRetry

          public ClientConfiguration withMaxErrorRetry(int maxErrorRetry)

      リトライ可能な失敗リクエスト (例: サーバからの応答が 5xx の場合) が再送される 最大回数をセットし、更新された ClientConfiguration オブジェクトを返します。
      パラメータ:
        `maxErrorRetry` - リトライ可能な失敗リクエストが再送される最大回数
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getSocketTimeout

          public int getSocketTimeout()

      接続が確立され、コネクションで転送されるデータに対して、接続がタイムアウトするまでの 待ち時間を返します。 この値が 0 の時は無限を意味し、非推奨です。
      戻り値:
        接続が確立され、コネクションで転送されるデータに対して、接続がタイムアウトする までの待ち時間

    - #### setSocketTimeout

          public void setSocketTimeout(int socketTimeout)

      接続が確立され、コネクションで転送されるデータに対して、接続がタイムアウトするまでの 待ち時間をセットします。 この値が 0 の時は無限を意味し、非推奨です。
      パラメータ:
        `socketTimeout` - 接続が確立され、コネクションで転送されるデータに対して、接続が タイムアウトするまでの待ち時間

    - #### withSocketTimeout

          public ClientConfiguration withSocketTimeout(int socketTimeout)

      接続が確立され、コネクションで転送されるデータに対して、接続がタイムアウトするまでの 待ち時間をセットし、更新された ClientConfiguration を返します。 この値が 0 の時は無限を意味し、非推奨です。
      パラメータ:
        `socketTimeout` - 接続が確立され、コネクションで転送されるデータに対して、接続が タイムアウトするまでの待ち時間
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getConnectionTimeout

          public int getConnectionTimeout()

      接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間を返します。 この値が 0 の時は無限を意味し、非推奨です。
      戻り値:
        接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間

    - #### setConnectionTimeout

          public void setConnectionTimeout(int connectionTimeout)

      接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間をセットします。 この値が 0 の時は無限を意味し、非推奨です。
      パラメータ:
        `connectionTimeout` - 接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間

    - #### withConnectionTimeout

          public ClientConfiguration withConnectionTimeout(int connectionTimeout)

      接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間をセットし、更新された ClientConfiguration オブジェクトを返します。 この値が 0 の時は無限を意味し、非推奨です。
      パラメータ:
        `connectionTimeout` - 接続を確立しはじめてから、諦めてタイムアウトするまでの待ち時間
      戻り値:
        更新された ClientConfiguration オブジェクト

    - #### getSocketBufferSizeHints

          public int[] getSocketBufferSizeHints()

      低レベルな TCP 送信 / 受信バッファに対する付加的なサイズヒント (バイト) を返します。 これは、さらなるパフォーマンスを少しでも絞り出すための低レベルな TCP パラメタを調整したい上級者向けのオプションです。

      あるアプリケーションに対して最適な TFP バッファサイズはネットワーク設定や オペレーティングシステム設定、性能に非常に依存しています。 例えば、ほとんどのモダンなオペレーティングシステムでは TCP バッファサイズに対して 自動チューニング機能を提供しており、これはバッファサイズを最適化するために十分な時間 維持されるため、 TCP 接続に対する性能に大きな影響を与えます。

      大きなバッファサイズ (例えば 2MB) を指定することで、オペレーティングシステムでは リモートサーバに情報の受取承認を要求することなく、より多くのデータをメモリ上に 保持することができるようになります。 それにより、ネットワークの遅延が大きい時に特に有効になります。

      これはただの ヒント であり、オペレーティングシステムはこれを必ずしも 受けて利用するわけではない。 このオプションを利用するときには、オペレーティングシステムの制限とデフォルトの設定を いつも チェックするべきです。 ほとんどの OS は最大 TCP バッファサイズの制限があり、最大 TCP バッファサイズの制限を 明示的に上げる必要がなければ、この制限を超えるべきではありません。

      TCP バッファサイズやオペレーティングシステム固有の TCP 設定の手助けとなる オンラインでの情報がたくさんあります。

      - http://onlamp.com/pub/a/onlamp/2005/11/17/tcp_tuning.html
      - http://fasterdata.es.net/TCP-tuning/
      戻り値:
        TCP 送信バッファサイズと TCP 受信バッファサイズの2つのヒントを要素とする配列を返します。

    - #### setSocketBufferSizeHints

          public void setSocketBufferSizeHints(int socketSendBufferSizeHint,
                                      int socketReceiveBufferSizeHint)

      低レベルな TCP 送信 / 受信バッファに対する付加的なサイズヒント (バイト) をセットします。 これは、さらなるパフォーマンスを少しでも絞り出すための低レベルな TCP パラメタを調整したい上級者向けのオプションです。

      あるアプリケーションに対して最適な TFP バッファサイズはネットワーク設定や オペレーティングシステム設定、性能に非常に依存しています。 例えば、ほとんどのモダンなオペレーティングシステムでは TCP バッファサイズに対して 自動チューニング機能を提供しており、これはバッファサイズを最適化するために十分な時間 維持されるため、 TCP 接続に対する性能に大きな影響を与えます。

      大きなバッファサイズ (例えば 2MB) を指定することで、オペレーティングシステムでは リモートサーバに情報の受取承認を要求することなく、より多くのデータをメモリ上に 保持することができるようになります。 それにより、ネットワークの遅延が大きい時に特に有効になります。

      これはただの ヒント であり、オペレーティングシステムはこれを必ずしも 受けて利用するわけではない。 このオプションを利用するときには、オペレーティングシステムの制限とデフォルトの設定を いつも チェックするべきです。 ほとんどの OS は最大 TCP バッファサイズの制限があり、最大 TCP バッファサイズの制限を 明示的に上げる必要がなければ、この制限を超えるべきではありません。

      TCP バッファサイズやオペレーティングシステム固有の TCP 設定の手助けとなる オンラインでの情報がたくさんあります。

      - http://onlamp.com/pub/a/onlamp/2005/11/17/tcp_tuning.html
      - http://fasterdata.es.net/TCP-tuning/
      パラメータ:
        `socketSendBufferSizeHint` - 低レベルな TCP 送信バッファのサイズヒント (バイト)
        `socketReceiveBufferSizeHint` - 低レベルな TCP 受信バッファのサイズヒント (バイト)

    - #### withSocketBufferSizeHints

          public ClientConfiguration withSocketBufferSizeHints(int socketSendBufferSizeHint,
                                                      int socketReceiveBufferSizeHint)

      低レベルな TCP 送信 / 受信バッファに対する付加的なサイズヒント (バイト) をセットし、 更新された ClientConfiguration オブジェクトを返します。 これは、さらなるパフォーマンスを少しでも絞り出すための低レベルな TCP パラメタを調整したい上級者向けのオプションです。

      あるアプリケーションに対して最適な TFP バッファサイズはネットワーク設定や オペレーティングシステム設定、性能に非常に依存しています。 例えば、ほとんどのモダンなオペレーティングシステムでは TCP バッファサイズに対して 自動チューニング機能を提供しており、これはバッファサイズを最適化するために十分な時間 維持されるため、 TCP 接続に対する性能に大きな影響を与えます。

      大きなバッファサイズ (例えば 2MB) を指定することで、オペレーティングシステムでは リモートサーバに情報の受取承認を要求することなく、より多くのデータをメモリ上に 保持することができるようになります。 それにより、ネットワークの遅延が大きい時に特に有効になります。

      これはただの ヒント であり、オペレーティングシステムはこれを必ずしも 受けて利用するわけではない。 このオプションを利用するときには、オペレーティングシステムの制限とデフォルトの設定を いつも チェックするべきです。 ほとんどの OS は最大 TCP バッファサイズの制限があり、最大 TCP バッファサイズの制限を 明示的に上げる必要がなければ、この制限を超えるべきではありません。

      TCP バッファサイズやオペレーティングシステム固有の TCP 設定の手助けとなる オンラインでの情報がたくさんあります。

      - http://onlamp.com/pub/a/onlamp/2005/11/17/tcp_tuning.html
      - http://fasterdata.es.net/TCP-tuning/
      パラメータ:
        `socketSendBufferSizeHint` - 低レベルな TCP 送信バッファのサイズヒント (バイト)
        `socketReceiveBufferSizeHint` - 低レベルな TCP 受信バッファのサイズヒント (バイト)
      戻り値:
        更新された ClientConfiguration オブジェクト