Message Processor の I/O タイムアウトを構成する

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

<ph type="x-smartling-placeholder">

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

Message Processor の I/O タイムアウトは、Message Processor が バックエンド サーバーからのレスポンスを受信するか、ソケットが書き込み可能になるまで待機します。 タイムアウトになる前にバックエンド サーバーにリクエストを送信できます。

Message Processor の I/O タイムアウトのデフォルト値は 55 seconds です。このタイムアウト 期間が適用されます。 ターゲット エンドポイントの構成と ServiceCallout で構成されたバックエンド サーバーへ 有効にする必要があります。

Message Processor の I/O タイムアウトは、アプリケーションのデフォルト値から 必要に応じて55 secondsします。これは次の場所で構成できます。

  • API プロキシの場合 <ph type="x-smartling-placeholder">
      </ph>
    • ターゲット エンドポイント
    • ServiceCallout ポリシー
  • Message Processor

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

プロパティ名 場所 説明
io.timeout.millis

API プロキシ:

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

これは、Message Processor が次の処理を行う最大時間です。

  • 確立後に、バックエンド サーバーからのレスポンスの受信を待機します。 バックエンド サーバーにリクエストを送信するか、
  • Message Processor がリクエストを送信するまでソケットの準備が整うまで待機します。 バックエンドサーバーと通信します

このタイムアウト期間内にバックエンド サーバーからレスポンスがなかった場合、 Message Processor がタイムアウトします。

デフォルトでは、このプロパティは Message Processor の HTTPTransport.io.timeout.millis プロパティ。 デフォルト値は 55 seconds です。

このプロパティを、特定の API プロキシの新しいタイムアウト値で変更すると、 その API プロキシのみが影響を受けます。

HTTPTransport.io.timeout.millis Message Processor

これは、Message Processor が次の処理を行う最大時間です。

  • 接続を確立した後、バックエンド サーバーからのレスポンスを受信するまで待機します。 リクエストをバックエンド サーバーに送信します。または、
  • Message Processor がリクエストを送信するまでソケットの準備が整うまで待機します。 バックエンドサーバーと通信します

このタイムアウト期間内にバックエンド サーバーからレスポンスがなかった場合、 Message Processor がタイムアウトします。

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

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

このプロパティは、 Message Processor で I/O タイムアウトを構成します。または、 API で io.timeout.millis プロパティを設定して、この値を上書きします。 制御できます。

始める前に

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

で確認できます。

API プロキシでの I/O タイムアウトの構成

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

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

API プロキシのターゲット エンドポイントでの I/O タイムアウトの構成

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

<ph type="x-smartling-placeholder">で確認できます。 <ph type="x-smartling-placeholder">
  1. Edge UI で、新しい API プロキシを構成する特定の API プロキシを選択します。 I/O タイムアウト値。
  2. 変更する特定のターゲット エンドポイントを選択します。
  3. 適切な値を持つプロパティ io.timeout.millisTargetEndpoint 構成の <HTTPTargetConnection> 要素。
  4. たとえば、I/O タイムアウトを 120 秒に変更するには、次のコードブロックを追加します。

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    io.timeout.millis プロパティはミリ秒単位であるため、 120 秒は 120000 です。

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

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

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

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

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
    <ph type="x-smartling-placeholder">
  5. API プロキシに加えた変更を保存します。

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

このセクションでは、アプリケーションの ServiceCallout ポリシーで I/O タイムアウトを構成する方法について説明します。 API プロキシ。I/O タイムアウトは <Timeout> 要素で構成できます。 または io.timeout.millis プロパティを使用します。<Timeout> 要素と io.timeout.millis プロパティは、I/O タイムアウト値をミリ秒単位で表します。

<ph type="x-smartling-placeholder">で確認できます。 <ph type="x-smartling-placeholder">

ServiceCallout ポリシーの I/O タイムアウトは、次のいずれかの方法で構成できます。

  • <Timeout> 要素。
  • io.timeout.millis プロパティ。

タイムアウト要素

<Timeout> を使用して ServiceCallout ポリシーで I/O タイムアウトを構成するには 次の操作を行います。

  1. Edge UI で、構成する API プロキシを選択します。 ServiceCallout ポリシーの新しい I/O タイムアウト値。
  2. 変更する ServiceCallout ポリシーを選択します。
  3. 要素 <Timeout> を追加して適切な値を <ServiceCallout> の設定。

    たとえば、I/O タイムアウトを 120 秒に変更するには、次のコード行を追加します。

        <Timeout>120000</Timeout>
    

    <Timeout> 要素はミリ秒単位であるため、 120 秒は 120000 です。

    次の例は、ServiceCallout で I/O タイムアウトを構成する方法を示しています。 <Timeout> 要素を使用します。

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

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. API プロキシに加えた変更を保存します。

io.timeout.millis プロパティ

ServiceCallout ポリシーで I/O タイムアウトを構成するには、 io.timeout.millis プロパティを使用して、次の操作を行います。

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

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

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    io.timeout.millis プロパティはミリ秒単位であるため、 120 秒は 120000 です。

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

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

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

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

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

Message Processor での I/O タイムアウトの構成

このセクションでは、Message Processor で I/O タイムアウトを構成する方法について説明します。 I/O タイムアウトはプロパティ HTTPTransport.io.timeout.millis で構成できます。 Message Processor コンポーネントの I/O タイムアウト値をミリ秒単位で表します。 トークンを使用します。 設定方法 Edge

で確認できます。

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

  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_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    たとえば、Message Processor の I/O タイムアウトを 120 秒に変更するには、次のようにします。 次の行を追加します。

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  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 Processor に対して上記の手順を繰り返します 決済代行業者。

Message Processor の I/O タイムアウトの確認

<ph type="x-smartling-placeholder">

このセクションでは、Google Cloud コンソールで I/O タイムアウトが正常に変更されたことを確認する方法について説明します。 Message Processor です。

トークン conf_http_HTTPTransport.io.timeout.millis を使用して Message Processor の I/O タイムアウトが 100 を超えた場合、実際のプロパティが HTTPTransport.io.timeout.millis に新しい値が設定されました。

  1. Message Processor マシンで、HTTPTransport.io.timeout.millis プロパティを検索します。 が /opt/apigee/edge-message-processor/conf ディレクトリにあることを 次のように新しい値が設定されます。
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Message Processor で新しい I/O タイムアウト値が正常に設定されると、 コマンドにより、http.properties ファイルの新しい値が表示されます。
  3. I/O タイムアウトを次の値に構成した後の上記のコマンドの結果の例 120 秒は次のとおりです。

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
    

    上記の出力例では、プロパティの値が HTTPTransport.io.timeout.millis に新しい値 120000 が設定されました http.properties。これは、I/O タイムアウトが正常に構成されていることを示します。 120 秒に短縮されます。

  4. プロパティ HTTPTransport.io.timeout.millis に古い値が引き続き表示される場合は、 記載されているすべての手順に Message Processor の I/O タイムアウトの構成を正しく構成する。既存の 手順をすべて間違えた場合は、すべての手順を正しく繰り返します。
  5. それでも I/O タイムアウトを変更できない場合は、 Apigee Edge のサポート

次のステップ

学習内容 <ph type="x-smartling-placeholder"></ph> ルーターの I/O タイムアウトの構成