মেসেজ প্রসেসরে I/O টাইম-আউট কনফিগার করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

Apigee Edge মেসেজ প্রসেসরের জন্য কীভাবে I/O টাইম-আউট কনফিগার করতে হয় তা এই ডকুমেন্টে ব্যাখ্যা করা হয়েছে।

মেসেজ প্রসেসরের I/O টাইমআউট হল সেই সময়সীমা যার মধ্যে মেসেজ প্রসেসর ব্যাকএন্ড সার্ভারের থেকে উত্তর পাওয়ার জন্য অথবা ব্যাকএন্ড সার্ভারে অনুরোধ লেখার জন্য সকেট রেডি হওয়ার অপেক্ষা করে। এই সময়সীমা পেরিয়ে গেলে টাইমআউট হয়ে যায়।

মেসেজ প্রসেসর I/O টাইমআউটের ডিফল্ট ভ্যালু হল 55 seconds। এই টাইমআউট পিরিয়ডটি আপনার API প্রক্সির টার্গেট এন্ডপয়েন্ট কনফিগারেশন ও ServiceCallout নীতিতে কনফিগার করা ব্যাকএন্ড সার্ভারে প্রযোজ্য।

আপনার প্রয়োজন অনুযায়ী মেসেজ প্রসেসরের I/O টাইমআউট ডিফল্ট ভ্যালু 55 seconds থেকে বাড়ানো বা কমানো যেতে পারে। এটি নিম্নলিখিত জায়গায় কনফিগার করা যেতে পারে:

  • API প্রক্সিতে
    • টার্গেট এন্ডপয়েন্ট
    • ServiceCallout নীতি
  • মেসেজ প্রসেসরে

নিম্নলিখিত প্রপার্টি মেসেজ প্রসেসরের I/O টাইম-আউট কন্ট্রোল করে:

প্রপার্টির নাম লোকেশন বিবরণ
io.timeout.millis

API প্রক্সি:

  • টার্গেট এন্ডপয়েন্ট
  • পরিষেবা কলআউট নীতি

মেসেজ প্রসেসর সর্বাধিক এই সময়ের জন্য নিম্নলিখিত কাজগুলি করে:

  • কানেকশন স্থাপন করার পরে এবং ব্যাকএন্ড সার্ভারে অনুরোধ পাঠানোর পরে ব্যাকএন্ড সার্ভার থেকে উত্তর পাওয়ার জন্য অপেক্ষা করে অথবা
  • মেসেজ প্রসেসর যাতে ব্যাকএন্ড সার্ভারে অনুরোধ পাঠাতে পারে, তার জন্য সকেট রেডি হওয়ার অপেক্ষা করে।

এই টাইম-আউট সময়ের মধ্যে ব্যাকএন্ড সার্ভার থেকে কোনও উত্তর না পেলে, মেসেজ প্রসেসরের টাইম-আউট হয়ে যায়।

ডিফল্ট হিসেবে, এই প্রপার্টি মেসেজ প্রসেসরের HTTPTransport.io.timeout.millis প্রপার্টির জন্য সেট করা ভ্যালু নেয়। ডিফল্ট ভ্যালু হল 55 seconds।

নির্দিষ্ট API প্রক্সির জন্য নতুন টাইমআউট ভ্যালু দিয়ে এই প্রপার্টি পরিবর্তন করা হলে, শুধুমাত্র সেই API প্রক্সি প্রভাবিত হয়।

HTTPTransport.io.timeout.millis মেসেজ প্রসেসর

মেসেজ প্রসেসর সর্বাধিক এই সময়ের জন্য নিম্নলিখিত কাজগুলি করে:

  • কানেকশন স্থাপন করার পরে ব্যাকএন্ড সার্ভার থেকে উত্তর পাওয়ার জন্য অপেক্ষা করে এবং ব্যাকএন্ড সার্ভারে অনুরোধ পাঠায় অথবা
  • মেসেজ প্রসেসর যাতে ব্যাকএন্ড সার্ভারে অনুরোধ পাঠাতে পারে, তার জন্য সকেট রেডি হওয়ার অপেক্ষা করে ।

এই টাইম-আউট সময়ের মধ্যে ব্যাকএন্ড সার্ভার থেকে কোনও উত্তর না পেলে, মেসেজ প্রসেসরের টাইম-আউট হয়ে যায়।

এই মেসেজ প্রসেসরে রান করা সব API প্রক্সির জন্য এই প্রপার্টি ব্যবহার করা হয়।

এই প্রপার্টির ডিফল্ট ভ্যালু হল 55 seconds।

আপনি মেসেজ প্রসেসরে I/O টাইম-আউট কনফিগার করা লিঙ্কে দেওয়া বিবরণ অনুযায়ী এই প্রপার্টি পরিবর্তন করতে পারেন অথবা API প্রক্সি লেভেলে io.timeout.millis প্রপার্টি সেট করে এই ভ্যালু ওভাররাইট করতে পারেন।

শুরু করার আগে

এই ডকুমেন্টে উল্লেখ করা ধাপগুলি ব্যবহার করার আগে, নিম্নলিখিত বিষয়গুলি আপনি বুঝেছেন কিনা তা নিশ্চিত করুন:

API প্রক্সিতে I/O টাইম-আউট কনফিগার করা

নিম্নলিখিত API প্রক্সি প্লেসে I/O টাইম-আউট কনফিগার করা যেতে পারে:

  • টার্গেট এন্ডপয়েন্ট
  • ServiceCallout নীতি

API প্রক্সির টার্গেট এন্ডপয়েন্টে I/O টাইম-আউট কনফিগার করা

আপনার API প্রক্সির টার্গেট এন্ডপয়েন্টে কীভাবে I/O টাইম-আউট কনফিগার করতে হয় তা এই বিভাগে ব্যাখ্যা করা হয়েছে। io.timeout.millis প্রপার্টির মাধ্যমে I/O টাইম-আউট কনফিগার করা যেতে পারে, যা মিলিসেকেন্ডে I/O টাইম-আউট ভ্যালু দেখায়।

  1. Edge UI-তে, নির্দিষ্ট API প্রক্সি বেছে নিন যেখানে আপনি নতুন I/O টাইমআউট ভ্যালু কনফিগার করতে চান।
  2. আপনি যে নির্দিষ্ট টার্গেট এন্ডপয়েন্ট পরিবর্তন করতে চান সেটি বেছে নিন।
  3. TargetEndpoint কনফিগারেশনের মধ্যে <HTTPTargetConnection> এলিমেন্টের অধীনে উপযুক্ত ভ্যালু সহ io.timeout.millis প্রপার্টি যোগ করুন।
  4. যেমন, I/O টাইমআউট ১২০ সেকেন্ডে পরিবর্তন করতে, নিম্নলিখিত কোড ব্লক যোগ করুন:

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

    io.timeout.millis প্রপার্টি মিলিসেকেন্ডে থাকার কারণে, ১২০ সেকেন্ডের ভ্যালু 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>
  5. আপনার API প্রক্সিতে করা পরিবর্তন সেভ করুন।

API প্রক্সির ServiceCallout নীতিতে I/O টাইম-আউট কনফিগার করা

আপনার API প্রক্সির ServiceCallout নীতিতে কীভাবে I/O টাইমআউট কনফিগার করতে হয় তা এই বিভাগে ব্যাখ্যা করা হয়েছে। <Timeout> এলিমেন্ট অথবা io.timeout.millis প্রপার্টির মাধ্যমে I/O টাইম-আউট কনফিগার করা যেতে পারে। <Timeout> এলিমেন্ট ও io.timeout.millis প্রপার্টি, দু'টিই মিলিসেকেন্ডে I/O টাইমআউট ভ্যালু দেখায়।

আপনি নিম্নলিখিত পদ্ধতির মধ্যে একটি ব্যবহার করে ServiceCallout নীতিতে I/O টাইম-আউট কনফিগার করতে পারবেন:

  • <Timeout> এলিমেন্ট।
  • io.timeout.millis প্রপার্টি।

টাইম-আউট এলিমেন্ট

<Timeout> এলিমেন্ট ব্যবহার করে ServiceCallout নীতিতে I/O টাইমআউট কনফিগার করতে, নিম্নলিখিত কাজগুলি করুন:

  1. Edge UI-তে, ServiceCallout নীতির জন্য নতুন I/O টাইমআউট ভ্যালু কনফিগার করতে চান এমন নির্দিষ্ট API প্রক্সি বেছে নিন।
  2. আপনি যে নির্দিষ্ট ServiceCallout নীতি পরিবর্তন করতে চান সেটি বেছে নিন।
  3. <ServiceCallout> কনফিগারেশনের অধীনে উপযুক্ত ভ্যালু সহ <Timeout> এলিমেন্ট যোগ করুন।

    যেমন, I/O টাইমআউট ১২০ সেকেন্ডে পরিবর্তন করতে, কোডের নিম্নলিখিত লাইন যোগ করুন:

        <Timeout>120000</Timeout>

    <Timeout> এলিমেন্ট যেহেতু মিলিসেকেন্ডে আছে, তাই ১২০ সেকেন্ডের ভ্যালু হল 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>
  4. আপনার API প্রক্সিতে করা পরিবর্তন সেভ করুন।

io.timeout.millis প্রপার্টি

io.timeout.millis প্রপার্টি ব্যবহার করে ServiceCallout নীতিতে I/O টাইম-আউট কনফিগার করতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. Edge UI-তে, ServiceCallout নীতির জন্য নতুন I/O টাইমআউট ভ্যালু কনফিগার করতে আপনি যে নির্দিষ্ট API প্রক্সি বেছে নিতে চান সেটি বেছে নিন।
  2. আপনি যে নির্দিষ্ট ServiceCallout নীতি পরিবর্তন করতে চান সেটি বেছে নিন।
  3. TargetEndpoint কনফিগারেশনে <HTTPTargetConnection> এলিমেন্টের অধীনে উপযুক্ত ভ্যালু সহ io.timeout.millis প্রপার্টি যোগ করুন।

    যেমন, I/O টাইমআউট ১২০ সেকেন্ডে পরিবর্তন করতে, কোডের নিম্নলিখিত ব্লক যোগ করুন:

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

    io.timeout.millis প্রপার্টি মিলিসেকেন্ডে থাকার কারণে, ১২০ সেকেন্ডের ভ্যালু 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>
  4. আপনার API প্রক্সিতে করা পরিবর্তনগুলি সেভ করুন।

মেসেজ প্রসেসরে I/O টাইম-আউট কনফিগার করা

এই বিভাগে মেসেজ প্রসেসরে কীভাবে I/O টাইম-আউট কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে। HTTPTransport.io.timeout.millis প্রপার্টির মাধ্যমে I/O টাইম-আউট কনফিগার করা যেতে পারে, যা মেসেজ প্রসেসর কম্পোনেন্টে I/O টাইম-আউট ভ্যালুকে মিলিসেকেন্ডে দেখায়, কীভাবে Edge কনফিগার করতে হয়-এ বর্ণিত সিনট্যাক্স অনুযায়ী টোকেন ব্যবহার করে।

মেসেজ প্রসেসরে 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

    যেমন, মেসেজ প্রসেসরের I/O টাইমআউট ১২০ সেকেন্ডে পরিবর্তন করতে, নিচের লাইনটি যোগ করুন:

    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 টাইমআউট সফলভাবে পরিবর্তন করা হয়েছে তা ব্যাখ্যা করা হয়েছে।

আপনি মেসেজ প্রসেসরে I/O টাইম-আউট সেট করার জন্য টোকেন conf_http_HTTPTransport.io.timeout.millis ব্যবহার করলেও, আপনাকে যাচাই করে দেখতে হবে যে প্রকৃত প্রপার্টি HTTPTransport.io.timeout.millis নতুন ভ্যালু দিয়ে সেট করা হয়েছে কিনা।

  1. Message Processor মেশিনে, /opt/apigee/edge-message-processor/conf ডিরেক্টরিতে HTTPTransport.io.timeout.millis প্রপার্টিটি খুঁজুন এবং নিচে দেখানো নতুন ভ্যালু দিয়ে এটি সেট করা হয়েছে কিনা তা চেক করে দেখুন:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
  2. মেসেজ প্রসেসরে নতুন I/O টাইমআউট ভ্যালু সফলভাবে সেট করা হলে, উপরের কমান্ডটি http.properties ফাইলে নতুন ভ্যালু দেখায়।
  3. আপনি I/O টাইমআউট ১২০ সেকেন্ডে কনফিগার করার পরে উপরের কমান্ড থেকে পাওয়া নমুনা ফলাফল নিম্নলিখিত:

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

    উপরের আউটপুটের উদাহরণে, লক্ষ্য করুন যে প্রপার্টি HTTPTransport.io.timeout.millis নতুন ভ্যালু 120000 দিয়ে http.properties সেট করা হয়েছে। এটি থেকে বোঝা যায় যে মেসেজ প্রসেসরে I/O টাইম-আউট সফলভাবে ১২০ সেকেন্ডে কনফিগার করা হয়েছে।

  4. আপনি যদি এখনও প্রপার্টির জন্য পুরনো ভ্যালু দেখতে পান HTTPTransport.io.timeout.millis, তাহলে নিশ্চিত করুন যে আপনি মেসেজ প্রসেসরে I/O টাইমআউট কনফিগার করা সঠিকভাবে সংক্রান্ত সমস্ত ধাপ অনুসরণ করেছেন। আপনি কোনও ধাপ মিস করে থাকলে, সব ধাপ আবার সঠিকভাবে রিপিট করুন।
  5. আপনি এখনও I/O টাইমআউট পরিবর্তন করতে না পারলে, তাহলে Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।

এর পরে কী হবে?

এইসব বিষয়ে জানুন: রাউটারে I/O টাইম-আউট কনফিগার করা