このトピックでは、ApsaraMQ for RabbitMQ クライアントからの AMQP 0-9-1 プロトコル呼び出しのリターンコードについて説明します。リターンメッセージとソリューションを使用して、エラーのトラブルシューティングを行うことができます。
リターンコード
|
リターンコード (reply-code) |
リターンメッセージ (reply-text) |
説明 |
ソリューション |
|
200 |
no route has mandatory |
メッセージを送信するために |
エクスチェンジのバインディングが正しく構成されていることを確認してください。 |
|
311 |
MessageBodyLengthExceeded |
メッセージサイズが制限を超えています。 |
送信するメッセージのサイズが ApsaraMQ for RabbitMQ の使用制限を超えないようにしてください。詳細については、「使用制限」をご参照ください。 |
|
320 |
ProtocolVersionMismatch |
プロトコルバージョンが正しくありません。AMQP 0-9-1 のみがサポートされています。 |
AMQP 0-9-1 プロトコルを使用していることを確認してください。 |
|
403 |
AccessDeniedByRamPolicy |
権限エラーが発生しました。 |
Resource Access Management (RAM) ユーザーに必要な権限が付与されていることを確認してください。詳細については、「RAM アクセスポリシー」をご参照ください。 |
|
404 |
ExchangeNotExist |
エクスチェンジが存在しません。 |
|
|
QueueNotExist |
キューが存在しません。 |
|
|
|
405 |
QueueExclusive |
現在のキューは排他キューです。 |
このキューは、作成した接続からのみ表示されます。他の接続からはアクセスできません。 |
|
406 |
QueueConsumerNameInvalid |
キューコンシューマー名が無効です。 |
コンシューマー名が正しく入力され、要件を満たしていることを確認してください。要件の詳細については、「使用制限」をご参照ください。 |
|
ExchangeNameEmpty |
エクスチェンジ名が空です。 |
エクスチェンジ名を入力してください。エクスチェンジが作成されていることを確認してください。要件の詳細については、「使用制限」をご参照ください。 |
|
|
QueueHasDiffField |
宣言されたキューのプロパティが、サーバー上の既存のキューのプロパティと異なります。 |
キュー宣言のパラメーター値を、既存のキューのプロパティと一致するように変更してください。詳細については、「QueueHasDiffField」をご参照ください。 |
|
|
BindingNameInvalid |
ルーティングキー名が無効です。 |
ルーティングキーが正しく入力され、要件を満たしていることを確認してください。要件の詳細については、「使用制限」をご参照ください。 |
|
|
ExchangeInBuilt |
組み込みエクスチェンジは作成できません。 |
エクスチェンジ名を変更してください。「amq.」で始まる名前のエクスチェンジはシステム組み込みであり、ユーザーは作成できません。 |
|
|
QueueNameInvalid |
キュー名が無効です。 |
キュー名が正しく入力され、要件を満たしていることを確認してください。要件の詳細については、「使用制限」をご参照ください。 |
|
|
MessageBodyEmpty |
メッセージ本文が空です。 |
メッセージのコンテンツを入力してください。 |
|
|
503 |
ExchangeTypeNotSupport[x-delayed-message] |
x-delayed-message エクスチェンジを作成する際に、パラメーターが正しく設定されていません。 |
エクスチェンジタイプと x-delay-type パラメーターが正しく設定されていることを確認してください。以下のコードは例を示しています。
|
|
504 |
ChannelNotFind |
メッセージがサーバーに送信されている間にチャンネルがクリアされました。 |
このエラーコードは、複数のプロセスが接続を共有し、頻繁に接続を作成およびクローズする場合に返されます。 Spring Boot 統合を使用しており、接続ファクトリが CONNECTION モードの場合、クライアントが頻繁に接続を作成およびクローズするのを防ぐために、 |
|
530 |
ExchangeHasDiffFields |
宣言されたエクスチェンジのプロパティが、サーバー上の既存のエクスチェンジのプロパティと異なります。 |
エクスチェンジ宣言のパラメーター値を、既存のエクスチェンジのプロパティと一致するように変更してください。詳細については、「ExchangeHasDiffFields」をご参照ください。 |
|
denied for too many requests |
メッセージの送受信におけるピーク TPS (Transactions Per Second) がインスタンスタイプ制限を超えています。リクエストはスロットルされます。 |
|
|
|
VhostNumExceeded |
単一インスタンス内の vhost 数が制限を超えています。 |
|
|
|
ExchangeNumExceeded |
単一 vhost 内のエクスチェンジ数が制限を超えています。 |
|
|
|
QueueNumExceeded |
単一インスタンス内のキュー数が制限を超えています。 |
|
|
|
VHostTotalBindingNumExceeded |
単一 vhost 内のバインディング数が制限を超えています。 |
|
|
|
ExchangeBindingNumExceeded |
単一エクスチェンジにアタッチされたキュー数が制限を超えています。 |
未使用のキューをデタッチしてください。 |
|
|
QueueConsumerNumExceeded |
単一キューのコンシューマー数が制限を超えています。 |
|
|
|
ChannelNumExceeded |
単一接続のチャンネル数が制限を超えています。 |
未使用のプロデューサーまたはコンシューマープロセスをシャットダウンしてください。 |
|
|
QueueConsumerAlreadyExist |
同じコンシューマータグを持つコンシューマーがすでにキューに存在します。 |
同じチャンネルで BasicConsume を呼び出す際に、異なる ConsumerTag 値を指定してください。 |
|
|
AccessAccountDataError |
指定されたユーザー名とパスワードでの認証に失敗しました。 |
|
|
|
ConnectionNumExceeded |
単一インスタンス用に作成された接続数が制限を超えています。 |
|
|
|
541 |
InternalError |
サーバー側で内部エラーが発生しました。 |
リターンメッセージに基づいてエラーの原因を特定し、チケットを送信し、ApsaraMQ for RabbitMQ テクニカルサポートにお問い合わせください。 |
リターンメッセージの例
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)
応答情報
|
パラメーター |
説明 |
例 |
|
reply-code |
リターンコードです。 |
404 |
|
reply-text |
リターンメッセージです。 |
ExchangeNotExist |
|
ReqId |
リクエスト ID です。 |
5FB4C999314635F952FCBFF6 |
|
ErrorHelp |
エラーのトラブルシューティングに役立つ情報です。これには以下が含まれます。
説明
BasicPublish API 呼び出しが失敗した場合、パフォーマンスを向上させ、メモリオーバーヘッドを削減するために、ErrorHelp は msgId のみを提供します。キーと値の構造は提供されません。msgId を使用してエラーのトラブルシューティングを行ってください。 |
[dstQueue=XXX_test_queue,srcExchange=Producer.ExchangeName,routingKey=XXX_test_bk,http://mrw.so/6rNqO8] |
|
class-id |
クラス ID です。これはオープンソース RabbitMQ と同じです。 |
50 |
|
method-id |
メソッド ID です。これはオープンソース RabbitMQ と同じです。 |
20 |