全部产品
Search
文档中心

ApsaraMQ for RabbitMQ:Kode kesalahan

更新时间:Mar 08, 2026

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 true, jika exchange tidak dapat menemukan antrian yang sesuai berdasarkan tipe exchange dan routing key pesan, broker akan memanggil metode basic.return untuk mengembalikan pesan tersebut ke produsen.

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.

  • Pastikan exchange yang ditentukan telah dibuat.

  • Pastikan nama exchange dieja dengan benar.

QueueNotExist

Antrian tidak ada.

  • Pastikan antrian yang ditentukan telah dibuat.

  • Pastikan nama antrian dieja dengan benar.

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:

  • arguments.put("x-delayed-type", "Nilainya hanya bisa direct, topic, fanout, atau headers");

  • channel.exchangeDeclare("${exchangeName}", "Nilainya hanya bisa x-delayed-message", true, false, arguments);

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 spring.rabbitmq.cache.connection.size (jumlah koneksi yang di-cache) untuk mencegah klien sering membuat dan menutup koneksi.

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).

  • Gunakan traffic shaping untuk memastikan TPS pesan tidak melebihi batas tipe instans. Untuk informasi selengkapnya, lihat Praktik terbaik untuk pembatasan kecepatan instans.

  • Tingkatkan tipe instans untuk meningkatkan batas TPS puncak. Untuk informasi selengkapnya tentang batas, lihat Batas.

VhostNumExceeded

Jumlah vhost dalam satu instans melebihi batas.

  • Hapus vhost yang tidak digunakan.

  • Tingkatkan tipe instans untuk meningkatkan batas vhost. Untuk informasi selengkapnya tentang batas, lihat Batas.

ExchangeNumExceeded

Jumlah exchange dalam satu vhost melebihi batas.

  • Anda dapat menghapus Vhost yang tidak digunakan.

  • Tingkatkan tipe instans untuk meningkatkan batas exchange. Untuk informasi selengkapnya tentang batas, lihat 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.

  • Pastikan username dan password statis benar.

  • Pastikan username dan password statis tersebut milik instans saat ini.

  • Pastikan ID AccessKey dan rahasia AccessKey yang digunakan untuk membuat username dan password statis tersebut benar.

ConnectionNumExceeded

Jumlah koneksi yang dibuat untuk satu instans melebihi batas.

  • Gunakan kembali koneksi. Jangan buat koneksi baru untuk setiap permintaan.

  • Tingkatkan tipe instans untuk meningkatkan batas koneksi. Untuk informasi selengkapnya tentang batas, lihat 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:

  • Metadata terkait saat kesalahan terjadi.

  • Tautan ke dokumen referensi untuk pesan balasan metode protokol AMQP.

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