Topik ini menjelaskan kode balasan untuk panggilan protokol AMQP 0-9-1 dari klien ApsaraMQ for RabbitMQ. Anda dapat menggunakan pesan balasan dan solusi yang disediakan untuk memecahkan masalah kesalahan tersebut.
Kode balasan
|
Return code (reply-code) |
Return message (reply-text) |
Deskripsi |
Solusi |
|
200 |
no route has mandatory |
Saat Anda memanggil metode basicPublish untuk mengirim pesan dan mengatur parameter mandatory ke |
Pastikan binding untuk exchange dikonfigurasi dengan benar. |
|
311 |
MessageBodyLengthExceeded |
Ukuran pesan melebihi batas. |
Pastikan ukuran pesan yang Anda kirim tidak melebihi batas untuk ApsaraMQ for RabbitMQ. Untuk informasi selengkapnya, lihat Batas. |
|
320 |
ProtocolVersionMismatch |
Versi protokol salah. Hanya AMQP 0-9-1 yang didukung. |
Pastikan Anda menggunakan protokol AMQP 0-9-1. |
|
403 |
AccessDeniedByRamPolicy |
Terjadi kesalahan izin. |
Pastikan pengguna Resource Access Management (RAM) Anda telah diberikan izin yang diperlukan. Untuk informasi selengkapnya, lihat Kebijakan akses RAM. |
|
404 |
ExchangeNotExist |
Exchange tidak ada. |
|
|
QueueNotExist |
Antrian tidak ada. |
|
|
|
405 |
QueueExclusive |
Antrian saat ini merupakan antrian eksklusif. |
Antrian ini hanya terlihat oleh koneksi yang membuatnya. Anda tidak dapat mengaksesnya dari koneksi lain. |
|
406 |
QueueConsumerNameInvalid |
Nama konsumen antrian tidak valid. |
Pastikan nama konsumen dieja dengan benar dan memenuhi persyaratan. Untuk informasi selengkapnya tentang persyaratan, lihat Batas. |
|
ExchangeNameEmpty |
Nama exchange kosong. |
Masukkan nama exchange. Pastikan exchange telah dibuat. Untuk informasi selengkapnya tentang persyaratan, lihat Batas. |
|
|
QueueHasDiffField |
Properti antrian yang dideklarasikan berbeda dengan properti antrian yang ada di server. |
Ubah nilai parameter dalam deklarasi antrian Anda agar sesuai dengan properti antrian yang ada. Untuk informasi selengkapnya, lihat QueueHasDiffField. |
|
|
BindingNameInvalid |
Nama routing key tidak valid. |
Pastikan routing key dieja dengan benar dan memenuhi persyaratan. Untuk informasi selengkapnya tentang persyaratan, lihat Batas. |
|
|
ExchangeInBuilt |
Anda tidak dapat membuat exchange bawaan sistem. |
Ubah nama exchange. Exchange dengan nama yang diawali 'amq.' merupakan exchange bawaan sistem dan tidak dapat dibuat oleh pengguna. |
|
|
QueueNameInvalid |
Nama antrian tidak valid. |
Pastikan nama antrian dieja dengan benar dan memenuhi persyaratan. Untuk informasi selengkapnya tentang persyaratan, lihat Batas. |
|
|
MessageBodyEmpty |
Isi pesan kosong. |
Masukkan konten untuk pesan tersebut. |
|
|
503 |
ExchangeTypeNotSupport[x-delayed-message] |
Parameter diatur secara salah saat Anda membuat exchange x-delayed-message. |
Pastikan tipe exchange dan parameter x-delay-type diatur dengan benar. Kode berikut memberikan contoh:
|
|
504 |
ChannelNotFind |
Saluran dibersihkan saat paket dikirim ke server. |
Kode kesalahan ini dikembalikan jika beberapa proses berbagi koneksi dan sering membuat serta menutup koneksi. Jika Anda menggunakan integrasi Spring Boot dan connection factory berada dalam mode CONNECTION, sesuaikan |
|
530 |
ExchangeHasDiffFields |
Properti exchange yang dideklarasikan berbeda dengan properti exchange yang ada di server. |
Ubah nilai parameter dalam deklarasi exchange Anda agar sesuai dengan properti exchange yang ada. Untuk informasi selengkapnya, lihat ExchangeHasDiffFields. |
|
denied for too many requests |
Puncak Transactions Per Second (TPS) untuk mengirim dan menerima pesan melebihi batas tipe instans. Permintaan tersebut dibatasi kecepatannya (throttled). |
|
|
|
VhostNumExceeded |
Jumlah vhost dalam satu instans melebihi batas. |
|
|
|
ExchangeNumExceeded |
Jumlah exchange dalam satu vhost melebihi batas. |
|
|
|
QueueNumExceeded |
Jumlah antrian dalam satu instans melebihi batas. |
|
|
|
VHostTotalBindingNumExceeded |
Jumlah binding dalam satu vhost melebihi batas. |
|
|
|
ExchangeBindingNumExceeded |
Jumlah antrian yang terhubung ke satu exchange melebihi batas. |
Putuskan sambungan antrian yang tidak digunakan. |
|
|
QueueConsumerNumExceeded |
Jumlah konsumen untuk satu antrian melebihi batas. |
|
|
|
ChannelNumExceeded |
Jumlah channel untuk satu koneksi melebihi batas. |
Matikan proses produsen atau konsumen yang tidak digunakan. |
|
|
QueueConsumerAlreadyExist |
Konsumen dengan consumer tag yang sama sudah ada pada antrian tersebut. |
Tentukan nilai ConsumerTag yang berbeda saat Anda memanggil BasicConsume pada channel yang sama. |
|
|
AccessAccountDataError |
Otentikasi dengan username dan password yang diberikan gagal. |
|
|
|
ConnectionNumExceeded |
Jumlah koneksi yang dibuat untuk satu instans melebihi batas. |
|
|
|
541 |
InternalError |
Terjadi kesalahan internal di sisi server. |
Identifikasi penyebab kesalahan berdasarkan pesan balasan, lalu kirim tiket untuk menghubungi dukungan teknis ApsaraMQ for RabbitMQ. |
Contoh pesan balasan
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>
(reply-code=404, reply-text=ExchangeNotExist, ReqId:5FB4C999314635F952FCBFF6, ErrorHelp[dstQueue=XXX_test_queue,
srcExchange=Producer.ExchangeName,routingKey=XXX_test_bk, http://mrw.so/6rNqO8], class-id=50, method-id=20)
at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:516)
at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:346)
at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:182)
at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:114)
at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:672)
at com.rabbitmq.client.impl.AMQConnection.access$300(AMQConnection.java:48)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:599)
at java.lang.Thread.run(Thread.java:748)
Informasi respons
|
Parameter |
Deskripsi |
Contoh |
|
reply-code |
Kode balasan. |
404 |
|
reply-text |
Pesan balasan. |
ExchangeNotExist |
|
ReqId |
ID permintaan. |
5FB4C999314635F952FCBFF6 |
|
ErrorHelp |
Informasi untuk membantu memecahkan masalah kesalahan. Ini mencakup:
Catatan
Saat panggilan API BasicPublish gagal, ErrorHelp hanya menyediakan msgId untuk meningkatkan performa dan mengurangi overhead memori. Struktur pasangan kunci-nilai tidak disediakan. Gunakan msgId untuk memecahkan masalah kesalahan. |
[dstQueue=XXX_test_queue,srcExchange=Producer.ExchangeName,routingKey=XXX_test_bk,http://mrw.so/6rNqO8] |
|
class-id |
ID kelas. Sama seperti pada open source RabbitMQ. |
50 |
|
method-id |
ID metode. Sama seperti pada open source RabbitMQ. |
20 |