すべてのプロダクト
Search
ドキュメントセンター

PolarDB:エラーコード

最終更新日:Mar 29, 2026

このページでは、PolarDB-X 1.0 によって返される一般的なエラーコードと、その解決方法を一覧で示します。

エラーコードの範囲

範囲カテゴリ
TDDL-1094、TDDL-1305セッション管理
TDDL-4006–4007テーブルメタデータ
TDDL-4100–4108バックエンドインスタンス接続
TDDL-4200–4203データベースシャードの可用性とクエリタイムアウト
TDDL-4400–4408シーケンス
TDDL-4500–4518SQL の解析、最適化、検証
TDDL-4600–4617SQL の実行とトランザクション
TDDL-4636、TDDL-4642DDL
TDDL-4800–4802トランザクション ID
TDDL-4994、TDDL-4998リクエストの速度制限とサポートされていない機能
TDDL-5001–5008分散トランザクション

TDDL-4006 ERR_TABLE_NOT_EXIST

指定されたテーブルが存在しません。

ERR-CODE: [TDDL-4006][ERR_TABLE_NOT_EXIST] Table '*****' doesn't exist.

テーブルが PolarDB-X 1.0 に存在しないか、PolarDB-X 1.0 がテーブルのメタデータの読み込みに失敗しました。テーブルが PolarDB-X 1.0 に存在することを確認してください。

TDDL-4007 ERR_CANNOT_FETCH_TABLE_META

PolarDB-X 1.0 がテーブルのメタデータの読み込みに失敗しました。

ERR-CODE: [TDDL-4007][ERR_CANNOT_FETCH_TABLE_META] Table '*****' metadata
cannot be fetched because Table '*****.*****' doesn't exist.

考えられる原因:

  • テーブルが作成されていません。

  • データベースシャード内のテーブルが手動で削除または名前変更されました。

  • PolarDB-X 1.0 がバックエンドの ApsaraDB RDS for MySQL インスタンスに接続できません。

テーブルが存在するかどうかを確認し、すべてのバックエンドの ApsaraDB RDS for MySQL インスタンスが正常に実行されていることを確認してください。テーブルが手動で削除または名前変更された場合は、ApsaraDB RDS for MySQL のデータ復元機能を使用してデータを回復してください。

TDDL-4100 ERR_ATOM_NOT_AVALILABLE

バックエンドの ApsaraDB RDS for MySQL インスタンスが利用できません。

ERR-CODE: [TDDL-4100][ERR_ATOM_NOT_AVALILABLE] Atom : ***** isNotAvailable

PolarDB-X 1.0 がバックエンドの ApsaraDB RDS for MySQL インスタンスが異常であると検出すると、そのインスタンスへのアクセスを一時的にブロックし、このエラーを返します。すべてのバックエンドの ApsaraDB RDS for MySQL インスタンスの状態を確認し、異常なインスタンスを復旧してください。

インスタンスが回復すると、PolarDB-X 1.0 は自動的にそのインスタンスへのアクセスを復元します。

TDDL-4101 ERR_ATOM_GET_CONNECTION_FAILED_UNKNOWN_REASON

PolarDB-X 1.0 が不明な理由でバックエンドの ApsaraDB RDS for MySQL インスタンスへの接続に失敗しました。

ERR-CODE: [TDDL-4101][ERR_ATOM_GET_CONNECTION_FAILED_UNKNOWN_REASON] Get
connection for db '*****' from pool failed. AppName:*****, Env:*****,
UnitName:null. Message from pool: wait millis 5000, active 0, maxActive 5.
You should look for the following logs which contains the real reason.

PolarDB-X 1.0 はバックエンド接続を非同期で確立します。このエラーは、接続試行がタイムアウトし、非同期タスクから特定のエラーが報告されない場合に返されます。ほとんどの場合、バックエンドの ApsaraDB RDS for MySQL インスタンスが異常な状態にあります。インスタンスの状態を確認して、根本原因を特定してください。

TDDL-4102 ERR_ATOM_GET_CONNECTION_FAILED_KNOWN_REASON

PolarDB-X 1.0 がバックエンドの ApsaraDB RDS for MySQL インスタンスへの接続に失敗しました。エラーメッセージには具体的な理由が含まれています。

ERR-CODE: [TDDL-4102][ERR_ATOM_GET_CONNECTION_FAILED_KNOWN_REASON] Get
connection for db '*****' failed because wait millis 5000, active 0,
maxActive 5

考えられる原因:

  • バックエンドインスタンスへの接続数が上限に達しました。

  • 接続試行がタイムアウトしました。

  • 接続が拒否されました。

エラーメッセージで具体的な理由を確認し、それに応じて解決してください。

TDDL-4103 ERR_ATOM_CONNECTION_POOL_FULL

バックエンドのコネクションプールがいっぱいです。

ERR-CODE: [TDDL-4103][ERR_ATOM_CONNECTION_POOL_FULL] Pool of DB '*****' is
full. Message from pool: wait millis 5000, active 5, maxActive 5.
AppName:*****, Env:*****, UnitName:null.

考えられる原因:

  • スロー SQL が長時間接続を保持し、利用可能な接続が不足しています。

  • アプリケーションがデータベース接続を閉じていないため、接続リークが発生しています。

  • 多数のデータベース間クエリが並行して実行され、それぞれが複数の接続を消費しています。

解決方法:

  • Spring JDBC や MyBatis などのコネクションプーリングフレームワークを使用してください。

  • パフォーマンス分析に基づいてスロー SQL を最適化してください。

  • PolarDB-X 1.0 の読み書き分離機能を使用して、データベース間クエリを読み取り専用ノードにルーティングしてください。

  • ApsaraDB RDS for MySQL インスタンスのスペックをアップグレードして、バックエンドの処理能力を向上させてください。

TDDL-4104 ERR_ATOM_CREATE_CONNECTION_TOO_SLOW

バックエンドの ApsaraDB RDS for MySQL インスタンスへの接続がタイムアウトしました。

ERR-CODE: [TDDL-4104][ERR_ATOM_CREATE_CONNECTION_TOO_SLOW] Get connection
for db '*****' from pool timeout. AppName:*****, Env:*****,
UnitName:null. Message from pool: wait millis 5000, active 3, maxActive 5.

これは、短時間に接続リクエストが集中した場合や、単一の接続確立に時間がかかりすぎる場合に発生します。バックエンドの ApsaraDB RDS for MySQL インスタンスは高負荷状態にある可能性が高いです。PolarDB-X 1.0 の読み書き分離機能を有効にするか、ApsaraDB RDS for MySQL インスタンスのスペックをアップグレードしてください。

TDDL-4105 ERR_ATOM_ACCESS_DENIED

バックエンドの ApsaraDB RDS for MySQL インスタンスが PolarDB-X 1.0 からの接続を拒否しました。

ERR-CODE: [TDDL-4105][ERR_ATOM_ACCESS_DENIED] DB '*****' Access denied for
user '*****'@'*****'. AppName:*****, Env:*****, UnitName:null. Please
contact DBA to check.

このエラーは、PolarDB-X 1.0 がバックエンドインスタンス用に自動生成したユーザー名またはパスワードが手動で変更された場合に発生します。また、バックエンドの ApsaraDB RDS for MySQL インスタンスが期限切れになった場合や、アカウントに支払い遅延がある場合にも発生します。インスタンスを更新するか、支払いを完了してアクセスを復元してください。

TDDL-4106 ERR_ATOM_DB_DOWN

PolarDB-X 1.0 がバックエンドの ApsaraDB RDS for MySQL インスタンスに接続できません。

ERR-CODE: [TDDL-4106][ERR_ATOM_DB_DOWN] DB '*****' cannot be connected.
AppName:*****, Env:*****, UnitName:null. It seems a very real possibility
that this DB IS DOWN. Please contact DBA to check.

接続試行がタイムアウトしたか、応答がなかった場合、通常はバックエンドの ApsaraDB RDS for MySQL インスタンスに障害が発生したことを示します。インスタンスの状態を確認し、復旧してください。

TDDL-4108 ERR_VARIABLE_CAN_NOT_SET_TO_NULL_FOR_NOW

MySQL 変数を NULL に設定できません。

ERR-CODE: [TDDL-4108][ERR_VARIABLE_CAN_NOT_SET_TO_NULL_FOR_NOW] System
variable ***** can't set to null for now;

一部の MySQL システム変数は、値として NULL を受け入れません。SET 文がそのような変数に NULL を割り当てようとすると、PolarDB-X 1.0 はこのエラーを返します。MySQL サーバーシステム変数のドキュメントで変数の有効な値を確認し、有効な値を割り当ててください。

TDDL-4200 ERR_GROUP_NOT_AVALILABLE

PolarDB-X 1.0 のデータベースシャードが利用できません。

ERR-CODE: [TDDL-4200][ERR_GROUP_NOT_AVALILABLE] The TDDL Group ***** is
running in fail-fast status, caused by this SQL:***** which threw a fatal
exception as *****.

データベースシャードのすべてのバックエンド ApsaraDB RDS for MySQL インスタンスにアクセスできなくなると、PolarDB-X 1.0 はシャードを fail-fast 状態に設定します。エラー情報に基づいてバックエンドインスタンスの障害をトラブルシューティングしてください。インスタンスが回復すると、PolarDB-X 1.0 は自動的に fail-fast 状態を終了します。

TDDL-4201 ERR_GROUP_NO_ATOM_AVALILABLE

データベースシャードで利用可能な ApsaraDB RDS for MySQL インスタンスがありません。

ERR-CODE: [TDDL-4201][ERR_GROUP_NO_ATOM_AVALILABLE] All weights of DBs in
Group '*****' is 0. Weights is: *****.

シャードのすべてのバックエンドインスタンスが利用できないか、シャードが fail-fast 状態にあります。すべてのバックエンド ApsaraDB RDS for MySQL インスタンスの状態を確認し、障害が発生しているインスタンスを復旧してください。

TDDL-4202 ERR_SQL_QUERY_TIMEOUT

バックエンドの ApsaraDB RDS for MySQL インスタンスでクエリがタイムアウトしました。

ERR-CODE: [TDDL-4202][ERR_SQL_QUERY_TIMEOUT] Slow query leads to a timeout
exception, please contact DBA to check slow sql. SocketTimout:*** ms,
Atom:*****, Group:*****, AppName:*****, Env:*****, UnitName:null.

SQL ステートメントの実行時間が PolarDB-X 1.0 インスタンスの socketTimeout 値 (デフォルト:900 秒) を超えました。SQL ステートメントを最適化し、バックエンドインスタンスに適切なインデックスを追加してクエリのパフォーマンスを向上させてください。

最適化後もエラーが続く場合は、ヒントを使用して特定のステートメントに一時的なタイムアウトを設定します。

/*TDDL:SOCKET_TIMEOUT=900000*/ SELECT * FROM dual;

SOCKET_TIMEOUT の値はミリ秒単位です。詳細については、「SQL ステートメントのカスタムタイムアウト期間の指定」をご参照ください。

TDDL-4203 ERR_SQL_QUERY_MERGE_TIMEOUT

分散クエリが結果のマージ中にタイムアウトしました。

ERR-CODE: [TDDL-4203][ERR_SQL_QUERY_MERGE_TIMEOUT] Slow sql query leads to
a timeout exception during merging results, please optimize the slow sql.
The the default timeout is *** ms. DB is *****

クエリが複数のデータベースシャードにまたがってデータをスキャンし、デフォルトのタイムアウトである 900 秒を超えました。クエリを最適化するには、次の方法があります。

  • WHERE 句にシャードキーを含めて、実行を特定のシャードに限定します。

  • バックエンドの ApsaraDB RDS for MySQL インスタンスに適切なインデックスを追加します。

  • データベース間の JOIN クエリや結果の再ソートなど、コストのかかる分散操作を排除します。

エラーが続く場合は、ヒントを使用して一時的なタイムアウトを設定します。

/*TDDL:SOCKET_TIMEOUT=900000*/ SELECT * FROM dual;

SOCKET_TIMEOUT の値はミリ秒単位です。詳細については、「SQL ステートメントのカスタムタイムアウト期間の指定」をご参照ください。

TDDL-4400 ERR_SEQUENCE

シーケンスの処理に失敗しました。

ERR-CODE: [TDDL-4400][ERR_SEQUENCE] Sequence : All dataSource faild to get value!

PolarDB-X 1.0 がシーケンスの処理に失敗しました。具体的なエラーメッセージは Sequence : の後に続きます。これは通常、バックエンドの ApsaraDB RDS for MySQL インスタンスの障害により、シーケンス関連のテーブルにアクセスできなくなったことを意味します。すべてのバックエンドインスタンスの状態を確認してください。

TDDL-4401 ERR_MISS_SEQUENCE

指定されたシーケンスが存在しません。

ERR-CODE: [TDDL-4401][ERR_MISS_SEQUENCE] Sequence '*****' is not found

SHOW SEQUENCES を実行して PolarDB-X 1.0 のすべてのシーケンスを一覧表示し、シーケンス名を確認してください。シーケンスが存在しない場合は、作成してください。

CREATE SEQUENCE <sequence_name> [ START WITH <value> ]
[ INCREMENT BY <value> ] [ MAXVALUE <value> ]
[ CYCLE | NOCYCLE ]

詳細については、「シーケンス」をご参照ください。

TDDL-4403 ERR_MISS_SEQUENCE_TABLE_ON_DEFAULT_DB

シーケンステーブルがデフォルトのデータベースに存在しません。

ERR-CODE: [TDDL-4403][ERR_MISS_SEQUENCE_TABLE_ON_DEFAULT_DB] Sequence table
is not in default db.

sequence または sequence_opt テーブルがバックエンドデータベースに見つかりません。

TDDL-4404 ERR_SEQUENCE_TABLE_META

シーケンステーブルのスキーマが無効です。

ERR-CODE: [TDDL-4404][ERR_SEQUENCE_TABLE_META] the meta of sequence table
is error, some columns missed

sequence または sequence_opt テーブルに必要な列がありません。

TDDL-4405 ERR_INIT_SEQUENCE_FROM_DB

シーケンスの初期化に失敗しました。

ERR-CODE: [TDDL-4405][ERR_INIT_SEQUENCE_FROM_DB] init sequence manager
error: *****

PolarDB-X 1.0 がシーケンスの初期化に失敗しました。具体的なエラーは init sequence manager error: の後に続きます。すべてのバックエンド ApsaraDB RDS for MySQL インスタンスの状態を確認してください。

TDDL-4407 ERR_OTHER_WHEN_BUILD_SEQUENCE

シーケンステーブルにアクセスできません。

ERR-CODE: [TDDL-4407][ERR_OTHER_WHEN_BUILD_SEQUENCE] error when build
sequence: *****

sequence または sequence_opt テーブルへのアクセス中にエラーが発生しました。具体的なエラーは error when build sequence: の後に続きます。すべてのバックエンド ApsaraDB RDS for MySQL インスタンスの状態を確認してください。

DDL-4408 ERR_SEQUENCE_NEXT_VALUE

シーケンスから次の値の取得に失敗しました。

ERR-CODE: [TDDL-4408][ERR_SEQUENCE_NEXT_VALUE] error when get sequence's
next value, sequence is: *****, error: *****

このエラーは、PolarDB-X 1.0 の自動インクリメント主キーまたは <sequence_name>.NEXTVAL 構文を介してシーケンス値を取得する際に発生します。具体的なエラーは error: の後に続きます。ほとんどの場合、バックエンドの ApsaraDB RDS for MySQL インスタンスに障害が発生したか、過剰な負荷がかかっています。すべてのバックエンドインスタンスの状態とワークロードを確認してください。

TDDL-4500 ERR_PARSER

SQL ステートメントを解析できませんでした。

ERR-CODE: [TDDL-4500][ERR_PARSER] not support statement: '*****'

PolarDB-X 1.0 は SQL-92 標準構文と MySQL 互換の拡張機能をサポートしています。ステートメントが PolarDB-X 1.0 でサポートされている SQL 構文と MySQL 仕様に準拠しているか確認してください。参考として、「SQL の制限事項」および標準 SQL 構文リファレンスをご参照ください。

TDDL-4501 ERR_OPTIMIZER

オプティマイザーが SQL ステートメントの処理に失敗しました。

ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by: Unknown column
'*****' in 'order clause'

SQL オプティマイザーは、ステートメントを内部の構文ツリーに変換します。ステートメント内の論理エラーがこの変換を妨げます。具体的なエラーは optimize error by: の後に続きます。エラーの説明に基づいてステートメントを修正してください。

TDDL-4502 ERR_OPTIMIZER_MISS_ORDER_FUNCTION_IN_SELECT

ORDER BY 句の関数によって返される列が SELECT 句にありません。

ERR-CODE: [TDDL-4502][ERR_OPTIMIZER_MISS_ORDER_FUNCTION_IN_SELECT] Syntax
Error: orderBy/GroupBy Column ***** is not existed in select clause

PolarDB-X 1.0 では、ORDER BY 句に列を返す関数 (RAND() など) が含まれている場合、それらの列も SELECT 句に表示される必要があります。不足している列を SELECT 句に追加してください。

TDDL-4504 ERR_OPTIMIZER_SELF_CROSS_JOIN

自己結合クエリに必要なシャードキー条件がありません。

ERR-CODE: [TDDL-4504][ERR_OPTIMIZER_SELF_CROSS_JOIN] self cross join case,
add shard column filter on right table

自己結合クエリの場合、WHERE 句には左側テーブルと右側テーブルの両方のシャードキーを含める必要があります。両方のシャードキーを WHERE 句に追加してください。

TDDL-4506 ERR_MODIFY_SHARD_COLUMN

シャードキーは UPDATE で更新できません。

ERR-CODE: [TDDL-4506][ERR_MODIFY_SHARD_COLUMN] Column '*****' is a sharding
key of table '*****', which is forbidden to be modified.

UPDATE でシャードキーを更新すると、シャード間でデータが移動しますが、PolarDB-X 1.0 はこれをアトミックに実行できません。同じ結果を得るには、DELETE の後に INSERT を使用してください。

TDDL-4508 ERR_OPTIMIZER_NOT_ALLOWED_SORT_MERGE_JOIN

等価な結合条件がないため、ソートマージ結合操作を実行できません。

ERR-CODE: [TDDL-4508][ERR_OPTIMIZER_NOT_ALLOWED_SORT_MERGE_JOIN] sort merge
join is not allowed when missing equivalent filter

JOIN クエリ内のテーブルが異なる ApsaraDB RDS for MySQL インスタンスにある場合、PolarDB-X 1.0 はソートマージ結合アルゴリズムを使用します。これには、左側テーブルと右側テーブルの両方に等価な条件が必要です。両方のテーブルに一致する JOIN または WHERE 条件を追加してください。

TDDL-4509 ERR_OPTIMIZER_ERROR_HINT

ヒントの構文が無効です。

ERR-CODE: [TDDL-4509][ERR_OPTIMIZER_ERROR_HINT] Hint Syntax Error:
unexpected operation: *****.

PolarDB-X 1.0 は SQL ステートメント内のヒントを解析できません。正しいヒントの構文については、「ヒントの概要」をご参照ください。

TDDL-4510 ERR_CONTAINS_NO_SHARDING_KEY

SQL ステートメントに必要なシャードキーがありません。

ERR-CODE: [TDDL-4510][ERR_CONTAINS_NO_SHARDING_KEY] Your SQL contains NO
SHARDING KEY '*****' for table '*****', which is not allowed in DEFAULT.

テーブルの全表スキャン機能が無効になっている場合、すべてのクエリは WHERE 句にシャードキーを含める必要があります。PolarDB-X 1.0 がテーブルを作成する際、全表スキャンはデフォルトで有効になっています。手動で無効にした場合は、テーブルにアクセスするすべてのクエリにシャードキーを含めてください。

TDDL-4511 ERR_INSERT_CONTAINS_NO_SHARDING_KEY

INSERT 文にシャードキーがありません。

ERR-CODE: [TDDL-4511][ERR_INSERT_CONTAINS_NO_SHARDING_KEY] Your INSERT SQL
contains NO SHARDING KEY '*****' for table '*****'.

シャード化されたテーブルにデータを挿入する場合、シャードキーが自動インクリメント主キーでない限り、INSERT 文にはシャードキーを含める必要があります。INSERT 文にシャードキーを追加してください。

TDDL-4515 ERR_CONNECTION_CHARSET_NOT_MATCH

接続文字セットが、ステートメントで使用されている文字をサポートしていません。

ERR-CODE: [TDDL-4515][ERR_CONNECTION_CHARSET_NOT_MATCH] Caused by MySQL's
character_set_connection doesn't match your input charset. Partition DDL can
only take ASCII or chinese column name. If you want use chinese table or
column name, Make sure MySQL connection's charset support chinese character.
Use "set names xxx" to set correct charset.

PolarDB-X 1.0 は、テーブル名と列名に中国語文字をサポートしています。このエラーは、character_set_connection が中国語文字をサポートしない文字セット (例:latin1) に設定されている場合に発生します。

現在の文字セットを確認します。

SHOW VARIABLES LIKE 'character_set_connection';

中国語文字をサポートする文字セットに切り替えます。

SET NAMES <charset>;

Java Database Connectivity (JDBC) 経由で接続する場合は、代わりに接続文字列の characterEncoding パラメーターを設定してください。

TDDL-4516 ERR_TRUNCATED_DOUBLE_VALUE_OVERFLOW

浮動小数点数から整数への変換でオーバーフローが発生しました。

ERR-CODE: [TDDL-4516][ERR_TRUNCATED_DOUBLE_VALUE_OVERFLOW] Truncated
incorrect DOUBLE value '*****' over column[*****]'s value range.

浮動小数点数を整数に変換した結果が、ターゲット列の有効範囲外になりました。影響を受ける列のデータ型と、SQL ステートメントの入力パラメーターを確認してください。

TDDL-4517 ERR_MODIFY_SYSTEM_TABLE

システムテーブルは変更できません。

ERR-CODE: [TDDL-4517][ERR_MODIFY_SYSTEM_TABLE] Table '*****' is PolarDB-XSYSTEM
TABLE, which is forbidden to be modified.

PolarDB-X 1.0 は、以下のシステムテーブルを予約しており、変更できません:sequencesequence_opttxc_undo_log、および __DRDS__SYSTEM__LOCK__。ビジネスデータ用のテーブルを作成する際には、これらの名前を使用しないでください。

TDDL-4518 ERR_VALIDATE

メタデータの検証に失敗しました。

ERR-CODE: [TDDL-4518][ERR_VALIDATE] Object 'optest1' not found

コンピュートノードが SQL ステートメントを受け取ると、既存のメタデータに対してステートメントを検証します。このエラーは、参照されているテーブルまたは列が保存されているメタデータと一致しないことを意味します。ステートメント内のテーブル名と列名が正しいことを確認してください。

TDDL-4600 ERR_FUNCTION

関数呼び出しに失敗しました。

ERR-CODE: [TDDL-4600][ERR_FUNCTION] function compute error by Incorrect
parameter count in the call to native function '*****'

SQL ステートメントが無効な構文を使用しているか、関数に無効なパラメーターを渡しています。パラメーターの数とデータ型が関数の要件と一致していることを確認してください。

TDDL-4601 ERR_EXECUTOR

SQL の実行中に予期しないエラーが発生しました。

ERR-CODE: [TDDL-4601][ERR_EXECUTOR] only one column is supported in
distinct aggregate

ほとんどの場合、バックエンドの ApsaraDB RDS for MySQL インスタンスの異常がこのエラーの原因です。すべてのバックエンドインスタンスの状態を確認してください。

TDDL-4602 ERR_CONVERTOR

データ型の変換に失敗しました。

ERR-CODE: [TDDL-4602][ERR_CONVERTOR] convertor error by Unsupported convert:
[*****]

PolarDB-X 1.0 は SQL の実行中にデータ型を変換できませんでした。SQL ステートメントが暗黙の型変換に依存しているかどうかを確認し、代わりに同じ型の明示的な値を使用してください。

TDDL-4603 ERR_ACCROSS_DB_TRANSACTION

現在のトランザクションポリシーでは、データベース間のトランザクションはサポートされていません。

ERR-CODE: [TDDL-4603][ERR_ACCROSS_DB_TRANSACTION] Transaction accross db is
not supported in current transaction policy, transaction node is: {0}, but
this sql execute on: *****.

PolarDB-X 1.0 は単一データベースのトランザクションのみをサポートしています。トランザクション内のすべての SQL ステートメントは、同じ ApsaraDB RDS for MySQL データベースシャードにルーティングされる必要があります。トランザクション内のすべてのステートメントが同じシャードにルーティングされるように、転送ルールを確認してください。

TDDL-4604 ERR_CONCURRENT_TRANSACTION

ネストされたトランザクションはサポートされていません。

ERR-CODE: [TDDL-4604][ERR_CONCURRENT_TRANSACTION] Concurrent query is not
supported on transaction group, transaction group is: {0}.

PolarDB-X 1.0 はネストされたトランザクションをサポートしていません。同じ接続で複数のトランザクションを同時に開始すると、このエラーがトリガーされます。ネストされたトランザクションを防ぐために、アプリケーション層でトランザクション管理をフレームワークに抽象化してください。

TDDL-4606 ERR_QUERY_CANCLED

SQL ステートメントがキャンセルされました。

ERR-CODE: [TDDL-4606][ERR_QUERY_CANCLED] Getting connection is not allowed
when query has been cancled, group is *****

KILL 文が実行中の SQL ステートメントをキャンセルしました。このエラーが頻繁に発生する場合は、クライアントまたはアプリケーションが KILL 文を発行しているかどうかを確認してください。

TDDL-4607 ERR_INSERT_WHEN_UPDATE

シャードキーに対する UPDATE を置き換える内部の DELETE および INSERT 操作が失敗しました。

ERR-CODE: [TDDL-4607][ERR_INSERT_WHEN_UPDATE] Insert new values error,
table is: *****, old Values: *****, new Values: *****

シャードキー更新機能が有効になっている場合、PolarDB-X 1.0 はシャードキーの UPDATE 文を DELETE および INSERT 操作に書き換えます。ほとんどの場合、このエラーはバックエンドの ApsaraDB RDS for MySQL インスタンスに障害が発生したことを意味します。すべてのバックエンドインスタンスの状態を確認してください。

TDDL-4610 ERR_CONNECTION_CLOSED

接続が閉じられています。

ERR-CODE: [TDDL-4610][ERR_CONNECTION_CLOSED] connection has been closed

トランザクション内のステートメントが失敗するか、KILL 文によってキャンセルされると、PolarDB-X 1.0 は接続を閉じます。同じ接続での後続のステートメントは、このエラーを返します。接続を閉じて、新しい接続を開いてください。

TDDL-4636 ERR_DDL_JOB_ERROR

DDL 文が失敗しました。

ERR-CODE: [PXC-4636][ERR_DDL_JOB_ERROR] xxxx

トラブルシューティングの手順については、「DDL 例外の処理」をご参照ください。

TDDL-4642 ERR_UNKNOWN_TABLE

テーブルがデータベースに存在しません。

ERR-CODE: [PXC-4642][ERR_UNKNOWN_TABLE] Unknown table XX.XX

現在のデータベースにテーブルが存在することを確認してください。

TDDL-1305 ERR_UNKNOWN_SAVEPOINT

指定されたセーブポイントが存在しません。

ERR-CODE: [TDDL-1305][ERR_UNKNOWN_SAVEPOINT] SAVEPOINT ***** does not exist

このエラーは、ROLLBACK TO SAVEPOINT または RELEASE SAVEPOINT 文が、作成されていないセーブポイントを参照した場合に返されます。SAVEPOINT 文で使用されているセーブポイント名を確認してください。

TDDL-1094 ERR_UNKNOWN_THREAD_ID

KILL 文のセッション ID が存在しません。

ERR-CODE: [TDDL-1094][ERR_UNKNOWN_THREAD_ID] Unknown thread id: *****

指定されたセッション ID が存在しないか、SQL ステートメントがすでに終了しています。SHOW PROCESSLIST を実行してターゲットステートメントの現在のセッション ID を取得し、その ID を KILL 文で使用してください。

TDDL-4612 ERR_CHECK_SQL_PRIV

SQL ステートメントを実行するための権限が不十分です。

ERR-CODE: [TDDL-4612][ERR_CHECK_SQL_PRIV] check user ***** on db *****
sql privileges failed.

PolarDB-X 1.0 は MySQL と同様のアカウントおよび権限システムを使用しています。ステートメントの実行に使用されたアカウントには、必要な権限がありません。PolarDB-X 1.0 データベースに対するアカウントの権限を確認し、PolarDB-X 1.0 コンソールで必要な権限を付与してください。

TDDL-4613 ERR_INSERT_SELECT

INSERT ... SELECT 文が失敗しました。

ERR-CODE: [TDDL-4613][ERR_INSERT_SELECT] insert error, table is: *****,
values: *****

PolarDB-X 1.0 は、データベース間の INSERT ... SELECT 文を、個別の SELECT とバッチ INSERT 操作に分割します。ほとんどの場合、このエラーはバックエンドの ApsaraDB RDS for MySQL インスタンスに障害が発生したことを意味します。すべてのバックエンドインスタンスの状態を確認してください。

TDDL-4614 ERR_EXECUTE_ON_MYSQL

PolarDB-X 1.0 がバックエンドの ApsaraDB RDS for MySQL インスタンスで SQL ステートメントを実行したときにエラーが発生しました。

ERR-CODE: [TDDL-4614][ERR_EXECUTE_ON_MYSQL] Error occurs when execute on
GROUP '*****': Duplicate entry '*****' for key 'PRIMARY'

エラーメッセージの末尾には、バックエンドインスタンスから直接返されたエラーが含まれています。一般的なバックエンドエラーは次のとおりです。

バックエンドエラー意味
Duplicate entry '*****' for key 'PRIMARY'テーブルへの書き込み時にプライマリキーの競合が発生しました。
The table '*****' is fullApsaraDB RDS for MySQL が使用する一時テーブルがいっぱいです。一時テーブルのサイズを変更するか、SQL ステートメントを最適化してください。
Deadlock found when trying to get lock;同時書き込みトランザクションの競合によりデッドロックが発生しました。

特定のバックエンドエラーメッセージに基づいて問題を解決してください。参考として、MySQL 5.6 のエラー処理に関するドキュメントをご参照ください。

TDDL-4615 ERR_CROSS_JOIN_SIZE_PROTECTION

分散 JOIN クエリで右テーブルから返された行数が制限を超えました。

エラーコード: [TDDL-4615][ERR_CROSS_JOIN_SIZE_PROTECTION] クロス結合テーブルの
サイズ保護。SQL を確認するか、制限サイズを拡大してください。

PolarDB-X 1.0 がネステッドループ結合を使用して分散 JOIN クエリを実行する際、右テーブルからの large 結果セットが大量のメモリを消費し、安定性に影響を及ぼします。デフォルトの制限は、右テーブルから 5,000 行です。

SQL ステートメントを最適化して、右テーブルからの結果セットを削減するか、代わりに sort-merge join アルゴリズムを使用してください。

特定の文の制限を引き上げる必要がある場合は、メモリへの影響を考慮してください。

  • 1 行あたり 100 KB、5,000 行の結合処理には、500 MB のメモリが必要です。

  • 同一クエリを 5 つの同時接続で実行する場合、2.5 GB のメモリが必要です。

  • 100 KB を超えるレコードについては、制限値を引き上げないでください。

特定のステートメントの制限をオーバーライドするには、ヒントワードを前に付加します:

/*!TDDL:MAX_ROW_RETURN_FROM_RIGHT_INDEX_NESTED_LOOP=5100*/ SELECT ...

TDDL-4616 ERR_UNKNOWN_DATABASE

指定されたデータベース名が無効です。

ERR-CODE: [TDDL-4616][ERR_UNKNOWN_DATABASE] Unknown database '*****'

DDL 文のデータベース名が、PolarDB-X 1.0 によって提供されたデータベース名と一致しません。DDL 文を更新して、正しいデータベース名を使用してください。

TDDL-4617 ERR_SUBQUERY_LIMIT_PROTECTION

サブクエリによって返される行数が制限を超えました。

ERR-CODE: [TDDL-4617][ERR_SUBQUERY_LIMIT_PROTECTION] The number of rows
returned by the subquery exceeds the maximum number of 20000.

サブクエリが 20,000 行を超える行を返す場合、PolarDB-X 1.0 はシステムの安定性を保護するために実行をブロックします。サブクエリを最適化して結果セットを減らすか、JOIN クエリとして書き換えて、PolarDB-X 1.0 がソートマージ結合などのより効率的なアルゴリズムを使用できるようにしてください。

TDDL-4800 ERR_SET_TXCID

SET TXC_ID 文が失敗しました。

ERR-CODE: [TDDL-4800][ERR_SET_TXCID] set txc_id failed: *****

TDDL-4801 ERR_TXCID_NULL

SELECT LAST_TXC_ID 文が NULL を返しました。

ERR-CODE: [TDDL-4801][ERR_TXCID_NULL] txc_xid is null: *****

TDDL-4802 ERR_SELECT_LAST_TXCID

SELECT LAST_TXC_ID 文が失敗しました。

ERR-CODE: [TDDL-4802][ERR_SELECT_LAST_TXCID] select last_txc_xid failed: *****

TDDL-4994 ERR_FLOW_CONTROL

リクエストの速度制限がトリガーされました。

ERR-CODE: [TDDL-4994][ERR_FLOW_CONTROL] [*****] flow control by *****

PolarDB-X 1.0 によって処理される SQL リクエストの数が制限に達し、現在のリクエストは拒否されました。ピーク時のリクエストレートが想定範囲内であるか確認してください。

TDDL-4998 ERR_NOT_SUPPORT

SQL の構文または機能がサポートされていません。

ERR-CODE: [TDDL-4998][ERR_NOT_SUPPORT] ***** not support yet!

使用している SQL の構文または機能は、PolarDB-X 1.0 ではサポートされていません。

TDDL-5001 ERR_TRANS

トランザクションエラーが発生しました。

ERR-CODE: [TDDL-5001][ERR_TRANS] Too many lines updated in statement.

特定のエラーメッセージに基づいてエラーを解決してください。

  • `Too many lines updated in statement`: UPDATE 文が 1,000 行の制限を超えています。WHERE 句を確認してください。単一のトランザクションでより多くの行を更新するには、/*TDDL:UNDO_LOG_LIMIT={number}*/ ヒントを使用して制限を引き上げてください。

  • `Deferred execution is only supported in Flexible or XA Transaction`: 遅延実行機能 (/*TDDL:DEFER*/) は、トランザクションポリシーが Flexible または XA に設定されている必要があります。遅延実行を使用する前に、次のステートメントを実行してポリシーを切り替えてください。

    SET drds_transaction_policy = <policy>;

TDDL-5002 ERR_TRANS_UNSUPPORTED

トランザクションで使用されている構文または機能はサポートされていません。

ERR-CODE: [TDDL-5002][ERR_TRANS_UNSUPPORTED] Table without primary keys is not
supported.

この機能または構文は、PolarDB-X 1.0 のトランザクションではサポートされていません。

TDDL-5003 ERR_TRANS_LOG

トランザクションログにアクセスできません。

ERR-CODE: [TDDL-5003][ERR_TRANS_LOG] Failed to update transaction state: *****

分散トランザクション中、PolarDB-X 1.0 は原子性を確保するために、バックエンドの ApsaraDB RDS for MySQL インスタンスにトランザクションログを書き込みます。このエラーは、トランザクションログの読み取りまたは書き込みに失敗したことを意味します。すべてのバックエンドインスタンスの状態とワークロードを確認してください。

TDDL-5004 ERR_TRANS_NOT_FOUND

指定されたトランザクション ID が存在しません。

ERR-CODE: [TDDL-5008][ERR_TRANS_TERMINATED] Current transaction was killed
or timeout. You may need to set a longer timeout value.

指定されたトランザクションは KILL 文によって終了されたか、タイムアウトしました。タイムアウト期間は drds_transaction_timeout パラメーターによって制御されます。

このエラーがトランザクションのタイムアウトによって返された場合は、タイムアウト値を増やしてください。

SET drds_transaction_timeout = <value_in_milliseconds>;

TDDL-5006 ERR_TRANS_COMMIT

PolarDB-X 1.0 がトランザクションのコミットに失敗しました。

ERR-CODE: [TDDL-5006][ERR_TRANS_COMMIT] Failed to commit primary group *****:
*****, TRANS_ID = *****

コミットが失敗すると、トランザクションは自動的にロールバックされます。TRANS_ID はトランザクション ID です。ほとんどの場合、根本的な原因はバックエンドの ApsaraDB RDS for MySQL インスタンスの障害です。すべてのバックエンドインスタンスの状態とワークロードを確認してください。

TDDL-5007 ERR_TRANS_PARAM

トランザクションパラメーターの値が無効です。

ERR-CODE: [TDDL-5007][ERR_TRANS_PARAM] Illegal timeout value: *****

トランザクションパラメーターに無効な値が設定されました。たとえば、drds_transaction_timeout が負の数に設定された場合などです。パラメーターの有効な値の範囲を確認し、正しく設定してください。

TDDL-5008 ERR_TRANS_TERMINATED

トランザクションが強制終了されたか、タイムアウトしました。

ERR-CODE: [TDDL-5008][ERR_TRANS_TERMINATED] Current transaction was killed
or timeout. You may need to set a longer timeout value.

トランザクションが KILL 文によって終了されたか、drds_transaction_timeout によって設定されたタイムアウトを超えました。原因がタイムアウトの場合は、タイムアウト値を増やしてください。

SET drds_transaction_timeout = <value_in_milliseconds>;