AS400 / IBM i のデータをExcel、BI、Webアプリ、外部システムから使う時、ODBCやJDBC接続が候補になります。便利な一方で、接続ユーザー、ライブラリリスト、権限、文字コード、SQLの実行範囲を決めないまま進めると、本番データの誤更新や性能問題につながります。
この記事では、AS400へODBC/JDBC接続する前に確認することを、保守現場の目線で整理します。ACS(IBM i Access Client Solutions)、DB2 for i、SQL Services、データ抽出、Web/API連携を進める前のチェックリストです。
ODBC/JDBC接続で最初に決めること
- 参照だけにするのか、更新も許可するのか
- 接続ユーザーを個人にするのか、専用ユーザーにするのか
- ライブラリリストをどこで管理するのか
- 対象ファイル、ビュー、SQLを限定するのか
- ジョブログや監査ログで追える状態にするのか
ACSとドライバーの確認
PCから接続する場合は、IBM i Access Client Solutions、ODBCドライバー、JDBCドライバー、接続先ホスト名、ポート、サインオン情報を確認します。5250接続はできるのにSQL接続だけ失敗する場合、ポート、サービス、権限、SSL、ドライバーの設定が原因になることがあります。
ACSの基本は AS400のACS入門、接続切り分けは 5250・ACS接続トラブル確認 を確認してください。
ライブラリリストと命名規則
ODBC/JDBCでは、SQLから見えるスキーマと、AS400のライブラリ運用を合わせて考えます。対話型ジョブで見えていたライブラリが、外部接続のジョブでは見えないことがあります。接続文字列、初期SQL、ジョブ記述、専用ユーザーのライブラリリストを確認します。
CPF4101やSQL7008が出る場合は、対象ファイルやメンバーだけでなく、外部接続時の実行環境を確認します。関連する確認は CPF4101の確認ポイント と SQL7008の確認ポイント にまとめています。
性能と本番影響を確認する
外部ツールから自由にSQLを投げられる状態にすると、全件検索、大量抽出、ロック、夜間バッチとの競合が起きることがあります。対象テーブル、抽出時間、WHERE条件、索引、実行ユーザー、タイムアウトを決めておきます。
大量抽出が目的なら AS400データ抽出ガイド、SQLの基本は IBM i SQL Services入門、外部連携全体は AS400のWeb化・API連携ガイド を先に確認してください。
接続前チェックリスト
- 接続ユーザーと権限範囲を決めたか
- 参照専用か更新ありかを明確にしたか
- ライブラリリスト、スキーマ、命名規則を確認したか
- 本番データの大量抽出やロックを避ける条件を決めたか
- ジョブログ、監査、問い合わせ元を追える状態にしたか
ODBC/JDBC接続は、AS400のデータ活用を広げる入口です。ただし、接続できることと安全に運用できることは別です。権限、ライブラリリスト、性能、ログを整理してから進めると、外部連携やWeb化で失敗しにくくなります。
ODBC/JDBC接続はQZDASOINITと権限をセットで見る
ODBC/JDBC接続でエラーになる時は、接続文字列だけでなく、QZDASOINITのジョブ、ユーザー権限、ライブラリリスト、SQLの対象ファイル、CCSID(文字コードを識別する番号)、ネットワークを合わせて確認します。接続ジョブの見方はQZDASOINIT確認、権限面は権限確認チェックリストへ進むと切り分けやすくなります。
ODBC/JDBCで出したCSVも文字コードを先に見る
ODBC/JDBC接続で抽出したCSVが文字化けして見える場合は、接続文字列やQZDASOINITだけでなく、PC上のファイル文字コードを先に確認します。UTF-8、UTF-8 BOM付き、Shift-JIS、Windows-31Jの違いで、Excelで開いた瞬間に文字化けして見えることがあります。
テキストエディタでは読めるがExcelで化ける場合は、Excelの開き方やCSVインポート手順を確認します。テキストエディタでも化ける場合は、ODBC/JDBCドライバー設定、接続ユーザー、ジョブCCSID、取得元データ、出力先の想定文字コードを分けて確認してください。接続ジョブ側はQZDASOINIT確認、文字化け全体は文字化け・CCSID確認へ進むと切り分けやすくなります。
WRKACTJOBだけで判断しない
QZDASOINITが動いているだけでは異常とは限りません。外部アプリ、帳票ツール、BI、ACSのSQL、データ転送が正しく使っている場合もあります。CPUが高い、長時間動いている、同じユーザーで大量に並ぶ、ジョブログにエラーが出る時に、接続元とSQLを確認します。
CPUやジョブ状態の見方は WRKACTJOBでCPUが高い時の確認、ODBC/JDBC全体は ODBC/JDBC接続の確認ポイント を確認してください。
SQL9010・CPF9802・CCSIDと合わせて見る
外部接続では、SQL9010、CPF9802、CCSID(文字コードを識別する番号)文字化け、ライブラリリスト違いが同時に絡むことがあります。ACSでは動くがアプリでは動かない、特定ユーザーだけ失敗する、文字化けする、という場合は接続ユーザーと実行環境を分けて確認します。
調査メモに残すこと
- QZDASOINITのジョブ名、ユーザー、ジョブ番号
- 接続元アプリ、端末、利用者
- 実行SQL、SQLCODE、SQLSTATE、ジョブログ
- 対象ライブラリ、ファイル、権限
- 停止や再接続をした場合の時刻と理由
QZDASOINITは、AS400と外部アプリをつなぐ調査の入口です。ジョブだけを見るのではなく、接続元、ユーザー、SQL、権限、ライブラリリストをセットで確認します。
関連するAS400確認ルート
ODBC/JDBC接続は、ACSやDB2 for iだけでなく、権限、ライブラリリスト、ジョブ、障害時の切り分けまで同じ流れで確認します。
ACSでは成功しアプリだけ失敗する接続例
Run SQL Scriptsでは接続できるのに業務アプリのODBC/JDBCだけ失敗する場合、ユーザー、ドライバー、接続文字列、サーバージョブの差を比較します。
| 確認点 | 確認内容 | 判断 |
|---|---|---|
| クライアント | ドライバー版、接続先名、ポート、TLS、タイムアウトを確認する | 別製品の成功だけで同じ経路と思い込まない |
| セッション | 実行ユーザー、既定ライブラリ、命名方法、接続プールを確認する | 対話ジョブのライブラリリストを前提にしない |
| サーバー | 対応するQZDASOINITなどのサーバージョブとジョブログを確認する | 対象時刻と利用者を合わせてエラーを特定する |
比較テストでは、同じユーザーと同じ短いSELECTから始め、条件を一つずつ変えます。パスワードや接続秘密値を調査資料やチャットへ貼り付けません。