বিশ্লেষণ ডেটা Qpidd মৃত চিঠি সারিতে আটকে আছে

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

উপসর্গ

Qpidd সার্ভার PostgreSQL-এ বিশ্লেষণ বার্তা স্থানান্তর না করার কারণে এজ UI-তে বিশ্লেষণ ডেটা অনুপস্থিত৷ এজ-এ, edge-qpid-server উপাদানটি Qpidd সার্ভারের সাথে মিলে যায়।

Qpidd প্রতিটি বিশ্লেষণ গোষ্ঠীর জন্য দুটি সারি বজায় রাখে:

  • ax-q-axgroup001-ভোক্তা-গ্রুপ-001

    এই সারিতে মেসেজ প্রসেসর এবং রাউটার থেকে পুশ করা বিশ্লেষণ বার্তা রয়েছে। বার্তাগুলিকে এখান থেকে edge-qpid-server দ্বারা টেনে আনা হয় যা বার্তাগুলিকে পার্স করে এবং পোস্টগ্রেএসকিউএল-এ সন্নিবেশ করে। একবার বার্তাগুলি সফলভাবে প্রক্রিয়া করা হলে সেগুলি সারি থেকে সরানো হয়৷

  • ax-q-axgroup001-consumer-group-001-dl

    এই সারিটি মৃত চিঠির সারি। এটি সেই বার্তাগুলির জন্য গন্তব্য হিসাবে কাজ করে যা edge-qpid-server প্রক্রিয়া করতে ব্যর্থ হয়েছে এবং এইভাবে আর গ্রহণ করতে চায় না। সর্বাধিক ডেলিভারি গণনা অতিক্রম করলে বা রানটাইম ত্রুটির কারণে PostgreSQL নতুন ডেটা সন্নিবেশ প্রত্যাখ্যান করলে এটি সাধারণত জনবহুল হয়।

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

মূল কারণ edge-qpid-server উপাদান থেকে বিভিন্ন রানটাইম ত্রুটির কারণে হতে পারে। সাধারণত যদি edge-qpid-server PostgreSQL থেকে একটি রানটাইম ত্রুটি পায়, এটি ইতিমধ্যেই বিদ্যমান না থাকলে এটি মৃত অক্ষর সারি তৈরি করে এবং তারপরে নিম্নলিখিত বার্তাটি সেখানে পাঠায়:

yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.

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

কারণ বর্ণনা এর জন্য প্রযোজ্য সমস্যা সমাধানের নির্দেশাবলী
বার্তাগুলি qpidd-এর মৃত চিঠির সারিতে আটকে আছে৷ edge-qpid-server Qpidd ব্রোকার থেকে পড়া বার্তাগুলি বুঝতে পারেনি বা PostgreSQL-এ বার্তাগুলি চালিয়ে যেতে অক্ষম ছিল৷ এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা

সাধারণ রোগ নির্ণয়ের পদক্ষেপ

Qpidd সারির পরিসংখ্যান দেখতে নিম্নলিখিত কমান্ডটি চালান:

qpid-stat -q

আউটপুট ব্রোকারের সাথে নিবন্ধিত সারিগুলির সেট ফিরিয়ে দেয়। যদি "-dl" এ শেষ হওয়া নামের সারিতে বার্তাগুলি থাকে, তাহলে মৃত অক্ষরের সারিতে আটকে থাকা বার্তাগুলি রয়েছে৷

Queues
  queue                                     dur  autoDel  excl  msg   msgIn  msgOut  bytes  bytesIn  bytesOut   cons  bind
  ========================================================================================================================
  ax-q-axgroup-001-consumer-group-001       Y                   0     185    185     0       13.8m   13.8m      6      2
  ax-q-axgroup-001-consumer-group-001-dl    Y                   0     70     70      0        3.9m    3.9m      0      2

কারণ: qpidd-এর মৃত চিঠির সারিতে বার্তা আটকে গেছে

রোগ নির্ণয়

এই অবস্থা নিম্নলিখিত পরিস্থিতিতে ঘটতে পারে:

  1. অতীতে একটি আপগ্রেড হয়েছিল, সেই সময়ে PostgreSQL ডাউন ছিল।
  2. নেটওয়ার্ক সমস্যার কারণে PostgreSQL-এর একটি অস্থায়ী বিভ্রাট।
  3. edge-qpid-server PostgreSQL এ একটি বার্তা পাঠানোর চেষ্টা করেছে কিন্তু PostgreSQL একটি রানটাইম ত্রুটি ফিরিয়ে দিয়েছে।

রেজোলিউশন

  1. সাধারণ রোগ নির্ণয়ের ধাপগুলি থেকে সারিগুলির নাম নোট করুন৷ যেমন:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. একটি ইন্টারেক্টিভ qpid প্রম্পটে প্রবেশ করতে qpid-tool কমান্ডটি চালান:

    qpid-tool

    এই কমান্ডটি নিম্নলিখিতগুলি প্রদান করে:

    Management Tool for QPID
    qpid:
  3. সক্রিয় দালালদের একটি তালিকা পেতে list broker চালান:

    list broker

    এই কমান্ডটি নিম্নলিখিতগুলি প্রদান করে:

    Object Summary:
    ID   Created   Destroyed  Index
    =======================================
    125  21:00:00  -          amqp-broker

    যেখানে ID কলাম ব্রোকারের আইডি নির্দিষ্ট করে।

  4. দালালের আইডি নোট করুন। উদাহরণে এটি 125।

  5. মৃত চিঠির সারি থেকে বার্তাগুলিকে প্রকৃত সারিতে নিয়ে যেতে নিম্নলিখিত কমান্ডটি চালান:

    call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}

    এই কমান্ডটি নিম্নলিখিতগুলি প্রদান করে:

    OK (0) - {}

    যদি কোন আউটপুট না থাকে তবে কিছু করার ছিল না, মানে সরানোর জন্য কোন বার্তা নেই। আপনি যদি OK(0) দেখতে না পান তাহলে আপনার Apigee Edge সাপোর্টের সাথে যোগাযোগ করা উচিত।

  6. qpid-tool টার্মিনাল থেকে প্রস্থান করুন।

    quit
  7. 5 মিনিট অপেক্ষা করুন এবং তারপরে সাধারণ রোগ নির্ণয়ের পদক্ষেপগুলি থেকে আবার নির্ণয়ের পদক্ষেপগুলি চালান৷ যাচাই করুন যে প্রকৃত সারিতে থাকা বার্তাগুলি প্রক্রিয়া করা হচ্ছে এবং নিশ্চিত করুন যে মৃত অক্ষর বার্তা সংখ্যা 0-তে থাকবে।

যদি সমস্যাটি এখনও থেকে যায় তবে পরবর্তী বিভাগে যান।

ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে

উপরের নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, অনুগ্রহ করে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন। Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন এবং শেয়ার করুন:

  • Qpidd লগ: /opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
  • Postgresql লগ: /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
  • এজ-qpid-সার্ভার লগ: /opt/apigee/var/log/edge-qpid-server/logs/system.log
  • এজ-পোস্টগ্রেস-সার্ভার লগ: /opt/apigee/var/log/edge-postgres-server/logs/system.log
  • Qpidd সারি পরিসংখ্যান:

    qpid-stat -q
  • বিশ্লেষণ গোষ্ঠী নিম্নলিখিত কার্ল কমান্ড দ্বারা ফিরে এসেছে:

    curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax