সময়সীমার ত্রুটি

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

লক্ষণ

Edge UI বা ম্যানেজমেন্ট API-এর মাধ্যমে API প্রক্সি রিভিশনগুলো ডেপ্লয়মেন্ট করার সময় টাইমআউট এরর দেখা দেয়।

ত্রুটির বার্তা

Click to change deployment status. 
The revision is deployed and traffic can flow, but flow may be impaired. 
Error: Call timed out; either server is down or server is not reachable

সম্ভাব্য কারণসমূহ

এই সমস্যার সাধারণ কারণগুলো হলো:

কারণ বিস্তারিত জন্য
নেটওয়ার্ক সংযোগ সমস্যা নেটওয়ার্ক সংযোগ সমস্যা অথবা ফায়ারওয়াল নিয়মের কারণে ম্যানেজমেন্ট সার্ভার এবং মেসেজ প্রসেসরের মধ্যে যোগাযোগ ব্যর্থ হয়েছে। শুধুমাত্র প্রাইভেট ক্লাউড ব্যবহারকারীদের জন্য
বৃহৎ এপিআই প্রক্সি বান্ডেল এপিআই প্রক্সি বান্ডেলের আকার বড় হলে মেসেজ প্রসেসর সক্রিয় হতে দীর্ঘ সময় নিতে পারে, যার ফলে আরপিসি টাইমআউট হতে পারে। ব্যক্তিগত এবং পাবলিক ক্লাউড ব্যবহারকারীরা

নেটওয়ার্ক সংযোগ সমস্যা

দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

রোগ নির্ণয়

  1. নিম্নলিখিত ম্যানেজমেন্ট এপিআই কলটি ব্যবহার করে ত্রুটি প্রদর্শনকারী নির্দিষ্ট এপিআই-টির ডেপ্লয়মেন্ট স্ট্যাটাস জানুন:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>

    ত্রুটি প্রদর্শনকারী নমুনা আউটপুট:

    { 
                    "error": "Call timed out; either server is down or server is not reachable", 
                    "status": "error", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "state" : "error"
                    } 

    উপরের নমুনা আউটপুট থেকে দেখা যাচ্ছে যে, " ebbc1078-cbde-4a00-a7db-66a3c1b2b748 " UUID-যুক্ত মেসেজ প্রসেসরগুলোর মধ্যে একটিতে ত্রুটিটি ঘটেছে।

  2. আপনার এপিআই প্রক্সির ডেপ্লয়মেন্ট স্ট্যাটাস আউটপুটের উপর ভিত্তি করে, ত্রুটি দেখানো সংশ্লিষ্ট UUID ব্যবহার করে প্রতিটি মেসেজ প্রসেসরে লগইন করুন এবং নিম্নলিখিত ধাপগুলি অনুসরণ করুন:
    1. মেসেজ প্রসেসরটি 4528 পোর্টে লিসেন করছে কিনা তা পরীক্ষা করুন:
      netstat -an | grep LISTEN | grep 4528

      যদি মেসেজ প্রসেসরটি 4528 পোর্টে লিসেন না করে, তাহলে মেসেজ প্রসেসরটি রিস্টার্ট করুন:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    2. উপরে ধাপ #১-এ দেখানো ম্যানেজমেন্ট এপিআই কলটি ব্যবহার করে এপিআই প্রক্সির ডেপ্লয়মেন্ট স্ট্যাটাস পুনরায় পরীক্ষা করুন। যদি কোনো ত্রুটি না থাকে, তাহলে বুঝতে হবে সমস্যাটির সমাধান হয়ে গেছে।
  3. যদি সমস্যাটি অব্যাহত থাকে, তাহলে নিম্নলিখিত ধাপগুলো অনুসরণ করে ম্যানেজমেন্ট সার্ভার থেকে মেসেজ প্রসেসরের ৪৫২৮ পোর্টে সংযোগ পরীক্ষা করুন:
    1. যদি টেলনেট উপলব্ধ থাকে, তাহলে টেলনেট ব্যবহার করুন:
      telnet <MessageProcessor_IP> 4528
    2. যদি টেলনেট উপলব্ধ না থাকে, তাহলে নিম্নলিখিতভাবে নেটক্যাট ব্যবহার করে সংযোগ পরীক্ষা করুন:
      nc -vz <MessageProcessor_IP> 4528
    3. যদি আপনি "Connection Refused" বা "Connection timed out" প্রতিক্রিয়া পান, তাহলে আপনার নেটওয়ার্ক অপারেশন টিমের সাথে যোগাযোগ করুন।
  4. নিম্নলিখিত ধাপগুলো অনুসরণ করে মেসেজ প্রসেসর থেকে ম্যানেজমেন্ট সার্ভারের ৪৫২৬ পোর্টে সংযোগ পরীক্ষা করুন:
    1. যদি টেলনেট উপলব্ধ থাকে, তাহলে টেলনেট ব্যবহার করুন:
      telnet <management-server-IP> 4526
    2. যদি টেলনেট উপলব্ধ না থাকে, তাহলে নিম্নলিখিতভাবে নেটক্যাট ব্যবহার করে সংযোগ পরীক্ষা করুন:
      nc -vz <management-server-IP> 4526 
    3. যদি আপনি "Connection Refused" বা "Connection timed out" প্রতিক্রিয়া পান, তাহলে আপনার নেটওয়ার্ক অপারেশন টিমের সাথে যোগাযোগ করুন।
  5. আপনার নেটওয়ার্ক অপারেশন টিমের সাথে কাজ করুন এবং নিম্নলিখিত বিষয়গুলো অনুসরণ করুন:
    1. ম্যানেজমেন্ট সার্ভার এবং মেসেজ প্রসেসর উভয় ক্ষেত্রেই RPC প্রোটোকল অনুমোদিত আছে কিনা তা নিশ্চিত করুন।
    2. ম্যানেজমেন্ট সার্ভার এবং মেসেজ প্রসেসরগুলির মধ্যে সেটআপ করা যেকোনো ফায়ারওয়াল বিধিনিষেধ বা নিরাপত্তা নিয়ম সরিয়ে ফেলুন, যাতে ম্যানেজমেন্ট সার্ভারের ৪৫২৬ পোর্টে এবং ম্যানেজমেন্ট সার্ভার থেকে মেসেজ প্রসেসরগুলির ৪৫২৮ পোর্টে সংযোগ স্থাপন করা যায়।
  6. ডিপ্লয়মেন্ট স্ট্যাটাস পুনরায় পরীক্ষা করুন (উপরের ধাপ #১ দেখুন)। যদি কোনো ত্রুটি না দেখেন, তাহলে বুঝতে হবে ত্রুটিটি সমাধান হয়ে গেছে।
  7. যদি সমস্যাটি অব্যাহত থাকে, তাহলে মেসেজ প্রসেসরে কোনো নেটওয়ার্ক সমস্যা আছে কিনা তা পরীক্ষা করুন। যদি নেটওয়ার্ক সমস্যা থাকে, তাহলে (ডিপ্লয়মেন্ট স্ট্যাটাস আউটপুট অনুযায়ী) যে নির্দিষ্ট মেসেজ প্রসেসরটিতে টাইমআউট ত্রুটি দেখাচ্ছে, সেটি রিস্টার্ট করলে সমস্যাটির সমাধান হতে পারে।
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  8. যদি সমস্যাটি এখনও থেকে যায়, তাহলে ম্যানেজমেন্ট সার্ভারের লগগুলি এখানে দেখুন: ( /opt/apigee/var/log/edge-management-server/logs/system.log )।

    ম্যানেজমেন্ট সার্ভার লগ থেকে নমুনা কল টাইম আউট ত্রুটি

    2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true 
            com.apigee.rpc.RPCException: Call timed out 
            at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] 
            at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] 
            at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79] 
            

    যদি আপনি উপরের উদাহরণে দেখানো অনুরূপ কোনো ত্রুটি লক্ষ্য করেন, তাহলে ম্যানেজমেন্ট সার্ভারে RPC টাইমআউট বাড়িয়ে দিন, যাতে নেটওয়ার্ক ধীর হয়ে গেলেও ম্যানেজমেন্ট সার্ভারটি মেসেজ প্রসেসরের সাথে সংযোগ স্থাপনের জন্য সময় পায়।

সমাধান

দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

  1. RPC টাইমআউট বাড়ানোর জন্য নিম্নলিখিত ধাপগুলি অনুসরণ করুন:
    1. ম্যানেজমেন্ট সার্ভার মেশিনে /opt/apigee/customer/application/management-server.properties ফাইলটি তৈরি করুন, যদি এটি আগে থেকে বিদ্যমান না থাকে।
    2. এই ফাইলে নিম্নলিখিত লাইনটি যোগ করুন:
      conf_cluster_rpc.connect.timeout=<time in seconds>

      ডিফল্ট RPC টাইমআউট ভ্যালু হলো ১০ এবং এটি বাড়িয়ে ৪০ সেকেন্ড করার পরামর্শ দেওয়া হয়। নিম্নোক্তভাবে এটি সেট করুন:

      conf_cluster_rpc.connect.timeout=40
    3. নিশ্চিত করুন এই ফাইলটির মালিক apigee:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    4. ম্যানেজমেন্ট সার্ভারটি পুনরায় চালু করুন:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    5. আপনার যদি একাধিক ম্যানেজমেন্ট সার্ভার থাকে, তাহলে সমস্ত ম্যানেজমেন্ট সার্ভারগুলিতে উপরের ধাপগুলি পুনরাবৃত্তি করুন।
    6. Edge UI-তে অথবা Edge ম্যানেজমেন্ট API কল ব্যবহার করে API প্রক্সিটি স্থাপন করুন। যদি API প্রক্সিটি কোনো সমস্যা ছাড়াই স্থাপন হয়ে যায়, তাহলে বুঝতে হবে সমস্যাটির সমাধান হয়ে গেছে।
  2. যদি সমস্যাটি অব্যাহত থাকে, তাহলে ম্যানেজমেন্ট সার্ভার এবং মেসেজ প্রসেসর থেকে tcpdump কমান্ড সংগ্রহ করুন। প্রতিটি সার্ভারে tcpdump কমান্ডটি সক্রিয় করুন এবং তারপরে UI থেকে অথবা ম্যানেজমেন্ট API ব্যবহার করে API প্রক্সির ডেপ্লয়মেন্ট শুরু করুন:
    1. ম্যানেজমেন্ট সার্ভার থেকে নিচের tcpdump কমান্ডটি চালান:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
    2. মেসেজ প্রসেসর থেকে নিচের tcpdump কমান্ডটি চালান:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
    3. tcpdump বিশ্লেষণ এবং সমস্যাটির আরও সমাধানের জন্য সহায়তা পেতে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

বৃহৎ এপিআই প্রক্সি বান্ডেল

রোগ নির্ণয়

  1. যে এপিআই প্রক্সি বান্ডেলটির ক্ষেত্রে ডেপ্লয়মেন্ট ত্রুটি দেখা যাচ্ছে, সেটির আকার যাচাই করুন।
  2. ফাইলের আকার যদি যথেষ্ট বড় হয় (১০ মেগাবাইট বা তার বেশি), তাহলে খুব সম্ভবত এপিআই প্রক্সি সক্রিয় করতে মেসেজ প্রসেসরের আরও বেশি সময় লাগতে পারে।
  3. যদি এপিআই প্রক্সি বান্ডেলের আকার ১৫ মেগাবাইটের বেশি হয়, তাহলে '১৫ মেগাবাইটের চেয়ে বড় এপিআই প্রক্সি বান্ডেল' (API Proxy Bundle larger than 15MB ) অংশে যান।

সমাধান

দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

ম্যানেজমেন্ট সার্ভারে RPC টাইমআউট বাড়ান, যাতে মেসেজ প্রসেসর বড় API প্রক্সি বান্ডেলগুলো সক্রিয় করার জন্য পর্যাপ্ত সময় পায়। RPC টাইমআউটের মান বাড়ানোর জন্য নিম্নলিখিত ধাপগুলো অনুসরণ করুন:

  1. ম্যানেজমেন্ট সার্ভার মেশিনে /opt/apigee/customer/application/management-server.properties ফাইলটি তৈরি করুন, যদি এটি আগে থেকে বিদ্যমান না থাকে।
  2. এই ফাইলে নিম্নলিখিত লাইনটি যোগ করুন:
    conf_cluster_rpc.connect.timeout=<time in seconds>

    ডিফল্ট RPC টাইমআউট ভ্যালু হলো ১০ এবং এটি বাড়িয়ে ৪০ সেকেন্ড করার পরামর্শ দেওয়া হয়। নিম্নোক্তভাবে এটি সেট করুন:

    conf_cluster_rpc.connect.timeout=40
  3. নিশ্চিত করুন এই ফাইলটির মালিক apigee:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
  4. ম্যানেজমেন্ট সার্ভারটি পুনরায় চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. আপনার যদি একাধিক ম্যানেজমেন্ট সার্ভার থাকে, তাহলে সমস্ত ম্যানেজমেন্ট সার্ভারগুলিতে উপরের ধাপগুলি পুনরাবৃত্তি করুন।

যদি সমস্যাটি অব্যাহত থাকে, তাহলে আরও সহায়তার জন্য Apigee Edge Support-এর সাথে যোগাযোগ করুন।