मैसेज प्रोसेसर पर I/O टाइम आउट कॉन्फ़िगर करना

आपको 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, बैकएंड सर्वर को अनुरोध भेज सके.

अगर इस टाइमआउट अवधि में बैकएंड सर्वर से कोई जवाब नहीं मिलता है, तो मैसेज प्रोसेसर का टाइम आउट हो जाता है.

डिफ़ॉल्ट रूप से, यह प्रॉपर्टी Message Processor पर HTTPTransport.io.timeout.millis प्रॉपर्टी के लिए सेट की गई वैल्यू को लेती है. डिफ़ॉल्ट वैल्यू 55 seconds है.

अगर किसी एपीआई प्रॉक्सी के लिए, टाइम आउट की नई वैल्यू के साथ इस प्रॉपर्टी में बदलाव किया जाता है, तो सिर्फ़ उस एपीआई प्रॉक्सी पर असर पड़ता है.

HTTPTransport.io.timeout.millis मैसेज प्रोसेसर

यह ज़्यादा से ज़्यादा वह समय है जब मैसेज प्रोसेसर ये काम करता है:

  • कनेक्शन बनाने और बैकएंड सर्वर को अनुरोध भेजने के बाद, बैकएंड सर्वर से जवाब मिलने का इंतज़ार करता है या
  • यह कुकी, सॉकेट के तैयार होने का इंतज़ार करती है, ताकि Message Processor, बैकएंड सर्वर को अनुरोध भेज सके.

अगर इस टाइमआउट अवधि में बैकएंड सर्वर से कोई जवाब नहीं मिलता है, तो मैसेज प्रोसेसर का टाइम आउट हो जाता है.

इस प्रॉपर्टी का इस्तेमाल, इस मैसेज प्रोसेसर पर चल रही सभी एपीआई प्रॉक्सी के लिए किया जाता है.

इस प्रॉपर्टी की डिफ़ॉल्ट वैल्यू 55 seconds है.

इस प्रॉपर्टी में बदलाव किया जा सकता है. इसके लिए, मैसेज प्रोसेसर पर I/O टाइमआउट कॉन्फ़िगर करना में बताया गया तरीका अपनाएं. इसके अलावा, एपीआई प्रॉक्सी लेवल पर io.timeout.millis प्रॉपर्टी सेट करके, इस वैल्यू को बदला जा सकता है.

शुरू करने से पहले

इस दस्तावेज़ में दिए गए चरणों का इस्तेमाल करने से पहले, पक्का करें कि आपको इन विषयों के बारे में जानकारी हो:

एपीआई प्रॉक्सी में I/O टाइमआउट कॉन्फ़िगर करना

इन एपीआई प्रॉक्सी में I/O टाइमआउट को कॉन्फ़िगर किया जा सकता है:

  • टारगेट एंडपॉइंट
  • ServiceCallout नीति

एपीआई प्रॉक्सी के टारगेट एंडपॉइंट में I/O टाइमआउट कॉन्फ़िगर करना

इस सेक्शन में, आपकी एपीआई प्रॉक्सी के टारगेट एंडपॉइंट में I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है. आई/ओ टाइमआउट को io.timeout.millis प्रॉपर्टी के ज़रिए कॉन्फ़िगर किया जा सकता है. यह प्रॉपर्टी, आई/ओ टाइमआउट की वैल्यू को मिलीसेकंड में दिखाती है.

  1. Edge के यूज़र इंटरफ़ेस (यूआई) में, वह एपीआई प्रॉक्सी चुनें जिसमें आपको नई I/O टाइमआउट वैल्यू कॉन्फ़िगर करनी है.
  2. वह टारगेट एंडपॉइंट चुनें जिसमें आपको बदलाव करना है.
  3. TargetEndpoint कॉन्फ़िगरेशन में, <HTTPTargetConnection> एलिमेंट के नीचे सही वैल्यू वाली io.timeout.millis प्रॉपर्टी जोड़ें.
  4. उदाहरण के लिए, 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>
  5. अपनी एपीआई प्रॉक्सी में किए गए बदलाव सेव करें.

एपीआई प्रॉक्सी की 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 टाइमआउट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. Edge के यूज़र इंटरफ़ेस (यूआई) में, वह एपीआई प्रॉक्सी चुनें जिसमें आपको ServiceCallout नीति के लिए, नई I/O टाइमआउट वैल्यू कॉन्फ़िगर करनी है.
  2. वह सर्विस कॉलआउट नीति चुनें जिसमें आपको बदलाव करना है.
  3. <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>
  4. अपनी एपीआई प्रॉक्सी में किए गए बदलाव सेव करें.

io.timeout.millis प्रॉपर्टी

io.timeout.millis प्रॉपर्टी का इस्तेमाल करके, ServiceCallout नीति में I/O टाइमआउट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. Edge के यूज़र इंटरफ़ेस (यूआई) में, वह एपीआई प्रॉक्सी चुनें जिसमें आपको ServiceCallout नीति के लिए, नई I/O टाइमआउट वैल्यू कॉन्फ़िगर करनी है.
  2. वह सर्विस कॉलआउट नीति चुनें जिसमें आपको बदलाव करना है.
  3. 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>
  4. अपनी एपीआई प्रॉक्सी में किए गए बदलाव सेव करें.

मैसेज प्रोसेसर पर I/O टाइमआउट कॉन्फ़िगर करना

इस सेक्शन में, मैसेज प्रोसेसर पर I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है. आई/ओ टाइमआउट को HTTPTransport.io.timeout.millis प्रॉपर्टी के ज़रिए कॉन्फ़िगर किया जा सकता है. यह प्रॉपर्टी, Message Processor कॉम्पोनेंट पर आई/ओ टाइमआउट की वैल्यू को मिलीसेकंड में दिखाती है. इसके लिए, Edge को कॉन्फ़िगर करने का तरीका में बताए गए सिंटैक्स के मुताबिक टोकन का इस्तेमाल करें.

मैसेज प्रोसेसर पर I/O टाइमआउट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. मैसेज प्रोसेसर मशीन पर, इस फ़ाइल को किसी एडिटर में खोलें. अगर यह पहले से मौजूद नहीं है, तो इसे बनाएं.
    /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. नीचे दिए गए तरीके से, मैसेज प्रोसेसर को फिर से शुरू करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. अगर आपके पास एक से ज़्यादा मैसेज प्रोसेसर हैं, तो ऊपर दिया गया तरीका सभी मैसेज प्रोसेसर पर दोहराएं.

मैसेज प्रोसेसर पर I/O टाइमआउट की पुष्टि की जा रही है

इस सेक्शन में, यह पुष्टि करने का तरीका बताया गया है कि मैसेज प्रोसेसर पर I/O टाइमआउट में बदलाव हो गया है.

आपने Message Processor पर I/O टाइमआउट सेट करने के लिए, conf_http_HTTPTransport.io.timeout.millis टोकन का इस्तेमाल किया है. हालांकि, आपको यह पुष्टि करनी होगी कि HTTPTransport.io.timeout.millis प्रॉपर्टी को नई वैल्यू के साथ सेट किया गया है.

  1. मैसेज प्रोसेसर मशीन पर, /opt/apigee/edge-message-processor/conf डायरेक्ट्री में HTTPTransport.io.timeout.millis प्रॉपर्टी खोजें. इसके बाद, देखें कि इसे नीचे दिखाए गए तरीके से नई वैल्यू के साथ सेट किया गया है या नहीं:
    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 को http.properties में नई वैल्यू 120000 के साथ सेट किया गया है. इससे पता चलता है कि मैसेज प्रोसेसर पर, I/O टाइमआउट को 120 सेकंड पर कॉन्फ़िगर कर दिया गया है.

  4. अगर आपको अब भी प्रॉपर्टी HTTPTransport.io.timeout.millis की पुरानी वैल्यू दिख रही है, तो पक्का करें कि आपने मैसेज प्रोसेसर पर I/O टाइमआउट कॉन्फ़िगर करना में बताए गए सभी चरणों का सही तरीके से पालन किया हो. अगर आपने कोई चरण छोड़ दिया है, तो सभी चरणों को फिर से सही तरीके से दोहराएं.
  5. अगर अब भी I/O टाइमआउट में बदलाव नहीं किया जा सकता, तो कृपया Apigee Edge की सहायता टीम से संपर्क करें.

आगे क्या?

इसके बारे में जानें: राउटर पर I/O टाइमआउट कॉन्फ़िगर करना