आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
इस दस्तावेज़ में, Apigee Edge Message Processors के लिए I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है.
Message Processor पर I/O टाइमआउट, उस समय को दिखाता है जब Message Processor, बैकएंड सर्वर से जवाब पाने या सॉकेट के बैकएंड सर्वर को अनुरोध लिखने के लिए तैयार होने का इंतज़ार करता है. इससे पहले कि उसका टाइम आउट हो जाए.
Message Processor के I/O टाइमआउट की डिफ़ॉल्ट वैल्यू 55 seconds होती है. यह टाइमआउट अवधि, टारगेट एंडपॉइंट कॉन्फ़िगरेशन में कॉन्फ़िगर किए गए बैकएंड सर्वर और आपकी एपीआई प्रॉक्सी की ServiceCallout नीति पर लागू होती है.
Message Processor के लिए I/O टाइमआउट को अपनी ज़रूरतों के हिसाब से, डिफ़ॉल्ट वैल्यू 55 seconds से बढ़ाया या घटाया जा सकता है. इसे इन जगहों पर कॉन्फ़िगर किया जा सकता है:
- एपीआई प्रॉक्सी में
- टारगेट एंडपॉइंट
- ServiceCallout नीति
- मैसेज प्रोसेसर पर
ये प्रॉपर्टी, मैसेज प्रोसेसर पर I/O टाइमआउट को कंट्रोल करती हैं:
| प्रॉपर्टी का नाम | जगह | ब्यौरा |
|---|---|---|
io.timeout.millis
|
एपीआई प्रॉक्सी:
|
यह ज़्यादा से ज़्यादा वह समय है जब मैसेज प्रोसेसर ये काम करता है:
अगर इस टाइमआउट अवधि में बैकएंड सर्वर से कोई जवाब नहीं मिलता है, तो मैसेज प्रोसेसर का टाइम आउट हो जाता है.
डिफ़ॉल्ट रूप से, यह प्रॉपर्टी Message Processor पर अगर किसी एपीआई प्रॉक्सी के लिए, टाइम आउट की नई वैल्यू के साथ इस प्रॉपर्टी में बदलाव किया जाता है, तो सिर्फ़ उस एपीआई प्रॉक्सी पर असर पड़ता है. |
HTTPTransport.io.timeout.millis
|
मैसेज प्रोसेसर |
यह ज़्यादा से ज़्यादा वह समय है जब मैसेज प्रोसेसर ये काम करता है:
अगर इस टाइमआउट अवधि में बैकएंड सर्वर से कोई जवाब नहीं मिलता है, तो मैसेज प्रोसेसर का टाइम आउट हो जाता है. इस प्रॉपर्टी का इस्तेमाल, इस मैसेज प्रोसेसर पर चल रही सभी एपीआई प्रॉक्सी के लिए किया जाता है.
इस प्रॉपर्टी की डिफ़ॉल्ट वैल्यू
इस प्रॉपर्टी में बदलाव किया जा सकता है. इसके लिए, मैसेज प्रोसेसर पर I/O टाइमआउट कॉन्फ़िगर करना में बताया गया तरीका अपनाएं. इसके अलावा, एपीआई प्रॉक्सी लेवल पर |
शुरू करने से पहले
इस दस्तावेज़ में दिए गए चरणों का इस्तेमाल करने से पहले, पक्का करें कि आपको इन विषयों के बारे में जानकारी हो:
- अगर आपको I/O टाइमआउट के बारे में जानकारी नहीं है, तो
TargetEndpoint Transport Property Specification में
io.timeout.millisप्रॉपर्टी का ब्यौरा देखें. - अगर आपको Private Cloud के लिए Edge की प्रॉपर्टी कॉन्फ़िगर करने के बारे में नहीं पता है, तो Edge को कॉन्फ़िगर करने का तरीका पढ़ें.
- पक्का करें कि आपने I/O टाइमआउट कॉन्फ़िगर करने के सबसे सही तरीके में दिए गए सुझावों का पालन किया हो.
एपीआई प्रॉक्सी में I/O टाइमआउट कॉन्फ़िगर करना
इन एपीआई प्रॉक्सी में I/O टाइमआउट को कॉन्फ़िगर किया जा सकता है:
- टारगेट एंडपॉइंट
- ServiceCallout नीति
एपीआई प्रॉक्सी के टारगेट एंडपॉइंट में I/O टाइमआउट कॉन्फ़िगर करना
इस सेक्शन में, आपकी एपीआई प्रॉक्सी के टारगेट एंडपॉइंट में I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है.
आई/ओ टाइमआउट को io.timeout.millis प्रॉपर्टी के ज़रिए कॉन्फ़िगर किया जा सकता है. यह प्रॉपर्टी, आई/ओ टाइमआउट की वैल्यू को मिलीसेकंड में दिखाती है.
- Edge के यूज़र इंटरफ़ेस (यूआई) में, वह एपीआई प्रॉक्सी चुनें जिसमें आपको नई I/O टाइमआउट वैल्यू कॉन्फ़िगर करनी है.
- वह टारगेट एंडपॉइंट चुनें जिसमें आपको बदलाव करना है.
TargetEndpointकॉन्फ़िगरेशन में,<HTTPTargetConnection>एलिमेंट के नीचे सही वैल्यू वालीio.timeout.millisप्रॉपर्टी जोड़ें.- अपनी एपीआई प्रॉक्सी में किए गए बदलाव सेव करें.
उदाहरण के लिए, I/O टाइमआउट को 120 सेकंड पर सेट करने के लिए, कोड का यह ब्लॉक जोड़ें:
<Properties>
<Property name="io.timeout.millis">120000</Property>
</Properties>io.timeout.millis प्रॉपर्टी की वैल्यू मिलीसेकंड में होती है. इसलिए, 120 सेकंड की वैल्यू 120000 होती है.
यहां दिए गए उदाहरणों में, आपकी एपीआई प्रॉक्सी के टारगेट एंडपॉइंट कॉन्फ़िगरेशन में I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है:
बैकएंड सर्वर के यूआरएल का इस्तेमाल करके, टारगेट एंडपॉइंट कॉन्फ़िगरेशन का उदाहरण
<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>एपीआई प्रॉक्सी की ServiceCallout नीति में I/O टाइमआउट कॉन्फ़िगर करना
इस सेक्शन में, आपकी एपीआई प्रॉक्सी की ServiceCallout नीति में I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है. I/O टाइमआउट को <Timeout> एलिमेंट या io.timeout.millis प्रॉपर्टी के ज़रिए कॉन्फ़िगर किया जा सकता है. <Timeout> एलिमेंट और io.timeout.millis प्रॉपर्टी, दोनों ही इनपुट/आउटपुट के समय खत्म होने की वैल्यू को मिलीसेकंड में दिखाते हैं.
इनमें से किसी एक तरीके का इस्तेमाल करके, ServiceCallout नीति में I/O टाइमआउट को कॉन्फ़िगर किया जा सकता है:
<Timeout>एलिमेंट.io.timeout.millisप्रॉपर्टी.
टाइम आउट एलिमेंट
<Timeout>
एलिमेंट का इस्तेमाल करके, ServiceCallout नीति में I/O टाइमआउट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
- Edge के यूज़र इंटरफ़ेस (यूआई) में, वह एपीआई प्रॉक्सी चुनें जिसमें आपको ServiceCallout नीति के लिए, नई I/O टाइमआउट वैल्यू कॉन्फ़िगर करनी है.
- वह सर्विस कॉलआउट नीति चुनें जिसमें आपको बदलाव करना है.
<ServiceCallout>कॉन्फ़िगरेशन में, सही वैल्यू के साथ<Timeout>एलिमेंट जोड़ें.उदाहरण के लिए, I/O टाइमआउट को 120 सेकंड पर सेट करने के लिए, कोड की यह लाइन जोड़ें:
<Timeout>120000</Timeout>
<Timeout>एलिमेंट की वैल्यू मिलीसेकंड में होती है. इसलिए, 120 सेकंड की वैल्यू120000है.यहां दिए गए उदाहरण में,
<Timeout>एलिमेंट का इस्तेमाल करके, ServiceCallout नीति में I/O टाइमआउट को कॉन्फ़िगर करने का तरीका दिखाया गया है:बैकएंड सर्वर के यूआरएल का इस्तेमाल करके, ServiceCallout नीति के कॉन्फ़िगरेशन का उदाहरण
<ServiceCallout name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <Timeout>120000</Timeout> <HTTPTargetConnection> <Properties/> <URL>https://mocktarget.apigee.net/json</URL> </HTTPTargetConnection> </ServiceCallout>- अपनी एपीआई प्रॉक्सी में किए गए बदलाव सेव करें.
io.timeout.millis प्रॉपर्टी
io.timeout.millis प्रॉपर्टी का इस्तेमाल करके, ServiceCallout नीति में I/O टाइमआउट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
- Edge के यूज़र इंटरफ़ेस (यूआई) में, वह एपीआई प्रॉक्सी चुनें जिसमें आपको ServiceCallout नीति के लिए, नई I/O टाइमआउट वैल्यू कॉन्फ़िगर करनी है.
- वह सर्विस कॉलआउट नीति चुनें जिसमें आपको बदलाव करना है.
- TargetEndpoint कॉन्फ़िगरेशन में,
<HTTPTargetConnection>एलिमेंट के तहतio.timeout.millisप्रॉपर्टी को सही वैल्यू के साथ जोड़ें.उदाहरण के लिए, I/O टाइमआउट को 120 सेकंड पर बदलने के लिए, कोड का यह ब्लॉक जोड़ें:
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>io.timeout.millisप्रॉपर्टी की वैल्यू मिलीसेकंड में होती है. इसलिए, 120 सेकंड की वैल्यू120000होती है.यहां दिए गए उदाहरणों में, आपकी एपीआई प्रॉक्सी के टारगेट एंडपॉइंट कॉन्फ़िगरेशन में I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है:
बैकएंड सर्वर के यूआरएल का इस्तेमाल करके, 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> - अपनी एपीआई प्रॉक्सी में किए गए बदलाव सेव करें.
मैसेज प्रोसेसर पर I/O टाइमआउट कॉन्फ़िगर करना
इस सेक्शन में, मैसेज प्रोसेसर पर I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है.
आई/ओ टाइमआउट को HTTPTransport.io.timeout.millis प्रॉपर्टी के ज़रिए कॉन्फ़िगर किया जा सकता है. यह प्रॉपर्टी, Message Processor कॉम्पोनेंट पर आई/ओ टाइमआउट की वैल्यू को मिलीसेकंड में दिखाती है. इसके लिए, Edge को कॉन्फ़िगर करने का तरीका में बताए गए सिंटैक्स के मुताबिक टोकन का इस्तेमाल करें.
मैसेज प्रोसेसर पर I/O टाइमआउट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
- मैसेज प्रोसेसर मशीन पर, इस फ़ाइल को किसी एडिटर में खोलें. अगर यह पहले से मौजूद नहीं है, तो इसे बनाएं.
/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
- नीचे दिए गए तरीके से, मैसेज प्रोसेसर को फिर से शुरू करें:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- अगर आपके पास एक से ज़्यादा मैसेज प्रोसेसर हैं, तो ऊपर दिया गया तरीका सभी मैसेज प्रोसेसर पर दोहराएं.
मैसेज प्रोसेसर पर I/O टाइमआउट की पुष्टि की जा रही है
इस सेक्शन में, यह पुष्टि करने का तरीका बताया गया है कि मैसेज प्रोसेसर पर I/O टाइमआउट में बदलाव हो गया है.
आपने Message Processor पर I/O टाइमआउट सेट करने के लिए, conf_http_HTTPTransport.io.timeout.millis टोकन का इस्तेमाल किया है. हालांकि, आपको यह पुष्टि करनी होगी कि HTTPTransport.io.timeout.millis प्रॉपर्टी को नई वैल्यू के साथ सेट किया गया है.
- मैसेज प्रोसेसर मशीन पर,
/opt/apigee/edge-message-processor/confडायरेक्ट्री मेंHTTPTransport.io.timeout.millisप्रॉपर्टी खोजें. इसके बाद, देखें कि इसे नीचे दिखाए गए तरीके से नई वैल्यू के साथ सेट किया गया है या नहीं:grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- अगर Message Processor पर नई I/O टाइमआउट वैल्यू सेट हो जाती है, तो ऊपर दिया गया
कमांड,
http.propertiesफ़ाइल में नई वैल्यू दिखाता है. - अगर आपको अब भी प्रॉपर्टी
HTTPTransport.io.timeout.millisकी पुरानी वैल्यू दिख रही है, तो पक्का करें कि आपने मैसेज प्रोसेसर पर I/O टाइमआउट कॉन्फ़िगर करना में बताए गए सभी चरणों का सही तरीके से पालन किया हो. अगर आपने कोई चरण छोड़ दिया है, तो सभी चरणों को फिर से सही तरीके से दोहराएं. - अगर अब भी I/O टाइमआउट में बदलाव नहीं किया जा सकता, तो कृपया Apigee Edge की सहायता टीम से संपर्क करें.
I/O टाइमआउट को 120 सेकंड पर कॉन्फ़िगर करने के बाद, ऊपर दी गई कमांड का सैंपल नतीजा यहां दिया गया है:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
ऊपर दिए गए उदाहरण में, ध्यान दें कि प्रॉपर्टी HTTPTransport.io.timeout.millis को http.properties में नई वैल्यू 120000 के साथ सेट किया गया है. इससे पता चलता है कि मैसेज प्रोसेसर पर, I/O टाइमआउट को 120 सेकंड पर कॉन्फ़िगर कर दिया गया है.
आगे क्या?
इसके बारे में जानें: राउटर पर I/O टाइमआउट कॉन्फ़िगर करना