Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Belirti
API proxy revizyonlarının Edge kullanıcı arayüzü veya Edge yönetim API çağrısı aracılığıyla dağıtımı, "Error while accessing datastore" hatasıyla başarısız oluyor.
Hata mesajları
Error in deployment for environment qa. The revision is deployed, but traffic cannot flow. Error while accessing datastore;Please retry later
Olası nedenler
Bu sorunun tipik nedenleri şunlardır:
-
Neden Ayrıntılar İçin Mesaj İşleyici ile Cassandra Arasındaki Ağ Bağlantısı Sorunu Ağ bağlantısı sorunları veya güvenlik duvarı kuralları nedeniyle ileti işlemcisi ile Cassandra arasında iletişim hatası. Edge Private Cloud kullanıcıları Cassandra yeniden başlatmaları nedeniyle dağıtım hataları Cassandra düğümleri, rutin bakım kapsamında yeniden başlatıldığından kullanılamıyordu. Edge Private Cloud kullanıcıları Cassandra'da okuma isteği gecikmesinde ani artış Cassandra düğümleri aynı anda çok sayıda okuma işlemi gerçekleştiriyorsa okuma isteği gecikmesindeki artış nedeniyle yavaş yanıt verebilir. Edge Private Cloud kullanıcıları 15 MB'tan büyük API proxy paketi Cassandra, boyutu 15 MB'tan büyük olan API proxy paketlerine izin vermeyecek şekilde yapılandırılmıştır. Edge Private Cloud kullanıcıları Mesaj İşleyici ile Cassandra Arasındaki Ağ Bağlantısı Sorunu
Teşhis
Not: Yalnızca Edge Private Cloud kullanıcıları aşağıdaki adımları uygulayabilir. Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.
- API proxy'sinin dağıtımını kaldırıp yeniden dağıtın. Mesaj işlemcisi ile Cassandra arasında geçici bir bağlantı sorunu varsa hata ortadan kalkabilir.
UYARI: Hatalar üretim ortamında görülüyorsa dağıtımı geri almayın.
- Sorun devam ederse dağıtım durumunu kontrol etmek ve bileşenlerde hata olup olmadığını görmek için aşağıdaki yönetim AP çağrısını yürütün:
curl -u sysadmin@email.com https://management:8080/v1/o/<org>/apis/<api>/deployments
Mesaj işlemcilerden birinde veri deposuna erişilirken hata gösteren örnek dağıtım durumu çıkışı
{ "environment" : [ { "aPIProxy" : [ { "name" : "simple-python", "revision" : [ { "configuration" : { "basePath" : "/", "steps" : [ ] }, "name" : "1", "server" : [ { "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "2acdd9b2-17de-4fbb-8827-8a2d4f3d7ada" }, { "error" : "Error while accessing datastore;Please retry later", "errorCode" : "datastore.ErrorWhileAccessingDataStore", "status" : "error", "type" : [ "message-processor" ], "uUID" : "42772085-ca67-49bf-a9f1-c04f2dc1fce3" } "state" : "error" }
- Dağıtım hatası gösteren mesaj işlemcilerini yeniden başlatın. Geçici bir ağ sorunu varsa hata ortadan kalkar:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Yeniden başlatılan Mesaj İşleyici'de dağıtımın başarılı olup olmadığını görmek için 2. adımı tekrarlayın. Hata bulunmazsa sorun çözülmüş demektir.
- İleti işlemcisinin 9042
ve 9160 numaralı bağlantı noktasında her Cassandra düğümüne bağlanabildiğini kontrol edin:
- Telnet kullanılabiliyorsa telnet'i kullanın:
telnet <Cassandra_IP> 9042 telnet <Cassandra_IP> 9160
- Telnet kullanılamıyorsa bağlantıyı aşağıdaki gibi netcat ile kontrol edin:
nc -vz <Cassandra_IP> 9042 nc -vz <Cassandra_IP> 9160
- "Bağlantı reddedildi" veya "Bağlantı zaman aşımına uğradı" yanıtını alırsanız ağ operasyonları ekibinizle iletişime geçin.
- Telnet kullanılabiliyorsa telnet'i kullanın:
- Sorun devam ederse Cassandra düğümlerinin her birinin 9042 ve 9160 numaralı bağlantı noktalarını dinleyip dinlemediğini kontrol edin:
netstat -an | grep LISTEN | grep 9042 netstat -an | grep LISTEN | grep 9160
- Cassandra düğümleri 9042 veya 9160 bağlantı noktasını dinlemiyorsa belirli Cassandra düğümlerini yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Sorun devam ederse ağ operasyonları ekibinizle iletişime geçin.
- API proxy'sinin dağıtımını kaldırıp yeniden dağıtın. Mesaj işlemcisi ile Cassandra arasında geçici bir bağlantı sorunu varsa hata ortadan kalkabilir.
Çözünürlük
Ağ operasyonları ekibinizle birlikte çalışarak Mesaj İşleyici ile Cassandra arasındaki ağ bağlantısı sorununu düzeltin.
Cassandra'nın yeniden başlatılmasından kaynaklanan dağıtım hataları
Cassandra düğümleri, rutin bakım kapsamında genellikle düzenli olarak yeniden başlatılır. Cassandra bakım çalışması sırasında API proxy'leri dağıtılırsa Cassandra veri deposuna erişilemediği için dağıtımlar başarısız olur.
Not: Yalnızca Edge Private Cloud kullanıcıları aşağıdaki adımları uygulayabilir. Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.
Teşhis
- Dağıtım sırasında Cassandra düğümlerinin yeniden başlatılıp başlatılmadığını kontrol edin.Bu işlem, Cassandra günlüğü veya Cassandra düğümünün en son başlatma zamanı günlükleri kontrol edilerek yapılabilir:
grep"shutdown"/opt/apigee/var/log/apigee-cassandra/system.log
Çözünürlük
- Cassandra'nın çalışır durumda olduğundan emin olun.
- İleti işlemcilerin 9042 ve 9160 numaralı bağlantı noktalarında Cassandra veri deposuna bağlanıp bağlanamadığını kontrol edin.
Cassandra'da okuma isteği gecikmesinde ani artış
Cassandra'da yüksek sayıda okuma işlemi, Cassandra'dan okuma erişimi gerektiren politikaları içeren proxy'lerdeki bireysel kullanım alanlarına ve trafik kalıplarına bağlıdır.
Örneğin, OAuth politikaları için refresh_token yetkilendirme türüne yönelik bir GET çağrısı yapılıyorsa ve yenileme jetonu birçok erişim jetonuyla ilişkilendirilmişse bu durum, Cassandra'dan yüksek miktarda okuma yapılmasına neden olabilir. Bu durum, Cassandra'da okuma isteği gecikmesinin artmasına neden olabilir.
Teşhis
Not: Yalnızca Edge Private Cloud kullanıcıları aşağıdaki adımları uygulayabilir. Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.

- Beta izleme kontrol panelini yüklediyseniz Cassandra kontrol paneline bakın ve sorunlu dönem için "Okuma İstekleri" grafiğini inceleyin. Ayrıca "Okuma İsteği Gecikmeleri" grafiğini de inceleyin.
- Okuma isteklerini ve okuma gecikmelerini kontrol etmek için alternatif araç
nodetool cfstatskomutudur. Bu komutu kullanmayla ilgili daha fazla bilgi için Cassandra belgelerine bakın.
Çözünürlük
Not: Yalnızca Edge Private Cloud kullanıcıları aşağıdaki adımları uygulayabilir. Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.
- Cassandra performansı normale döndüğünde dağıtımı tekrar deneyin. Tüm Cassandra halkasının normal olduğundan emin olun.
- (İsteğe bağlı) Bağlantının kurulduğundan emin olmak için ileti işlemcilerinde kademeli yeniden başlatma işlemi yapın.
- Uzun vadeli bir çözüm için Cassandra veri deposunda daha fazla okuma işlemine neden olabilecek API trafiği modellerini inceleyin. Bu sorunu giderme konusunda yardım almak için Apigee Edge Destek Ekibi ile iletişime geçin.
- Mevcut Cassandra düğümleri gelen trafiği işlemek için yeterli değilse donanım kapasitesini veya Cassandra veri deposu düğümlerinin sayısını uygun şekilde artırın.
15 MB'tan büyük API Proxy Paketi
API proxy paketlerinin boyutu Cassandra'da 15 MB ile sınırlıdır. API proxy paketi boyutu 15 MB'tan büyükse API proxy'sini dağıtmaya çalıştığınızda "Veri deposuna erişilirken hata oluştu" mesajını görürsünüz.
Teşhis
Not: Yalnızca Edge Private Cloud kullanıcıları aşağıdaki adımları uygulayabilir. Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.
- Mesaj İşleyici günlüklerini (
/opt/apigee/var/log/edge-message-processor/logs/system.log) kontrol edin ve belirli API proxy'sinin dağıtımı sırasında herhangi bir hata oluşup oluşmadığını görün. - Aşağıdaki şekilde gösterilene benzer bir hata görürseniz dağıtım hatasının nedeni API proxy paketi boyutunun 15 MB'tan büyük olmasıdır.
2016-03-23 18:42:18,517 main ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.fetchDynamicCompositeColumns() : Error while querying columnfamily : [api_proxy_revisions_r21, adevegowdat@v1-node-js] for rowkey:{} com.netflix.astyanax.connectionpool.exceptions.TransportException: TransportException: [host=None(0.0.0.0):0, latency=159(486), attempts=3]org.apache.thrift.transport.TTransportException: Frame size (20211500) larger than max length (16384000)! at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:197) ~[astyanax-thrift-1.56.43.jar:na] at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65) ~[astyanax-thrift-1.56.43.jar:na] ...<snipped> Caused by: org.apache.thrift.transport.TTransportException: Frame size (20211500) larger than max length (16384000)! at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137) ~[libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) ~[libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) ~[libthrift-0.9.1.jar:0.9.1] ...<snipped>
Çözünürlük
Çok fazla kaynak dosyası varsa API proxy paketi büyük olur. Bu sorunu çözmek için aşağıdaki çözümleri kullanın:
1. çözüm: Kaynak dosyalarını ortam veya kuruluş düzeyine taşıyın
- NodeJS komut dosyası dosyaları ve modüller, JavaScript dosyaları, JAR dosyaları gibi kaynak dosyalarını ortam veya kuruluş düzeyine taşıyın. Kaynak dosyaları hakkında daha fazla bilgi için Edge belgelerine bakın.
- API proxy'sini dağıtın ve hatanın giderilip giderilmediğini kontrol edin.
Sorun devam ederse veya kaynak dosyalarını bir nedenden dolayı ortam ya da kuruluş düzeyine taşıyamazsanız 2. çözümü uygulayın.
2. çözüm: Cassandra'da API proxy paketi boyutunu artırın
Not: Yalnızca Edge Private Cloud kullanıcıları aşağıdaki adımları uygulayabilir. Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.
Edge'de izin verilen maksimum API proxy paketi boyutunu kontrol eden Cassandra özelliği thrift frame transport size değerini artırmak için aşağıdaki adımları uygulayın:
- Mevcut değilse aşağıdaki dosyayı oluşturun:
/opt/apigee/customer/application/cassandra.properties
- Dosyaya aşağıdaki satırı ekleyin. <size> yerine büyük paket için gereken boyut ayarını girin:
conf_cassandra_thrift_framed_transport_size_in_mb=<size>
- Cassandra'yı yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Kümedeki tüm Cassandra düğümlerinde 1-3 arasındaki adımları tekrarlayın.
Sorun devam ederse Apigee Edge Destek Ekibi ile iletişime geçin.