Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Belirti
Qpidd sunucusu, analiz mesajlarını PostgreSQL'e aktarmadığı için yeni Edge kullanıcı arayüzünde analiz verileri eksik. Edge'de edge-qpid-server
bileşeni, Qpidd sunucusuna karşılık gelir.
Qpidd, her analiz grubu için iki sıra tutar:
ax-q-axgroup001-consumer-group-001
Bu kuyruk, Mesaj İşleyiciler ve Yönlendiriciler'den gönderilen analiz mesajlarını tutar. Mesajlar, mesajları ayrıştırıp PostgreSQL'e ekleyen
edge-qpid-servertarafından buradan alınır. İletiler başarıyla işlendikten sonra sıradan kaldırılır.ax-q-axgroup001-consumer-group-001-dl
Bu sıra, işlenemeyen iletiler sırasıdır.
edge-qpid-servertarafından işlenemeyen ve bu nedenle artık alınmak istenmeyen mesajların hedefi olarak işlev görür. Bu alan genellikle maksimum yayın sayısı aşıldığında veya PostgreSQL, çalışma zamanı hataları nedeniyle yeni verilerin eklenmesini reddettiğinde doldurulur.
Hata Mesajı
Temel neden, edge-qpid-server bileşenindeki çeşitli çalışma zamanı hataları olabilir. Genellikle edge-qpid-server, PostgreSQL'den bir çalışma zamanı hatası alırsa henüz mevcut değilse ölü harf kuyruğunu oluşturur ve ardından aşağıdaki mesajı oraya gönderir:
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.
Olası nedenler
| Neden | Açıklama | Aşağıdaki ürünler için geçerli sorun giderme talimatları |
|---|---|---|
| qpidd'nin teslim edilemeyen iletiler kuyruğunda takılı kalan mesajlar | edge-qpid-server, Qpidd aracısından okuduğu iletileri anlayamadı veya iletileri PostgreSQL'de saklayamadı.
|
Edge Private Cloud Kullanıcıları |
Sık Karşılaşılan Teşhis Adımları
Qpidd kuyruk istatistiklerini görüntülemek için Qpid düğümünde aşağıdaki komutu çalıştırın:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
Çıkış, aracıya kayıtlı kuyruk kümesini döndürür. Adı -dl ile biten kuyrukta mesajlar varsa (Edge for Private Cloud 4.53.00 ve sonraki sürümlerde Q-Depth(Messages), Edge for Private Cloud 4.52.x ve önceki sürümlerde msg) mesajlar, teslim edilemeyen mesaj kuyruğunda takılı kalır.
Edge for Private Cloud 4.53.00 ve sonraki sürümlerde (4.54.00, Apache Qpid Broker-J dahil) örnek çıkış:
+---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | 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 ve önceki sürümlerde (eski C++ qpidd aracısı) örnek çıkış:
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
Nedeni: Mesajlar qpidd'nin teslim edilemeyen mesaj kuyruğunda takılı kalıyor
Teşhis
Bu durum aşağıdaki senaryolarda ortaya çıkabilir:
- Geçmişte bir yükseltme işlemi yapıldı ve bu işlem sırasında PostgreSQL kullanılamadı.
- Ağ sorunları nedeniyle PostgreSQL'de geçici bir kesinti yaşanması
edge-qpid-server, PostgreSQL'e mesaj göndermeye çalıştı ancak PostgreSQL bir çalışma zamanı hatası döndürdü.
Çözünürlük
Takılı kalan mesajları, teslim edilemeyen mesajlar kuyruğundan ana analiz kuyruğuna taşımak için Edge for Private Cloud sürümünüzle ilgili adımları uygulayın.
Edge for Private Cloud 4.53.00 ve sonraki sürümler (4.54.00 dahil)
Edge for Private Cloud 4.53.00 ve sonraki sürümler (4.54.00 dahil) Apache Qpid Broker-J'yi kullanır (4.54.00'da 10.0.1 ve 4.53.x'te 8.0.6). Eski qpid-tool CLI, Edge for Private Cloud 4.53.00 ve sonraki sürümlerden kaldırılmıştır ve kullanılamaz.
Bunun yerine, mesajları teslim edilemeyen ileti kuyruğundan ana analiz kuyruğuna geri taşımak için Apache Qpid Broker-J HTTP Management REST API'yi (moveMessages) veya Qpid Web Management Console'u kullanın:
Common Diagnosis Steps (Ortak Teşhis Adımları) çıkışındaki ana kuyruğun ve işlenemeyen ileti kuyruğunun tam adlarını not edin (örneğin,
ax-q-axgroup001-consumer-group-001veax-q-axgroup001-consumer-group-001-dlya daax-q-axgroup-001-consumer-group-001veax-q-axgroup-001-consumer-group-001-dl).Qpid düğümünde, Qpid Broker-J HTTP Yönetim API'si (varsayılan olarak bağlantı noktası
8090) üzerinden ölü harf kuyruğundacurlişlemini çağırmak için aşağıdakimoveMessageskomutunu çalıştırın: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/moveMessagesBurada:
QPID_USERveQPID_PASSWORD,/opt/apigee/customer/application/qpidd.propertiesveya/opt/apigee/token/application/qpidd.propertiesiçinde yapılandırılan Qpid yönetim kimlik bilgileridir (varsayılan değerguest:guest'dir).qpid-stat -qiçindeki analiz sırası adlarınız farklıysaax-q-axgroup001-consumer-group-001veax-q-axgroup001-consumer-group-001-dldeğerlerini değiştirin.- İletileri toplu olarak taşımak için JSON istek gövdesine
"limit"ekleyin (ör."limit": 100000). - Qpid Management API'de (
conf_qpidd_qpid_management.https.enabled=true) SSL/TLS etkinsehttps://kullanın ve--cacert(veya-k) değerinicurlparametresine iletin.
Komut çıkışını doğrulayın. Başarılı bir çağrı, taşınan dahili ileti kimliklerinin JSON dizisini döndürür:
[ 3, 4, 5 ]
Döndürülen dizi boşsa (
[]) taşınacak iletiler yoktur.5 dakika bekleyin ve ardından Genel Teşhis Adımları'ndaki
/opt/apigee/apigee-qpidd/bin/qpid-stat -qkomutunu çalıştırın. Ana sıradaki (ax-q-axgroup001-consumer-group-001) mesajların işlendiğini ve teslim edilemeyen mesajlar sırasındaki (ax-q-axgroup001-consumer-group-001-dl)Q-Depth(Messages)değerinin0olarak kaldığını doğrulayın.
Edge for Private Cloud 4.52.x ve önceki sürümler
Ortak Teşhis Adımları bölümünden kuyrukların adlarını not edin. Örneğin:
ax-q-axgroup-001-consumer-group-001ax-q-axgroup-001-consumer-group-001-dl
Etkileşimli
qpidistemine girmek içinqpid-toolkomutunu çalıştırın:qpid-tool
Bu komut aşağıdakileri döndürür:
Management Tool for QPID qpid:
Etkin aracıların listesini almak için
list brokerkomutunu çalıştırın:list broker
Bu komut aşağıdakileri döndürür:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
IDsütunu, aracı kurumun kimliğini belirtir.Aracının kimliğini not edin. Örnekte
125'dır.Mesajları işlenemeyen iletiler sırasından gerçek sıraya geri taşımak için aşağıdaki komutu çalıştırın:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}Bu komut aşağıdaki sonucu döndürür:
OK (0) - {}Çıktı yoksa yapılacak bir işlem yok demektir. Yani taşınacak mesaj yoktur.
OK (0)simgesini görmüyorsanız Apigee Edge Destek Ekibi ile iletişime geçmeniz gerekir.qpid-toolterminalinden çıkın:quit
5 dakika bekleyin ve ardından Genel Teşhis Adımları bölümündeki teşhis adımlarını tekrar uygulayın. Gerçek sıradaki mesajların işlendiğini doğrulayın ve işlenemeyen mesaj
msgsayısının0olarak kaldığından emin olun.
Sorun devam ederse sonraki bölüme gidin.
Teşhis Bilgileri Toplanmalıdır
Önceki talimatları uyguladıktan sonra sorun devam ederse aşağıdaki teşhis bilgilerini toplayıp Apigee Edge Destek Ekibi ile paylaşın:
- Qpidd günlükleri:
/opt/apigee/var/log/apigee-qpidd/qpidd.log(Edge for Private Cloud 4.53.00 ve sonraki sürümler) ve/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log - PostgreSQL günlükleri:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log - Edge-qpid-server günlükleri:
/opt/apigee/var/log/edge-qpid-server/logs/system.log - Edge-postgres-server günlükleri:
/opt/apigee/var/log/edge-postgres-server/logs/system.log Qpidd kuyruğu istatistikleri:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
Aşağıdaki curl komutu tarafından döndürülen Analytics grubu:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax