আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন-এ যান। info
সমস্যার উপসর্গ
Qpidd সার্ভার PostgreSQL-এ অ্যানালিটিক্স মেসেজ ট্রান্সফার না করার কারণে New Edge UI-তে অ্যানালিটিক্স ডেটা
নেই। Edge-এ, edge-qpid-server
কম্পোনেন্ট Qpidd সার্ভারের সাথে সম্পর্কিত।
Qpidd প্রতিটি অ্যানালিটিক্স গ্রুপের জন্য দুটি সারি বজায় রাখে:
ax-q-axgroup001-consumer-group-001
এই সারিতে মেসেজ প্রসেসর এবং রাউটার থেকে পুশ করা অ্যানালিটিক্স মেসেজ থাকে।
edge-qpid-serverএখান থেকে মেসেজ নেয়, যা মেসেজ পার্স করে এবং PostgreSQL-এ ইনসার্ট করে। মেসেজ প্রসেস করা হয়ে গেলে সেগুলি সারি থেকে সরিয়ে দেওয়া হয়।ax-q-axgroup001-consumer-group-001-dl
এই সারিটি হল ডেড লেটার সারি। এটি সেইসব মেসেজের ডেস্টিনেশন হিসেবে কাজ করে যা
edge-qpid-serverপ্রসেস করতে পারেনি এবং তাই আর পেতে চায় না। সর্বাধিক ডেলিভারি সংখ্যা অতিক্রম করলে অথবা রানটাইম সমস্যার কারণে PostgreSQL নতুন ডেটা ইনসার্ট করার অনুরোধ প্রত্যাখ্যান করলে, এটি সাধারণত পপুলেট হয়ে যায়।
ত্রুটি বার্তা
edge-qpid-server কম্পোনেন্ট থেকে বিভিন্ন রানটাইম সমস্যার কারণে মূল কারণ হতে পারে। সাধারণত, PostgreSQL থেকে edge-qpid-server রানটাইম এরর পেলে, আগে থেকে না থাকলে এটি ডেড লেটার কোয়েরি তৈরি করে এবং তারপরে নিম্নলিখিত মেসেজটি সেখানে পাঠায়:
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-এ মেসেজ সেভ করতে পারেনি।
|
Edge Private Cloud ব্যবহারকারী |
সাধারণ ডায়াগনসিস ধাপ
Qpidd কিউ স্ট্যাটাস দেখতে Qpid নোডে নিম্নলিখিত কমান্ড রান করুন:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
আউটপুট ব্রোকারের সাথে রেজিস্টার করা সারির সেট ফিরিয়ে দেয়। -dl দিয়ে শেষ হওয়া নামের কিউতে
মেসেজ থাকলে (Q-Depth(Messages) Edge
for Private Cloud 4.53.00 ও তার পরের ভার্সনে অথবা msg Edge for Private Cloud 4.52.x
ও তার আগের ভার্সনে), তাহলে মেসেজগুলি ডেড লেটার কিউতে আটকে আছে।
প্রাইভেট ক্লাউড 4.53.00 ও তার পরবর্তী যেকোনও ভার্সনের (4.54.00 সহ, Apache Qpid Broker-J) Edge-এ আউটপুটের উদাহরণ:
+---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | Queue Name | Messages Enqueued | Total Enqueued(B) | Messages Dequeued | Total Dequeued(B) | Consumers | Bindings | Q-Depth(Messages) | Q-Depth(B) | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | ax-q-axgroup001-consumer-group-001 | 185 | 13800000 | 185 | 13800000 | 6 | 1 | 0 | 0 | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | ax-q-axgroup001-consumer-group-001-dl | 70 | 3900000 | 0 | 0 | 0 | 1 | 70 | 3900000 | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+
Edge for Private Cloud 4.52.x এবং তার আগের ভার্সনে (লিগ্যাসি C++
qpidd ব্রোকার) আউটপুটের উদাহরণ:
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-এর ডেড লেটার কিউতে মেসেজ আটকে আছে
ডায়াগনসিস
নিম্নলিখিত পরিস্থিতিতে এই অবস্থা হতে পারে:
- অতীতে একবার আপগ্রেড করা হয়েছিল, সেই সময় PostgreSQL বন্ধ ছিল।
- নেটওয়ার্ক সমস্যার কারণে PostgreSQL সাময়িক বন্ধ হয়ে যাওয়া।
edge-qpid-serverPostgreSQL-এ মেসেজ পাঠানোর চেষ্টা করেছে কিন্তু PostgreSQL রানটাইম সংক্রান্ত সমস্যা দেখিয়েছে।
রেজোলিউশন
Edge for Private Cloud ভার্সনের জন্য দেওয়া ধাপগুলি অনুসরণ করে, আটকে থাকা মেসেজগুলিকে ডেড লেটার কিউ থেকে মূল অ্যানালিটিক্স কিউতে ফিরিয়ে আনুন।
Edge for Private Cloud 4.53.00 এবং এর পরবর্তী যেকোনও ভার্সন (4.54.00 সহ)
Edge for Private Cloud 4.53.00 ও তার পরবর্তী যেকোনও ভার্সনে (4.54.00 সহ) Apache Qpid
Broker-J (4.54.00-এ 10.0.1 এবং 4.53.x-এ 8.0.6) ব্যবহার করা হয়। Edge for Private Cloud 4.53.00 এবং পরবর্তী ভার্সনে লিগ্যাসি qpid-tool CLI
সরিয়ে দেওয়া হয়েছে এবং এটি ব্যবহার করা যাবে না।
পরিবর্তে, Apache Qpid Broker-J HTTP Management REST API (moveMessages)
অথবা Qpid Web Management Console ব্যবহার করে ডেড লেটার কিউ থেকে মেসেজগুলি
মূল অ্যানালিটিক্স কিউতে ফিরিয়ে আনুন:
সাধারণ ডায়াগনসিস ধাপ আউটপুট থেকে প্রধান সারি এবং ডেড লেটার সারির সঠিক নাম নোট করুন (যেমন,
ax-q-axgroup001-consumer-group-001এবংax-q-axgroup001-consumer-group-001-dl, অথবাax-q-axgroup-001-consumer-group-001এবংax-q-axgroup-001-consumer-group-001-dl)।Qpid নোডে, Qpid Broker-J HTTP ম্যানেজমেন্ট API (ডিফল্ট হিসেবে পোর্ট
8090) এর মাধ্যমে ডেড লেটার কিউতেmoveMessagesঅপারেশন চালু করতে নিম্নলিখিতcurlকমান্ড রান করুন:curl -u QPID_USER:QPID_PASSWORD -X POST \ -H "Content-Type: application/json" \ -d '{"destination": "ax-q-axgroup001-consumer-group-001"}' \ http://127.0.0.1:8090/api/latest/queue/default/default/ax-q-axgroup001-consumer-group-001-dl/moveMessagesযেখানে:
QPID_USERএবংQPID_PASSWORDহল Qpid ম্যানেজমেন্ট ক্রেডেনশিয়াল যা/opt/apigee/customer/application/qpidd.propertiesবা/opt/apigee/token/application/qpidd.properties-এ কনফিগার করা আছে (ডিফল্ট হলguest:guest)।qpid-stat -q-এ আপনার অ্যানালিটিক্স কিউয়ের নাম আলাদা হলে,ax-q-axgroup001-consumer-group-001এবংax-q-axgroup001-consumer-group-001-dlপরিবর্তন করুন।- ব্যাচে মেসেজ সরাতে, JSON অনুরোধের বডিতে
"limit"অন্তর্ভুক্ত করুন (যেমন,"limit": 100000)। - Qpid ম্যানেজমেন্ট API-তে SSL/TLS চালু করা থাকলে
(
conf_qpidd_qpid_management.https.enabled=true),https://ব্যবহার করুন এবংcurl-এ--cacert(বা-k) পাস করুন।
কমান্ডের আউটপুট যাচাই করুন। সফল কল থেকে সরানো ইন্টার্নাল মেসেজ আইডির JSON অ্যারে রিটার্ন করা হয়:
[ 3, 4, 5 ]
ফেরত আসা অ্যারে খালি (
[]) থাকলে, ডেড লেটার কিউতে সরানোর মতো কোনও মেসেজ ছিল না।৫ মিনিট অপেক্ষা করুন এবং তারপর সাধারণ ডায়াগনসিস ধাপ থেকে
/opt/apigee/apigee-qpidd/bin/qpid-stat -qরান করুন। যাচাই করুন যে প্রধান সারিতে (ax-q-axgroup001-consumer-group-001) থাকা মেসেজগুলি প্রসেস করা হচ্ছে এবং ডেড লেটার সারিতে (ax-q-axgroup001-consumer-group-001-dl) থাকাQ-Depth(Messages)0-এ রয়েছে।
Edge for Private Cloud 4.52.x এবং তার আগের ভার্সন
সাধারণ ডায়াগনসিস ধাপ থেকে কিউয়ের নাম নোট করুন। যেমন:
ax-q-axgroup-001-consumer-group-001ax-q-axgroup-001-consumer-group-001-dl
ইন্টার্যাক্টিভ
qpidপ্রম্পট পেতেqpid-toolকমান্ড রান করান:qpid-tool
এই কমান্ড নিম্নলিখিত তথ্য রিটার্ন করে:
Management Tool for QPID qpid:
অ্যাক্টিভ ব্রোকারদের তালিকা পেতে
list brokerরান করান:list broker
এই কমান্ড নিম্নলিখিত তথ্য রিটার্ন করে:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
যেখানে
IDকলামটি ব্রোকারের আইডি নির্দিষ্ট করে।ব্রোকারের আইডি নোট করুন। উদাহরণে এটি হল
125।ডেড লেটার কিউ থেকে মেসেজগুলি আসল কিউতে ফিরিয়ে আনতে নিম্নলিখিত কমান্ডটি রান করুন:
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 সহায়তা টিমের সাথে যোগাযোগ করুন।qpid-toolটার্মিনাল থেকে বেরিয়ে আসুন:quit
৫ মিনিট অপেক্ষা করুন এবং তারপর সাধারণ ডায়াগনসিস ধাপ থেকে ডায়াগনসিস ধাপগুলি আবার চালান। আসল সারিতে থাকা মেসেজ প্রসেস করা হচ্ছে কিনা তা যাচাই করুন এবং ডেড লেটার
msg-এর সংখ্যা0-এ আছে কিনা তা নিশ্চিত করুন।
সমস্যাটি এখনও থেকে গেলে, পরবর্তী বিভাগে যান।
ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে
আগের নির্দেশাবলী অনুসরণ করার পরেও সমস্যাটি থেকে গেলে, নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন এবং Apigee Edge সহায়তা টিমের সাথে শেয়ার করুন:
- Qpidd লগ:
/opt/apigee/var/log/apigee-qpidd/qpidd.log(Edge for Private Cloud 4.53.00 এবং তার পরবর্তী ভার্সন) এবং/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log - PostgreSQL লগ:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log - Edge-qpid-server লগ:
/opt/apigee/var/log/edge-qpid-server/logs/system.log - Edge-postgres-server লগ:
/opt/apigee/var/log/edge-postgres-server/logs/system.log Qpidd কিউ স্ট্যাটস:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
নিম্নলিখিত curl কমান্ডের মাধ্যমে Analytics গ্রুপ রিটার্ন করা হয়েছে:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax