টাইম-আউট সংক্রান্ত সমস্যা

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

সমস্যার উপসর্গ

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

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

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

কারণ বিবরণ এর জন্য
নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা বা ফায়ারওয়াল নিয়মের কারণে ম্যানেজমেন্ট সার্ভার ও মেসেজ প্রসেসরের মধ্যে কমিউনিকেশন ব্যর্থ হয়েছে। শুধুমাত্র প্রাইভেট ক্লাউড ব্যবহারকারীদের জন্য
Large API Proxy Bundle API প্রক্সি বান্ডেলের সাইজ অনেক বড় হলে, মেসেজ প্রসেসর চালু হতে অনেক সময় লাগতে পারে। এর ফলে RPC টাইম-আউট হয়ে যেতে পারে। প্রাইভেট ও পাবলিক ক্লাউড ব্যবহারকারী

নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা

মনে রাখবেন: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি সম্পূর্ণ করতে পারবেন। আপনি Edge পাবলিক ক্লাউডে থাকলে, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।

ডায়াগনসিস

  1. নির্দিষ্ট API-এর জন্য ডিপ্লয়মেন্ট স্ট্যাটাস পান যা নিম্নলিখিত ম্যানেজমেন্ট API কল ব্যবহার করে সমস্যা দেখায়:
    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"
                    } 

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

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

      মেসেজ প্রসেসর যদি ৪৫২৮ পোর্টে না শোনে, তাহলে মেসেজ প্রসেসর রিস্টার্ট করুন:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    2. উপরে #১ ধাপে দেখানো ম্যানেজমেন্ট API কল ব্যবহার করে API প্রক্সি ডিপ্লয়মেন্টের স্ট্যাটাস আবার চেক করুন। কোনও সমস্যা না থাকলে, এর অর্থ হল সমস্যার সমাধান হয়ে গেছে।
  3. সমস্যার সমাধান না হলে, নিম্নলিখিত ধাপগুলি অনুসরণ করে ম্যানেজমেন্ট সার্ভার থেকে পোর্ট 4528-এ মেসেজ প্রসেসরের কানেক্টিভিটি পরীক্ষা করুন:
    1. Telnet উপলভ্য থাকলে, এটি ব্যবহার করুন:
      telnet <MessageProcessor_IP> 4528
    2. Telnet উপলভ্য না থাকলে, নিম্নলিখিত উপায়ে কানেক্টিভিটি চেক করতে netcat ব্যবহার করুন:
      nc -vz <MessageProcessor_IP> 4528
    3. আপনি যদি "কানেকশন প্রত্যাখ্যান করা হয়েছে" বা "কানেকশনের সময়সীমা শেষ হয়ে গেছে" উত্তর পান, তাহলে আপনার নেটওয়ার্ক অপারেশন টিমের সাথে যোগাযোগ করুন।
  4. নিচে উল্লেখ করা ধাপগুলি অনুসরণ করে, মেসেজ প্রসেসর থেকে ম্যানেজমেন্ট সার্ভারে পোর্ট 4526-এর মাধ্যমে কানেক্টিভিটি পরীক্ষা করুন :
    1. Telnet উপলভ্য থাকলে, এটি ব্যবহার করুন:
      telnet <management-server-IP> 4526
    2. Telnet উপলভ্য না থাকলে, নিম্নলিখিত উপায়ে কানেক্টিভিটি চেক করতে netcat ব্যবহার করুন:
      nc -vz <management-server-IP> 4526 
    3. আপনি যদি "কানেকশন প্রত্যাখ্যান করা হয়েছে" বা "কানেকশন টাইম-আউট হয়ে গেছে" উত্তর পান, তাহলে আপনার নেটওয়ার্ক অপারেশন টিমের সাথে যোগাযোগ করুন।
  5. আপনার নেটওয়ার্ক অপারেশন টিমের সাথে কাজ করুন এবং নিম্নলিখিত বিষয়গুলি করুন:
    1. ম্যানেজমেন্ট সার্ভার ও মেসেজ প্রসেসর, দুটিতেই RPC প্রোটোকল কাজ করে কিনা তা নিশ্চিত করুন।
    2. ম্যানেজমেন্ট সার্ভার ও মেসেজ প্রসেসরের মধ্যে সেট-আপ করা যেকোনও ফায়ারওয়াল সংক্রান্ত বিধিনিষেধ বা সুরক্ষা সংক্রান্ত নিয়ম সরিয়ে দিন যাতে ম্যানেজমেন্ট সার্ভারে পোর্ট 4526-এ কানেক্ট করা যায় এবং ম্যানেজমেন্ট সার্ভার থেকে মেসেজ প্রসেসরে পোর্ট 4528-এ কানেক্ট করা যায়।
  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 পাবলিক ক্লাউডে থাকলে, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।

  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 proxy কোনও সমস্যা ছাড়াই ডিপ্লয় করা হলে, সেটি ইঙ্গিত করে যে সমস্যার সমাধান হয়ে গেছে।
  2. সমস্যার সমাধান না হলে, ম্যানেজমেন্ট সার্ভার ও মেসেজ প্রসেসর থেকে tcpdump কমান্ড সংগ্রহ করুন। প্রতিটি সার্ভারে tcpdump কমান্ড চালু করুন এবং তারপরে UI থেকে API প্রক্সি ডেপ্লয় করা শুরু করুন অথবা ম্যানেজমেন্ট API ব্যবহার করুন:
    1. ম্যানেজমেন্ট সার্ভার থেকে নিচে উল্লেখ করা tcpdump কমান্ড রান করুন:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
    2. Message Processor থেকে নিচে উল্লেখ করা tcpdump কমান্ড রান করুন:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
    3. tcpdumps বিশ্লেষণ করা এবং সমস্যাটি আরও সমাধান করার ব্যাপারে সহায়তা পেতে Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।

লার্জ API প্রক্সি বান্ডেল

ডায়াগনসিস

  1. যে API প্রক্সি বান্ডেলের জন্য ডিপ্লয়মেন্ট সংক্রান্ত সমস্যা দেখা যাচ্ছে সেটির সাইজ চেক করুন।
  2. সাইজ যথেষ্ট বড় হলে (১০ এমবি বা তার বেশি), তাহলে Message Processor-এর API প্রক্সি অ্যাক্টিভেট করতে বেশি সময় লাগতে পারে।
  3. API Proxy বান্ডেলের সাইজ ১৫ এমবির বেশি হলে, API Proxy বান্ডেলের সাইজ ১৫ এমবির বেশি লিঙ্কে যান।

রেজোলিউশন

মনে রাখবেন: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি সম্পূর্ণ করতে পারবেন। আপনি Edge পাবলিক ক্লাউডে থাকলে, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।

ম্যানেজমেন্ট সার্ভারে 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 সহায়তা টিমের সাথে যোগাযোগ করুন।