Message Processor の接続タイムアウトを構成する

ここに表示されているのは Apigee Edge のドキュメントです。
Go to the Apigee X のドキュメントに移動します
info

このドキュメントでは、Apigee Edge Message Processor の接続タイムアウトを構成する方法について説明します。

接続タイムアウトは、Message Processor がターゲット サーバーとの接続を確立するまで待機する時間を表します。 Message Processor の接続タイムアウト プロパティのデフォルト値は 3 秒です。このタイムアウト期間は、ターゲット エンドポイント構成と API プロキシの ServiceCallout ポリシーで構成された バックエンド サーバーに適用されます。

Message Processor の接続タイムアウトは、必要に応じてデフォルト値の 3 秒から増減できます。次の方法で構成できます。

  • API プロキシ:
    • ターゲット エンドポイント
    • ServiceCallout ポリシー
  • Message Processor

次のプロパティは、Message Processor の接続タイムアウトを制御します。

プロパティ名 ロケーション 説明
connect.timeout.millis API プロキシ:
  • ターゲット エンドポイント
  • ServiceCallout ポリシー

これは、Message Processor がターゲット サーバーへの接続を待機する最大時間です。

デフォルトでは、このプロパティは Message Processor の HTTPClient.connect.timeout.millis プロパティに設定された値を取得します。デフォルト値は 3 秒です。

このプロパティが API プロキシに関連付けられたターゲット サーバーの新しいタイムアウト値で変更された場合、そのターゲット サーバーの接続時間のみが影響を受けます。

HTTPClient.connect.timeout.millis Message Processor

これは、Message Processor がターゲット サーバーへの接続を待機する最大時間です。

このプロパティは、この Message Processor で実行されているすべての API プロキシに使用されます。

このプロパティのデフォルト値は 3 秒です。

このプロパティは、以下の Message Processor の接続タイムアウトを構成するで説明されているように変更できます。また、API プロキシ レベルで connect.timeout.millis プロパティを設定して、この値を上書きすることもできます。

始める前に

このドキュメントの手順を行う前に、次のトピックを理解しておいてください。

API プロキシで接続タイムアウトを構成する

接続タイムアウトは、API プロキシの次の場所で構成できます。

  • ターゲット エンドポイント
  • ServiceCallout ポリシー

API プロキシのターゲット エンドポイントで接続タイムアウトを構成する

このセクションでは、API プロキシのターゲット エンドポイントで接続タイムアウトを構成する方法について説明します。 接続タイムアウトは、接続タイムアウト値をミリ秒単位で表すプロパティ connect.timeout.millis、 を使用して構成できます。

  1. Edge UI で、新しい 接続タイムアウト値を構成する特定の API プロキシを選択します。
  2. 変更する特定のターゲット エンドポイントを選択します。
  3. TargetEndpoint 構成の <HTTPTargetConnection> 要素の下に、適切な値を持つプロパティ connect.timeout.millis を追加します。

    たとえば、接続タイムアウトを 5 秒に変更するには、次のコードブロックを追加します。

    <Properties>
      <Property name="connect.timeout.millis">5000</Property>
    </Properties>

    connect.timeout.millis プロパティはミリ秒単位であるため、 5 秒の値は 5000 です。

    次の例は、API プロキシのターゲット エンドポイント 構成で接続タイムアウトを構成する方法を示しています:

    バックエンド サーバーの URL を使用したターゲット エンドポイント構成の例

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="connect.timeout.millis">5000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>

    ターゲット サーバーを使用したターゲット エンドポイント構成の例

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="connect.timeout.millis">5000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
  4. API プロキシに対する変更を保存します。

API プロキシの ServiceCallout ポリシーで接続タイムアウトを構成する

このセクションでは、API プロキシの ServiceCallout ポリシーで接続タイムアウトを構成する方法について説明します。接続タイムアウトは、接続時間値を ミリ秒単位で表す connect.timeout.millisプロパティを使用して構成できます。

connect.timeout.millis プロパティを使用して ServiceCallout ポリシーの接続タイムアウトを構成するには:

  1. Edge UI で、ServiceCallout ポリシーの新しい 接続タイムアウト値を構成する特定の API プロキシを選択します。
  2. 変更する特定の ServiceCallout ポリシーを選択します。
  3. TargetEndpoint 構成の <HTTPTargetConnection> 要素の下に、適切な値を持つプロパティ connect.timeout.millis を追加します。

    たとえば、接続タイムアウトを 5 秒に変更するには、次のコードブロックを追加します。

    <Properties>
      <Property name="connect.timeout.millis">5000</Property>
    </Properties>

    connect.timeout.millis プロパティはミリ秒単位であるため、 5 秒の値は 5000 です。

    次の例は、API プロキシの ServiceCallout ポリシーで接続タイムアウトを構成する方法を示しています。

    バックエンド サーバーの URL を使用した ServiceCallout ポリシー構成の例

    <ServiceCallout name="Service-Callout-1">
      <DisplayName>Service Callout-1</DisplayName>
      <HTTPTargetConnection>
        <Properties>
          <Property name="connect.timeout.millis">5000</Property>
        </Properties>
        <URL>https://mocktarget.apigee.net/json</URL>
      </HTTPTargetConnection>
    </ServiceCallout>

    ターゲット サーバーを使用した ServiceCallout ポリシー構成の例

    <ServiceCallout enabled="true" name="Service-Callout-1">
      <DisplayName>Service Callout-1</DisplayName>
      <Response>calloutResponse</Response>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="connect.timeout.millis">5000</Property>
        </Properties>
      <Path>/test</Path>
      </HTTPTargetConnection>
    </ServiceCallout>
  4. API プロキシに対する変更を保存します。

Message Processor の接続タイムアウトを構成する

このセクションでは、Message Processor の接続タイムアウトを構成する方法について説明します。 接続タイムアウトは、Message Processor コンポーネントの接続タイムアウト値をミリ秒単位で表すプロパティ conf_http_HTTPClient.connect.timeout.millis を使用して構成できます。トークンは、 Edge を構成する方法で説明されている構文に従って使用します。

Message Processor の接続タイムアウトを構成するには、次の操作を行います。

  1. Message Processor マシンで、エディタで次のファイルを開きます。まだ存在しない場合は、作成します。
    /opt/apigee/customer/application/message-processor.properties

    たとえば、vi を使用してファイルを開くには、次のように入力します。

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. プロパティ ファイルに次の形式の行を追加し、 TIME_IN_MILLISECONDS: の値を置き換えます。
    conf_http_HTTPClient.connect.timeout.millis=TIME_IN_MILLISECONDS

    たとえば、Message Processor の接続タイムアウトを 5 秒に変更するには、 次の行を追加します:

    conf_http_HTTPClient.connect.timeout.millis=5000
  3. 変更を保存します。
  4. プロパティ ファイルが、次のように apigee ユーザーによって所有されていることを確認します。
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 次のように Message Processor を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 複数の Message Processor がある場合は、すべての Message Processors で上記の手順を繰り返します。

Message Processor の接続タイムアウトを確認する

このセクションでは、Message Processor で接続タイムアウトが正常に変更されたことを確認する方法について説明します。

トークン conf_http_HTTPClient.connect.timeout.millis を使用して Message Processor の接続タイムアウトを設定しても、実際のプロパティ HTTPClient.connect.timeout.millis が新しい値で設定されているかどうかを確認する必要があります。

  1. Message Processor マシンで、 HTTPTransport.connect.timeout.millis ディレクトリでプロパティ /opt/apigee/edge-message-processor/conf を検索し、 次のように新しい値で設定されているかどうかを確認します。
    grep -ri "HTTPClient.connect.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Message Processor で新しい接続タイムアウト値が正常に設定されると、上記のコマンドで http.properties ファイルに新しい値が表示されます。

    接続タイムアウトを 5 秒に構成した後の上記のコマンドの出力例は次のとおりです:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPClient.connect.timeout.millis=5000

    上記の出力例では、プロパティ HTTPClient.connect.timeout.millishttp.properties で新しい値 5000 に設定されています。これは、Message Processor で接続タイムアウトが 5 秒に正常に構成されたことを示します。

  3. プロパティ HTTPClient.connect.timeout.millis の古い値が表示される場合は、Message Processor の接続タイムアウトを構成するで説明されているすべての手順を正しく行っていることを確認してください。手順が抜けている場合は、すべての手順をもう一度正しく繰り返します。
  4. 接続タイムアウトを変更できない場合は、Google Cloud Apigee Edge サポートにお問い合わせください。