Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動します。 情報
このドキュメントでは、Apigee Edge Message Processor の I/O タイムアウトを構成する方法について説明します。
Message Processor の I/O タイムアウトは、Message Processor がバックエンド サーバーからのレスポンスを受信するまで、またはバックエンド サーバーにリクエストを書き込むためのソケットの準備が整うまで待機する時間を示します。この時間を超えるとタイムアウトします。
Message Processor の I/O タイムアウトのデフォルト値は 55 seconds です。このタイムアウト期間は、ターゲット エンドポイント構成と API プロキシの ServiceCallout ポリシーで構成されたバックエンド サーバーに適用されます。
Message Processor の I/O タイムアウトは、必要に応じてデフォルト値の 55 seconds から増減できます。次の場所で構成できます。
- API プロキシの場合
- ターゲット エンドポイント
- ServiceCallout ポリシー
- Message Processor で
次のプロパティで、Message Processor の I/O タイムアウトを制御します。
| プロパティ名 | ロケーション | 説明 |
|---|---|---|
io.timeout.millis
|
API プロキシ:
|
これは、Message Processor が次の処理を行う最大時間です。
このタイムアウト期間内にバックエンド サーバーからレスポンスがない場合、Message Processor はタイムアウトします。
デフォルトでは、このプロパティは Message Processor の このプロパティが特定の API プロキシの新しいタイムアウト値で変更された場合、その API プロキシのみが影響を受けます。 |
HTTPTransport.io.timeout.millis
|
Message Processor |
これは、Message Processor が次の処理を行う最大時間です。
このタイムアウト期間内にバックエンド サーバーからレスポンスがない場合、Message Processor はタイムアウトします。 このプロパティは、この Message Processor で実行されているすべての API プロキシに使用されます。
このプロパティのデフォルト値は
このプロパティは、Message Processor の I/O タイムアウトを構成するで説明されているように変更できます。また、API プロキシレベルで |
始める前に
このドキュメントの手順を使用する前に、次のトピックを理解しておいてください。
- I/O タイムアウトについて詳しくは、
TargetEndpoint トランスポート プロパティの仕様の
io.timeout.millisプロパティの説明をご覧ください。 - Edge for Private Cloud のプロパティの構成に慣れていない場合は、 Edge を構成する方法をご覧ください。
- I/O タイムアウトの構成に関するベスト プラクティスの推奨事項に沿っていることを確認します。
API プロキシで I/O タイムアウトを構成する
I/O タイムアウトは、次の API プロキシの場所で構成できます。
- ターゲット エンドポイント
- ServiceCallout ポリシー
API プロキシのターゲット エンドポイントで I/O タイムアウトを構成する
このセクションでは、API プロキシのターゲット エンドポイントで I/O タイムアウトを構成する方法について説明します。I/O タイムアウトは、io.timeout.millis プロパティで構成できます。このプロパティは、I/O タイムアウト値をミリ秒単位で表します。
- Edge UI で、新しい I/O タイムアウト値を構成する特定の API プロキシを選択します。
- 変更する特定のターゲット エンドポイントを選択します。
TargetEndpoint構成の<HTTPTargetConnection>要素の下に、適切な値を持つプロパティio.timeout.millisを追加します。- API プロキシに加えた変更を保存します。
たとえば、I/O タイムアウトを 120 秒に変更するには、次のコードブロックを追加します。
<Properties>
<Property name="io.timeout.millis">120000</Property>
</Properties>io.timeout.millis プロパティはミリ秒単位であるため、120 秒の値は 120000 になります。
次の例は、API プロキシのターゲット エンドポイント構成で I/O タイムアウトを構成する方法を示しています。
バックエンド サーバーの 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>API プロキシの ServiceCallout ポリシーで I/O タイムアウトを構成する
このセクションでは、API プロキシの ServiceCallout ポリシーで I/O タイムアウトを構成する方法について説明します。I/O タイムアウトは、<Timeout> 要素または io.timeout.millis プロパティのいずれかで構成できます。<Timeout> 要素と io.timeout.millis プロパティはどちらも、I/O タイムアウト値をミリ秒単位で表します。
ServiceCallout ポリシーで I/O タイムアウトを構成するには、次のいずれかの方法を使用します。
<Timeout>要素。io.timeout.millisプロパティ。
Timeout 要素
<Timeout> 要素を使用して ServiceCallout ポリシーで I/O タイムアウトを構成する手順は次のとおりです。
- Edge UI で、ServiceCallout ポリシーの新しい I/O タイムアウト値を構成する特定の API プロキシを選択します。
- 変更する特定の ServiceCallout ポリシーを選択します。
<ServiceCallout>構成の下に、適切な値を持つ要素<Timeout>を追加します。たとえば、I/O タイムアウトを 120 秒に変更するには、次のコード行を追加します。
<Timeout>120000</Timeout>
<Timeout>要素はミリ秒単位であるため、120 秒の値は120000になります。次の例は、
<Timeout>要素を使用して ServiceCallout ポリシーで I/O タイムアウトを構成する方法を示しています。バックエンド サーバーの 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>- API プロキシに加えた変更を保存します。
io.timeout.millis プロパティ
io.timeout.millis プロパティを使用して ServiceCallout ポリシーで I/O タイムアウトを構成する手順は次のとおりです。
- Edge UI で、ServiceCallout ポリシーの新しい I/O タイムアウト値を構成する特定の API プロキシを選択します。
- 変更する特定の ServiceCallout ポリシーを選択します。
- TargetEndpoint 構成の
<HTTPTargetConnection>要素の下に、適切な値を持つプロパティio.timeout.millisを追加します。たとえば、I/O タイムアウトを 120 秒に変更するには、次のコードブロックを追加します。
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>io.timeout.millisプロパティはミリ秒単位であるため、120 秒の値は120000になります。次の例は、API プロキシのターゲット エンドポイント構成で I/O タイムアウトを構成する方法を示しています。
バックエンド サーバーの 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> - API プロキシに加えた変更を保存します。
Message Processor の I/O タイムアウトを構成する
このセクションでは、Message Processor の I/O タイムアウトを構成する方法について説明します。I/O タイムアウトは、HTTPTransport.io.timeout.millis プロパティを使用して構成できます。このプロパティは、Edge の構成方法で説明されている構文に従ってトークンを使用し、Message Processor コンポーネントの I/O タイムアウト値をミリ秒単位で表します。
Message Processor の I/O タイムアウトを構成するには、次の操作を行います。
- Message Processor マシンで、次のファイルをエディタで開きます。存在しない場合は作成します。
/opt/apigee/customer/application/message-processor.properties
たとえば、
viを使用してファイルを開くには、次のコマンドを入力します。vi /opt/apigee/customer/application/message-processor.properties
- プロパティ ファイルに次の形式の行を追加します。TIME_IN_MILLISECONDS の値は適宜置き換えてください。
conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
たとえば、Message Processor の I/O タイムアウトを 120 秒に変更するには、次の行を追加します。
conf_http_HTTPTransport.io.timeout.millis=120000
- 変更を保存します。
- プロパティ ファイルの所有者が
apigeeユーザーであることを確認します。chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- 次のように Message Processor を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 複数の Message Processor がある場合は、すべての Message Processor で上記の手順を繰り返します。
Message Processor の I/O タイムアウトを確認する
このセクションでは、Message Processor で I/O タイムアウトが正常に変更されたことを確認する方法について説明します。
トークン conf_http_HTTPTransport.io.timeout.millis を使用して Message Processor の I/O タイムアウトを設定しても、実際のプロパティ HTTPTransport.io.timeout.millis が新しい値で設定されているかどうかを確認する必要があります。
- Message Processor マシンで、
/opt/apigee/edge-message-processor/confディレクトリのプロパティHTTPTransport.io.timeout.millisを検索し、次のように新しい値が設定されているかどうかを確認します。grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- 新しい I/O タイムアウト値が Message Processor で正常に設定されると、上記のコマンドは
http.propertiesファイルに新しい値を表示します。 - プロパティ
HTTPTransport.io.timeout.millisの古い値が引き続き表示される場合は、Message Processor の I/O タイムアウトを構成するで説明されているすべての手順を正しく実行したことを確認します。手順を間違えた場合は、すべての手順をもう一度正しく繰り返します。 - それでも I/O タイムアウトを変更できない場合は、Apigee Edge サポートにお問い合わせください。
I/O タイムアウトを 120 秒に設定した後の上記のコマンドの出力例は次のとおりです。
/opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
上記の出力例では、http.properties のプロパティ HTTPTransport.io.timeout.millis が新しい値 120000 で設定されていることに注目してください。これは、Message Processor で I/O タイムアウトが 120 秒に正常に構成されたことを示します。
次のステップ
ルーターの I/O タイムアウトを構成する方法を確認する