AS400 SQL9010の確認ポイント|SQLCODE・SQLSTATE・ODBC/JDBC・権限を見る

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、実行ユーザー、接続方式、発生時刻、業務影響を整理してお問い合わせから相談できます。実データや個人情報は送らず、マスキングした条件で共有してください。