Log adalah cara yang baik untuk memecahkan masalah pada penginstalan hybrid Apigee Anda. Lihat Logging untuk mengetahui detailnya.
Entri log sinkronisasi
Tabel berikut menjelaskan kolom yang akan Anda lihat di file log Synchronizer.
| Kolom | Menunjukkan |
|---|---|
org: |
Nama organisasi |
env: |
Nama lingkungan |
target: |
Jalur entitas yang diwakili oleh entri log |
action: |
Tindakan SYNC=Tindakan sinkronisasi upstream
REPLICATE=Tindakan mereplikasi/mendownload |
context-id: |
Versi kontrak jika berlaku |
Contoh:
2019-02-05 00:00:59,098 org:hybrid env:test target: action:SYNC context-id: mode: Apigee-Timer-5 INFO CONFIG-CHANGE - SyncContext.syncUpStream() : Upstream sync started with https://api.enterprise.apigee.net
Memahami log Synchronizer
Jika Anda perlu memecahkan masalah pada Sinkronisasi, lihat file log. Tabel berikut dapat membantu Anda memecahkan masalah error yang mungkin Anda lihat di log Synchronizer. Lihat juga Logging.
| Entri log | Apa artinya |
|---|---|
org:test env:dev target: action:SYNC context-id: mode:
Apigee-Timer-0 INFO CONFIG-CHANGE - SyncContext.syncUpStream() :
Upstream sync
started with http://localhost:8080 |
Polling upstream dimulai untuk organisasi dan lingkungan serta diberi URL management plane |
2019-01-21 16:58:02,275 org:test env:qa target:
action:SYNC context-id: mode: Apigee-Timer-1 INFO CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract poll returned 200 |
Kontrak berhasil diterima |
2019-01-21 16:58:02,536 org:test env:dev target:
action:SYNC context-id: mode: Apigee-Timer-0 INFO CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Received a new
contract version 20190121.090851.339 |
Versi kontrak diterima |
2019-01-21 17:58:56,530 org:test env:qa
target:/organizations/test/environments/qa action:REPLICATE
context-id:20190121.090859.699 mode: Apigee-Timer-1 INFO
CONFIG-CHANGE - ConfigReplicator.startReplication() :
Replication
started |
Menunjukkan dimulainya Replikasi. Kolom MDC menunjukkan detail tentang apa yang direplikasi |
2019-01-21 17:58:56,654 org:test env:qa
target:/organizations/test/environments/qa/resourcefiles/js/JavaScriptCallout.js
action:REPLICATE context-id:20190121.090859.699 mode:
Apigee-Timer-1 INFO CONFIG-CHANGE -
ConfigReplicator.startReplication() : Replication
complete |
Menunjukkan Replikasi selesai. Kolom MDC menunjukkan detail tentang apa yang direplikasi |
2019-01-21 17:58:56,654 org:test env:qa
target:/organizations/test/environments/qa action:REPLICATE
context-id:20190121.090859.699 mode: Apigee-Timer-1
ERROR
CONFIG-CHANGE - ConfigReplicator.startReplication() : Replication
failed |
Menunjukkan error replikasi |
2019-01-21 17:59:00,246 org:test env:qa target:
action:SYNC context-id: mode: Apigee-Timer-1 INFO CONFIG-CHANGE -
SyncContext.syncUpStream() : Upstream sync finished in 4
seconds |
Menunjukkan akhir siklus sinkronisasi dan juga memberikan waktu yang diperlukan untuk menyinkronkan |
2019-01-21 18:00:00,249 org:test env:dev target:
action:SYNC context-id: mode: Apigee-Timer-1 INFO CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned 304 |
Menunjukkan bahwa kontrak yang lebih baru tidak tersedia |
2019-01-21 18:21:39,128 org:test env:qa target:
action:SYNC context-id: mode: Apigee-Timer-1 ERROR CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned error 0 |
Menunjukkan bahwa bidang pengelolaan tidak dapat dijangkau |
2019-01-21 18:21:39,128 org:test env:qa target:
action:SYNC context-id: mode: Apigee-Timer-1 ERROR CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned error 404 |
Menunjukkan bahwa bidang pengelolaan menampilkan respons 404 untuk kontrak |
2019-01-21 18:22:39,217 org:test1 env:dev target:
action:SYNC context-id: mode: Apigee-Timer-2 ERROR CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned error 403 |
Menunjukkan bahwa lingkungan yang di-polling tidak mendukung hybrid |
2019-01-21 18:22:39,217 org:test1 env:dev target:
action:SYNC context-id: mode: Apigee-Timer-2 ERROR CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned error 401 |
Kredensial yang diberikan mengalami beberapa masalah |
Pemecahan masalah error
Log adalah cara yang baik untuk memecahkan masalah pada penginstalan Anda. Lihat Logging untuk mengetahui detailnya.
Penyinkron gagal dimulai
Berikut adalah beberapa error dan perbaikannya yang dijelaskan. Setiap pesan error ini dimulai dengan ErrorCode berjenis sync.xxxxx. Berikut adalah kemungkinan kode error
sync.NullOrEmptyConfig
Pesan: Konfigurasi null atau kosong yang diberikan melalui com.apigee.sync.config
Alasan: Anda akan melihat pesan error ini saat properti konfigurasi Synchronizer tidak diberikan dengan benar.
Solusi: Pastikan semua properti konfigurasi diisi dengan nilai yang sesuai.
sync.ConfigFileNotFound
Alasan: Sinkronisasi ditetapkan untuk membaca properti konfigurasinya dari file, tetapi file tidak dapat dimuat
Solusi: pastikan file tersedia dan dapat diakses selama booting Synchronizer
sync.IncorrectSettings
Alasan: Satu atau beberapa properti konfigurasi yang diperlukan tidak ada dalam konfigurasi Synchronizer atau nilainya berada di luar rentang yang diharapkan. Error tersebut akan memiliki detail selengkapnya tentang properti yang menyebabkan masalah. Error ini sudah ada di parser untuk memastikan bahwa error setelan dan dapat terdeteksi bahkan sebelum layanan dimulai.
Tabel berikut mencantumkan beberapa kemungkinan error IncorrectSettings:
| Error | Apa yang salah |
|---|---|
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/retries numeric
instance is greater than the required maximum (maximum: 3, found:
20) |
Nilai yang diberikan ke kolom percobaan ulang di bagian controlPlane telah melampaui batas yang diizinkan |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/connectionTimeout
numeric instance is lower than the required minimum (minimum: 10,
found: 1) |
Nilai yang diberikan ke kolom connectionTimeout di bagian controlPlane lebih rendah dari yang diizinkan |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane object has
missing required properties
([\"contractProvider\"]) |
Bagian controlPlane tidak memiliki kolom wajib contractProvider |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/contractProvider
string \"http://\\uapi.apigee.com\" is not a valid
URI |
URI penyedia kontrak bukan URI yang valid |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments array is too
short: must have at least 1 elements but instance has 0
elements |
Array lingkungan harus memiliki minimal satu lingkungan |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"environmentName\"]) |
Environment pada indeks 0 tidak memiliki kolom wajib diisi environmentName |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"organizationName\"]) |
Environment pada indeks 0 tidak memiliki kolom wajib diisi organizationName |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0/pollInterval
numeric instance is lower than the required minimum (minimum: 60,
found: 6) |
Lingkungan pada indeks 0 memiliki interval polling yang berada di bawah batas yang diizinkan, yaitu 60 |
Solusi: Perbaiki setelan untuk menyertakan blok yang diperlukan
sync.ReplicationRootDoesNotExist
Alasan: Sinkronisasi disediakan dengan root replikasi yang tidak ada
Perbaikan: pastikan folder root yang diberikan ada dan dapat ditulis
sync.ReadOnlyReplicationRoot
Alasan: Sinkronisasi disediakan dengan root replikasi yang tidak memiliki izin tulis
Perbaikan: pastikan folder root yang diberikan ada dan dapat ditulis
sync.ReplicationRootNotADir
Alasan: Sinkronisasi disediakan dengan root replikasi yang kemungkinan merupakan file
Perbaikan: pastikan folder root yang diberikan ada dan dapat ditulis
sync.InvalidControlPlaneURL
Alasan: Synchronizer diberi URL konfigurasi yang kosong
Perbaikan: Pastikan folder root yang diberikan ada dan dapat ditulis
sync.InvalidControlPlaneSubscriptionURL
Alasan: Sinkronisasi disediakan dengan URL konfigurasi yang salah, tidak lengkap, atau kosong untuk pembuatan langganan.
Solusi: Perbaiki URL menjadi URL konfigurasi yang valid untuk pembuatan langganan pub/sub guna menangani sinyal dari bidang kontrol.
sync.InvalidControlPlaneUnsubscriptionURL
Alasan: Sinkronisasi diberikan URL konfigurasi yang salah, tidak lengkap, atau kosong untuk penghapusan langganan.
Solusi: Perbaiki URL menjadi URL konfigurasi yang valid untuk penghapusan langganan pub/sub guna menangani sinyal dari bidang kontrol.
sync.CannotCreateEnvironmentFolder
Alasan: Penyinkron mencoba membuat folder untuk mereplikasi QA lingkungan, tetapi tidak dapat membuat folder yang diperlukan
Solusi: pastikan root replikasi tidak memiliki jalur yang bertentangan dengan nama yang sama yang bersifat hanya baca dari file
sync.DuplicateEnvironmentEntries
Alasan: Lingkungan yang sama ditambahkan beberapa kali dalam konfigurasi.
Solusi: Setiap lingkungan hanya dapat ditentukan satu kali.
sync.DiskExceedsAllowedCapacity
Alasan: Disk penyimpanan yang diberikan sudah mencapai kapasitas batas yang diberikan melalui properti konfigurasi.
Solusi: Pastikan ada ruang disk yang cukup atau periksa apakah setelan penyimpanan dapat disesuaikan untuk menyediakan lebih banyak ruang disk.
sync.OwnershipClaimFailed
Alasan: Synchronizer mencoba mengklaim kepemilikan di folder lingkungan, tetapi gagal
Solusi: Setiap Synchronizer akan mencoba terlebih dahulu memastikan bahwa Synchronizer tersebut adalah satu-satunya penulis ke sistem file. Error menunjukkan jalur dan alasan kegagalan. Mengatasi akar penyebab
Error sinkronisasi selama runtime
Error Synchronizer berikut dapat terjadi selama runtime.
sync.replicators.PollReturnedError
Pesan terkait akan menyertakan status upstream. Berikut adalah status error
status 0
Alasan: Menunjukkan masalah konektivitas. Bidang pengelolaan tidak dapat dijangkau
Solusi: Pastikan detail bidang pengelolaan sudah benar dan contracts API dapat dijangkau
status 404
Alasan: Kemungkinan besar nama org/env tidak ditemukan di server
Solusi: Pastikan detail bidang pengelolaan sudah benar dan contracts API dapat dijangkau
status 401
Alasan: Kemungkinan besar kredensial yang diberikan tidak memiliki hak istimewa admin org.
Solusi: Pastikan kredensial management plane sudah benar dan contracts API dapat diakses
status 403
Alasan: Menunjukkan bahwa lingkungan yang di-polling tidak disiapkan sebagai lingkungan hybrid
Solusi: Pastikan organisasi memiliki tanda yang diperlukan "features.hybrid.enabled=true"
sync.OwnershipClaimedByOther
Alasan: Selama operasi, Sinkronisasi menemukan bahwa root file sedang diakses oleh instance Sinkronisasi lain. (Hal ini dapat terjadi saat sistem file dibagikan di antara Synchronizer.)
Solusi: Atasi masalah utama untuk memastikan tidak ada dua instance Synchronizer yang berbagi sistem file yang sama. Synchronizer akan menandai dirinya sendiri sebagai tidak berfungsi dan berada dalam posisi yang tidak dapat dipulihkan di sini. Hal ini juga akan memastikan bahwa Synchronizer lain yang mengakses root file yang sama akan diberi tahu tentang hal tersebut melalui file kepemilikannya
sync.DiskExceedsAllowedCapacity
Alasan: Selama operasi, Synchronizer menyadari bahwa penggunaan disk telah melampaui batas yang diizinkan.
Perbaikan: Pada tahap ini, Synchronizer akan membatalkan download apa pun dan mencoba operasi pembersihan file usang. Namun, hal ini dapat menjadi kondisi berulang dan satu-satunya cara untuk memulihkan sepenuhnya adalah dengan memastikan bahwa Sinkronisasi memiliki memori disk yang cukup untuk beroperasi.
Mendiagnosis kegagalan download kontrak
Jika Anda melihat "upstream contract poll" dalam pesan error, coba panggil contract API dan periksa detailnya, dengan username adalah nama pengguna Apigee Anda (alamat email Anda). Kontrak ini merepresentasikan seluruh kumpulan data yang didownload Synchronizer dari management plane.
curl https://api.enterprise.apigee.net/v1/organizations/org/environments/env/contracts/1.0 -u username