iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries
Magic Platform V9 Plus for iSeries
Magic Application Server V9 Plus for iSeries

Magic Software Japan K.K.

本マニュアルに記載の内容は、将来予告なしに変更することがあります。これらの情報について MSE（Magic Software Enterprises Ltd.）および MSJ（Magic Software Japan K.K.）は、いかなる責任も負いません。
本マニュアルの内容につきましては、万全を期して作成していますが、万一誤りや不正確な記述があったとしても、MSE および MSJ はいかなる責任、債務も負いません。
MSE および MSJ は、この製品の商業価値や特定の用途に対する適合性の保証を含め、この製品に関する明示的、あるいは黙示的な保証は一切していません。
本マニュアルに記載のソフトウェアは、製品の使用許諾契約書に記載の条件に同意をされたライセンス所有者に対してのみ供給されるものです。同ライセンスの許可する条件のもとでのみ、使用または複製することが許されます。当該ライセンスが特に許可している場合を除いては、いかなる媒体へも複製することはできません。
ライセンス所有者自身の個人使用目的で行う場合を除き、MSE または MSJ の書面による事前の許可なしでは、いかなる条件下でも、本マニュアルのいかなる部分も、電子的、機械的、撮影、録音、その他のいかなる手段によっても、コピー、検索システムへの記憶、電送を行うことはできません。
サードパーティ各社商標の引用は、MSE および MSJ の製品に対するコンパチビリティに関しての情報提供のみを目的としてなされるものです。
本マニュアルにおいて、説明のためにサンプルとして引用されている会社名、製品名、住所、人物は、特に断り書きのないかぎり、すべて架空のものであり、実在のものについて言及するものではありません。
Magic は Magic Software Enterprises Ltd. のイスラエルその他の国での商標または登録商標です。
Magic eDeveloper、Magic Client および Magic Application Server は Magic Software Japan K.K. の商標です。
Pervasive.SQL は Pervasive Software, Inc. の商標です。
Microsoft および FrontPage は、Microsoft Corporation の登録商標です。また、Windows, Windows NT,
Windows 2000, Windows XP, Windows2003, ActiveX, SNAServer は Microsoft Corporation の商標です。
iSeriesTM、DB2/400TM、および MQ/SeriesTM は IBM 社の登録商標です。
EASYCOMTM は AURA Equipments 社の登録商標です。
一般に、会社名、製品名は各社の商標または登録商標です。
MSE および MSJ は、本製品の使用またはその使用によってもたらされる結果に関する保証や告知は一切していません。この製品のもたらす結果およびパフォーマンスに関する危険性は、すべてユーザが責任を負う
ものとします。
この製品を使用した結果、または使用不可能な結果生じた間接的、偶発的、副次的な損害（営利損失、業務中断、業務情報の損失などの損害も含む）に関し、事前に損害の可能性が勧告されていた場合であっても、MSE および MSJ、その管理者、役員、従業員、代理人は、いかなる場合にも一切責任を負いません。

2004 年 12 月 20 日 Version 9.4J SP3

第一版

2005 年 3 月 28 日 Version 9.4J SP3

第二版 iSeries Server を追加

2005 年 5 月 31 日 Version 9.4J SP3a

第三版

Copyright 2004 Magic Software Enterprises Ltd.and Magic Software Japan K.K.

All rights reserved.

目次
1 はじめにMagic eBusiness PlatformV9 Plus for iSeries とは？....................................................... 1
Magic eBusiness Platform V9 Plus for iSeries の種類と名称............................................. 1

このガイドの対象者 ........................................................................................................ 2
概要 .................................................................................................................................... 3
表記上の注意事項 ............................................................................................................ 3

2 製品アーキテクチャ
メッセージングサーバの構成 ........................................................................................ 6
システム構成例 ................................................................................................................... 6

3 Magic iSeries Client
通信アーキテクチャ ........................................................................................................ 9
ISAM ゲートウェイと SQL ゲートウェイ.................................................................... 10
インストレーション ........................................................................................................ 11
ISAM ゲートウェイの設定 ............................................................................................. 11
ISAM の［設定／ DBMS］の設定.................................................................................... 11
ISAM の［設定／データベース］の設定 ........................................................................ 15
テーブルリポジトリの設定 ............................................................................................... 17
ISAM ファイルの設定 ........................................................................................................ 18
定義取得機能 ....................................................................................................................... 22
OPNQRYF の利用 − AS/400 OpenQuery ファイル −.................................................... 24
AS/400 OpenQuery ファイルの設定 ................................................................................. 24
セレクトコマンドで範囲指定に対する OPNQRYF の利用 .......................................... 27
ISAM ファイルにトランザクションを利用する方法 .................................................... 27

SQL ゲートウェイの設定................................................................................................ 28
DB2/400 の［設定／ DBMS］の設定 .............................................................................. 28
DB2/400 の［設定／データベース］の設定 ................................................................... 29
DB2/400 テーブル指定時の注意点.................................................................................... 32
DB2/400 テーブルの「テーブル特性」で有効なキーワード ....................................... 32
定義取得機能 ....................................................................................................................... 32
埋め込み SQL ...................................................................................................................... 33

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース ....................................... 33
AS400PGMCALL 関数 ........................................................................................................ 34
RMTCMD 関数 .................................................................................................................... 34
STRMAGRUN 関数 ............................................................................................................. 34
AS400Call ユーザプロシジャ ............................................................................................ 35
EBCDIC コードによる文字コード比較関数 ................................................................... 38
シフト JIS コードから EBCDIC コードへの変換関数 ................................................... 38
EBCDIC コードからシフト JIS コードへの変換関数 .................................................... 39
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesiセッション開始関数 ............................................................................................................39
セッション終了関数 ............................................................................................................39
エラーハンドリング関数 ....................................................................................................40
ISERIES ユーザプロシジャ ................................................................................................40
オブジェクトリストの取得 ................................................................................................42
システム値リストの取得 ....................................................................................................43
システム値データの取得 ....................................................................................................43
スプールファイルリストの取得 ........................................................................................43
スプールファイルデータの取得 ........................................................................................44
スプールファイルの処理 ....................................................................................................44
IFS ディレクトリの取得 .....................................................................................................45
IFS ストリームファイルの取得 .........................................................................................45
IFS ストリームファイルの更新 .........................................................................................46

その他の機能 .................................................................................................................... 46
QSYSOPR メッセージ .........................................................................................................46
ゲートウェイとホストのバージョンの同期化 ................................................................46
複数のサーバに接続する場合 ............................................................................................47
MGCLIENT ジョブ記述オプション ..................................................................................47

4 Magic iSeries Server
Magic iSeries Server のインストレーション.................................................................. 53
Magic iSeries Server のソフトウェア構成...................................................................... 53
サーバの環境設定 ............................................................................................................ 53
Magic サーバ構成プログラム CFGMGCSVR の基本的な使用法 ..................................54
Magic の基本動作環境の確認と変更.................................................................................55
MAGIC サブシステム構成の確認と変更..........................................................................55

Magic アプリケーションサーバの構成 ......................................................................... 56
MAGIC400.INI ファイルの編集 .........................................................................................56
Magic アプリケーションファイル.....................................................................................58
Magic アプリケーションサーバの起動.............................................................................59
Magic アプリケーションサーバの終了.............................................................................60
フローモニタの設定 ............................................................................................................61

その他の設定・作業 ........................................................................................................ 64
ログファイルの参照 ............................................................................................................64
PASE 上で UNIX シェルを起動するには .........................................................................65
サーバからの印刷 ................................................................................................................67
CCSID について ...................................................................................................................67
QCCSID の推奨値 ................................................................................................................68

メンテナンスヒント ........................................................................................................ 68

5 メッセージングサーバ (MRB)
メッセージングサーバ (MRB) の構成........................................................................... 71
MRB の起動 ..........................................................................................................................71
MRB 起動の確認 ..................................................................................................................72
MRB の終了 ..........................................................................................................................72
MGRB.INI の編集.................................................................................................................73
MRB ログの設定 ..................................................................................................................74

ii

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesメッセージングサーバ（MRB）のサブシステム構成の確認と変更 .......................... 75

6 インターネット
iSeries の HTTP サーバ （Powered by Apache）のセットアップ ............................... 75
インターネットリクエスタの設定 ................................................................................ 75
MGREQ.INI ファイルの位置 ............................................................................................. 75
MGREQ.INI の編集 ............................................................................................................. 76
メッセージングサーバ (MRB) の設定の確認.................................................................. 77

HTTP サーバを別マシンに設定する方法 ..................................................................... 79
Linux 上で動作する HTTP サーバとして Apache を利用する場合 .............................. 79
Windows 上で動作する HTTP サーバとして IIS を利用する場合 ................................ 85

7 DBCS
DBCS の種類 ..................................................................................................................... 79
文字型書式の「位置指示記号」の追加機能 ................................................................ 80

補足
留意事項 ............................................................................................................................ 81
データ記憶型式と iSeries データタイプ ....................................................................... 82
ISAM ゲートウェイ ........................................................................................................... 82
SQL ゲートウェイ............................................................................................................... 84
文字型記憶型式の説明 ....................................................................................................... 85
数値型記憶型式の説明 ....................................................................................................... 85
論理型記憶型式の説明 ....................................................................................................... 87
日付型記憶型式の説明 ....................................................................................................... 88
時刻型記憶型式の説明 ....................................................................................................... 89
メモ型記憶型式の説明 ....................................................................................................... 89

定義取得 ............................................................................................................................ 90
SAM ゲートウェイ.............................................................................................................. 90
SQL ゲートウェイ............................................................................................................... 90

各種限界値 ........................................................................................................................ 91

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

iii

iv

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic eBusiness PlatformV9 Plus for iSeries とは？

1

はじめに

Magic eBusiness Platform V9 Plus は、シングル、およびマルチプラットフォームでのビジネスアプリケーション開発者のために設計されました。インターネットブラウザ、WWW
サーバ、アプリケーションサーバ、多言語対応とデータベースに対してオープンで拡張性のあるサポートを提供します。
Magic を理解するには、次に挙げるマニュアルを参照してください。
•

リファレンス …… V9 Plus の全機能を記述したマニュアル•

新機能ガイド …… V9 Plus の新機能を記述したマニュアル•

開発者ガイド ……V9 Plus でプログラムを開発する上でのノウハウ集•

インストールガイド …… V9 Plusのインストールとライセンス方法を記述したマニュ
アル

Magic eBusiness PlatformV9 Plus for iSeries とは？
Magic V9 Plus は Windows 環境でのマルチデータベースに対応したアプリケーション開発／実行が可能です。ただし一般的なデータベースは Windows 環境に限らず、様々な環境で広く利用されています。Magic アプリケーションは、このようなシステム環境に対応するため、大きく二つの機能を提供しています。一つは、Windows クライアントから他の OS で稼動しているデータベースに直接アクセスして実行すること、もう一つは、Windows クライアントから、他の OS で稼動する Magic アプリケーションサーバに対してリクエストを発行し、そのサーバアプリケーションがデータベースにアクセスして処理を実行することです。
前者は、Magic クライアントの専用データベースゲートウェイをセットアップし、後者はアプリケーションパーティショニングをセットアップすることで機能を実現します。
Magic eBusiness Platform V9 Plus for iSeries は、iSeries 環境においてこれら２つの機能を提供するソフトウェアです。
更に Magic for iSeries では、iSeries サーバの機能を最大限に引き出すため、クライアント
ゲートウェイにおいても、iSeries サーバ上で専用のサブシステムとジョブを実行するように設計されています。このため、クライアントのゲートウェイでは、次のような処理を行うことができます。
•

iSeries サーバのデータベース（DB2/400）へのアクセス•

iSeries サーバのコマンドの実行•

iSeries サーバで Magic プログラム、またはアプリケーションをコール

Magic eBusiness Platform V9 Plus for iSeries の種類と名称
Magic eBuisiness Platform V9 Plus for iSeries には、以下の種類があります。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries1

第 1 章 - はじめにクライアント製品
Magic Platform V9 Plus for iSeries
データベースゲートウェイとサーバ通信のためのファイルの総称です。データベース
ゲートウェイは 2 種類あり、アクセス方法が異なります。
•

ISAM ゲートウェイ…… MGEAC32.DLL。旧バージョンの Magic/400 と同様、ISAM
ファイルとしてデータベースにアクセスします。

•

SQL ゲートウェイ…… MGDB400.DLL。DB2 UDB for iSeries の SQL インターフェースを利用してデータベースにアクセスします。

サーバ製品
Magic Application Server V9 Plus for iSeries
iSeries サーバ上で Magic アプリケーションを実行します。

本書では、製品名を以下のように省略する場合があります。
製品名

省略製品名

Magic eBusiness Platform V9 Plus for iSeries

Magic for iSeries

Magic Platform V9 Plus for iSeries

Magic iSeries Client

Magic Application Server V9 Plus for iSeries

Magic iSeries Server

このガイドの対象者
iSeries 開発ガイドは、次のような開発者を対象に、Magic eBuisiness Platform V9 Plus for
iSeries ソフトウェアのインストール方法や利用方法を説明します。
•

iSeries データベースに対応した Windows アプリケーションを開発したい Magic の技
術者、およびシステム管理者。

•

iSeries サーバに Magic アプリケーション環境を構築し、アプリケーションパーティ
ショニングを利用した Windows アプリケーションを開発したい Magic の技術者、およびシステム管理者。

•

iSeries サーバをベースにしたインターネットアプリケーションのために、iSeries イン
ターネット・サーバと Magic アプリケーションサーバを構成したい Web 管理者。

したがって、このドキュメントは、開発ツールとしての Magic の知識と、iSeries オペレー
ティングシステムに対する知識を備えた方を対象といたします。
併せて、Magic V9 Plus のリファレンスマニュアルと開発者ガイドをお読みいただくとと
もに、iSeries サーバ環境でのアプリケーションの知識を補足するために、次に挙げる IBM
社提供のマニュアルをご覧ください。

2•

AS/400 実行管理の手引き……【SD88-5009-02/SC41-5306-02】•

DB2 AS/400 用データベース・プログラミング…… 【SD88-5035-02/SC41-5701-02】•

AS/400 TCP/IP 構成および解説書……【SD88-5013-02/SC41-5420-02】•

AS/400 TCP/IP セットアップ……【SD88-5016-00/SC41-5430-00】•

AS/400 CL プログラミング……【SD88-5038-01/SC41-5721-01】•

OS/400 機密保護解説書……【SD88-5027-02/SC41-5302-02】
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries概要

概要
第 2 章では、Magic for iSeries の全体の構成を説明します。
第 3 章では、Magic for iSeries ゲートウェイのワークステーションでのインストール方法、
および利用方法を説明します。
第 4 章では、Magic iSeries Server のインストール方法、および利用方法を説明します。
第 5 章では、Magic iSeries Server を使用したアプリケーションパーティショニングについて説明します。
第 6 章では、インターネットからのリクエストに対して、Magic iSeries Server を利用するための方法とインターネット機能について説明します。
第 7 章では、日本語環境の DBCS について説明します。
補足では、Magic で定義されたデータの型と iSeries のデータタイプの対応等を説明します。

表記上の注意事項
このマニュアルでは、「ファイル」と「テーブル」、「キー」と「インデックス」は同じ語として使用しています。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries3

第 1 章 - はじめに

［このページは意図的に空白にしています。］

4

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

2

製品アーキテクチャ

Magic ネットワークは、Magic メッセージングサーバによって定義されます。
各 Magic エンジンは、メッセージングサーバのスタートアップ時に登録され、定義したアプリケーションが実行されます。
各クライアントは、リクエストを Magic メッセージングサーバに送り、メッセージング
サーバが利用できる Magic エンジンにリクエストを振り分けます。Magic エンジンはリクエストを処理して結果を返します。

図 2-1 製品構成

構成要素

説

Magic クライアント

Magic eDeveloper V9 Plus、又は Magic Client V9 Plus

Magic Platform V9 Plus
for iSeries

Windows プラットホームで動いている Magic エンジンに、次の機能を提供。

Magic インターネットリ
クエスタ

iSeries 開発ガイド

明•iSeries データベースへのアクセス（ゲートウェイ）•

ネイティブ iSeries プログラム実行•

Magic Application Server V9 Plus へのリモートコール

Magic メッセージングサーバを通して、Magic サーバにイン
ターネットリクエストのルートを決める iSeries HTTP サーバ
への CGI インタフェース

Magic eBusiness Platform V9 Plus for iSeries5

第 2 章 - 製品アーキテクチャ
構成要素

説

Magic メッセージング
サーバ

サーバとリクエストを管理するためのミドルウェア・テクノ
ロジー。アプリケーションパーティショニングやインター
ネットのリクエストを透過的にサーバーへ振り分ける。
•

Magic Application Server
V9 Plus明

MRB：Windows や iSeries、Linux プラットホーム上で利用できる Magic リクエストブローカ。

インターネット / イントラネットや、スタンドアロンのバッ
チ・ジョブとして、またはアプリケーションパーティショニ
ングサーバとして Magic アプリケーションを実行することができる Magic エンジン
サポートプラットフォーム

ユーザ・プログラム・
インタフェース（HLL
プログラム）•

Windows•

iSeries•Linux

HLL、RPG、C、COBOL、CL、Java のような HLL として知られる高水準言語で書かれたプログラムのインタフェース。
これにより、5250- ベースまたはバッチ・アプリケーションを含むレガシー・アプリケーションと Magic アプリケー
ションが、Magic メッセージングサーバを介して統合することが可能。

メッセージングサーバの構成
さまざまなクライアントが Magic メッセージングサーバにリクエストすることができます。
これらのクライアントは、Magic クライアントか、別の Magic サーバ、インターネット
ブラウザ、ネットワークコンピュータ、HLL プログラムなど、多くのプラットホームで可能です。
Magic Application Server V9 Plus は、インターネットリクエスタのサーバとしてもインストールされます。
更に、Magic インターネットリクエスタを利用するときは、HTTP サーバがインストール
され、Magic メッセージングサーバにインターネット・リクエストが接続されるように構築する必要があります。
下に挙げたプログラムは、それぞれ別のハードウェアで実行することができます。
•

Magic インターネットリクエスタと HTTP サーバ•

Magic メッセージングサーバ•

Magic サーバ•

Magic クライアント、インターネットブラウザ、HLL の各クライアント

システム構成例
クライアント／サーバの構成
この構成は iSeries をデータベースサーバとして使用します。主に、開発環境ではこの構成で行います。
•

6

Magic eDeveloper V9 Plus / Magic Client V9 PlusiSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesメッセージングサーバの構成•

Magic Platform V9 Plus for iSeries（開発／実行）

図 2-2 クライアントサーバ構成

アプリケーションサーバに Windows を使用した構成
iSeries をデータベースサーバとして使用し、HTTP サーバや Magic Application Server V9Plus は、Windows を使用します。
•

Magic eDeveloper V9 Plus / Magic Client V9 Plus•

Magic Platform V9 Plus for iSeries（開発／実行）•

Magic Application Server V9 Plus（Windows）•

Microsoft Internet Information Server（IIS）•

Magic インターネットリクエスタ（CGI、ISAPI）•

MRB（Windows）

図 2-3 アプリケーションサーバは Windows PC の構成

Magic Application Server for iSeries での構成
この構成は、サーバ機能をすべて iSeries 上で構成します。
Windows は、次のソフトウェアを実行します。
•

Magic eDeveloper V9 Plus / Magic Client V9 Plus•

Magic Platform V9 Plus for iSeries（開発／実行）

iSeries サーバは、次のソフトウェアを実行します。

iSeries 開発ガイド•

Magic Application Server V9 Plus for iSeries•

Magic Request Broker （MRB）•

HTTP Server for iSeries または、HTTP Server （Powerd by Apache）for iSeries

Magic eBusiness Platform V9 Plus for iSeries7

第 2 章 - 製品アーキテクチャ•

Magic インターネットリクエスタ（CGI）

図 2-4 アプリケーションサーバは iSeries の構成

Magic Application Server for iSeries と Linux HTTP サーバの構成
Magic Application Server V9 Plus for iSeries で動作させ、HTTP サーバを Linux で構成します。
Windows は、次のソフトウェアを実行します。
•

Magic eDeveloper V9 Plus / Magic Client V9 Plus•

Magic Platform V9 Plus for iSeries（開発／実行）

iSeries サーバは、次のソフトウェアを実行します。
•

Magic Application Server V9 Plus for iSeries•

MRB

Linux サーバは、次のソフトウェアを実行します。
•

Apache•Magic インターネットリクエスタ（CGI、Apache）

図 2-5Windows/iSeries/Linux での構成

8iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

通信アーキテクチャ

3

Magic iSeries Client

Magic iSeries Client は、クライアントの Windows PC で動作する Magic eBusiness Platform
製品 (Magic eDeveloper、Magic Client、Magic Application Server) から、iSeries 上のデータ
へのアクセスやプログラムの実行を行うためのソフトウェアコンポーネントです。
これにより、Windows 上で作成した Magic アプリケーションを iSeries 対応のアプリケー
ションに容易に移行することができます。また、既存の RPG による iSeries のデータベー
ス資産を、Magic eBusiness Platform 対応アプリケーションの一部として統合することが可能になります。

通信アーキテクチャ
iSeries のデータベースファイルへのアクセスには、EASYCOM と呼ばれるミドルウェア・
テクノロジーを採用しています。
Magic iSeries Client をインストールすると、大きく分けて、次の二つの構成要素がインストール・構成されます。
•

クライアント PC には、Magic for iSeries ゲートウェイと EASYCOM クライアントモ
ジュールがインストールされ、これらは Magic クライアントの起動時にロードされます。

•

iSeries 上にはホストライブラリがインストールされます。ホストライブラリというのは、EASYCOM および Magic クライアントとの通信に必要となるモジュール等がすべて格納されている ライブラリです。インストーラにより、MAGIC サブシステムと、
EASYCOM サーバが自動起動するように設定されます。

実行時は、次のようなステップで通信が行われます。

図 3-1 接続構成

1. iSeries 上では、EASYCOM デーモンが自動起動されており、Magic クライアントからの接続要求を待機しています。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries9第 3 章 - Magic iSeries Client
2. クライアント PC 上の Magic アプリケーションが iSeries 上のデータアクセスやプロ
グラム実行を行おうとすると、Magic for iSeries ゲートウェイが EASYCOM クライア
ントを通じて iSeries 上の EASYCOM デーモンに接続要求を出します。
3. iSeries 上の EASYCOM デーモンは、MAGIC サブシステムの配下に MGCLIENT ジョブを起動します。MGCLIENT ジョブにより、クライアントと iSeries のセッションが確立されます。
4. その後、クライアントから要求がある度に、MGCLIENT ジョブがデータベースやプ
ログラムの処理結果をクライアントに返します。
5. クライアント PC 上の Magic がセッション切断の要求を出すと、MGCLIENT ジョブ
はセッションを切断し、終了します。

ISAM ゲートウェイと SQL ゲートウェイ
クライアント PC にインストールされる iSeries ゲートウェイには、ISAM ゲートウェイと SQL ゲートウェイとの 2 種類があります。
•

ISAM ゲートウェイ (MGEAC32.DLL) は、レコード単位の読み込み、挿入、更新、削除、ロック等を行う ISAM 的なインターフェースを利用するものです。単純なレコー
ド単位の処理のみを行うアプリケーションにはこちらを利用します。また、Magic/400(V8.2) のアプリケーションからの移行の場合にもこちらを利用します。

•

SQL ゲートウェイ (MGDB400.DLL) は、SQL 文を用いて iSeries 上のデータをアクセスするインターフェースを利用するもので、複雑な抽出条件指定を SQL WHERE 句により行いたい場合、埋め込み SQL タスクを利用したい場合、その他 SQL に固有な機能を Magic アプリケーションで利用したい場合に使います。

以下の説明では、ISAM ゲートウェイを通してアクセスされる iSeries ファイルを「ISAMファイル」と呼び、SQL ゲートウェイを通してアクセスされる DB2/UDB のテーブルを「DB2/400 テーブル」と呼びます。

注意事項
ISAM ゲートウェイと SQL ゲートウェイの利用については、いくつかの注意事項があります。

（1）SQL ゲートウェイを利用する場合•

SQL ゲートウェイは、ISAM ゲートウェイを通して EASYCOM ミドルウェアにアクセスします。従って、SQL ゲートウェイのみを利用する Magic アプリケー
ションであっても、ISAM, SQL 両方の設定を行っておく必要があります。
（設
定の詳細については、本章で説明します。）•

SQL ゲートウェイを利用する場合には、iSeries 上のホストライブラリに、インストール後パッチを適用する必要があります。インストールおよびパッチの適用に関しては、「Magic eBusiness Platform for iSeries インストールガイド」を参照してください。

•

新規に SQL ゲートウェイを利用する場合、CREATE COLLECTION コマンドで、
iSeries サーバにコレクションを作成する必要があります。詳細は、CREATE
COLLECTION に関する iSeries のマニュアルを参照してください。

（2）ISAM ゲートウェイを利用する場合•

10

ISAM ゲートウェイのみを利用する Magic アプリケーションの場合には、ISAM
ゲートウェイに関する設定のみが必要になります。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

インストレーション•

ホストライブラリに、SQL ゲートウェイ用のパッチを適用すると、「ダイレクト SQL セレクト」（26 ページ）の機能が利用できなくなります。ISAM ゲート
ウェイのみを利用するアプリケーションで、ダイレクト SQL セレクトの機能を利用しているアプリケーションの場合には、このパッチを適用しないようにしてください。

（3）ISAM ゲートウェイと SQL ゲートウェイを混在して利用する場合
ひとつのアプリケーションで、ISAM ゲートウェイと SQL ゲートウェイを混在して利用することは可能です。この場合には、次のような点に留意してください。
•

同一のテーブルに対して異なるゲートウェイで同時にアクセスしないように、
アプリケーション設計時に注意してください。

•

ISAM ゲートウェイで G フィールドのあるファイルは、SQL ゲートウェイを通してアクセスすることはできません。

•

256 バイトを越える文字型項目のデータは、ISAM ゲートウェイと SQL ゲート
ウェイで、データの互換性がありません。

•

BLOB 型の定義されたファイルは SQL ゲートウェイでのみアクセス可能です。

•

ISAM ゲートウェイのトランザクションが無効に設定されたアプリケーション
では、ISAM で作成されたファイルが SQL ゲートウェイではアクセスできないことがあります。この場合、対象のファイルに対して、STRJRNPF コマンド等
で iSeries のジャーナル処理を開始する必要があります。

インストレーション
Magic for iSeries のインストレーションの手順については、『Magic eBusiness Platform foriSeries インストールガイド』に詳細に説明されているので、そちらを参照してください。

ISAM ゲートウェイの設定
ここでは、ISAM ゲートウェイの設定について説明します。

ISAM の［設定／ DBMS］の設定［設定／ DBMS］テーブルは、Magic アプリケーションの処理全体に対して影響を及ぼす
グローバルな設定です。
重要！

SQL ゲートウェイは ISAM ゲートウェイを通して EASYCOM ミド
ルウェアにアクセスしますので、ここで説明されている DBMS のパ
ラメータは、SQL ゲートウェイを使う場合にも必要になり、有効になります。

［設定／ DBMS］テーブルを設定するには、次のように実行します。
1. Magic を起動します。
2. プルダウンメニューで［設定／ DBMS］を選択します。DBMS テーブルが表示されます。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

11第 3 章 - Magic iSeries Client

図 3-2 DBMS テーブル

3. 「AS400」の行に移動します。
参考：「AS400」の行が見つからなければ、任意の行で［登録］ボタンまたは ［F4］
キーを押して行を追加し、［名前］を「AS/400」、［浮動小数点］を「10.3」、［ID］を「17」と入力してください。
4. 「パラメータ」欄にカーソルを移動し、必要なパラメータを入力します。ここに設定できるパラメータは、「AS/400 のパラメータ欄で有効なキーワード」で後述します。
参考：パラメータ欄では［F6］キーを押して拡張ウインドウを利用することもできます。）
5. ［OK］ボタンか ［Enter］を入力します。
6. 新しく指定されたパラメータを有効にするために、Magic を再起動します。

パラメータの構文
パラメータのオプションは、「キーワード = 値」の形式で指定します。複数のキーワードを指定するには、1 桁以上の半角スペースで区切ります。指定しないキーワード値には、
デフォルト値が設定され、一部のキーワードは自動的に設定されるものがあります。
注意：キーワードと値は、大文字で指定してください。

AS/400 のパラメータ欄で有効なキーワード
以下に、ISAM ゲートウェイ (AS/400 の行 ) のパラメータ欄で指定可能なキーワードを説明します。
•

EAC_LOG=［ライブラリ名 / ファイル名［: ログレベル］］
iSeries 上の EASYCOM での Magic for iSeries のログ（トレース）ファイルを指定します。レベルオプションは情報レベルを指定します。これは主としてデバッグ用に使います。
0……ログ無し

1 − 4 （4 が最も詳細なレベル）

例： EAC_LOG=Magic400/EACLOG:1•

MAGICDBA=［HOST DBA ライブラリ名］
HOST DBA をデフォルトライブラリ（MAGIC400）以外のライブラリにインストール
した場合に、ライブラリ名を指定します。
このオプションにより、複数のクライアントで異なるバージョンの Magic for iSeries

12

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

ISAM ゲートウェイの設定を同時に使用することができます。
•

MAGICSRV=［iSeries のライブラリ名］
Magic iSeries Server をインストールしたライブラリ名を指定します。
この設定は、STRMAGRUN 関数（34 ページ参照）の実行時に利用されます。
例： MAGICSRV=MAGICRUN94
注意：

•

•

この設定は、Magic iSeries Server 製品をインストールした場合にのみ有効です。

•

Magic iSeries Server をデフォルトライブラリ (MAGICRUN94) にインストールした場合にも指定が必要です。

*RNGSVR=Y
範囲抽出時に OPNQRYF を使用します。この設定は DBMS テーブルのパラメータ以
外にも、データベース特性／ SQL データベース情報、テーブル特性／ SQL データ
ベース情報で設定可能です。
詳細については、本章「OPNQRYF の利用 − AS/400 OpenQuery ファイル −」(24 ページ ) を参照してください。

•

HOSTSYNC=N
このキーワードは、ホストのバージョンが古い場合に警告メッセージを出さないようにすることができます。
詳細については、本章の最後の「その他の機能」の説明 (46 ページ ) を参照して下さい。

•

CRTSPLF=N(ISAM ファイルに対してだけ有効 )ファイルの新規作成時に、スプールファイルを作成しないようにすることができます。
•

NAMING=*SQL （SQL テーブルに対してだけ有効 )SQL ゲートウェイでアクセスするファイルに対して、ファイル名の前にコレクション
名を指定する場合、SQL 標準の .（ドット）を使った形式で記述できます。
例： SAMPLECOLL.TESTTABLE
このキーワードを指定しない場合は ISAM と同様、/（スラッシュ）で記述します。
例： SAMPLECOLL/TESTTABLE•

DBCS=［PC コードページテーブル :iSeries コードページテーブル］
クライアント PC 及び iSeries のコードページを指定します。

iSeries 開発ガイド

テーブル名

コードページタイプ

IBM-930930（日本語英数カナ）

Host

IBM-939939（日本語英数小文字拡張）

Host

IBM-990 *2

990（日本語英数カナ ,NEC 特殊文字対応）

Host

IBM-999 *2

999（日本語英数小文字拡張 ,NEC 特殊文字対応）

Host

IBM-943

943

PC

•

省略時は、IBM-943:IBM-930 になります。

•*1：実際に使用できるコードページ（CCSID）は、930 は 5026、939 は 5035 となります。従って、対応外字文字数は 1880 文字となります。

•*2：NEC 特殊文字（IBM 拡張文字に存在するものは除く）を外字領域に割当て

Magic eBusiness Platform V9 Plus for iSeries13

第 3 章 - Magic iSeries Client
たもので、IBM-930 は IBM-990、IBM-939 は IBM-999 に対応します。
•

NEC 特殊文字の外字割り当てを以下に示します。

NEC 特殊文字 外字割当一覧
文字ShiftJISEBCDIC文字

ShiftJISEBCDIC文字

ShiftJISEBCDIC

①

8740

72be

㍉

875f

72d2

㎏

8773

72e6

②

8741

72bf

㌔

8760

72d3

㏄

8774

72e7

③

8742

72c0

㌢

8761

72d4

㎡

8775

72e8

④

8743

72c1

㍍

8762

72d5

㍻

877e

72e9

⑤

8744

72c2

㌘

8763

72d6

〝

8780

72ea

⑥

8745

72c3

㌧

8764

72d7

〟

8781

72eb

㌃

8765

72d8

㏍

8783

72ec

72d9

72ed

⑦

8746

72c4

⑧

8747

72c5

㌶

8766

㊤

8785

⑨

8748

72c6

㍑

8767

72da

㊥

8786

72ee

⑩

8749

72c7

㍗

8768

72db

㊦

8787

72ef

㌍

8769

72dc

㊧

8788

72f0

72dd

72f1

⑪

874a

72c8

⑫

874b

72c9

㌦

876a

㊨

8789

⑬

874c

72ca

㌣

876b

72de

㈲

878b

72f2

⑭

874d

72cb

㌫

876c

72df

㈹

878c

72f3

⑮

874e

72cc

㍊

876d

72e0

㍾

878d

72f4

⑯

874f

72cd

㌻

876e

72e1

㍽

878e

72f5

⑰

8750

72ce

㎜

876f

72e2

㍼

878f

72f6

⑱

8751

72cf

㎝

8770

72e3

∮

8793

72f7

㎞

8771

72e4

∑

8794

72f8

㎎

8772

72e5

∟

8798

72f9

⊿

8799

72fa

⑲

8752

72d0

⑳

8753

72d1

•

注意：

*3 コード変換時に、変換できない例外コードが存在した場合は、その文字は自動的に次の文字に変換します。
• シフト JIS → EBCIDIC 変換時例外コード ……（SBCS:3f

DBCS:fefe）• EBCIDIC →シフト JIS 変換時例外コード ……（SBCS:7f

DBCS:fcfc）

クライアントのコードページ（CCSID）と iSeries サーバのジョブに設定された
CCSID が異なる場合、初期時に次のようなメッセージダイアログが表示され、iSeries サーバのジョブはクライアントのコードページに対応するように変更されます。
例：サーバジョブが 5035, クライアントが 930 の場合

図 3-3 エラーメッセージ

14

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

ISAM ゲートウェイの設定

AS/400 の［DBMS 特性］の設定•

ログレベル、ログファイル、同期設定
ゲートウェイのログを出力する際に指定します。
ログレベルの指定により、ゲートウェイのログ出力機能に加えて、以下のような
iSeries のジョブログレベルも設定されます。

•

パラメータ

レベル、 重大度、 テキスト

N= なし

0,

40,

*NOLIST

D= 開発者用

4,

0,*SECLVL

S= ｻﾎﾟｰﾄ用

4,

0,*SECLVL

C= ﾕｰｻﾞ用

1,

30,

*MSG

最大接続数
マルチスレッド環境の場合、使用する最大スレッド数（最大並行リクエスト数：
MaxConcurrentRequests）を最大接続数に設定してください。従って、使用するスレッ
ド数分の Magic Platform for iSeries を購入する必要があります。
シングルスレッド環境の場合は、最大接続数は、「0」又は「1」に設定します。

ISAM の［設定／データベース］の設定
ISAM ゲートウェイに関する［設定／データベース］テーブルでは次のような設定を行います。

ISAM データベースの定義
1. Magic を起動します。
2. プルダウンメニューバーから［設定／データベース］を選択します。データベース
テーブルが開きます。

図 3-4 データベーステーブル

3. 新しい行を作成するために、［登録］ボタンまたは、［F4］を押下します。
4. ［名前］に、適当なデータベース名を入力します。データベース名は、ユーザが自由に設定できます。ここで、設定した名前は、アプリケーションテーブルやテーブル
リポジトリの［データベース］などで参照します。
5. ［DBMS］からズームして、［DBMS 一覧］を開き、［AS/400］を選択します。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries15

第 3 章 - Magic iSeries Client
6. ［DB 名］は、ブランク以外の任意の文字列（例えば、’MAGIC ）を設定します。文
字は必ず大文字で指定してください。
7. ［Magic サーバ］は、ブランクにします。
8. ［位置］は、英数半角大文字で、データを格納する iSeries ライブラリ名を指定します。ライブラリ名の後ろにスラッシュは記述しないでください。

ISAM の [ データベース特性］の設定［データベース特性］ダイアログでは、iSeries のホストの定義とデータアクセスに関するパラメータを追加することができます。方法は次の通りです。
1. 該当する iSeries のデータベースに位置付けて、プルダウン・メニュー［編集 / 特性］
を選択するか 、［Ctrl］+［P］キーを押すと、データベース特性ダイアログのログイ
ン・タブが表示されます。

図 3-5 データベース特性

ここには、以下のパラメータを設定します。

2.

•

データベースサーバ …… iSeries サーバのホスト名、または IP アドレス•

ユーザ名／パスワード …… iSeries サーバに接続する際のユーザ名とパスワー
ド•サーバソート (「オプション」タブ ) …… タスクでのソート処理が実行される
とき、Magic で定義された仮想のインデックスを OPNQRYF で処理するかどうかを制御します。サーバソートを有効にすると、Magic 自体のソート機能でな
く、iSeries 上でソート処理を行います。

•

データベース情報 （「SQL」タブ ) …… KEYWORD=VALUE の形式で、追加のパラメータを指定することができます。詳しい構文の内容は、次の「ISAM の「データベース情報」欄で有効なキーワード」を参照してください。

［OK］ボタンを２回クリックして、［設定／データベース］ダイアログを終了します。

ISAM の「データベース情報」欄で有効なキーワード
データベース特性の「データベース情報」欄で指定できるキーワードは、次の通りです

16

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

ISAM ゲートウェイの設定•

CTLRECOVERY=Y
このキーワードを記述すると、CTL ファイルを iSeries 上のデータベースで作成する
ときにジャーナル機能が有効になります。また、この設定を行う際には、併せて［設定 / 動作環境 / マルチユーザータブ /ISAM トランザクション］のパラメータを「Yes」にしてください。

•

FLDNAMES
このキーワードを記述すると、定義取得時にテーブルリポジトリのカラム名に、
iSeries ファイルの実際の項目名を代入します。
このキーワードの指定がない場合（デフォルト）では、DDS の機能ワードで定義された項目名（COLHDG）を代入します。

•

TRANSACTIONS=Y
このキーワードを指定すると、ライブラリ内の全データファイルを対象にコミットメ
ントコントロールを開始します。また、この設定を行う際には、併せて［設定 / 動作
環境 / マルチユーザータブ /ISAM トランザクション］のパラメータを「Yes」にしてください。
（詳細は後述「ISAM ファイルにトランザクションを利用する方法」を参照してください。
）•

NOMSGBOX
このキーワードを記述すると、Magic のエラーメッセージボックスを表示しなくなります。エラーは、DBERR（）内部関数か RTVERRID UDF を使って取得することができます。オペレーターの介入ができないバッチ型プログラムや自動エラーハンドリン
グが必要なときに使用します。

•*RNGSVR=Y
このキーワードを記述すると、範囲抽出時に OPNQRYF を使用します。この設定はデータベース特性／ SQL データベース情報以外にも、DBMS テーブルのパラメータ、
テーブル特性／ SQL データベース情報で設定可能です。

•

OVRLFLIB=[ ライブラリ名 ] | *LIBL | *CURLIB
このキーワードを記述すると、インデックスに定義された論理ファイルを、物理ファ
イルと異なるライブラリに配置することができます。
•[ ライブラリ名 ] …… 指定されたライブラリにある論理ファイルを使用します。

•*LIBL …… ライブラリリストにある論理ファイルを使用します。

•*CURLIB …… カレントライブラリにある論理ファイルを使用します。

このキーワードは、データベース特性のほかに、テーブル特性でも指定できます。
•

MAGICDBA=［HOST DBA ライブラリ］
デフォルトのライブラリ（MAGIC400）と異なる名前のホストライブラリを利用する
場合は、このキーワードでライブラリ名を指定します。このオプションによって、異なる iSeries サーバに対して異なるライブラリ名を指定することができます。

•

CRTSPLF=N
ファイルの新規作成時に、スプールファイルを作成しません。

テーブルリポジトリの設定
iSeries のファイルシステム固有の機能や特徴に合わせて、Magic のテーブルリポジトリの設定上、いくつか考慮すべき点があります。ここでは、既存のパラメータの iSeries への影響や、Magic for iSeries で有効なパラメータについて説明します。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries17第 3 章 - Magic iSeries ClientiSeries ファイルシステムについての基礎知識
一般に iSeries は、2 つの基本的なファイルタイプを持っています。
•

物理ファイル•

論理ファイル

物理ファイルには実際のデータが含まれており、論理ファイルには異なるデータビューの定義だけが含まれています。キーフィールド（インデックス）は、物理ファイル、論理ファイル 共に使用することができます。
iSeries ファイルのレコード構造は、ISAM ゲートウェイを使う場合には DDS （Data
Description Specification）および IDDU（Interactive Data Definition Utility）を使い、SQL ゲー
トウェイを使う場合には、SQL 文 を使って定義されます。

論理ファイルは、次のように分類することができます。
•

単純な論理ファイル（キー定義）
物理ファイルの全レコード形式を定義（引用）して、物理データに追加のキーフィー
ルドを定義した論理ファイル。

•

条件なし論理ファイル
物理的なファイル・レコード形式からの特有のフィールドを抽出して、そのレコード
でフィールド位置を変えたり、またはフィールドを追加して、オリジナル構造が判らないような定義をした論理ファイル。

•

条件付き論理ファイル
選択／除外キーワード（比較、範囲、値指定）の条件指示により物理ファイルからデータを選択した論理ファイル。

•

結合論理ファイル
複数の物理ファイル（32 個まで）フィールドを一つの論理的なレコードビュー様式に結合した論理ファイル。
注意：•

Magic では、単純な論理ファイルに対してのみテーブルリポジト
リにキー定義し使用することができます。

•

他の種類の論理ファイルに対しては、テーブルリポジトリで別々のファイルとして定義する必要があります。

ISAM ファイルの設定
ISAM ファイルの名前の割当
iSeries 上に作成されるファイル名 ( 物理ファイル名 ) は、テーブルリポジトリの「DB テーブル」欄に指定します。
iSeries ファイル名は、「ライブラリ名 / ファイル名」か「ファイル名」の２種類の形式で指定することができます。もし、ファイル名だけを指定するならば、［設定 / データベース］の「位置パラメータ」に指定されたライブラリ名がデフォルトとして使用されます。
ファイルにキーを定義して新規にファイルを作成したときには、そのキーが定義された論理ファイルも作成されます。

18

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

ISAM ゲートウェイの設定
論理ファイル名は、［インデックス特性 /DB インデックス名］で指定します。

図 3-6 インデックス特性

重要！

ファイル名は、すべて iSeries のファイル名規約に準拠している必要があります。
名前は全て半角文字を使用し、最初の文字は、英字（A 〜 Z）、@、# のいずれか、２文字目以降は英数字（A 〜 Z、0 〜 9）、@、#、_ にします。

注意：•

Magic の機能により、ファイル辞書の DB テーブル欄を空欄にしておくと、「アプリケーションメニューの識別子 + ”FIL” + ファイル番号」というファイル名
がデフォルトで生成されます。

• ［インデックス特性 /DB インデックス名］が指定されていない場合、デフォル
トの論理ファイル名として「DB テーブル名の左から 5 バイト＋ 'K' + キー番号」という形式で論理ファイル名が自動生成されます。
例：「DB テーブル名」が「ABCDEFGH」の場合、1 番目のキーのデフォルト
論理名は、「ABCDEK1」となります。
•

これらのファイル名が iSeries のファイルの規約に合致しないと実行時にエラーとなります。また、左から５文字が同じテーブル名がテーブルリポジトリに複数定義されていると、インデックスのデフォルト論理ファイル名が同じになってしまい、予期しない動作結果となってしまう可能性があります。ファイ
ル名や論理ファイル名はできるだけ明示的に指定することをお勧めします。

•

存在しないライブラリを指定してファイルを作成しようとしたときは、次のよ
うなエラーメッセージが表示されます。

図 3-7 エラーメッセージ

ISAM ファイル利用時の考慮事項
iSeries 上の論理ファイルは Magic プログラム実行時、Magic タスクの「DB テーブル」で指定されたオープンモードでオープンされます。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

19

第 3 章 - Magic iSeries Client
Magic のタスク特性やリンクコマンドなどでキーが指定されていますが、そのキーに対応する論理ファイルが実際には存在しない場合、Magic はキーで定義された論理ファイ
ルを自動生成しようとします。

参考：•

ファイルオープン時、Magic は iSeries ファイルのファイルレベル識別コードと「データベース情報」で指定された「FILELVL=」キーワードの値を比較します。その値が同一でなければ、「定義内容が一致しません」のエラーが表示され、ファイルを開くことができません。

•

ただし、「データベース情報」に「RECLVL=」キーワードの値が設定され、レコード
様式識別コードが同一ならば、ファイルレベル識別コードが異なっていてもファイルのオープンが可能になります。

•

結合論理ファイルは、リードオンリーモードのみでオープンします。結合論理ファイ
ルをオープンしてデータの修正を行おうとすると、エラーメッセージが表示され、プログラムが終了します。

カラム名の設定
Magic for iSeries では、iSeries 上でのファイルのフィールド名を［カラム特性 / データベー
ス名］で定義します。フィールド名も iSeries の規約に準じている必要があり、英数字のみで最大 10 文字となります。この欄がスペースであれば、デフォルトのフィールド名として「FLDn」（n は項目番号）となります。
また、ファイルの COLHDG の名称については、カラムの［名前］が反映されます。iSeries
での制限により、これはシフトイン・シフトアウト文字含めて 30 桁までに納まるようにします。
逆に定義取得を行うと、デフォルトでファイルのフィールド名は［カラム特性 / データ
ベース名］に、COLHDG の名称は［名前］に反映されます。
項目の［名前］にフィールド名を反映させるには、［設定 / データベース / データベース
特性］の「データベース情報」パラメータに「FLDNAMES」のキーワードを記述してから定義取得を行います。詳細は「ISAM の［設定／データベース］の設定」を参照して
ください。
重要：

iSeries の規約では、名前は全て半角を使用し、最初の文字は、英字（A 〜 Z）、@、# のいずれか、２文字目以降は英数字（A 〜 Z、0 〜 9）、@、#、_ にします。

ISAM ファイルの「テーブル特性」で有効なキーワード
Magic for iSeries は、ファイル定義と I/O 属性を拡張するために、「テーブル特性／ SQL
タブ／ SQL データベース情報」を使用しています。ここでは、次のようなキーワードが有効になります。
•

TYPE=PF | LF
「定義取得」機能で自動的に挿入されます。物理ファイル（PF）と論理ファイル（LF）の区別する機能と共に、Magic で iSeries ファイル構造の変更を防ぐ機能があります。
このキーワードを持っているファイル構造に修正を行おうすると、次のようなエラー
メッセージが表示されます。

20

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

ISAM ゲートウェイの設定

図 3-8 エラーメッセージ•COMPLEX_LOGIC「定義取得」機能によって自動的に挿入されます。
DB2/400 特有のファイル定義ステートメントのために、再作成することができないファイルとして認識させるために使用されます。

•

FILELEVEL=［ファイルレベル識別コード］「定義取得」機能によりファイルレベル識別子が自動的に挿入されます。詳細は「ISAM
ファイル利用時の考慮事項」を参照してください。

•

RECLVL=［レコード様式識別コード］「定義取得」機能によりレコード・レベル識別子が自動的に挿入されます。詳細は「ISAM ファイル利用時の考慮事項」を参照してください。

•

RECNAME=［レコード様式名］
レコード様式名を定義する文字列の指定です（最大長は 10）。これは、新規の iSeries
ファイルが作成されるとき、Magic によって追加されます。この値はファイル再作成の実行時に、新規ファイルのレコード様式名として利用されます。
定義取得を行った場合も、iSeries で定義されたファイルのレコード名パラメータが、「RECNAME=［レコード様式名］」の形式で追加されます。

•*RNGSVR=Y
このキーワードは、範囲抽出時に OPNQRYF を利用するために追加されました。この設定はテーブル特性／ SQL データベース情報以外に、DBMS テーブルのパラメー
タ、データベース特性／ SQL データベース情報で設定可能です。

•

SHARE=Y
同じジョブでファイル ODP を他のプログラムと共有するために記述します。

•

STORAGE=DB2
次に示す項目について DB2/400 の形式で格納するかどうかを指定します。
Magic の日付型と時刻型の項目は、デフォルトでは DB2/400 の英数字フィールドとして定義されます。このキーワードを記述することにより、iSeries のネィティブの日付／時間フォーマットで保管します。
更に、日付型は次のキーワードを追加することにより、EUR 形式、USA 形式のフォー
マットに変更することが可能です。
DATFMT=xxx
xxx には、*MDY, *DMY, *YMD のいずれかを記述します。
時刻型は、デフォルトフォーマットは HH.MM.SS ですが、次のキーワードを追加することにより、HH:MM:SS に変更することが可能です。
TIMFMT=*HMS
論理型は、デフォルトとして ASCII コードの『F』または『T』で保管されます。こiSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries21

第 3 章 - Magic iSeries Clientのキーワードを記述することにより、iSeries で EBCDIC コードの『F』または『T』で保管されます。
•

CREATE="SIZE（*NOMAX）" ／ CREATE="SIZE（MAX レコード数）"
Magic から iSeries ファイルを生成するとき、iSeries で設定された最大レコード数を、
デフォルト値以外に設定する場合、このキーワードを使用します。
（例）CREATE="SIZE（*NOMAX）"•

CACHE=［レコードブロック数］
１回の READ 要求毎にどれだけのレコード数を転送するか指定します。連続したREAD 操作には、I/O パフォーマンスが改善されます。

•

TRANSACTIONS=Y
このキーワードを指定すると、指定したファイルがプログラムで利用されるとき、トランザクション処理を開始します。
（詳細は後述の「ISAM ファイルにトランザクショ
ンを利用する方法」(27 ページ ) を参照してください。）•

OPEN_PF=Y
Magicのファイルアクセスモードでファイルロックが発生するモードを使用したい場
合は、このキーワードを記述します。このキーワードを指定しないでファイルロックが発生するとロックが解除されるまで応答が返らないか、「Fail to Open ...」のエラー
ダイヤログが表示されます。
ただし、このキーワードを指定すると論理ファイルのオープン時にも、常に物理ファ
イルのオープン処理が行われるため、パフォーマンスが低下します。極力、レコード
ロック方式に変更することをお奨めいたします。

•

CRTSPLF=N
ファイルの作成処理中にスプールファイルを作成するかどうかを指定します。

定義取得機能テーブル定義取得機能を使って、iSeries ファイル定義をテーブルリポジトリに取り込むことができます。
参考：この機能は、ISAM ゲートウェイ、SQL ゲートウェイともに有効です。

図 3-9 定義取得

22

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

ISAM ゲートウェイの設定（1）リストから iSeries ファイルを選択
定義取得しようとするテーブルの名前が正確にわからない場合、あるいは複数のテーブ
ルを一度に定義取得しようとする場合には、最初に一覧を取得し、その中から選択し、定義取得を実行する、という方法を使います。
以下に手順を説明します。
1. ［開発／テーブルリポジトリ］を開きます。
2. テーブルの最初の行より上に、カーソルを移動します。
3. ［オプション／定義取得］メニューを選択します。
4. 「データベース」欄でズームして、定義取得するデータベースを選択します。
参考： 一覧には、データベーステーブルで定義されているデータベースのうち、SQL 系のゲートウェイあるいは iSeries の ISAM ゲートウェイにより定義されたものが表示されます。
5. 「タグファイル」を［選択］にします。
6. ライブラリ中のファイルが一覧表示されます。
7.

スペースキーを使って、定義取得したいファイルにタグ（V）を付けます。

8. 「選択」ボタン、または［Enter］キーを押します。
9. Magic はタグが付けられたファイルの定義を取得し、テーブルリポジトリに登録します。

（2）特定の iSeries ファイルを選択
名前がわかっているテーブルをひとつだけ定義取得したい場合には、この方法を用います。テーブルの一覧を取得する手順がないので、その分速く定義取得ができます。
1. テーブルリポジトリの任意の位置で、登録 ボタンまたは、F4 を押下して、新規行を作成します。
2. DB テーブル名とデータベースを指定します。
3. ［オプション／定義取得］メニューを選択します。
4. Magic は指定されたファイルの定義を取得し、テーブルリポジトリに登録します。
注意：

iSeries 開発ガイド•

iSeries から定義取得されたファイル構造は、Magic のテーブルリ
ポジトリですぐに変更することができません。

•

変更したい場合、［テーブル特性 /SQL データベース情報］に記述されたキーワード TYPE=PF/LF を削除してください。

Magic eBusiness Platform V9 Plus for iSeries23

第 3 章 - Magic iSeries Client

OPNQRYF の利用 − AS/400 OpenQuery ファイル −注意：

この機能は、ISAM テーブルをメインテーブルとし、物理トランザクションを使用するタスクの場合のみ有効になります。
プログラムで OPNQRYF の Query 選択式を定義するには、［タスク環境／範囲 / 位置付］
を選択します。ここで、プログラムのセレクトコマンドで定義されたカラムを使い、OPNQRYF で有効な Query 選択式を記述します。iSeries ゲートウェイはこの設定に基づき Query ファイルをオープンします。

図 3-10 Open Query ファイル

AS/400 OpenQuery ファイルの設定
AS/400 OpenQuery ファイルのダイアログは、次の部分で構成されています。
•

Magic SQL 式 ( 無効になっています )•Query 選択式•

評価結果の表示

Query 選択式
この領域に Query 選択式を記述できます。ここに記述した Query 選択式が Query ファイ
ルをオープンするときに利用されます。項目の記述方法としては、次の２種類があります。
1. ファイルのフィールド名、演算子、値を直接記述する方法
メインテーブルで定義されたカラムについて、iSeries でのフィールド名、および演算子等を直接記述することで、この式がそのまま Query 選択式として、Query ファイルオープンに利用されます。
2. 項目の番号（A、B、C など）の先頭に「:」記号を付けて記述する方法
メインテーブルのカラムでカラム特性の DB カラム名が定義してある場合、この方式が利用できます。項目名は、カラム特性の DB カラム名に置き換えられます。
メインテーブルでない場合、データ型にしたがって値に変換されます。項目の型が文字型の場合、Magic により後続のスペースが削除されるとともに引用符が追加されます。

24

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

ISAM ゲートウェイの設定

評価結果の表示領域
この領域には、Query 選択式全体が表示されます。この Query 選択式は、Magic から作成される Query ファイルに使われます。表示される内容は次の通りです。
•

レコードメインにより生成された Query 選択式：範囲式も表示されます。

•

Query 選択式：AND 句を使い、カッコで囲まれて表示されます。レコードメインの範囲に追加されます。

Query 選択式全体表示領域では、カラム一覧の項目はすべて置き換えられます。項目のうち、メインテーブルの実データのカラムは、DB2/400 のフィールド名に置き換えられます。また、変数項目はその名前に置き換えられます。項目が置き換えられるときには、
Magic により項目の型と記憶型式がチェックされ、必要な場合（例えば、文字型の場合）には引用符が追加されます。
ウィンドウの右下の［表示］ボタンをクリックすると、Query 選択式表示領域の内容が更新されます。
注意：

iSeries 開発ガイド•

Query 選択式は、タスクのオープン時に評価され、その後変数や実項目などの値が変更されても再計算されません。タスクオープン時には、レコードメインの「代入式」は評価される前なので、仮想変数項目にはデフォルト値が入っています。そのため、Query 選択式で使う変数は、実際的にはパラメータ変数に限られます。

•

Query 選択式には、データ型が BLOB またはメモの項目は指定できません。

•

Query 選択式に指定されている項目のデータ型はチェックされません。項目のデータ型に対してはそれぞれ、文字列への変換が試みられ、Query 選択式の所定の場所に連結されます。このため、データ型に注意する必要があります。

Magic eBusiness Platform V9 Plus for iSeries25

第 3 章 - Magic iSeries Client

ISAM ファイルへのダイレクト SQL セレクト重要：

ここで説明するダイレクト SQL セレクトの機能は、過去のバージョンとの互換性のために残されています。
新規に作成するプログラムでは、この機能は使用せず、SQL テーブルとして、埋め込み SQL の機能を利用することをお勧めします。
また、この機能は、ホストライブラリに SQL 用のパッチを適用した
場合には利用できなくなります。過去のバージョンから移行してきたアプリケーションでこの機能を利用したい場合には、ホストライ
ブラリにパッチを適用しないでください。

ISAM テーブルに対しても、オープン Query ファイルダイアログを使用することで SQLの SELECT 文を入力することができます。

図 3-11 ダイレクト SQL

入力するには以下の手順で実行します。
1. ISAM ゲートウェイによる iSeries 上のテーブルがタスクのメインテーブルとして定義されているかどうかを確認します。
2. メインテーブルのインデックスを「0」にします。
3. SELECT ステートメントで指定されているフィールドの型が、メインテーブルのものと合っているかどうかを確認します。
SQL の SELECT ステートメントは、FETCH ONLY オプションを付加して使用できます。

制限事項
以下に制限事項を挙げます。
•

SELECT ステートメント内で使用されるファイルは、直接更新できません。SQL のSELECT ステートメントテーブルとリンクコマンドでリンクすることでこの制限を回避できます。

•

SELECT ステートメント内で定義されたフィールドの数は、メインテーブルのカラム数と同じでなければなりません。異なる場合は、テーブルリポジトリでダミーのテー
ブルを作成しなければなりません。
ダミーテーブルは、iSeries 内には存在させてはいけません。以下に、ダミーテーブル
からフィールドを指定する方法を説明します。

26•

テーブル名 : TTT1•

位置 : MAGIC400 libraryiSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

ISAM ゲートウェイの設定•

テーブルには 3 つのカラムを定義します。: FLD1, FLD2, FLD 3.

FLD1 と FLD3 のみ表示したい場合は、以下のようにします。
ダミーテーブル TTT2 をテーブルリポジトリに定義します。このテーブルには、FLD1と FLD2 の 2 つのカラムを定義します。TTT1 テーブルの FLD1 と FLD3 と同じ特性で定義して下さい。
メインテーブルに TTT2 を定義したタスクを作成します。このテスクで、FLD1 とFLD2 のカラムを定義します。
AS/400 OpenQuery タスクウィンドウに以下のようなステートメントを入力します。
SELECT FLD1,FLD3 FROM MAGI400/TTT1 WHERE FLD=’some value’ FOR FETCH
ONLY.

セレクトコマンドで範囲指定に対する OPNQRYF の利用
AS/400 OpenQuery ファイルダイアログを使わず、タスクのセレクトコマンドの範囲指定のみが設定されている場合は、「*RNGSVR=Y」キーワードが DBMS パラメータ、データ
ベース特性、テーブル特性のいずれかで設定している時に限り、その範囲条件を Query
ファイルに含めることができます。
範囲大小の設定パターンにより、次のような OPNQRYF のステートメントが発行されま
す。
範囲小

範囲大

ステートメントA

B

Field >=A *AND Field <=B
または、%Range（A,B）

A−

Field >=A−

−B

Field <=B

NULL

NULL

Field=%NULL−

Field=%NULL

NULL

NULL

Field=%NULL

NULL

B

Field=%NULL

A

NULL

Field=%NULL

ISAM ファイルにトランザクションを利用する方法
Magic で ISAM ゲートウェイを使い、iSeries ファイルのトランザクション処理を行うためには、次の設定を行う必要があります。
• ［設定／動作環境／マルチユーザータブ／ ISAM トランザクション］パラメータを「Yes」にします。
•

iSeries 開発ガイド

データベース特性、またはテーブル特性の「SQL」タブで、「データベース情報」プ
ロパティに、「TRANSACTIONS=Y」を指定します。

Magic eBusiness Platform V9 Plus for iSeries27

第 3 章 - Magic iSeries Client•

プログラムで、処理レベルテーブルのトランザクション欄の指定をします。
注意：キーワード TRANSACTIONS=Y は、次の新しい機能を起動します。
•

ジャーナルレシーバーとジャーナルを自動生成します。（ファイ
ル名が、レシーバーとジャーナルファイルにて使用されます。）•

物理ファイルならば ジャーナル PF を開始します。論理ファイル
ならば、ジャーナルアクセスパスを開始します。

•

メッセージを QSYSOPR へ送ります。

SQL ゲートウェイの設定
DB2/400 の［設定／ DBMS］の設定
SQL ゲートウェイは ISAM ゲートウェイを通して EASYCOM にアクセスする
ので、SQL ゲートウェイのみを利用する場合でも、ISAM と SQL の両方の設定が必要になります。

重要：

以下には SQL に固有な部分のみ説明しますが、SQL ゲートウェイを利用するにあたっては、前述の 「ISAM の［設定／ DBMS］の設定」（11 ページ）も必要となり、実行時に有効となるので、そちらを先に設定してください。
DB2/400 の［設定／ DBMS］テーブルを設定するには、次のように実行します。
1. Magic を起動します。
2. プルダウンメニューバーで［設定／ DBMS］を選択します。
3. 「DB2/400」の名前の行に位置づけます。
参考： 「DB2/400」という名前の行がなければ、任意の行で［登録］ボタン、または ［F4］キーを押して、行を追加し、［名前］を「DB2/400」、［浮動小数点］を「10.3」、［ID］を「7」と入力してください。
4. 「パラメータ」欄に移動し、必要なパラメータを入力します。有効なパラメータについては、以下に説明します。
5. ［OK］ボタンか ［Enter］を入力します。

DB2/400 の「パラメータ」欄で有効なパラメータ•

CONNECTDLL=MGEAC32.DLL
SQL ゲートウェイを利用する場合には、このキーワードを指定します。

•

CRTSQLSCRIPT=< ファイル名 >実行時に SQL ゲートウェイがテーブルを新規作成する際、発行された CREATE ス
テートメントが、< ファイル名 > のファイルに記録されます。このファイルは PC ク
ライアント上に作成されますので、クライアントの Windows 上で有効な名前を指定
してください。
参考：CREATE ステートメントは、iSeries 上で RUNSQLSTM コマンド等によって実行され、データベーステーブルが作成されます。

DB2/400 の［DBMS 特性］の設定•

28

ログレベル、ログファイル名、同期設定
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

SQL ゲートウェイの設定
これらは、ゲートウェイのログを出力したい場合に設定します。
•

分離レベル
トランザクションの分離レベルを設定します。ここは 0 〜 3 の整数で指定し、それぞれの意味は以下の通りです。
分離レベルの値

分離レベル

意味

0 ( デフォルト )UR

未コミット読み込み

1CS

カーソル固定2

RS

読み取り固定3

RR

反復可能読み取り

参考：•

0 （未コミット読み込み）の設定だと、マルチユーザ環境での並列度が高く、オーバーヘッドも低いですが、コミットされていないデータが読み取られる可能性があるので、通常は 1 ( カーソル固定 ) に設定しておくことを推奨します。

•

2（読み取り固定）や 3（反復可能読み取り）は並列度が下がるので、高度なデータ一貫性が要求される処理に止めておくようにしてください。

DB2/400 の［設定／データベース］の設定
SQL ゲートウェイに関する［設定／データベース］テーブルでは次のような設定を行います。

DB2/400 データベースの定義
1. Magic を起動します。
2. プルダウンメニューバーから［設定／データベース］を選択します。
3. 新しい行を作成するために、［登録］ボタンまたは、［F4］キーを押します。
4. ［名前］に、適当なデータベース名を入力します。データベース名は、ユーザが自由に設定できます。ここで、設定した名前は、アプリケーションテーブルやテーブル
リポジトリの［データベース］などで参照します。
5. ［DBMS］からズームして、［DBMS 一覧］を開き、［DB2/400］を選択します。
6. ［DB 名］は、アクセスする iSeries データベースのコレクション名を英数大文字で指定します。
7. ［Magic サーバ］は、空白のままにします。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries29

第 3 章 - Magic iSeries Client
8. ［位置］は、空白のままにします。

図 3-12 データベーステーブル

DB2/400 の［データベース特性］の設定

図 3-13 データベース特性［データベース特性］ダイアログでは、iSeries のホストの定義とデータアクセスに関するパラメータを追加することができます。方法は次の通りです。
1. 該当する iSeries のデータベースに位置付けて、プルダウン・メニュー［編集 / 特性］
を選択するか 、［Ctrl］+［P］キーを押すと、データベース特性ダイアログの「ログオン」タブが表示されます。
ここでは、以下のパラメータを設定することができます。

30•

データベースサーバ …… iSeries サーバのホスト名、または IP アドレス。

•

ユーザ名／パスワード …… iSeries サーバに接続する際のユーザ名とパスワード。

•

配列のサイズ （「SQL」タブ）…… 一回の READ リクエストに対してどれだけ
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

SQL ゲートウェイの設定のレコードを受信したいかを指定するものです。このパラメータは、READ 処
理の I/O のパフォーマンスを改善する場合に重要なものです。0 が指定されている場合には、デフォルト で、１ブロックで最大 20 レコードを返します。
•

テーブルの存在チェック（「SQL」タブ）…… テーブルオープン時に毎回、アクセス先のSQL テーブルが存在するかどうかのチェックを行うか否かを指定します。

2. SQL タブの「データベース情報」には、KEYWORD=VALUE の形式で、追加のパラメータを指定することができます。指定できるキーワードは、31 ページの「DB2/400 の「データベース情報」欄で有効なキーワード」で説明します。

図 3-14

データベース情報

3. ［OK］をクリックして［データベース特性］ダイアログを終了し、再度［OK］をクリックして［データベース］テーブルを終了します。

DB2/400 の「データベース情報」欄で有効なキーワード
DB2/400 データベースの「データベース情報」で指定できるキーワードは、次の通りです。
•

MAGICDBA=［HOST DBA ライブラリ］
利用するホスト DBA ライブラリ名を指定します。このパラメータによって、HOST
DBA の異なるバージョンを使用したり、異なる iSeries サーバに対して異なるライブ
ラリ名を指定することができます。

•

SQL_ISOLATION_LEVEL= UR | CS | RS | RR
ファイルにアクセスするときのトランザクション分離レベルを設定します。分離レベ
ルの意味は、下記の通りです。

iSeries 開発ガイド

分離レベル記号意味UR

未コミット読み取り

CS ( 推奨 )カーソル固定RS

読み取り固定RR

反復可能読み取り

Magic eBusiness Platform V9 Plus for iSeries31

第 3 章 - Magic iSeries Client
参考：•

ここで指定されないとき、デフォルトの分離レベルは、DBMS 特性の設定が有効になります。

•

DBMS 特性でも設定されていなければ、デフォルトとして UR となります。

•

UR ではコミットされていないデータを読み込む可能性があるので、CS に設定
しておくことを推奨します。

DB2/400 テーブル指定時の注意点
SQL ゲートウェイで iSeries のデータベースにアクセスする場合、ISAM ゲートウェイによりアクセスする場合とは仕様が異なる点に注意が必要です。Magic でアクセスする上で考慮すべき点を以下に列挙します。
•

テーブル名、DB インデックス名、DB カラム名を空欄にすることはできません。

•

テーブル名、DB インデックス名、DB カラム名には、半角英数大文字で設定します。

•

テーブル名、DB インデックス名、DB カラム名の最大サイズは次の通りです。
項目

サイズ

テーブル名、DB インデックス名、制約名

128 バイトカラム名30 バイト•

重複不可のキーを最低１つ定義する必要があります。

•

文字型のカラムの書式に DBCS 固有の位置指示記号を指定した場合、キー入力時の規制は Magic Client が制御するために有効ですが、格納される文字タイプは、すべて全角と半角が混用可能な CHARCTER 型に対応します。

カラムの定義について、「補足」の「データ記憶型式と iSeries データタイプ」を参照してください。

DB2/400 テーブルの「テーブル特性」で有効なキーワード
テーブルリポジトリで、SQL ゲートウェイにより定義されているテーブルに対し、「テー
ブル特性」ダイアログを開き、「SQL」タブの「SQL データベース情報」欄に、以下のパラメータが指定されます。
•

SHRTNAME= ［ファイルシステムでの名前］「定義取得」機能によって自動的に挿入されます。このキーワードが設定されていると、テーブル定義を削除しても、iSeries の実際のファイルは削除されません。

定義取得機能SQL ゲートウェイを使った場合にも、定義取得が可能です。定義取得の方法については、
ISAM データベースの設定の「定義取得機能」(22 ページ ) を参照してください。

32

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース

埋め込み SQL

図 3-15 埋め込み SQLSQL ゲートウェイを利用すると、埋め込み SQL の機能を利用できます。これにより、SQL
コマンドダイアログに複雑な SELECT ステートメントや、ストアードプロシージャを記述して実行することができます。
ただし、iSeries の SQL ゲートウェイを指定した埋め込み SQL のプログラムは、以下のような、他の SQL のゲートウェイとは異なる点に考慮する必要があります。
•

ステートメントには、半角英数大文字以外は指定できません。

•

結果データベースには iSeries SQL データベースを指定できません。Pervasive.SQL 、
Memory データベース等を指定して下さい。

•

ストアードプロシージャーを指定する場合、プロシージャー名の前に "CALL" を記述します。

•

ファイル名、プロシージャー名にはコレクション名（ライブラリ名）を付加する必要が あ り ま す。コ レ クション名とファイル名の区切文字は、DBMS テーブルのNAMING=*SQL パラメータの有無により、.（ドット）または /（スラッシュ）のいず
れかを設定します。

参考：埋め込み SQL の詳細は、『リファレンス』の第 7 章を参照してください。

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース
Magic for iSeries では、iSeries に特化した機能のために、固有のユーザ定義関数（UDF）／ユーザプロシージャ（ユーザ PRC）インタフェースをサポートしています。
プログラムでの設定方法は、Magic リファレンスの UDF 関数、またはコールユーザ PRCに関する記述を参照してください。
注意：

iSeries 開発ガイド•

マルチスレッド環境では、UDF は正しく動作しないことがありますので、ISERIES ユーザプロシジャ（40 ページ）を使用して
ください。

•

プログラムチェックユーティリティは、UDF/ ユーザプロシジャの構文、およびパラメータの設定に対してチェックを行いません。

Magic eBusiness Platform V9 Plus for iSeries33

第 3 章 - Magic iSeries Client

AS400PGMCALL 関数
AS400PGMCALL 関数は、引数を１つ持つ iSeries プログラムをコールする場合に利用します。

構文
UDF（‘MGEAC32.AS400PGMCALL’, A ,B ,C ,D）

パラメータ
•

A = iSeries システム名（文字型）•

B = プログラムライブラリ / プログラム名（文字型）•

C = 入力パラメータ（文字型）•

D = 入力パラメータ長（数字型）

戻り値プログラムの戻り値（文字型最大 2048 バイト）

RMTCMD 関数
RMTCMD 関数は、CL コマンドをコールする場合に利用します。また、CALL PGM … を指定することで、複数のパラメータを渡す iSeries プログラムを指定することができます。
ただし、DBCS のパラメータは対応していません。

構文
UDF（‘MGEAC32.RMTCMD’, A, B）

パラメータ
•

A = iSeries システム名（文字型変数）•

B = CL コマンド（文字型）

戻り値：数値型•

0 ……処理が成功した場合•

1 ……処理が失敗した場合

STRMAGRUN 関数
STRMAGRUN 関数は、Magic iSeries Sever を起動する場合に利用します。
この関数は、設定／ DBMS テーブルの MAGICSRV パラメータに設定されたライブラリにある MagicServer を起動します。

構文
UDF ('MGEAC32.STRMAGRUN',A ,B, C, D, E)

34

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース

パラメータ
•

A = iSeries システム名（文字型変数）•

B = デフォルトアプリケーション番号（文字型変数）•

C = 空白（予約値）•

D = コマンドラインオプション（文字型変数）•

E = コマンドラインオプションの桁数（数値型変数）

戻り値：文字型
正しく起動された場合、ジョブ番号、ユーザ名、ジョブ名、カレントライブラリが返ります。
起動できなかった場合、OS/400 の CPF メッセージ番号が返ります。
注意：•

この UDF を使う場合には、DBMS パラメータの MAGICSRV (13ページ ) を指定する必要があります。例：
MAGICSRV=MAGICRUN94•

コマンドラインオプションのデータの最初の 1 バイト目はスペー
スを入れる必要があります。

•

コマンドラインオプションには、２バイト文字は対応していません。

AS400Call ユーザプロシジャ
AS400Call 関数は、複数の引数を持つ iSeries プログラムをコールする場合に利用します。

図 3-16 AS400Call ユーザプロシジャ構文
コール PRC 処理コマンドで実行します。
定義式：@MGEAC32.AS400Call

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries35

第 3 章 - Magic iSeries Client

パラメータ
1. 引数型文字列
2. iSeries システム名……文字型
3. プログラムライブラリ / プログラム名……文字型
4. パラメータの総数……数値型
5. パラメータの内容（例：データタイプ：A= 文字型、N= 数値型、サイズ、I/O タイ
プ：O= 出力）……文字型
6. 1 番目のパラメータ
7. 2 番目のパラメータ
8. ...（以下、パラメータを列挙 )注意：

数値パラメータを指定する場合、以下の点を考慮してください。
•

iSeries のプログラムの中のパラメータ変数の型が *DEC 等の場合でも、コール ユーザ PRC コマンド のパラメータは、すべて文字型として定義します。

•

入力パラメータのデータの書式は、左詰め、かつマイナス符号を前付けに指定して下さい。

•

出力パラメータの桁数の合計が偶数桁の場合、戻り値の先頭に 0 が付加されるため、サイズを１桁多く必要とします。
例えば、LEN（10 3）の戻り値には、13 桁 （10+ マイナス符号 + コンマ +1）の文字型項目を定義します。

•

コール ユーザ PRC コマンドの 5 番目のパラメータに定義する書式には、MAGIC の書式ではなく、iSeries のプログラムに定義された書式を設定します。

引数型文字列
一つ一つの文字が引数の型を意味する文字列です。
最後の文字は、関数の戻り値の型を意味します。引数型文字と意味する型は次のとおり
です。

36

•

1…char•2…short•

4…long•F…float•

8…double•D…double pointer•

E…float pointer•

L…long pointer•A…null で終了する文字列 pointer•

V…void pointer•

0…voidiSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース

例 :SAMPLIB/SAMP1 をコールする場合•

SAMPLIB/SAMP1 のソース*************** データの始め ****************/* MAGIC ISERIES UDP SAMPLE */PGM
PARM（&MGP1 &MGP2 &MGP3 &MGP4 &MGP5 &MGP6）
DCL
VAR（&MGP1）TYPE（*CHAR）LEN（10） /* IN */DCL
VAR（&MGP2）TYPE（*CHAR）LEN（10） /* IN */DCL
VAR（&MGP3）TYPE（*CHAR）LEN（20） /* IN+OUT */DCL
VAR（&MGP4）TYPE（*DEC）LEN（12）/* IN */DCL
VAR（&MGP5）TYPE（*DEC）LEN（15 3） /* IN */DCL
VAR（&MGP6）TYPE（*DEC）LEN（16 3） /* IN+OUT */CHGVAR VAR（&MGP3）VALUE（&MGP1 *CAT &MGP2）CHGVAR VAR（&MGP6）VALUE（&MGP4 + &MGP5）
ENDPGM*************** データの終わり ****************

Magic プログラムの設定•

コール ユーザ PRC のパラメータ1.

'AA4AAAAAAAV'

2.

'10.1.4.201'

3.

'SAMPLIB/SAMP1'

4.

6

5.

'A10, A10, O:A20, N12, N15.3, O:N16.3'

6.

P1

7.

P2

8.

P3

9.

P4

10. P5
11. P6
•

変数の定義
名前

型

書式

P1

A= 文字

10

P2

A= 文字

10

P3

A= 文字

10

P4

A= 文字

13

P5

A= 文字

17

P6

A= 文字

19

D4

N= 数値

N12

D5

N= 数値

N23

D6

N= 数値

N133

D4, D5, D6 は、それぞれ P4, P5, P6 に対応します。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries37

第 3 章 - Magic iSeries Client•

コマンドの設定
コールコマンドの直前に実行する項目更新コマンド：
項目更新 P4 式 = STR（D4,'N12L'）
項目更新 P5 式 = STR（D5,'N12.3L'）

コールコマンドの後で、実行する項目更新コマンド：
項目更新 D6 式 = VAL（P6,'N14.3'）

EBCDIC コードによる文字コード比較関数
EBCCMP 関数は、EBCDIC コードで文字型項目の大小比較を行います。この関数は、範囲位置付けダイアログ等で利用することが可能です。

構文
UDF（'MGEAC32.EBCCMP',A,B）

パラメータ
1. A,B = 比較文字項目（文字型）戻り値•

A>B の時 ……1•

A=B の時 ……0•

A<B の時 ……-1
注意：

比較対象のベースとなるコードページは、設定 /DBMS で定義されたコードページを使用します。（デフォルト：IBM-943:IBM:930）

シフト JIS コードから EBCDIC コードへの変換関数
ASC2EBC 関数は、シフト JIS コードの文字列を、EBCDIC コードの文字列に変換します。

構文
UDF（'MGEAC32.ASC2EBC', A）

パラメータ
1. A = シフト JIS コードの文字列 （文字型）

戻り値
EBCDIC コードの文字列

例
文字列 'X' の EBCDIC コード（16 進）を求める場合

38

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース
HSTR （ASC （UDF （'MGEAC32.ASC2EBC','X'）））

注意：

パラメータに２バイト文字を入力する場合、EBCDIC のパラメータは、シフトイン／シフトアウトコードを考慮して、サイズを決定する必要があります。

EBCDIC コードからシフト JIS コードへの変換関数
EBC2ASC 関数は、EBCDIC コードの文字列を、シフト JIS コードの文字列に変換します。

構文
UDF（'MGEAC32.EBC2ASC', A）

パラメータ
1. A = EBCDIC コードの文字列 （文字型）

戻り値
シフト JIS コードの文字列

セッション開始関数
STARTSESSION 関数は、iSeries とのセッションを開始します。この関数を実行すること
で、ユーザログオンダイアログを表示せずに、アプリケーションから自動ログオンすることができます。

構文：
UDF （‘MGEAC32.STARTSESSION’, A, B, C）

パラメータ：•

A= サーバ名（文字型）•

B = ユーザ ID（文字型）•

C= パスワード（文字型）

戻り値：数値型•

0 ……処理が成功した場合•

1 ……処理が失敗した場合

セッション終了関数
ENDSESSION 関数は、iSeries とのセッションを強制終了します。

構文：
UDF （‘MGEAC32.ENDSESSION’, A）
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries39

第 3 章 - Magic iSeries Client

パラメータ：•

A= サーバ名（文字型）

戻り値：数値型•

0 ……処理が成功した場合•

1 ……処理が失敗した場合

エラーハンドリング関数
RTVERRID 関数は、プログラム実行中にサーバでエラーが発生した時、最後に出力されたエラーコードを取得します。
DBError 関数もエラーコードを取得することができますが、レコード前処理の前でエラー
コードがクリアされます。RTVERRID 関数は、次のエラーが発生するまでエラーコードを保持しています。

構文：
コール PRC 処理コマンドで実行します。
定義式：@MGEAC32.ISERIES

パラメータ：
1. 'AAAALV'
2. 'RTVERRID'
3. iSeries システム名（文字型）
4. CPF エラー ID （文字型）
5. CPF メッセージ（文字型）
6. CPF メッセージのサイズ（数値型）※ ISERIES ユーザプロシジャの詳細は、次項をご覧ください。

ISERIES ユーザプロシジャ
iSeries 固有の UDF 関数をアプリケーションサーバエンジンで実行する場合には、ISERIES
ユーザプロシジャを通して実行します。

構文
コール PRC 処理コマンドで実行します。
定義式：@MGEAC32.ISERIES

パラメータ
1. 引数型文字列
2. UDF 関数の名前…文字型

40

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース
3. iSeries システム名……文字型
4. （以下、UDF 関数のパラメータを列挙）

例 1．RMTCMD 関数
パラメータ1. 'AAAL'
2. 'RMTCMD'
3. '10.1.4.201'
4. 'SNDMSG MSG（HELLO）TOUSER（QSYSOPR）'
5. 戻り値…… 数値型

例 2. AS400PGMCALL 関数
1. 'AAAA4AV'
2. 'AS400PGMCALL'
3. '10.1.4.201'
4. 'MAGIC400/TEST'
5. 入力パラメータ …… 文字型
6. 入力パラメータの桁数 …… 数値型
7. 戻り値（文字型最大 2048 バイト）例 3. STARTSESSION 関数
1. 'AAAAL'
2. 'STARTSESSION'
3. '10.1.4.201'
4. ユーザ名
5. パスワード
6. 戻り値…… 数値型

例 4. ENDSESSION 関数
1. 'AAL'
2. 'ENDSESSION'
3. '10.1.4.201'
4. 戻り値…… 数値型

例 5. EBCCMP 関数
1. 'AAAAL'
2. 'EBCCMP'
3. '10.1.4.201'
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries41

第 3 章 - Magic iSeries Client
4. 入力パラメータ１ …… 文字型
5. 入力パラメータ２ …… 文字型
6. 戻り値 …… 数値型

出力パラメータの戻り値•

入力パラメータ１＞入力パラメータ２ …… 1•

入力パラメータ１＝入力パラメータ２ …… 0•

入力パラメータ１＜入力パラメータ２ …… -1

例 6. ASC2EBC 関数
1. 'AAAA4V'
2. 'ASC2EBC'
3. '10.1.4.201'
4. 入力パラメータ（シフト JIS コード）…… 文字型
5. 出力パラメータ（EBCDIC コード）…… 文字型
6. 出力パラメータサイズ …… 数値型

例 7. EBC2ASC 関数
1. 'AAAA4V'
2. 'EBC2ASC'
3. '10.1.4.201'
4. 入力パラメータ（EBCDIC コード）…… 文字型
5. 出力パラメータ（シフト JIS コード）…… 文字型
6. 出力パラメータサイズ ……数値型

オブジェクトリストの取得
DSPOBJ プロシージャは、iSeries のオブジェクトリストを取得して、指定されたファイルに格納します。

構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.DSPOBJ

パラメータ
1. iSeries システム名
2. オブジェクト名 ［固有のオブジェクト、*ALL］
3. オブジェクトのライブラリ ［固有のライブラリ名 ,*LIBL, *CURLIBL, *ALLUSER,*ALL］
4. オブジェクトのタイプ ［*CMD, *FILE, *PGM, *ALL］

42

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース
5. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
6. 取得したオブジェクトリストの格納する一時ファイル。デフォルトは MGOBJLIST。
7. 結果の戻り値 ［0: 成功 -1: 失敗］

システム値リストの取得
DSPSYSVAL プロシージャは、iSeries のシステム値のリストを取得して、指定されたファ
イルに格納します。

構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.DSPSYSVAL

パラメータ
1. iSeries システム名
2. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
3. 取得したシステム値のリストの格納する一時ファイル。デフォルトは MGSYSVAL。
4. 結果の戻り値 ［0: 成功 -1: 失敗］

システム値データの取得
RTRVSYSVAL プロシージャは、iSeries の各システム値に設定されたデータを取得します。

構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.RTRVSYSVAL

パラメータ
1. iSeries システム名
2. システム値の名前（QCCSID, QCENTURY など）
3. 設定されたデータ
4. 設定されたデータのサイズ

スプールファイルリストの取得
DSPSPLF プロシージャは、スプールファイルのリストを取得して、指定されたファイルに格納します。

構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.DSPSPLF
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries43

第 3 章 - Magic iSeries Client

パラメータ
1. iSeries システム名
2. ユーザ名。デフォルトはカレントユーザ。
3. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
4. スプールファイルのエントリを格納する一時ファイル名。デフォルトは
MGSPLLST。
5. 結果の戻り値 ［0: 成功 -1: 失敗］

スプールファイルデータの取得
DSPSPLFE プロシージャは、任意のスプールファイルのデータを取得して、指定されたファイルに格納します。

構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.DSPSPLFE

パラメータ
1. iSeries システム名
2. スプールファイルエントリの名前。デフォルト値は QPRINT。
3. スプールファイルエントリの番号（文字型）
4. ジョブ名
5. ジョブ番号（文字型）
6. ユーザ名。デフォルトはカレントユーザ。
7. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
8. スプールファイルのエントリを格納する一時ファイル名。デフォルトは MGF255。
9. 結果の戻り値 ［0: 成功 -1: 失敗］

スプールファイルの処理
WRKSPLFE プロシージャは、指定したスプールファイルに対して、次の処理を行います。
•

コピー枚数の変更•

スプールファイルの保留、解放、削除構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.WRKSPLFE

パラメータ
1. iSeries システム名
2. スプールファイルエントリの名前。デフォルト値は QPRINT。

44

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic for iSeries 固有の UDF/ ユーザ PRC インタフェース
3. スプールファイルエントリの番号（文字型）
4. ジョブ名
5. ジョブ番号（文字型）
6. ユーザ名。デフォルトはカレントユーザ。
7. スプールファイルに対する処理オプション［C: コピー , H: 保留 , R: 解放 , D: 削除］
8. コピー枚数
9. 結果の戻り値 ［0: 成功 -1: 失敗］

IFS ディレクトリの取得
DSPIFSDIR プロシージャは、IFS ディレクトリにあるオブジェクトリストを取得して、指定されたファイルに格納します。

構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.DSPIFSDIR

パラメータ
1. iSeries システム名
2. ディレクトリ名
3. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
4. IFS ディレクトリのリストを格納する一時ファイル名。デフォルトは MGDIRLST。
5. 結果の戻り値 ［0: 成功 -1: 失敗］

IFS ストリームファイルの取得
RTVSTMF プロシージャは、IFS ディレクトリにあるストリームファイルのテキストデー
タを取得して、指定されたファイルに格納します。

構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.RTVSTMF

パラメータ
1. iSeries システム名
2. ディレクトリを含むストリームファイル名
3. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
4. ストリームファイルのテキストを格納する一時ファイル名。
5. 結果の戻り値 ［0: 成功 -1: 失敗］

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries45

第 3 章 - Magic iSeries Client

IFS ストリームファイルの更新
PUTSTMF プロシージャは、IFS ディレクトリにあるストリームファイルのテキストデー
タを更新します。

構文
コール PRC 処理コマンドで実行します。
定義式：MGEAC32.PUTSTMF

パラメータ
1. iSeries システム名
2. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
3. 更新データのある一時ファイル名
4. ディレクトリを含むストリームファイル名
5. ストリームファイルの CCSID。デフォルトはストリームファイルの CCSID。
6. 結果の戻り値 ［0: 成功 -1: 失敗］

その他の機能QSYSOPR メッセージ
ゲートウェイを初期化したり終了したりする QSYSOPR メッセージのキューに発行されたメッセージは、メッセージファイルに配置されます。これにより、ユーザによって重要度をコントロールすることができます。メッセージキューファイル MAGICMSGQ は、
ホストライブラリに存在します。このファイルの配信オプションは、DFT に設定されます。これは、応答を必要とするメッセージがそれらのデフォルト応答に対応し、メッセー
ジキューに何のメッセージも追加されないことを意味します。*HOLD 、*BREAK 、または、*NOTIFY を含む他のオプションは、以下のように Magic for iSeries のクライアント
メッセージをメッセージキューに送ります。
•

eDeveloper for iSeries started in MAGIC400 …… Magic iSeries Client が開始されたとき•

eDeveloper for iSeries ended in library MAGIC400 …… Magic iSeries Client が終了された
ときゲートウェイとホストのバージョンの同期化
ホストライブラリは、レベルに対応した ID を持っています。ネイティブな iSeries のコ
マンドで MGHSTVER を使用することで、バージョンが表示されます。バージョン表示
は、ゲートウェイが必要とするホストライブラリの最低バージョンを指定する値を含んでいます。
初期化処理時ゲートウェイは、ホストバージョンと必要な最低バージョンを比較します。
ホストバージョンが、期限切れか古すぎる場合、警告メッセージを表示します。DBMS
特性で 「HOSTSYNC=N」というキーワードを指定することで、この警告を無視させることができます。

46

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesその他の機能

複数のサーバに接続する場合
複数の iSeries サーバに接続する場合、各サーバのホストライブラリを指定することができます。各サーバに対応するデータベース特性でサーバ名やユーザ名などを指定する他、［データベース情報］欄で ’MAGICDBA’ というキーワードを以下のように指定することで可能になります。
MAGICDBA= ホストライブラリ名

MGCLIENT ジョブ記述オプション
MGCLIENT ジョブは、
HOST DBA ライブラリの MGCLIENT ジョブ記述を利用しますが、次のコマンドを実行して、TCP_INI データ領域（*DTAARA）の 80 カラム目に *USRPRFの指示を挿入すると、ユーザプロファイルのジョブ記述を利用するようになります。
CHGDTAARA DTAARA（TCP_INI （80 10））VALUE（'*USRPRF'））iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries47

第 3 章 - Magic iSeries Client

48

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic iSeries Server のインストレーション

4

Magic iSeries Server
本章では、Magic iSeries Server の設定と管理について解説します。

本章の内容は、Magic iSeries Server をインストールした場合にのみ必要となります。Magic iSeries Client のみをインストールしている場合には、本章の設定は不要
です。

注意：

Magic iSeries Server のインストレーション
Magic iSeries Server のインストレーションの手続きについては、『Magic eBusiness Platform
for iSeries インストールガイド』に詳細に説明されているので、そちらを参照してください。

Magic iSeries Server のソフトウェア構成
Magic iSeries Server は、次のようなソフトウェアコンポーネントから成っています。
•

iSeries の PASE 環境で実行されるソフトウェア (Magic サーバやメッセージングサー
バなど）•

MAGIC400.INI ファイルやセキュリティファイル等の環境設定ファイル•

iSeries ネイティブ環境で実行可能なユーティリティが格納されている、Magic サーバ
コンポーネントライブラリ•

その他のストリームファイル等

インストレーションガイドに従ってインストールすれば、これらすべての構成要素がイ
ンストールされます。

注意：本章では、以下の設定でインストールしたものとして説明をします。
項目意味

本章での設定例

ホストライブラリ

EASYCOM ミドルウェア類が格納されているライブラリ。

MAGIC400

Magic サーバアカウント

インストール時に指定した、iSeries のユーザプロファイル。Magic の管理者。

MAGIC94

Magic サーバライブラリ

インストール時に指定したライブラリ名。Magic の管理・実行に必要なオブジェクトが格納されている。

MAGICRUN94

実際のインストールと異なる場合には、適宜読み替えてください。

サーバの環境設定
Magic iSeries Server を実行するためには、各種の設定を正しく行う必要があります。これには、以下のようなものが含まれます。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries53

第 4 章 - Magic iSeries Server•

実行環境、言語設定、作業ディレクトリ

•サブシステム名、ジョブキュー等、iSeries 実行パラメータの設定•

アプリケーションパーティショニングや、インターネットアプリケーションを構築するための Magic メッセージングサーバの定義（詳細は第 5 章で説明）や、インターネットアプリケーションでの設定

Magic サーバ構成プログラム (CFGMGCSVR) を使用することで、これらの設定を全て行うことができます。

Magic サーバ構成プログラム CFGMGCSVR の基本的な使用法
Magic サーバ構成プログラムは、5250 のターミナルかターミナル・エミュレータから実行できるメニュー選択方式の iSeries アプリケーションです。
（図 4‑1）
重要：

Magic サーバ構成プログラムは、英語小文字を使用するので、CCSID は、「939」または、「5035」の環境で使用してください。

図 4-1 Magic サーバ構成プログラム CFGMGCSVR

Magic サーバ構成プログラムは以下の手順で開始・利用します。
1. Magic サーバアカウント（MAGIC94）でサインオンします。
2. CHGCURLIB コマンドで、Magic サーバライブラリ （MAGICRUN94）をカレントラ
イブラリとします。

CHGCURLIBMAGICRUN94

3. CFGMGCSVR コマンドを実行すれば、Magic サーバ構成プログラムの初期画面が表示されます。

CFGMGCSVR
4. マウスクリックか［Tab］キー、矢印キーなどを押すと、メニューバー内をカーソルが移動します。

54

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

サーバの環境設定
5. カーソルがメニューバー上にあるときに［実行］キーを押すと、そのメニューに関するサブメニューが、プルダウンメニューとして表示されます。
6. メニュー項目を選択する場合は、マウスか矢印キーでメニュー項目にカーソルを移動して［実行］キーを押してください。

Magic の基本動作環境の確認と変更
動作環境を確認・変更する場合は、以下のように行ってください。
1. [Magic Config] にカーソルを置いて［実行］キーを押すと、プルダウン・メニューが開きます。
2. [Server Environment] を選択すると、[Change Magic Environment]（Magic の環境変更）
画面が表示されます。

図 4-2 Magic iSeries Server の基本設定

3.

ライブラリ名、ディレクトリ名、コードページ情報（「ASCII File Code Page」は「942」を使用します。）が正しく設定されていることを確認します。

4. 変更せずに終了する場合は［F3］、変更した場合には［実行］を押します。

参考：•

通常、この設定は変更する必要はありません。

•

設定を変更する場合、変更しないフィールドは、空白にしてください。

MAGIC サブシステム構成の確認と変更
Magic iSeries Server は、MAGIC サブシステムで実行するよう設定されています。通常この構成を変更する必要はありませんが、もし MAGIC サブシステム構成を変更したい場
合には、次のステップに従ってください。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries55

第 4 章 - Magic iSeries Server
1. [Magic Config] にカーソルを置いて［実行］を押下すると、プルダウン・メニューが開きます。
2. [MAGIC Subsystem Config] を選択して［実行］キーを押すと、「MAGIC Subsystem
Config」（Magic サブシステム構成）画面が表示されます。（図 4-3)

図 4-3 Magic サブシステム構成の変更

3. 必要に応じ設定を修正し、［実行］キーを押してください。

Magic アプリケーションサーバの構成
MAGIC400.INI ファイルの編集
MAGIC400.INI ファイルは、Magic アプリケーションサーバの実行の詳細な制御を行う設定ファイルです。これには、アプリケーションの定義、使用するデータベースやプリン
タの定義、メッセージングサーバ等パーティショニングに関する定義、その他の設定が格納されています。
MAGIC400.INI ファイルを編集するには、次のステップに従ってください。

56

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic アプリケーションサーバの構成
1. [Magic Config] にカーソルを置いて［実行］キーを押すと、プルダウン・メニューが開きますので、「MAGIC400.INI」を選択してください。

図 4-4 Magic サーバ構成プログラム CFGMGCSVR

2. 初期画面で「2= 編集」を選択して［実行］キーを押します。

図 4-5 MAGIC400.INI ファイルの選択

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries57

第 4 章 - Magic iSeries Server
3. iSeries ソースファイル・エディタが実行され、現在の MAGIC400.INI ファイルが表示されます。
（図 4-6）

図 4-6 iSeries サーバ上の MAGIC400.INI の編集

4. 必要に応じて MAGIC400.INI ファイルを編集して、最後に［F3］キーで保存して終了してください。

参考：
MAGIC400.INI ファイルは IFS ファイルシステム上にあり、Client Access のファイル共有機能を使って、Windows PC 上のネットワークドライブにマッピングすることができます。このようにして、Windows 上のテキストエディッタなどで編集することも可能です。
また、Windows PC 上の Magic eDeveloper や Magic Client と、MAGIC.INI ファイルを共有することが可能です。詳しくは、「メンテナンスヒント」(68 ページ ) を参照してください。

Magic アプリケーションファイル
Magic のアプリケーション定義は、MCF または MFF という二つのうちのいずれかの形式のファイルで保存されます。
•

MCF 形式は Magic eDeveloper ( 開発版 ) が直接編集可能な形式で、通常は Windows のPervasive などに作られますが、iSeries ライブラリ・システム下で OS/400 の物理ファ
イルとして作成することも可能です。
この場合には、以下のような形式で、MAGIC400.INI ファイルの [MAGIC_SYSTEM]
セクションに記述してください。
System1 = example1,e1,examples,17,Default Database,,N,N,N
ここで、「Default Database」は、iSeries 上に、ISAM ゲートウェイを使って作成するよ
うに、データベーステーブルを設定しておく必要があります。

•

58

MFF 形式は、Magic eDeveloper が MCF を元にして、DBMS を必要としない、Magic
独自の形式に変換して保存するものです。iSeries 上では、IFS ファイルシステム中のファイルとして保存します。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic アプリケーションサーバの構成
この場合には、以下のような形式で、MAGIC400.INI ファイルの [MAGIC_SYSTEM]
セクションに記述してください。
System1 = example1,e1,%MagicDir%/example1.mff,1,,,N,N,Y
参考： 最後のパラメータが「Y」になっていますが、これは MFF 形式であることを意味します。

Magic アプリケーションサーバの起動
Magic アプリケーションサーバを起動するには、次のステップに従ってください。
1. ［Internet/Partition］にカーソルを置いて、[ 実行 ] キーを押すとプルダウンメニューが開きますので、[Start eDeveloper Server] を選択してください。

図 4-7 Magic アプリケーションサーバの開始②

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries59

第 4 章 - Magic iSeries Server
2. 起動するインスタンス数、（必要な場合は）起動アプリケーション番号を指定して「実行」キーを押します。

図 4-8 Magic アプリケーションサーバの開始②

Magic アプリケーションサーバの終了
Magic アプリケーションサーバを終了するには、次のステップに従ってください。
1. ［Internet/Partition] にカーソルを置いて［実行］キーを押して、プルダウンメニュー
から [End Magic Jobs] を選択します。

60

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic アプリケーションサーバの構成
2. ［Magic Job Name］に、「MGSERVER」を指定して、［UserName］にそのジョブのユーザ名を設定し、［実行］を押します。

図 4-9 Magic サーバの終了

フローモニタの設定
フローモニタは Magic アプリケーションサーバのデバッグ機能の一つで、Magic アプリ
ケーションの実行状況を、最小で 1 ステップごとにトレースしファイルに記録してゆく機能です。
デフォルトの設定では、フローモニタは無効（トレースログを出力しない）になっています。
注意：フローモニタを有効にすると、アプリケーションの実行が遅くなります。デバッグ時に必要最小限で使うようにしてください。

（１）フローモニタを有効 / 無効にするにはフローモニタでトレースログを出力するようにする、あるいは、出力を止めたい場合には、MAGIC400.INI を以下に示すように編集します。
1. 「MAGIC400.INI ファイルの編集」（56 ページ）の手順に従い、MAGIC400.INI を開きます。
2. [MAGIC_ENV] 中の以下のパラメータを設定します。
パラメータ名意味

LoadMonitor•

Y ……トレースログが出力されます。

•

N……ログは出力されません。
（デフォルト）Monitor2File

iSeries 開発ガイド

ログファイル名を指定します。実際のファイル名は、これにプロセス ID が付加されたものになります。

Magic eBusiness Platform V9 Plus for iSeries61

第 4 章 - Magic iSeries Server

図 4-10 フローモニタ構成を変更

3. ［F3］キーを押して、保管・終了します。
参考： この設定を有効にするには、Magic アプリケーションサーバを再起動する必要があります。

（２）フローモニタの出力内容を変えるには
フローモニタが有効な場合には、MGFLWMTR.INI ファイルの設定を変更することにより、トレースする内容を調整することができます。
1. Magic サーバ構成プログラムの最初の画面に戻り、「Magic Config」にカーソルを置いて［実行］キーを押し、プルダウンメニューから［MGFLWMTR.INI］を選びます。
2. 「2= 編集」を選んで、［実行］キーを押します。
3. 以下のパラメータに、Y あるいは N を設定します。

62

パラメータ

Y の時に、ログに記録される内容

BeginMSG

メッセージ開始EndMSG

メッセージ終了

TaskMSGタスク（オープン、クローズ、イベントなど）

FlowMSGフロー（ビュー、項目更新、リンクなど）

ViewMSG

データビュー（範囲、位置付、トランザクションなど）

RecomputeMSG

再計算

OperationsMSG

処理コマンド（セレクト、項目更新、リンク、など）

LogMSG

データベースゲートウェイのログ出力

LogBrowser

ブラウザクライアントの活動

TriggerEvent

イベントトリガ

TransCacheMSG

遅延トランザクションキャッシュiSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

Magic アプリケーションサーバの構成

図 4-11 MGFLWMTR.INI の設定

Magic ゲートウェイのログの設定
Magic のゲートウェイのログは、ファイルへのアクセスに関する低レベルの活動をトレースしてファイルに記録するものです。デバッグ時、レコードレベルのアクセスの細かな状況を確認したい場合に取ります。
ゲートウェイのログは、各ゲートウェイごとに個別に設定できます。Magic iSeries Server
製品の場合には、ISAM ゲートウェイと SQL ゲートウェイについて別々に設定できます。
ログは、MAGIC400.INI ファイルの [MAGIC_DBMS] セクションで指定します。以下に、ISAM ゲートウェイ (「AS400」の行 ) と SQL ゲートウェイ（「DB2/400」の行 ) のログ設定例を示します。
[MAGIC_DBMS]
AS400 = 17, OnePhaseCommit, NotAllowNull, NotTransLockExcl, 10.3, +MAGICDBA=MAGIC400 DBCS=IBM-943:IBM-939,NotShowPlan, S, +%MagicDirlogs%isam_log, NotLogSync, 5, 0, NotCheckExist,
DB2/400 = 7, OnePhaseCommit, AllowNull, NotTransLockExcl, 10.3, +MAGICDBA=MAGIC400 CONNECTDLL=mgeac, +NotShowPlan, S, %MagicDirlogs%db2_log, NotLogSync, 5, 0, CheckExist,

参考：各行の最後にある「＋」文字は、行の継続を意味します。
この中で、「NotShowPlan」の後ろにある、太字で書かれた 3 つの設定がゲートウェイ・
ログに関する設定で、順番に、•••, ログレベル , ログファイル名 , ログ出力同期 , •••という設定になっています。
•

iSeries 開発ガイド

ログレベルは、次のような設定を行います。
•

N……ログを採取しない ( デフォルト）•

C……基本レベル•S……サポート向けのレベル（デバッグ時に推奨）•

D……フルレベル

Magic eBusiness Platform V9 Plus for iSeries63

第 4 章 - Magic iSeries Server•

ログファイル名は、論理名「%MagicDirLogs%」で指定されるディレクトリの下のファ
イル名を指定してください。

•

ログ出力同期の設定は、次のものを設定できます。
•

NotLogSync……同期を取りません。ファイルへの出力時にバッファリングを行うため、オーバーヘッドは少ないが、異常終了した場合には最後の方のログがディスクに書き込まれない可能性があります。

•

LogSync……同期を取ります。ファイルへの出力時に、1 行ごとにディスクへの書き出しを行います。ログを確実に記録しておきたい場合に指定します。

その他の設定・作業
ログファイルの参照
Magic は各種ログを IFS ファイルシステム上に出力します。以下の手順でログを参照することができます。
1. Magic サーバ構成プログラムから、[IFS Utility] を選んで［実行］キーを押し、プル
ダウンメニューから [Server Log Files] を選びます。

図 4-12 ログファイルの参照①

64

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesその他の設定・作業
2. 一覧から参照したいログファイルを選んで、5 (= 表示 ) を選択し、［実行］キーを押します。

図 4-13 ログファイルの参照②

PASE 上で UNIX シェルを起動するには
Magic iSeries Server V9 Plus は、AIX の環境に類似した OS/400 PASE 環境で実行しています。このため、UNIX に詳しい開発者は PASE のターミナル (UNIX シェル ) を使って、iSeries の上の Magic iSeries Server V9 Plus を操作することもできます。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries65

第 4 章 - Magic iSeries Server
1. iSeries の上で UNIX シェルに入るためには、[OS/400 Utility] メニューから、［PASE
Environment］を選んでください。

図 4-14 PASE 環境 (UNIX シェル ) の開始

2. PASE 環境でサーバーを初期設定する場合は、最初に以下のコマンドを実行して、実行環境を設定してください。
. ./.profile

図 4-15 PASE 環境

66

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesその他の設定・作業
3. iSeries の上のコマンドラインリクエスタを実行する場合、シェルの中で broker/
mgrqcmdl コマンドを実行してください。
4. シェルでの作業が終わったら、［F3］キーを押して終了します。

サーバからの印刷
MAGICPRTFJ 印刷ファイルを使用して、Magic アプリケーションは iSeries 上のプリンタに出力することができます。
PC または LAN 上に接続されたプリンタに出力するためには、入出力設定をファイルに変更してください。
出力するデータが含まれたファイルがユーザーのカレントディレクトリに作成されます。このファイルは iSeries ユーティリティによって PC またはネットワーク上のプリンタに出力することができます。

CCSID について
一般に iSeries では、異なる文字コードを扱うために、各文字コードを CCSID によって表現しており、複数のオブジェクト（ジョブ、DDSSRC、DB2/400、IFS のファイル等）に対して個別に CCSID を設定できるように設計されています。
異なる CCSID を持つオブジェクトの間では、CCSID に従って自動的に文字コードの変換が行われます。例えば、あるジョブがあるファイルをアクセスする場合、CCSID が異なっていたら、自動的に文字コードの変換が行われます。
Magic for iSeries では、主に３つの文字コード、ShiftJIS、EBCDIC、UTF-8 を使用して構成されており、多くのソフトウェアモジュールやファイルが実行に関わってくるために、
各オブジェクトの CCSID を適切に設定しておく必要があります。万一不適切な設定になっていると、予期せぬ文字コードの変換や文字コードの不一致などが起こり、文字化
けや実行結果の不正などが発生する可能性があります。
さらには、日本語の EBCDIC コード体系には、大きく２種類の CCSID が存在しています。
•

930（5026）は、iSeries のデフォルトの CCSID ですが、英小文字領域に半角カタカナを割り振っていますので、基本的に英小文字は使用できません。

•

939（5035）では、通常の英小文字領域以外に半角カタカナを割り振ったものです。

Magic iSeries Server 製品では、Web アプリケーションを開発するためと、PASE 環境で動作するために、CCSID は 939（5035）を使用することが必要となります。
Magic for iSeries で関連する CCSID のガイドラインを、以下に示します。
ジョブ／パラメータ

設定

ジョブ CCSID の決定要因

HTTPServer とインター
ネット・リクエスタのジョブ

ジョブは、939（5035）で動作させます。

HTTPServer 起動端末の CCSIDMGCLIENT ジョブ

DB2/400 と同じ CCSIDEASYCOMD ジョブの CCSID

MGSERVER ジョブ

ジョブは、939（5035）で動作させます。

Magic コンフィグレーション
ユーティリティ（CFGMGCSVR）端末の CCSIDMAGIC400.INI

DB2/400 と同じ CCSID−HTTPServer のパラメータでも制御可能です。

［MAGIC_DBMS］DBMS
パラメータiSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries67

第 4 章 - Magic iSeries Server
ジョブ／パラメータ

設定

ジョブ CCSID の決定要因

MAGIC400.INI

DB2/400 と同じ CCSID−［dbMAGIC_ENV］
AS400ACSCodePage パラ
メータ
参考：CCSID の具体例に関しては、『iSeries セットアップ補足ガイド』の「補足」を参照してください。

QCCSID の推奨値
QCCSID とは、システムのデフォルトの CCSID です。
iSeries の出荷時のデフォルト値は、65535 にて出荷されていますので、結果的に日本語環
境では、5026 を使用していることになります。
Magic iSeries Server を利用するコンピュータの QCCSID の推奨値は、5035 です。
注意：

現在稼動中のシステムの QCCSID を変更すると DB などに影響がでることがあります。半角カタカナを使用している場合、CCSID 5035
ファイルへ変換させるなどの作業が必要になりますのでご注意ください。

メンテナンスヒント
ここでは、MAGIC.INI ファイル (iSeries 上では MAGIC400.INI ファイル ) を、Windows PCの開発環境と、iSeries 上での運用環境で共有する方法について説明します。
MAGIC.INI ファイルを Windows PC と iSeries とで共有することには、次のような利点があります。
•([MAGIC_SYSTEMS] セクション )、DBMS テーブルアプリケーションテーブル（［MAGIC_DBMS］セクション）、データベーステーブル （［MAGIC_DATABASES］
セクション）などは、1 行に多くのパラメータが設定されるので、ファイルを直接編集するのは煩雑だが、共有することにより、Windows PC 上の Magic eDeveloper ある
いは Magic Client の GUI インターフェースを使って定義できるようになる。

•

Windows 上の Magic eDeveloper を使った開発環境と、iSeries 上の運用環境の環境設定の同期をとるのが容易になる。

MAGIC.INI ファイルの共有は、ClientAccess を利用して IFS ディレクトリをネットワーク
ドライブにマップして、以下のように設定することにより可能となります。
1.

ClientAccess のファイル共用の機能を用いて、iSeries 上の IFS ディレクトリを、
Windows PC 上のネットワークドライブとして割り当てます。
例： 以下の説明では、MSJIS400 上の MAGICRUN94 というファイル共有を Windows
PC 上で X: ドライブに割り当てたものとします。
参考：iSeries 上の IFS ディレクトリのファイル共有ポイントを作成するのは、Client
Access の iSeries ナビゲータを使って行います。

2. iSeries の Magic 環境と Windows の環境との差分を、以下のような内容のファイルを作成して定義します。このファイルは、Windows PC で Magic をインストールした
ディレクトリに、MAGIC400ADD.INI として作成します。

68

ConstFile=*%MagicDiretc%mgconstw.jpn
ApplicationStartup = T
LicenseFile=*c:¥FlexLM¥license.dat
LicenseName=MGCSTK

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesメンテナンスヒント
MaxConcurrentRequests = 5
TempPath=*c:¥tmp
WebDocumentPath=*%MagicDir%940SP3¥Scripts
InternetDispatcherPath=/Magic943Scripts/mgrqispi94.dll
WebDocumentAlias=/Magic94Java
CTLCacheFilesAlias=/Magic94Cache
AccessApplications = Y
AccessEnvironment = Y
AccessColors = Y
AccessFonts = Y
AccessKeyboardMapping = Y
AccessServers = Y
AccessServices = Y
AccessVisualConnection = Y
AccessCommunications = Y
AccessDBMS = Y
AccessDatabases = Y
AccessLogicalNames = Y
AccessLanguages = Y
AccessPrinters = Y
AccessHTMLStyles = Y
AccessPrintAttributes = Y
AccessLogon = Y
AccessToolkit = Y/[MAGIC̲LOGICAL̲NAMES]MagicDir=*c:¥Program Files¥Magic¥/[MAGIC̲LOGICAL̲NAMES]MagicDirlogs=*%MagicDir%/[MAGIC̲LOGICAL̲NAMES]MagicDiretc=*%MagicDir%support¥/[MAGIC̲LOGICAL̲NAMES]MagicQOpenSysPath=*%MagicDir%/[MAGIC̲GATEWAYS]MGDB00=*Gateways¥mgpv2k.dll/[MAGIC̲GATEWAYS]MGDB06=*Gateways¥mgdb400.DLL/[MAGIC̲GATEWAYS]MGDB16=*Gateways¥mgeac32.dll/[MAGIC̲GATEWAYS]MGDB21=*Gateways¥mgmemory.dll/[MAGIC̲DBMS]Pervasive=*1, OnePhaseCommit, NotAllowNull, NotTransLockExcl,
10.3, /Extended=Y, NotShowPlan, N, , NotLogSync, 0, 0, NotCheckExist,

注意：•/[MAGIC_DBMS]Pervasive=・・・の行は、印刷上 2 行に分かれていますが、実際のファイル中では 1 行で書いてください。

•

ここでは、Magic eDeveloper が c:\Program Files\Magic\ にインストールされたものとしています。異なるディレクトリにインストールされた場合には、上記/[MAGIC̲LOGICAL̲NAMES]MagicDir=*c:¥Program Files¥Magic¥の部分を適宜変更してください。

3. Magic eDeveloper の起動のショートカットをmggenw.exe /INI=X:¥etc¥MAGIC400.INI@MAGIC400ADD.INIと定義します。
このようにして、Windows PC 上の Magic eDeveloper を起動すれば、iSeries 上のファイル（X:¥etc¥MAGIC400.INI）が利用されるようになります。
参考：

iSeries 開発ガイド•

Magic eDeveloper で行った環境設定の変更は、iSeries 上の X:¥etc¥MAGIC400.INI
ファイルに反映されるようになります。

•

ただし、MAGIC400ADD.INI 内に定義されているパラメータについては、反映されません。

Magic eBusiness Platform V9 Plus for iSeries69

第 4 章 - Magic iSeries Server［このページは意図的に空白にしています。］

70

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesメッセージングサーバ (MRB) の構成

5

メッセージングサーバ (MRB)

注意：

本章の内容は、Magic iSeries Server をインストールした場合にのみ必要となります。Magic iSeries Client のみをインストールしている場合には、本章の設定は不要です。
Magic メッセージングサーバ (MRB、Magic Requrest Broker) は、Magic アプリケーショ
ンサーバの実行状態を常時監視し、Magic アプリケーションサーバに送られてくるリク
エストを受け付け、リクエストキューに入れて管理し、負荷分散を考慮しながら実行可
能な Magic アプリケーションサーバにリクエストを配分し、システム全体の制御を統括するソフトウェアコンポーネントです。
ここでは、MRB の起動・終了、および構成ファイル MGRB.INI について説明します。
注意：ここでは、以下の設定で構成することを仮定して説明します。実際と異なる場合には、適宜読み替えてください。
項目

意味

ブローカポー
ト番号

MRB がリクエストやエンジン登録のパ 3300
ケットを待ち受ける、TCP/IP のポート （V9Plus のデフォルト）番号

設定例

メッセージングサーバ (MRB) の構成
MRB の起動
MRB（Magic Request Broker）を起動するには、次のステップに従ってください。
1. Magic サーバアカウント (MAGIC94) でサインオンし、Magic サーバ構成プログラム
CFGMGCSVR を起動します。
2. ［Internet/Partition」にカーソルを置いて［実行］キーを押し、プルダウン・メニュー
から [Start Magic Broker] を選択します。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries71

第 5 章 - メッセージングサーバ (MRB)

図 5-1 MGREQ.INI ファイルの位置の設定

3. Start Magic Broker 画面で、再度［実行］キーを押すと、MRB が起動します。

MRB 起動の確認
MRB が起動したかを確認するには、iSeries のジョブを確認します。
1. [OS/400 Utililty] にカーソルを置いて［実行］を押して、プルダウンメニューから[Work with Active Jobs] を選択します。
2. ジョブの一覧中、MAGIC サブシステムの下に、MGBROKER というジョブがあれ
ば、MRB が動作しています。

MRB の終了
MRB を終了するには、次のステップに従ってください。
1. ［Internet/Partition」にカーソルを置いて［実行］を押して、プルダウンメニューから[End Magic Jobs] を選択します。

72

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesメッセージングサーバ (MRB) の構成
2. ［Magic Job Name］に、「MGBROKER」を指定して、［UserName］に「QTCP」を設定し、［実行］を押します。

図 5-2 MRB の終了

MGRB.INI の編集
MGRB.INI ファイルは、MRB の動作を制御するパラメータファイルです。
MGRB.INI ファイルを編集するには、次のステップに従ってください。
1. [Internet/Partition] にカーソルを置いて［実行］を押し、プルダウンメニューから[MGRB.INI] を選択してください。
2. 初期画面で「2= 編集」を選択して［実行］を押します。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries73

第 5 章 - メッセージングサーバ (MRB)
3. iSeries ソースファイル・エディタが実行され、現在の MGRB.INI ファイルがロードされます。

図 5-3 MGREQ.INI ファイル

4. 必要に応じて MGRB.INI ファイルを編集して、最後に保存して終了してください。

参考：MGRB.INI のパラメータについては、『リファレンス』の 20 章「分散アプリケー
ション アーキテクチャ／サポートされるミドルウェア／ Magic Request Broker （MRB)」に説明されていますので、そちらも参照してください。

MRB ログの設定
Magic アプリケーションサーバの動作のデバッグを行うとき、Magic アプリケーション
サーバ、MRB、インターネットリクエスタ、Magic クライアントなどのソフトウェアコ
ンポーネント間の通信の状況を把握しておく必要が出てくることがあります。このような場合には、MRB のログを取ります。
MRB のログは、MGRB.INI ファイル中の Log パラメータにより制御します。この行は、上図 ( 図 5-3) に見られるように、インストールした状態ではコメントアウトされており無効になっていますので、ログは出力されません。
ログを出力するためには、先頭のセミコロン「；」文字を取り除き、以下のように設定します。
Log = ( ログファイル名 )( 同期 )( ログレベル )ここで、各パラメータは次のような設定ができます。

74

パラメータ

意味

ログファイル名

MRB のログを出力するファイル名。IFS ファイル上のファイルを指定します。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesメッセージングサーバ (MRB) の構成
パラメータ

意味

同期

ログの同期処理の有効無効を指定します。

ログレベル

•

Y……ログを 1 行出力するたびに、ディスクへの書き込みが起こります。オーバーヘッドが大きくなりますが、確実にログ出力を行いたい場合に設定します。

•

N……効率化のためにバッファリングします。MRB が異常終了する場合には、最後のログがファイルに書き込まれないことがあります。

ログの詳細レベルを指定します。
•

C……最小

•

S……標準

•

D……詳細

通常のデバッグでは S レベルで十分です。

注意：

オーバーヘッドが大きいので、ログの取得はデバッグ時に必要最小限に止めるよ
うにしてください。

メッセージングサーバ（MRB）のサブシステム構成の確認と変更
MRB はデフォルトで MAGIC サブシステム下で MGBROKER という名前のジョブとして動作します。通常はこの設定を変更する必要はありませんが、もし MRB のサブシステムの構成を変更したい場合には、以下のように行います。
1. 「Magic Config」にカーソルを置いて［実行］を押下すると、プルダウン・メニューが開きます。
2. 「BROKER Subsystem Config」を選択して［実行］を押下すると、「BROKER
Subsystem Config」（MRB サブシステム構成）画面が表示されます。

図 5-4MRB のサブシステム構成を変更

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries75

第 5 章 - メッセージングサーバ (MRB)
3. ここで、［Subsystem name]、［Job queue name］、［Class name］を指定します。

76

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

iSeries の HTTP サーバ （Powered by Apache）のセットアップ

インターネット注意：6

本章の内容は、Magic iSeries Server をインストールした場合にのみ必要となります。Magic iSeries Client のみをインストールしている場合には、本章の設定は不要です。
Magic Application Server V9 Plus は、強力なインターネット (Web) アプリケーションサー
バです。インターネットアプリケーションシステムは、Magic Application Server V9 Plus
で簡単に構築することができます。
エンドユーザは Web ブラウザからネットワーク環境を通じて Web サーバに接続し、Web
サーバは Magic のインターネットリクエスタによりリクエストを Magic メッセージング
サーバ (MRB) に送り、MRB が実行可能な Magic アプリケーションサーバにリクエストを送ります。
Magic アプリケーションサーバは、HTML マージ形式、HTML 形式、HTML フレーム形
式、ブラウザ形式フォームという、いずれかのフォーム形式で WWW ブラウザに出力します。

iSeries の HTTP サーバ （Powered by Apache）のセットアップ
Magic アプリケーションサーバを利用するための HTTP サーバ （Powered by Apache）のセットアップについては、『Magic eBusiness Platform V9Plus for iSeries インストールガイド』の第 5.5 節「HTTP 属性の設定」以下に説明されています。インストールガイドに従ってインストールが済んで、デモアプリケーション BC_Methodology まで正常に動作を確認してください。

インターネットリクエスタの設定
インストールが正常に済めば、通常はインターネットリクエスタ (CGI リクエスタ ) の設定を変更する必要はありませんが、もし変更が必要になった場合には、以下の手順で変更してください。

MGREQ.INI ファイルの位置
インターネットリクエスタを構成するファイルは、MGREQ.INI です。これには、リクエストを送る MRB のアドレスや、各種タイムアウト値、HTTP に関連する設定などが格納されています。
Magic CGI リクエスタは、MGCGIREQ データエリア内の MGREQ.INI ファイルを参照します。インターネットリクエスタが参照する MGREQ.INI ファイルの位置は、Magic サー
バ構成プログラムを使って、次のように指定します。
1. ［Internet/Partition] にカーソルを置いて［実行］を押すとプルダウン・メニューが開くので、[Environment] を選択してください。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries75

第 6 章 - インターネット
2. フルパスで MGREQ.INI の場所を指定し、[ 実行 ] キーを押して確定します。デフォ
ルトでは、/MAGICRUN94/etc/MGREQ.INI です。

図 6-1 MGREQ.INI ファイルの位置の設定

MGREQ.INI の編集
MGREQ.INI ファイルを編集するには、次のステップに従ってください。
1. [Internet/Partition] にカーソルを置いて［実行］キーを押すと、プルダウン・メ
ニューが開きます。
2. [MGREQ.INI] を選択してください。
3. 初期画面で「2= 編集」を選択して［実行］キーを押すと、iSeries ソースファイル・
エディタが実行され、現在の MGREQ.INI ファイルが表示されます。

76

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeriesインターネットリクエスタの設定

図 6-2 MGREQ.INI の編集

4. 必要に応じて MGREQ.INI ファイルを編集して、最後に保存して終了してください。
参考： MGREQ.INI の各種パラメータの意味については、『リファレンス』の第 20 章
「分散アプリケーションアーキテクチャ／ Magic のリクエスタ／リクエスタの設定」に説明されていますので、そちらを参照してください。

メッセージングサーバ (MRB) の設定の確認
Magic アプリケーションサーバを使った Web アプリケーションでは、Magic アプリケー
ションサーバと、Magic インターネットリクエスタが、同じメッセージングサーバを利用していることを確認する必要があります。
また、MRB に設定されているパスワードが、Magic アプリケーションサーバで正しく指定されていることも必要です。
以下に、これらの確認方法を示します。

MRB の設定
MRB の設定は、MGRB.INI ファイルで行いますので、ここでの設定を確認します。
1. Magic サーバ構成プログラム CFGMGCSVR を起動し、[Internet/Partition] →[MGRB.INI] メニューを選択して、MGRB.INI ファイルを表示させます。
2. 以下のパラメータを記録しておきます。

iSeries 開発ガイド

パラメータ

意味

BrokerPort

MRB がリクエストを待機している TCP/IP のポート番号。V9Plus のデフォルトは 3300 です。

Magic eBusiness Platform V9 Plus for iSeries77

第 6 章 - インターネット
パラメータ

意味

PasswordSupervisor

MRB アクセス時に必要なパスワード。インストール
時のデフォルトは、ホスト名にインストール時間を連結したものです。( 例：MSJIS400_15:18:27 など )インターネットリクエスタに対する MRB の設定 (MGREQ.INI)
インターネットリクエスタがリクエストを送る MRB は、MGREQ.INI の MessagingServer
パラメータで指定します。これは次の形式で指定します。

MessagingServer=(MRB ホスト名 )/( ポート番号 )

パラメータ

意味

MRB ホスト名

MRB が実行しているマシンのホスト名

ポート番号

MRB がリクエストを受け付け待機している TCP/IP のポート番号。V9Plus のデフォルトは 3300。

もし、インターネットリクエスタと MRB が同一のマシン上で動作している場合には、
MRB ホスト名を省略した形式でも指定できます。

MessagingServer=( ポート番号 )インストール時のデフォルトでは、MRB ホスト名指定なしで、ポート番号 3300 になっています。

MessagingServer = 3300

確認
ここでの設定が、MGRB.INI の BrokerPort で指定されている値と同じであることを確認してください。

Magic アプリケーションサーバに対する MRB の設定 (MAGIC400.INI)
Magic アプリケーションサーバがアクセスする MRB は、MAGIC400.INI ファイルで定義されます。
Magic サーバ構成プログラムから、[Magic Config.] → [MAGIC400.INI] メニューを選択して MAGIC400.INI ファイルを開き、以下のパラメータを確認します。
[MAGIC_ENV] セクションの MessagingServer パラメータの設定を見ます。インストールのデフォルトでは 「Default Broker」になっています。

MessagingServer = Default Broker[MAGIC_SERVERS] セクションで、上記 MessagingServer に設定されているサーバの定義を見ます。次のような設定になっています。
[MAGIC̲SERVERS]

78

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

HTTP サーバを別マシンに設定する方法
Default Broker = 0,3300,,MSJIS400̲15:18:27,10,,1

確認：
ここで、以下のパラメータを確認します。
•

2 番目のパラメータ ( 上では 3300) がメッセージングサーバの設定です。これがMGRB.INI の BrokerPort と同じ番号になっていることを確認します。

•

4 番目のパラメータ ( 上では 「MSJIS400_15:18:27」) は、MRB へのパスワードになります。ここでの指定が、MGRB.INI の SupervisorPassword の設定と同じであることを確認します。

参考：2 番目のパラメータでも、メッセージングサーバは、「（ホスト名 ) / ( ポート番号 )」の形式で指定することもできます。

HTTP サーバを別マシンに設定する方法
セキュリティやパフォーマンスの観点から、Magic アプリケーションサーバの実行する
iSeries マシンと、HTTP サーバとを分離するシステム構成が有利な場合があります。
HTTP サーバを独立させる場合には、以下の点を正しく設定する必要があります。
•

インターネットリクエスタが参照する MRB•

ブラウザクライアント（以下、「BC」と略します。）用のキャッシュディレクトリを、
iSeries マシンと HTTP サーバのマシンの間で共有する。

•

MAGIC400.INI のインターネットリクエスタに関する設定

ここでは、これらの点について、以下の構成を例として説明します。
•

Linux 上で動作する HTTP サーバとして Apache を利用する場合•

Windows 上で動作する HTTP サーバとして IIS を利用する場合

Linux 上で動作する HTTP サーバとして Apache を利用する場合
Linux 上の Apache を利用する場合、以下の構成とします。

注意：•

インターネットリクエスタは Linux Apache 用のものを利用します。

•

キャッシュディレクトリは、iSeries の IFS 上に作成します。

•

Linux からは Samba により、iSeries 上のキャッシュディレクトリをマウントします。
デフォルトでは、iSeries マシンを先に起動し、ファイル共有が有効になってから、Linux マシンを起動しないとマウントできません。これを避けるには、Linux 側のマウントのタイミングを変更する必要があります。

設定例
ここでは、以下の設定例で説明します。実際の環境と異なる場合には、適宜読み替えてください。これ以外の内容は、Magic のインストール時のデフォルトとします。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries79

第 6 章 - インターネット
iSeries 側 の設定例
項目

設定例

iSeries サーバホスト名

MSJIS400

Magic iSeries Server の実行ユーザプロファイルとパスワードMAGIC94/MAGIC94

Magic iSeries Server をインストールしたライブ
ラリ

MAGICRUN94

キャッシュディレクトリ (iSeries IFS 上に作成)

/QOpenSys/MAGICRUN94/
Browser_Client_Cache

キャッシュディレクトリの共有名

BCCacheLinux 側の設定例
項目

設定例

Web サーバ用 Linux マシンホスト名

MGWEBSRVR1

Apache の cgi-bin の物理ディレクトリ

/var/www/cgi-bin

Apache の cgi-bin のエイリアス/cgi-bin

WebDocumentAlias に対応する物理ディレクト
リ/var/www/html/Magic94Java

CTLCacheFilesAlias/Magic94Cache

キャッシュディレクトリのマウントポイント(CTLCacheFilesAlias に対応する物理ディレク
トリとなる )

/mnt/BCCacheiSeries 側の設定
キャッシュディレクトリの作成
キャッシュディレクトリは、iSeries の IFS 上 /QOpenSys/MAGICRUN94/
Browser_Client_Cache に作成します。特定のファイルを置く必要はありません。
作成されていない場合、iSeries サーバに MAGICRUN94 でサインオンして、以下のコマ
ンドを実行して作成します。
MKDIR '/QOopenSys/MAGICRUN94/Browser_Client_Cache'

新規共有の作成
iSeries IFS 上のキャッシュディレクトリは、Web サーバのある Linux からマウントされるので、ネットワークファイルの共有を新規に作成しておく必要があります。ここでは共有名を 「BCCache 」とします。
新規共有の作成は、Windows の iSeries ナビゲーターなどから、以下のようにして行うことができます。
1. Windows マシンに、IBM iSeries Access for Windows をインストールします。
2. iSeries ナビゲータを起動します。

80

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

HTTP サーバを別マシンに設定する方法
3. iSeries サーバ MSJIS400 から、ファイル・システム → 統合ファイル・システム →QOpenSys → MAGICRUN94 → Browser_Client_Cache を選び、右クリックメニューで「共用」→「新規共用 (A)」を選びます。

図 6-3 新規共用の作成 (1)4. 「共有名」として「BCCache」を指定します。アクセスは「読み取り専用」のままで構いません。

図 6-4 新規共用の作成 (2)iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries81

第 6 章 - インターネット
MAGIC400.INI の編集
MAGIC400.INI 内で、以下のパラメータを変更します。
項目

設定例

InternetDispatcherPath/cgi-bin/mgrqcgi94

WebDocumentAlias/Magic94Java

CTLCacheFilesPath/QOpenSys/MAGICRUN94/Browser_Client_Cache

CTLCacheFilesAlias/Magic94Cache

Web サーバ側 （Linux マシン）の設定
HOSTS ファイルへの登録/etc/hosts に、iSeries マシンのホスト名と IP アドレスの対応を定義します。
10.3.0.33

MSJIS400

マウントポイントの作成
キャッシュディレクトリを Linux 上に SMBFS としてマウントする際の、マウントポイン
トとなるディレクトリを作成します。
Linux のコマンドから、以下のコマンドを実行します。
# mkdir /mnt/BCCache

キャッシュディレクトリのマウント/etc/fstab に、キャッシュディレクトリのマウント定義を追加します。
//MSJIS400/BCCache /mnt/BCCache smb defaults,username=MAGIC94%MAGIC94 0 0

注意：

iSeries IFS 共有のアカウントとパスワード（上の例では「username=MAGIC94%MAGIC94」）を指定するので、セキュリティ上の理由で、/etc/fstab のパーミッションを root のみ読み書き可能と設定しておくことを推奨します。

参考：
上記のように設定すれば、Linux のブート時に自動的にこのディレクトリがマウントされるようになりますが、以下のコマンドでもマウントすることができます。
# mount -a

マウントは成功しても、ls コマンドの実行時にエラーが出る場合があります。このような時は、以下のようにして iSeries 側の共用の「コード化文字セット」を確認してください。

82

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

HTTP サーバを別マシンに設定する方法
1. iSeries ナビゲータから、「ネットワーク」→「サーバ」→「TCP/IP」を開きます。

図 6-5 iSeries ナビゲータの TCP/IP

2. 「iSeries ネットサーバ」のプロパティを開いて、「拡張」タブで確認します。

図 6-6 iSeries ネットサーバのプロパティ

3. もし 819 以外になっていたら、「次回開始」ボタンを押して変更してから、iSeries
ネットサーバを再起動してください。

リクエスタの設定
Apache 用のインターネットリクエスタ（mgrqcgi94）を、Apache の cgi-bin ディレクトリ
にコピーします。このとき、MGREQ.INI も同一ディレクトリにコピーしてください。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries83

第 6 章 - インターネット
MGREQ.INI 中の MessagingServer パラメータを、iSeries 上の MRB を指すように変更します。
[REQUESTER_ENV]
Gateway = 1
MessagingServer = MSJIS400/3300
・・・

BC アプレット等のコピー
Web サーバのルート (/var/www/html) の直下にサブディレクトリ Magic94Java を作成し、BC アプレット （MGBC940_30.cab、MGBC940_30.js など）を、そこにコピーします。
このサブディレクトリ内には以下のようなファイルをコピーしてください。
[root@mgwebsrvr1 root]# cd /var/www/html/Magic94Java[root@mgwebsrvr1 Magic94Java]# ls -l2328-rwxr-xr-x 1 root root 741 5 11 16:14 Browser_Client_Tech_err.htm-rwxr-xr-x 1 root root 234481 5 11 16:14 MGBC940_30.cab-rwxr-xr-x 1 root root 121266 5 11 16:14 MGBC940_30.js-rwxr-xr-x 1 root root 232828 5 11 16:14 MGBC940_30S.cab-rwxr-xr-x 1 root root 231607 5 11 16:14 MGBC940_30_000CS.cab-rwxr-xr-x 1 root root 10811 5 11 16:14 MGBC940_30_000CS.js-rwxr-xr-x 1 root root 19632 5 11 16:14 MGBCCOM9.cab-rwxr-xr-x 1 root root 7698 5 11 16:14 MGBCL940_30ENG.cab-rwxr-xr-x 1 root root 1908 5 11 16:14 MGBCL940_30ENG.xml-rwxr-xr-x 1 root root 7774 5 11 16:14 MGBCL940_30JPN.cab-rwxr-xr-x 1 root root 2050 5 11 16:14 MGBCL940_30JPN.xml-rwxr-xr-x 1 root root 12673 5 11 16:14 MGJavaScript.js-rwxr-xr-x 1 root root 37645 5 11 16:14 MGWebOnline.jar-rwxr-xr-x 1 root root 1375744 5 11 16:14 MshtmlSetup.msi
drwxr-xr-x 2 root root 4096 5 11 16:14 Support-rwxr-xr-x 1 root root 1111 5 11 16:14 magic.conf-rwxr-xr-x 1 root root 902 5 11 16:14 mg_cancel.jpg-rwxr-xr-x 1 root root 1001 5 11 16:14 mg_exit.jpg-rwxr-xr-x 1 root root 853 5 11 16:14 mg_quit.jpg-rwxr-xr-x 1 root root 632 5 11 16:14 mgcancel.jpg-rwxr-xr-x 1 root root 2206 5 11 16:14 mgedit.jpg-rwxr-xr-x 1 root root 979 5 11 16:14 mgexit.jpg-rwxr-xr-x 1 root root 1041 5 11 16:14 mgquit.jpg-rwxr-xr-x 1 root root 2672 5 11 16:14 mgvcr.jpg

参考：•これらのファイルは、Windows/iSeries/Linux 共通です。いずれのバージョンからでもコピーして使うことができます。

•

上記の ls の結果は、V9.4SP3 のものです。バージョンが違うと異なる結果となることがあります。

Apache の httpd.conf の編集
上記の説明で設定されたディレクトリを Web サーバで公開するために、httpd.conf に以下の記述を追加します。
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"<Directory "/var/www/cgi-bin/">AllowOverride None
Options None
Order allow,deny

84

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

HTTP サーバを別マシンに設定する方法
Allow from all</Directory>
Alias /Magic94Cache "/mnt/BCCache/"<Directory "/mnt/BCCache/">Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all</Directory>

Windows 上で動作する HTTP サーバとして IIS を利用する場合
Windows 上の IIS を利用する場合、以下の構成とします。
•

インターネットリクエスタは Windows 用のものを利用します。

•

キャッシュディレクトリは、Windows 上のファイルシステムに作成します。

•

iSeries では、この Windows ディレクトリをマウントします。

設定例
ここでは、以下の設定例で説明します。実際の環境と異なる場合には、適宜読み替えてください。これ以外の内容は、Magic のインストール時のデフォルトとします。

iSeries 側の設定例
項目

設定例

iSeries サーバホスト名

MSJIS400 (10.3.0.33)

Windows 側の設定例
項目

設定例

Web サーバ用 Windows マシンホスト名

MGWEBSRVR (10.3.0.57)

ファイル共有用のアカウント ID/ パスワード

MAGIC94/MAGIC94

キャッシュディレクトリC:¥BCCache

キャッシュディレクトリの共有名

BCCacheWeb サーバ側の設定
HOSTS ファイルへの登録c:¥Windows¥system32¥drivers¥etc¥hosts に、iSeries マシンのホスト名と IP アドレスの対応を定義します。
10.3.0.33

MSJIS400

アカウントの作成
iSeires 上の Magic 実行アカウントと同じ ID、パスワードのアカウントを作成します。これは iSeries からディレクトリをアクセスする際のアカウントとなります。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries85

第 6 章 - インターネット
例：MAGIC94/MAGIC94

図 6-7 Windows のアカウント作成

キャッシュディレクトリの作成
1. ローカルドライブ上に、キャッシュディレクトリを作成します。特定のファイルを置く必要はありません。

図 6-8 キャッシュディレクトリ

86

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

HTTP サーバを別マシンに設定する方法
2. このディレクトリに、上記アカウントで「フルアクセス」できる権限を設定します。

図 6-9 ディレクトリのセキュリティの設定

3. また、フォルダの共有を有効にします。

図 6-10 共有ディレクトリの設定

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries87

第 6 章 - インターネット
4. 共有の「アクセス許可」でも、「フルコントロール」の許可があることを確認します。

図 6-11 共有ディレクトリのアクセス許可

この例では、「Everyone」に許可されていますが、「MAGIC94」のみに制限させるように推奨します。
後でテストするために、適当なテキストファイルをコピーしておいてください。

Magic インターネットリクエスタのインストール
1. Magic インターネットリクエスタは、Magic のインストーラから、「Component」オプションを選択してインストールします。

88

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

HTTP サーバを別マシンに設定する方法
2. 「コンポーネントの選択」では、「ISAPI (Microsoft)」を選択します。

図 6-12 ISAPI リクエスタの選択

3. リクエスタのパラメータ設定ダイアログでは、「ブラウザクライアントのキャッシュ
パス」のみ、上記で作成したキャッシュディレクトリに変更します。

図 6-13 ISAPI リクエスタのパラメータ設定

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries89

第 6 章 - インターネット
4. 「MRB の指定」では、「別のホスト」を選び、iSeries マシンのホスト名を指定します。

図 6-14 MRB の指定

5. インストールが完了したら、「コンピュータの管理」を開き、仮想ディレクトリが設定されていることを確認します。

図 6-15 エイリアスの確認

設定のポイント• 「Magic94Scripts」、「Magic94Java」の２つの仮想ディレクトリが正しく作成され、必要モジュールがコピーされていること。

90

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

HTTP サーバを別マシンに設定する方法•

Magic94Scripts の下にコピーされた MGREQ.INI で、MessagingServer が iSeries 上の
MRB を指定していること。

•

Magic94Cache 仮想ディレクトリが正しく作成されていること。

•

Magic94Cache 仮想ディレクトリに対応する実ディレクトリで、ファイルの共有が設定され、iSeries 上の Magic 実行アカウントで読み書きできるようパーミッションが設定されていること。

iSeries 側の設定
HOSTS テーブルへの登録
HOSTS テーブルに、Web サーバとなる Windows サーバのホスト名を設定します。コマ
ンドは 「CFGTCP」です。

図 6-16 HOSTS テーブルの登録

Windows ディレクトリのマウント
1. iSeries 上に Windows のファイルシステムをマウントするには、以下のように
MKDIR コマンドを実行してください。
MKDIR '/QNTC/ ホスト名 'このときの資格情報は、iSeries にサインオンしたときのユーザ ID/ パスワードがそのまま使用されます。
2. 以下のようにして、キャッシュディレクトリにあるテストファイルが正しく読め、編集できることを確認します。
MKDIR '/QNTC/MGWEBSRVR'
CD '/QNTC/MGWEBSRVR/BCCache'

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries91

第 6 章 - インターネット
WRKLNK注意：/QNTC の下に MKDIR で作成されたディレクトリは、iSeries をリブートすると消去されてしまうので、ブート後には毎回 MKDIR を行う必要があります。

MAGIC400.INI の編集
MAGIC400.INI 内で、以下のパラメータを変更します。
パラメータ

設定内容

例

InternetDispatcherPath

インストール時に「リクエスタの転送先 ディ
レクトリのエイリアス」で指定した仮想ディレクトリに、リクエスタモジュール名(mgrqispi94.dll) を付加したもの。

/Magic94Scripts/mgrqispi94.dll

WebDocumentAlias

インストール時に「Java アプレットの転送先
ディレクトリのエイリアス」として指定したもの。

/Magic94Java

CTLCacheFilesPath

キャッシュディレクトリを、iSeries 側 (Magic
アプリケーションサーバ ) から見たときのパス名。

/QNTC/MGWEBSRVR/
BCCache/QNTC/Web サーバ名 / 共有名。
CTLCacheFilesAlias

92

インストール時に「ブラウザクライアントのキャッシュエイリアス」として指定したもの。

/Magic94CacheiSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

DBCS の種類

7

DBCS

Magic クライアントはシフト JIS コード、iSeries は EBCIDIC コードにて処理しています。
Magic for iSeries では、クライアント PC と iSeries の間でデータのやりとりを行う際に、自動的にシフト JIS と EBCIDIC のコード変換を行います。
EBCIDIC コードにおいて、DBCS と SBCS の区別はシフトコードの追加により表現されています。
この章は ISAM ゲートウェイの処理を前提として説明しています。

注意：

DBCS の種類
DBCS は２種類の形式が提供されています。シフト文字付き DBCS データと図形（シフト文字なし）DBCS データです。シフト文字付き DBCS データは、DBCS シフトアウト
文字と DBCS シフトイン文字により DBCS を表現します。
DBCS データタイプ（DDS コーディング形式）は、次の４種類が提供されています。
DDS 記入項目記号 および名称

説

J:DBCS 専用フィールド

漢字専用シフト付き 2 バイトデータのみが含まれる文字列。

O:DBCS 混用フィールド

漢字混用 SBCS 及びシフト文字付き DBCS データを含めることができる文字列。

E:DBCS 択一フィールド

漢字択一 すべて SBCS か、すべてシフト文字付き
DBCS データかの文字列。

G:DBCS 図形フィールド

DBCS 図形シフト文字なし 2 バイトデータのみが含まれる文字列。

明＜例＞•

DBCS 専用フィールド、または DBCS 択一フィールドに※ SO（0Eh）シフトアウト文字

iSeries 開発ガイドを登録した場合

SI（0Fh）シフトイン文字•

DBCS 混用フィールドに ”ABC 漢字 DEF” を登録した場合•

DBCS 図形フィールドにMagic eBusiness Platform V9 Plus for iSeries

漢字

漢字を登録した場合

79

第 7 章 - DBCS

すなわち、DBCS 図形フィールド以外に２バイト文字を登録したフィールドには、シフトコードが付加されるため、実際に入力／表示される文字データよりも格納されるフィールド長が大きくなります。Magic for iSeries では、シフト JIS → EBCIDIC のコード変換に於いて変換データがデータ格納エリアよりも大きくなった場合は、オーバーした分をカットします。アプリケーションはこのことを考慮して設計する必要があります。

文字型書式の「位置指示記号」の追加機能
DBCS 対応のために、DDS のデータフィールドに対応して Magic に機能追加しています。
次の表の Magic 位置指示記号をテーブルリポジトリの各項目の書式に定義します。例えば、10 桁の DBCS 専用フィールドを定義する場合には、J10 あるいは JJJJJJJJJJ と記述します。位置指示記号の指定がない場合、DBCS 混用フィールド（X）になります。
DDS フィールド

Magic
位置指示記号

制限事項

DBCS 専用フィールド（J）

Ｊ

全角のみ入力可DBCS 混用フィールド（O）

Ｘ

全角、半角の混在入力可

DBCS 択一フィールド（E）

Ｔ

全て全角か、全て半角で入力可

DBCS 図形フィールド（G）

Ｇ

全角のみ入力可。シフトコード無し

SBCS（A）

Ｓ

半角のみ入力可

注意：

80

•

Magic 位置指示記号の（J, T, G）は、必ず２文字単位で記述します。

•

追加された位置指示記号と、Magic 位置指示記号文字（J, X, T, G, S）は混
在して記述することができません。例．JJJJXXXX など•追加された位置指示記号（J, T, G, S）は、U, L, # を使用できません。

•

SQL ゲートウェイの場合、位置指示記号の J、T は混用フィールド（O）として格納されます。また、図形フィールド（G）はサポートしていません。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

留意事項

補足
Magic iSeries Client、Magic iSeries Server における補足事項（注意事項）について記載し
ます。

留意事項
•

Magic の本体の機能は、データをすべてシフト JIS コード体系で処理します。従って、次のパラメータ欄では、特にシフト JIS コードとして処理されることを考慮した上で、プログラムの開発を行う必要があります。
•

モデルリポジトリの範囲欄•

テーブルリポジトリ／カラム特性の範囲欄•

範囲位置付ダイアログ／範囲式、位置付式•

ソートテーブル − ソート項目

３番目に関連して、この欄に文字型項目のコードを大小比較する条件式を定義すると、場合によってはデータが正しく抽出されないことがあります。その場合は、「Magicfor iSeries 固有の UDF/UDP インタフェース」に記述された、EBCDIC コードによる文字型コードの比較を行う UDF 関数を使用してください。
セレクト処理コマンドの範囲／位置付の指定については、Magic iSeries Client によって変換されたパラメータを渡して、iSeries 上で処理するため、EBCDIC コードで処理されます。
４番目に関連して、ISAM ゲートウェイではデータベース特性／サーバソートをチェックすることで、EBCDIC コード順にソートされます。
•

Magic iSeries Client では、次に挙げる入出力関数はクライアント PC のディスク上にあるファイルを対象にしていますので、iSeries のファイルに対する処理は無効です。
IOCOPY、IODEL、IOEXIST、IOREN、IOSIZE

iSeries 開発ガイド•

ISAM ゲートウェイでは、Magic for iSeries がデータベースを新規作成する時に使用される DDS のソース・ファイルは、データベースファイルと同じライブラリに作成され、ファイル名は MGDDSSRC となります。

•

ISAM ゲートウェイでは、Magic から新規に作成するファイルに定義された DBCS の文字項目の最大は 256byte までです。

•

ISAM ゲートウェイのトランザクションが無効に設定されたアプリケーションでは、ISAM で作成されたファイルが SQL ゲートウェイではアクセスできないことがあります。この場合、対象のファイルに対して、STRJRNPF コマンド等で iSeries のジャーナル処理を開始する必要があります。

Magic eBusiness Platform V9 Plus for iSeries

81

第 章 - 補足

データ記憶型式と iSeries データタイプ
ISAM ゲートウェイ

文字型

数値型

論理型

日付型
*3

時間型
*3

メモ型

Magic 記憶型式

iSeries でのデータ型

iSeries でのデータ可視*1

String ［default］

文字可能

Lstring文字

不可Zstrig文字

不可

Signed Integer

2 進数

可能

Unsigned Integer

2 進数

可能

Float

浮動小数点数可能

Float MS-Basic

文字

不可

Float Decimal

文字

不可Packed Decimal［default］

パック 10 進数

可能

Numeric

ゾーン 10 進数

可能

Character Number

文字

不可String Number

文字

不可Magic Number

文字

不可C-ISAM Decimal

文字

不可Extended Float

文字

不可

Integer Logical

2 進数

不可

String Logical［default］

文字

可能 *2

Integer Date

2 進数

不可

Integer Date -1901

2 進数

不可

String Date［default］

文字

可能

YYMD Date

2 進数

不可

Magic Date

文字

不可

Magic Date -1901

文字不可Integer Time

2 進数

不可

String Time［default］

文字可能

HMSH Time

2 進数

不可

Magic Time文字

不可

String Memo［default］

文字（可変長）可能

Magic Memo文字

不可

*1：RUNQRY でデータを出力した結果です。

82*2：ASCII コードの「T」または「F」が格納されます。EBCDIC コードで格納するときは、「テーブル特性キーワードの STORAGE=DB2」を参照してください。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

データ記憶型式と iSeries データタイプ*3：iSeries の日付または時刻のデータタイプを格納するときは、「テーブル特性キーワー
ド」の STRORAGE=DB2 を参照してください。

制限事項

iSeries 開発ガイド•

BLOB 型は、使用できません。

•

メモ項目は、DBCS 混用フィールド（X）のみがサポートされています。

Magic eBusiness Platform V9 Plus for iSeries

83

第 章 - 補足

SQL ゲートウェイ
文字型

数値型

論理型

日付型

時間型

メモ型

BLOB 型

Magic 記憶型式

iSeries でのデータ型

iSeries でのデータ可視

String ［default］

CHARCTER

可能

Lstring

不可

不可

ZstrigCHARCTER

可能

Signed Integer

SMALLINT可能

Unsigned Integer

DECIMAL

可能

Float

FLOAT

可能

Float MS-Basic

不可

不可

Float Decimal

不可

不可Packed Decimal［default］

DECIMAL可能

Numeric

NUMERIC可能

Character Number

不可不可String Number

NUMERIC不可

Magic Number

不可不可C-ISAM Decimal

不可

不可Extended Float

不可

不可

Integer Logical

SMALLINT

不可String Logical［default］

CHARCTER

可能 *4

Integer Date

INTEGER不可

Integer Date -1901

不可不可String Date［default］

DATE

可能

YYMD Date

不可

不可Magic Date

不可

不可Magic Date -1901

不可

不可Integer TimeINTEGER

不可

String Time［default］

TIME*5可能

HMSH Time不可不可

Magic Time不可不可String Memo［default］

VARCHAR可能

Magic Memo

VARCHAR不可−

BLOB*6

不可*4: EBCDIC コードの「T」または「F」が格納されます。
*5: TIME 型に格納できる値の最大は 23:59:59 ですので、それを越える値を格納するには、別の型に変更する必要があります。INTEGER にする場合は、記憶型式を IntegerTime に変更し、CHARCTER にする場合は、タイプに CHAR（6）を記述します。
*6: BLOB 型のカラムは iSeries の BLOB 型に対応しますが、デフォルトの最大サイズは1MB です。それを越えるデータを格納する場合、カラム特性／タイプに BLOB（n）（n:サイズ）を記述してテーブルを作成する必要があります。

84

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

データ記憶型式と iSeries データタイプ

文字型記憶型式の説明
文字型記憶型式は、英数字およびカナ、漢字の文字列を表わします。［ ］内は iSeries でのデータタイプを表わします。

String［ 文字 ］
サイズ 1 バイトから 32000 バイトまで•

Magic は、左から右に並べられた文字の連なりを記憶します。半角文字は 1 文字 1 バ
イトで、全角文字は 1 文字 2 バイトとなります。

LString（長さ + 文字列）［ 文字 ］
サイズ 1 バイトから 255 バイト• 「LString」は、Pascal 言語の文字列定義に対応しており、最初の 1 バイトに文字列の長さがバイト単位で含まれています。
• ［記憶型式］を「String」から「LString」に変更すると、長さを格納する 1 バイトを確保するため、Magic は元のサイズに 1 を加えます（逆に、［記憶型式］を「LString」か
ら「String」に変更すると、Magic はサイズの値から 1 を減らします）。

ZString（ゼロバイト終了文字列）［ 文字 ］
サイズ 1 バイトから 32000 バイトまで• 「ZString」は、C 言語の文字列定義に対応しています。すなわち、最後のバイトには、文字列の終わりを示す 2 進数のゼロ（ヌル文字）が含まれています。
• ［記憶型式］の値を「String」から「ZString」に変更すると、Magic では、［サイズ］の値には 1 が加算されます。逆に、［記憶型式］を「ZString」から「String」に変更すると、Magic では、［サイズ］の値から 1 が減算されます。

数値型記憶型式の説明
数値型記憶型式は、計算で通常使用される数値を表わします。この数値型データを利用する時には、次のことに注意してください。
•

Magic がサポートする最大桁数は、18 桁です。

•

Magic 以外のアプリケーションで作成されたファイルに、18 桁以上の数値型の項目がある場合、それ以下に切り捨てます。

•

デフォルト以外の数値型記憶型式は、ほかのシステムとの互換性をもたせるときだけ使用してください。

「Signed Integer」「Unsigned Integer」「Float」「Float MS-Basic」の数値型記憶型式では、上記で説明した桁数以上の数字を受け付けることができますが、この場合でも、値が正しく記憶されないことがあります。

Signed Integer（符号付き整数）［2 進数］
これは、9 桁までの符号（+ / -）付き整数に対して使用されます。
サイズそれぞれ 2、4 または 9 桁まで記憶するとき、1、2 または 4 バイト。
「Signed Integer」の実際のマシン表記は、ハードウェアに依存します。詳細については、
そのコンピュータのマニュアルを参照してください。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries85

第 章 - 補足

Unsigned Integer（符号なし整数）［2 進数］
これは、9 桁までの正の整数のみを記憶するために使用されます。
サイズそれぞれ 2 、4 または 9 桁まで記憶するとき、1、2 または 4 バイト。
「Unsigned Integer」の実際のマシン表記は、ハードウェアに依存します。詳細については、
そのコンピュータのマニュアルを参照してください。

Float（浮動小数点）［浮動小数点］
これらは、16 桁までの整数部分と小数部分を記憶するために使用される IEEE 浮動小数点タイプです。
サイズそれぞれ 6 または 15 桁まで記憶するとき、4 または 8 バイト。
実際のマシン表記は、ハードウェアに依存します。詳細は、コンピュータのマニュアルを参照してください。

Float MS-Basic（浮動小数点 MS-Basic ）［文字］
サイズそれぞれ 6 または 16 桁まで記憶するとき、4 または 8 バイト。
これは、Microsoft Basic で使用されている単精度および倍精度の浮動小数点です。バイナ
リデータとして格納されます。

Float Decimal（浮動小数点 10 進数）［文字］
サイズそれぞれ 6 または 14 桁まで記憶するとき、4 または 8 バイト。
これは、MS-Pascal Decimal Float ライブラリ内の REAL4 および REAL8 のデータタイプと互換性のある単精度および倍精度の浮動小数点です。

Packed Decimal（パック 10 進数）［ パック 10 進数 ］
数値型を選んだ時には、デフォルトとして「Packed Decimal」が設定されます。
これは 10 進数表記で表わした数字を 1 バイトごとに 2 桁づつ格納し、一番右側のバイトの後半分には符号（正数の場合は 16 進数の F または C、負数の場合は D ）を格納したものです。
サイズ 1 から 10 バイト• 「Packed Decimal」は、ANSI-74 標準 COBOL の COMP-3 データタイプと互換性があります。
•

与えられたサイズが n の場合、「Packed Decimal」で記憶できる最大桁数は、2 * n - 1です。したがって、サイズが 1 の「Packed Decimal」項目は、2 * 1 - 1 = 1 桁しか保持できません。サイズが 10 の場合 は、2 * 10 - 1 = 19 桁となりますが、Magic 上限が 18桁なので Magic 内では 18 桁までしか扱えません。

Numeric（数値）［ ゾーン 10 進数 ］
１桁につき１バイトの EBCDIC コードの数字で格納されます。右端のバイト上位４ビッ
トに符号（+ では F,- では D）が入ります。
サイズ 1 から 18 バイト

86

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

データ記憶型式と iSeries データタイプ

Character Number（文字数字）［ 文字 ］
１桁につき１バイトの ASCII コードの数字が格納されます。右端のバイトに `+' または `' の符号が ASCII コードで格納されます。
サイズ 1 から 18 バイト•与えられたサイズが n の場合、記憶される最大桁数は n - 1 です。

String Number（文字列数字）［ 文字 ］
１桁につき１バイトの ASCII コードの数字が格納されます。数字に小数点が含まれる場
合は、1 バイト追加されます。負数は、最初の桁の前に `-' を含みます。
サイズ 1 から 19 バイト

Magic Number（ Magic 数字）［ 文字 ］
「Magic Number」は、Magic によって使用される内部表記です。基数を 100 として、1 バ
イトに 2 桁ずつ記憶し、追加バイトを 1 バイト付加します。
サイズ 2 から 10 バイト• 「Magic Number」は、18 桁までの数値をサポートします。

C-ISAM Decimal（ C-ISAM 10 進数）［ 文字 ］
C-ISAM Decimal」は、1 バイトに 2 桁ずつ記憶し、追加バイトを 1 バイト付加します。
サイズ 2 から 17 バイト•与えられたサイズが n の場合、「C-ISAM Decimal」で記憶できる最大桁数は、2 * （n- 1）です。サイズが 2 の C-ISAM 項目 は、2 * （2 - 1）= 1 桁しか保持しません。サイズが 17 の場合は、2 * （17 - 1）= 32 桁となりますが、Magic の上限が 18 なので Magic
内では 18 桁までしか使えません。

Extended Float（拡張浮動小数点）［ 文字 ］
整数部と小数部で 14 桁まで記憶する時に使用される IEEE 浮動小数点です。
サイズ 8 バイト。
•

この型式は、DEC Rdb の GFLOAT 記憶型式に基づいています。

論理型記憶型式の説明
Integer Logical（整数論理）［ 文字 ］
「Integer Logical」は、1 バイト（または 2 バイト）のヘキサコードで真の場合には 01（または 0001）、偽の場合には 00（または 0000）を格納します。
サイズ 1 バイトまたは 2 バイト

String Logical（文字列論理）［ 文字 ］
論理型を選んだ時には、デフォルトとして「String Logical」が設定されます。
「String Logical」は、1 バイト文字列に、文字「T」（真）または「F」（偽）を ASCII コー
ドで格納します。
iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries87

第 章 - 補足
サイズ 1 バイト
EBCDIC コードの文字 T、または F を格納するには、［テーブル / テーブル特性 / データ
ベース特性］に、STORAGE=DB2 と記述します（詳細は第 3 章 「ISAM ファイルの「テーブル特性」で有効なキーワード」を参照）。

日付型記憶型式の説明
Integer Date（整数日付）［2 進数 ］
基準日である西暦 1 年 1 月 1 日からの経過日数を表わします。データベースによって、符号付きまたは符号なしの整数として記憶されます。
サイズ 4 バイト

Integer Date - 1901（整数日付 - 1901 ）［2 進数 ］
基準日である 1901 年 1 月 1 日からの経過日数を表わします。符号なしの整数として記憶されます。
サイズ 4 バイト

String Date（文字列日付）［ 文字 ］
日付型を選んだ時には、デフォルトとして「String Date」が設定されます。
「String Date」は、'YYYYMMDD' のフォーマットの文字列で日付を表わします。
ここで、YYYY は年を 4 桁で表わします。MM は月を、DD は日を表わします。
サイズ 6 バイトまたは 8 バイト

YYMD Date（YYMD 日付）［2 進数 ］
YYMD 日付は、'YYMD' フォーマットの 2 進整数として日付を表わします。
最上位の 2 バイトは年、3 番目のバイトは月、最後のバイトは日を 2 進数表記で記憶します。これは、Btrieve データ項目のフォーマットです。
サイズ 4 バイト

Magic Date（ Magic 日付）［ 文字 ］
Magic 日付は、基準日西暦 1 年 1 月 1 日からの経過日数を、「Magic Number」の型式で表現します。
サイズ 4 バイト

Magic Date - 1901（ Magic 日付 - 1901）［ 文字 ］
この記憶型式は、基準日 1901 年 1 月 1 日からの経過日数を、「Magic Number」の記憶型
式の数値項目として表現します。
サイズ 4 バイト

88

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

データ記憶型式と iSeries データタイプ

時刻型記憶型式の説明
Integer Time（整数時間）［ 2 進数 ］
秒数は、データベースによって、符号付きまたは符号なしの倍長整数として記憶されます。
サイズ 4 バイト

String Time（文字列時間）［ 文字 ］
時刻型を選んだ時には、デフォルトとして「String Time」が設定されます。
「String Time」は、フォーマットが 'HHMMSS' の文字列で時間を表わします。ここで、最初の 2 文字は時間を、次の 2 文字は分を、最後の 2 文字は秒を表わします。
サイズ 6 バイト

HMSH Time（ HMSH 時間）［2 進数 ］
「HMSH Time」は、'HMSH' の形式の 2 進整数として時間を表わします。最上位バイトが時間を、2 番目が分を、3 番目が秒を、最後のバイトが 100 分の 1 秒を、それぞれ 2 進数表記で表現します。これは、Btrieve の時間項目のフォーマットです。
サイズ 4 バイト

Magic Time（ Magic 時間）［ 文字 ］「Magic Time」では、秒数が「Magic Number」の記憶型式で表現されます。
サイズ 4 バイト

メモ型記憶型式の説明
String Memo（文字列メモ）［ 文字 ］
メモ型を選んだ時には、デフォルトとして「String Memo」が設定されます。
メモ項目には、2 バイトとそれに可変長の文字列が続く形で格納されます。

Magic Memo（ Magic メモ）［ 文字 ］
これは、dbMAGIC Ver.4 の「メモ型」記憶型式です。最初の 2 バイトには、メモ項目の実際のサイズが含まれます。記憶されるとき１バイトコードのみ容量が最小となるように圧縮されます。

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

89

第 章 - 補足

定義取得
iSeries の各データタイプのフィールドを、Magic のテーブルリポジトリに取り込んだときのそれぞれのデータ型、および記憶型式は次のようになります。

SAM ゲートウェイ
iSeries のデータタイプ

Magic のデータ記憶形式
データ型

記憶型式

記憶サイズ

書式

文字［A］

文字型

StringnSn

DBCS 専用［J］

文字型

Stringn

Jn

DBCS 混用［O］

文字型

Stringn

Xn

DBCS 択一［E］

文字型

Stringn

Tn

DBCS 図形［G］

文字型

StringnGn

パック 10 進数［P］

数値型

PackedDecimalnNn

ゾーン 10 進数［S］

数値型

NumericnNn

2 進数［B］

数値型

SignedIntegernNn

浮動小数点［F］

数値型

Float

n

Nn

16 進数［H］

文字型

String

2

S2

日付［L］

日付型

String Date8####/##/##

時刻［T］

時刻型

String Time

6

HHMMSS

タイムスタンプ［Z］

文字型

String

26

26

SQL ゲートウェイ
iSeries のデータタイプ
CHARACTER

90

Magic のデータ記憶形式
データ型

記憶型式

記憶サイズ

書式

文字型

Stringnn

VARCHAR

メモ型

StringMemon+2n

INTEGER

数値型

SignedInteger

4

N9

SMALLINT

数値型

SignedInteger

2

N5

DECIMAL

数値型

PackedDecimaln

Nn

NUMERIC

数値型

Numeric

n

Nn

FLOAT

数値型

Float

n

n

DATE

日付型

String Date8

YYYY/MM/DD

TIME

時刻型

SignedInteger6

HH:MM:SS

TIMESTAMP

文字型

ZString

27

26

BLOB

BLOB 型

Blob

-

-

CLOB

BLOB 型

Blob-

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries各種限界値

各種限界値

iSeries 開発ガイド

項目

iSeries での制限

キーの最大数99

一つのキーあたりの最大セグメント数120

一つのキーの最大レコード長128

最大文字型長32K バイト最大レコード長

32K バイト最大メモ型長32K バイト

双方向キーのサポートあり

デフォルトサフィックス

なし

Magic eBusiness Platform V9 Plus for iSeries91

第 章 - 補足［このページは意図的に空白にしています。］

92

iSeries 開発ガイド

Magic eBusiness Platform V9 Plus for iSeries

iSeries 開発ガイド

Copyright 2005 Magic Software Enterprises Ltd.and Magic Software Japan K.K.

第１版 2005 年 2 月 28 日
第３版 2005 年 5 月 31 日
東京都渋谷区代々木三丁目二十五番地三号
発行 〒 151-0053
あいおい損保新宿ビル 14 階

All rights reserved.