AS400 / IBM i でSQLを使っている時に SQL9010 が出ると、SQL文、権限、実行環境、対象ファイル、ODBC/JDBC接続、ACSの設定など、どこを見ればよいか迷いやすくなります。SQLエラーは、SQL文そのものだけでなく、実行ジョブやライブラリリスト、接続ユーザーにも関係します。
この記事では、SQL9010を見た時の初動確認を、AS400保守現場の目線で整理します。SQLCODEやSQLSTATEの確認、ジョブログ、ODBC/JDBC、ACS、DB2 for iの運用確認へつなげるための入口です。
SQL9010で最初に確認すること
- 実行したSQL文と実行元
- SQLCODE、SQLSTATE、ジョブログの直前メッセージ
- 対象ライブラリ、ファイル、ビュー、メンバー
- 実行ユーザー、接続ユーザー、権限
- ACS、ODBC/JDBC、外部アプリのどこから実行したか
SQL文だけで判断しない
SQL9010は、SQL文の構文だけでなく、対象オブジェクトの状態、権限、コミット、ジャーナル、ライブラリリストが関係することがあります。ACSでは動くが外部アプリでは動かない、5250では見えるがODBC/JDBCでは見えない、という場合は実行環境の差を確認します。
DB2 for iの基本は IBM i SQL Services入門、ODBC/JDBCは AS400 ODBC/JDBC接続の確認ポイント を確認してください。
SQL7008やCPF9802と合わせて見る
SQL9010の前後にSQL7008やCPF9802が出ている場合は、対象ファイル、ジャーナル、コミットメント制御、権限を合わせて確認します。SQLエラーの番号だけを見るのではなく、ジョブログの前後を保存して順番に追います。
関連する確認は SQL7008の確認ポイント、CPF9802の確認ポイント、AS400メッセージID・エラーコード索引 を参照してください。
SQL9010対応前チェックリスト
- SQL文、実行元、実行ユーザーを控えたか
- SQLCODE、SQLSTATE、ジョブログを保存したか
- ACS、ODBC/JDBC、外部アプリの環境差を確認したか
- 対象ファイル、権限、ライブラリリストを確認したか
- 本番更新SQLの場合はバックアップと戻し手順を確認したか
SQL9010は、SQLのエラーとして見えても、AS400の権限、ライブラリ、ジョブ、外部接続の問題が隠れていることがあります。SQL文、実行環境、ジョブログをセットで確認するのが近道です。
SQL9010は抽出条件と実行環境も見る
SQL9010が出た時は、SQL文だけでなく、実行ユーザー、ライブラリリスト、対象ファイル、権限、CCSID、ODBC/JDBC経由かACS経由かを分けて確認します。データ抽出の全体像はAS400データ抽出ガイド、接続ジョブ側はQZDASOINIT確認も合わせて見ると切り分けやすくなります。
ODBCバッチだけSQL9010になる想定例
SQL9010が出ても、その番号だけで原因を決めず、アプリ側のSQLCODE・SQLSTATE、サーバージョブ、前後のメッセージを対応付けます。
| 確認点 | 確認内容 | 判断 |
|---|---|---|
| アプリ側 | 実行時刻、処理名、SQLCODE、SQLSTATE、直前SQLを記録する | 利用者データや接続秘密値はログへ出さない |
| IBM i側 | 同時刻のサーバージョブ、実行ユーザー、ジョブログを確認する | 別セッションのエラーを対象と誤認しない |
| 周辺要因 | 対象オブジェクト、権限、ロック、資源不足、接続切断を確認する | 表面的な再接続だけで根因を完了扱いにしない |
再現確認では、同じユーザー、接続方式、SQL、時間帯をそろえます。解消後はアプリとIBM iの両方のログで同じエラーが出ないことを確認します。
関連するAS400確認ルート
SQL9010はSQLCODEやSQLSTATEだけでなく、ODBC/JDBC、権限、ジョブ、実行環境差を切り分けます。
SQL9010を相談する前に残す情報
SQL9010はSQL文だけを見ても原因を特定しにくく、実行ユーザー、ライブラリリスト、ODBC/JDBC、ACS、ジョブログ、本番影響が絡みます。SQLを直す前に、どの環境で実行され、どのメッセージが前後に出たかを残しておくと切り分けが進みます。
| 残す情報 | 次に読む記事 |
|---|---|
| 本番影響と初動判断 | 本番トラブル初動チェックリスト |
| ACS SQLの基本と実行環境 | ACS SQL / IBM i SQL Servicesの基本 |
| ファイル定義と対象データ | DSPFFD / DSPPFMの確認手順 |
| 症状別に入口を探す | AS400トラブル逆引き |
SQL9010が本番処理や外部連携で発生している場合は、SQL文、SQLCODE、SQLSTATE、実行ユーザー、接続方式、発生時刻、業務影響を整理してお問い合わせから相談できます。実データや個人情報は送らず、マスキングした条件で共有してください。