Magic eBusiness Platform V9 Plus追加情報

マジックソフトウェア・ジャパン
株式会社２００４年４月

Magic eBusiness Platform V9 Plus

Ver 9.40J SP1b 追加情報

  Magic eDeveloper V9 Plus
  Magic Application Server V9 Plus
  Magic Client V9 Plus

このファイルには、Magic eBusiness Platform V9 Plus （以下 Magic および V9 Plus と表記） Ver 9.40 SP1b について、マニュアルに記載されていない注意点や制限事項など重要な情報が記載されています。

ご利用前に・・・

「本バージョンのご利用にあたって」に 、重要な事項がまとめてありますので、必ず目を通してください。

表記上の注意

本文書には、次のようなアイコンを利用しています。

特に重要な情報であることを表しています。

本バージョンで新しく追加された情報を表しています。

本バージョンで変更になった情報を表しています。

また、本文書の各項目において、説明文書の最後に括弧つきの番号がつけてあります。(例： (1000641))。これは、サポートセンターがい～さぽで提供している重要技術情報の情報番号です。

内容

本バージョンのご利用にあたって

過去のバージョンとの互換性

サポートDBMS、OS対応一覧

アプリケーションサンプル

修正履歴

データベース固有の追加情報

参考技術情報

付録

ベータ機能評価レポート

Magic eBusiness Platform V9 Plus 使用許諾契約書


本バージョンのご利用にあたって

  • 過去のバージョンとの互換性について
  • ゲートウエイ利用時の注意事項について
  • ベータ版をご利用になったお客様に
  • ベータ機能について
  • サポートされているOS・DBMS

過去のバージョンとの互換性について

過去の製品との互換性については、

  • 以前のV9Plus製品 (Ver 9.40J SP1a) で作成したMCF/MFF とはバイナリ上位互換性があります。
  • Ver 9.30J SP5x およびそれ以前の V9.x 製品のMCF/MFFはバイナリ非互換ですが、リポジトリ出力・入力を行うことにより上位互換性があります。
  • Ver 8.2 製品からは、リポジトリ出力・入力を行うことによりマイグレーションできます。いくつかの留意事項があります。

いずれの場合においても、新機能の追加、不具合の修正、動作変更などに伴って細かな動作の違いがあります。互換性についての詳細は「過去のバージョンとの互換性」、本バージョンでの新機能、留意制限事項等については「修正履歴」のページをご参照ください。

ゲートウエイ利用時の注意事項について

各DBMSに固有な新機能、留意・制限事項、および互換性についての情報は、「データベース固有の追加情報」にまとめてあります。あわせてご参照ください。

ベータ版をご利用になったお客様に

ベータテストにご協力ありがとうございま した。ベータ版から製品版に移行する場合には、以下の点にご留意ください。

  • 本製品版をインストールするにあたりましては、ベータ版のモジュールが残って思わぬ悪影響を与えることを避けるため、ベータ版のアンインストールを行い、ファイルやレジストリ等の設定を完全に削除してください。ベータ版がアンインストールされていない場合、安全のためインストールできないようになっています。
  • ベータ版で作成したアプリケーション(MCF/MFFファイル)は、そのまま利用することができます。
  • MAGIC.INI を移行する場合には、「ブラウザクライアントのサブバージョン」の設定を以下の手順で変更してください。
    1. 「設定(S)」メニュー → 「動作環境」 → 「アプリケーションサーバ(N)」タブを開きます。
    2. 「ブラウザクライアントのサブバージョン」パラメータを空白に設定します。(ベータ版では、ここが「BETA01」になっていましたが、この設定のままでブラウザクライアントタスクを実行すると、ブラウザ側で エラーになります)。

ベータ機能について

本バージョンが提供する機能のうち、ベータ機能、サポート外機能とされている機能があります。これらの機能はマジックソフトウェアジャパンのサポートセンターでのサポート対象外ですが、ご意見、ご質問、気が付いた点などは、「ベータ 機能評価レポート」に記入して、メールで japan_v9beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。 お送りいただいたメールはすべて良く検討し、製品改善のための参考にさせていただきますが、お問い合わせの内容に対し個別にはお答えできない場合もありますので、予めご了承願います。


過去のバージョンとの互換性

ここでは、V9Plus Ver 9.40JSP1a およびそれ以前のバージョンからのアップグレード時の互換性について説明します。

  • V9Plus Ver 9.40J SP1a からのアップグレード
  • Ver 9.01J SPx ～Ver 9.30J SPx からのアップグレード
  • Ver 8.2 およびそれ以前のバージョンからのアップグレード


V9Plus SP1a からのマイグレーション

Ver 9.40J SP1a からのマイグレーション

ここでは、以前のV9 Plus 製品 （Ver 9.40J SP1a）から本バージョンへアップグレードする場合の注意点について説明します。

Magicコントロールファイル上位互換性

Magicコントロールファイル（MCF、MFF)のバイナリ上位互換性があり、リポジトリ出力 ・リポジトリ入力は必要ありません。

動作の変更

新機能の追加、不具合の修正等に伴う、細かな動作の違いがあります。「修正履歴」をご参照ください。


Ver 9.01J SPx ～Ver 9.30J SPx からのアップグレード

ここでは、V9製品 （V9.01J SPx ～ 9.30J SPx）から V9Plus 9.40J SP1b へアップグレードする場合の注意点について説明します。

Magicコントロールファイル非互換性

Magicコントロールファイル（MCF、MFF)のバイナリ互換性がありません。旧バージョンにてリポジトリ出力し、新バージョンでリポジトリ入力を行なう必要があります。コンポーネントを使用している場合、コンポーネント化されているコントロールファイルを先に移行して下さい。 安全のため、事前に旧バージョンの開発環境をバックアップされることをお奨めいたします。

動作の変更

リポジトリ出力・入力により、基本的には上位互換をなるべく保持するようにしていますが、新機能の追加、不具合の修正等に伴う、細かな動作の違いがあります。「修正履歴」をご参照ください。

モジュール名、デフォルト設定の変更

 | V9.01 | V9.2 | V9.3 | V9.4 | 備考
ISAPIリクエスタ | mgrqispi9.dll | mgrqispi92.dll | mgrqispi93.dll | mgrqispi94.dll | 設定／動作環境／アプリケーションサーバ／HTTPリクエスタで設定
CGIリクエスタ | mgrqcgi9.exe | mgrqcgi92.exe | mgrqcgi93.exe | mgrqcgi94.exe
NSAPIリクエスタ | mgrqnspi9.dll | mgrqnspi92.dll | （V9.3でサポート打ち切り） |  |
GNRCモジュール | mgrqgnrc9.dll | mgrqgnrc92.dll | mgrqgnrc93.dll | mgrqgnrc94.dll |
HTTPモジュール | mgrqhttp9.dll | mgrqhttp92.dll | mgrqhttp93.dll | mgrqhttp94.dll |
デフォルトInternetDispatcherPath | /Magic9Scripts |  |  | /Magic94Scripts |
デフォルトMRBポート | 3001 | 3100 | 3200 | 3300 |

上記の変更に伴い、MAGIC.INIおよびHTMLファイルを必要に応じて変更してください。

 例： InternetDispatcherPath = /Magic94Scripts/mgrqispi94.dll

MRBデフォルトポート番号の変更

デフォルトのポート番号が、3300になりました。旧ポート番号（3001, 3100, 3200）でも動作可能ですが、各種INIファイルの設定を変更することを推奨いたします。

ＩＮＩファイル | 設定 | 備考
MAGIC.INI | 設定／サーバ／サーバアドレス |
MGREQ.INI | [REQUESTER_ENV] MessagingServer = 3300 | Magicエンジン、インターネットリクエスタのインストール場所
MGRB.INI | [MRB_ENV] BrokerPort = 3300 |

セキュリティファイルの変更

Ver 9.30J SP3において、安全性を高めるためのユーザID/パスワード のサイズの拡張に伴い、セキュリティファイルが変更になり、実行時に使用できるユーザIDは10桁から30桁、パスワードは8桁から20桁に拡張されました。この変更により、Ver9.20J SPｘ およびそれ以前のバージョンから移行する場合には、セキュリティファイルをコンバートツールで変換する必要があります。コンバートツール（usrupd.exe）は、Utilフォルダに格納されています。

チーム開発を行う場合に有効なユーザIDは、従来どおり10桁です。

Stat/TDepth関数

組み込み関数のうち、タスクのレベルを引数としてとるもの (Stat, TDepthなど) を、イベントハンドラの「有効」欄の条件式として使った場合、V9.3 SP3a以前と、それ以降とで、タスクレベルの数値の解釈が変わりました (1000660)。詳細については、「9.30SP5でのStat/TDepth関数の変更について」を参照してください。

ブラウザクライアント関係の設定

MAGIC.INI 内の設定に変更・追加があります。V9Plusの標準のMAGIC.INIではすでに設定されていますが、V9.3より移行したMAGIC.INIを利用する場合には、以下の修正を行ってください。

  • ブラウザクライアントの文字コード設定： 動作環境 (MAGIC.INI) 内での文字コード設定の方法が変わりました。詳細は「V9Plus (Ver9.40 SP1a) の動作変更」の「ブラウザクライアントでのタスクキャッシングのための文字コード設定」の項を参照してください。

  • ブラウザクライアントのキャッシュのための設定： V9Plus でブラウザクライアントの速度向上のため、キャッシュを利用するようになり、「ブラウザクライアントキャッシュパス」と「ブラウザクライアントキャッシュエイリアス 」の 二つの動作環境パラメータが導入されました。 詳しくは「V9Plus (Ver9.40 SP1a) での新機能」の「ブラウザクライアントのタスクキャッシュ」の項を参照してください。


Ver 8.2 およびそれ以前のバージョンからのアップグレード

ここでは、V8製品 （V8.2）から V9Plus Ver 9.40J SP1b へアップグレードする場合の注意点について説明します。

マイグレーション可能なdbMAGICバージョン

リポジトリ入力可能な、旧バージョンは、dbMAGIC Ver 8.2 のみとなります。それ以前のバージョンは、一度、Ver 8.2へ移行するか、弊社の移行サービスをご利用ください。

モジュール名、デフォルト設定の変更

 | V8.2 | V9 Plus （9.4SP1a) | 備考
ISAPIリクエスタ | mgrqispi.dll | mgrqispi94.dll | 設定／動作環境／アプリケーションサーバ／HTTPリクエスタで設定
CGIリクエスタ | mgrqcgi.exe | mgrqcgi94.exe
NSAPIリクエスタ | mgrqnspi.dll | （サポート打ち切り） |
GNRCモジュール | mgrqgnrc.dll | mgrqgnrc94.dll |
HTTPモジュール | mgrqhttp.dll | mgrqhttp94.dll |
デフォルトInternetDispatcherPath | /Scripts | /Magic94Scripts |
デフォルトMRBポート | 2001 | 3300 |

上記の変更に伴い、MAGIC.INIおよびHTMLファイルを必要に応じて変更してください。

 例： InternetDispatcherPath = /Magic94Scripts/mgrqispi94.dll

MRBデフォルトポート番号の変更

デフォルトのポート番号が、3300になりました。旧ポート番号（2001）でも動作可能ですが、各種INIファイルの設定を変更することを推奨いたします。

ＩＮＩファイル | 設定 | 備考
MAGIC.INI | 設定／サーバ／サーバアドレス |
MGREQ.INI | [REQUESTER_ENV] MessagingServer = 3300 | Magicエンジン、インターネットリクエスタのインストール場所
MGRB.INI | [MRB_ENV] BrokerPort = 3300 |

DBCS専用書式のサポート

DBCS専用の書式 (J, X, T, G, S、詳細は『文字型書式「位置指示記号」の拡張』をご参照ください)が、V9 ではデフォルトで有効になるようになりました。V8.2ではデフォルトで無効になっていたので、V8.2のアプリケーションをV9に移行すると、ボタンのラベルなどにあるこれらの文字が書式として解釈されて表示されなくなります。(例： ボタンの「書式」に「GOTO」と指定しておくと、V8.2ではそのままGOTOと表示されていたものが、V9 ではGとTが消えて「 O O」となってしまう)。

このような場合には、MAGIC.INI で以下のスイッチを設定することにより、V8.2のデフォルト状態と同じようにこれらの書式文字を無効化させて、V8.2と同じ動作にすることができます。

[dbMAGIC_ENV]
AS400Set = N

JAVAフォーム

Javaフォームは、サポートされなくなりました。Ver8のアプリケーションをリポジトリ入力すると、Javaフォームは削除されます。

Magicのメニューアイコン

Magic Ver9 はアイコンの新しいセットを提供します。Ver8 の内部アイコンを使用しているアプリケーションの場合、Ver9 では異なるアイコンが表示される場合があります。 外部のアイコンを使うように変更するか、またはメニューに対して新しいアイコンを割り当て直してください。

基本色定義ファイルとフォント定義ファイルの変更

Magic Ver9 は、新しい基本色定義ファイルとフォント定義ファイルを提供しています。最初の1～100番までは、Magic 内部用に割り付けられています。この変更により、旧バージョンからの移行時には、アプリケーションで使用している色とフォントの参照をコンバートする必要があります。
基本色／フォント定義ファイル コンバートユーティリティ（英語）がありますのでご使用ください。詳細は、ボーナスパックを参照してください。

イベントハンドラ

Ver8 のタスクイベントは、対応した Magic Ver9 のハンドラの下で、コールコマンドに変換されます。Ver8 の CTL イベントは、メインプログラムのハンドラに変換されます。

Level 関数

Magic Ver9のLevel 関数は、Ver8と異なる値を返します。
グループレベルをチェックするとき、LxPまたはLxSの代わりに、関数は"GP_<変数名>" または "GS_<変数名>"の文字列を返します。

トランザクションロッキング

移行したアプリケーションのトランザクション・モードは、全て物理トランザクション・モードとなります。

MS-SQL 使用時のデフォルトのロックの動作は、物理ロッキングに変更になっています。 dbMAGIC Ver8 と同等にする場合は、[設定/データベース]の[データベース情報]欄に「SQL_PHYSICAL_LOCKING=N」と設定します。

レポートジェネレータ

V8.2でのレポートジェネレータに代わり、V9 Plus ではデータ出力機能があります。

バージョン管理機能

サポートされなくなりました。

GUI画面のテーブルコントロール

GUI画面のテーブルコントロールの機能が拡張されました。Ver8で作成したテーブルコントロールをVer9 と同じ機能にするには次の変更を行います。

  • コントロール特性／スタイル ・・・ 凸立体 → Windows立体
  • コントロール特性／サイズ変更 ・・・ No → Yes
  • 各カラムのタイトルの変更 ・・・
    1. テキストコントロールの親子リンクを解除してから削除。
    2. Alt+マウスクリック でカラムを選択し、カラム特性のテキストにタイトル名を記述。

リポジトリ入力ログファイル

アプリケーションリポジトリ入力を行なうと、アプリケーションリポジトリ入力ログファイル（XXIMP.LOG）を作成します。
変換エラー等が発生していないか、入力ログで確認してください。

アクション名の変更

Mgconstw.jpn は、Ver8.2から移行する場合の互換性のあるアクション名にしていますが、一部のアクション名が異なるため、ユーザメニューやアクションコマンドに定義されている内部イベントが欠如する場合があります。Ver8.2 で以下のアクションを使用している場合は、リポジトリ入力後再定義してください。

Ver 8.2

Ver 9.X
行ジャンプ | 行ジャンプ(&J)
&T:行作成 | &R:行作成
&R:複写登録 | &Y:複写登録
前行にマーク | 前行を複数行マーク
次行にマーク | 次行を複数行マーク
&T:複写 | &I:複写
&T:タイプ | モデル(&D)
&H:ノードサイズ縮小 | &L:サブツリー縮小
&K:タスクイベント | ユーザイベント(&U)
&H:SQL Where 句 | &R:範囲／位置付
&U:dbMAGIC ヘルプ | &U:Magic ヘルプ
&L:チェックアウト一覧 | チェックアウト一覧

Ver8アプリケーションからの移行の強化機能

ISAM （Pervasive SQL）データベースを使用した、dbMAGIC Ver8 のアプリケーションの移行を容易に出来るように、MAGIC.INI に以下のオプションを指定してインポートすることによりエラーハンドラを自動的に追加させることができます。

[MAGIC_SPECIALS]
ImportCreateErrHandler = Y または TRNS

ここで、ImportCreateErrHandler の値とその意味は以下の通りです。

ImportCreateErrHandler の値 | 意味
Y | レコードアクセス失敗時の設定を優先
TRNS | トランザクションの設定を優先

(1) レコードアクセス失敗時の設定優先時(Y設定時)の動作

トランザクションエラー時 (V8) | エラー発生時 (V9)
アボート | アボート
リトライ | アボート
スキップ | アボート

レコードロック時 (V8) | エラーハンドラ (V9)
リトライ | 無し
アボート | [エラーハンドラ:レコードロック 対応: アボート]
スキップ | [エラーハンドラ:レコードロック 対応: 無視する]

アクセス失敗時(V8) | エラーハンドラ(V9)
スキップ [エラーハンドラ: 挿入/更新/削除に失敗　対応: 無視する]
[エラーハンドラ: 重複インデックス　対応: 無視する]
リトライ | 無し
アボート | 無し

(2) トランザクションの設定を優先時 (TRNS設定時)の動作

トランザクションエラー時 (V8) | エラー発生時 (V9)
アボート | アボート
リトライ | 復旧
スキップ | アボート

レコードロック時(V8) | エラーハンドラ(V9)
リトライ | 無し
アボート | [エラーハンドラ: レコードロック 対応: アボート]
スキップ | [エラーハンドラ: レコードロック 対応: 無視する]

トランザクションエラー時 (V8) | エラーハンドラ (V9)
アボート | 無し
リトライ | 無し
スキップ [エラーハンドラ: 挿入/更新/削除に失敗　対応: 無視する]
[エラーハンドラ: 重複インデックス　対応: 無視する]


サポートされているOS・DBMS

ここでは、Ver 9 Plus のシステム要件を記します。

システム要件については、インストールガイドの第1章「はじめに」 → 「セットアップ条件」の節にも注意事項等ありますので、ご覧ください。

V9 PlusサポートDBMS一覧表

DBMS | Version | Magic eBusiness Platform V9 Plus Winodws版
Pervasive.SQL | Pervasive SQL2000/2000i Workstation for Win95/98/NT | ○
 | Pervasive SQL2000/2000i Workgroup for Win95/98/NT | ○
 | Pervasive SQL2000/2000i Server for WinNT | ○
 | Pervasive SQL2000/2000i Server for Netware | ○
 | Pervasive SQL V8 | ○
ORACLE | Oracle8 | ○
 | Oracle8i | ○
 | Oracle9i | △ 注意1
MS-SQL | 7 | ○
 | 2000 | △ 注意2
MSDE | Ver 1.0 SP3 | ○
 | MSDE 2000 SP3 | ○
DB2 UDB | V7.2 | ○

凡例 … ○：動作確認済、△：制限あり、－：対象外、予定：評価予定

注意1. | Oracle8/8i 互換のレベルで動作を確認。 詳細はこちら。
注意2. | SQL Server7.0 互換のレベルで動作を確認。

V9 Plus サポートOS一覧表

OS | Machine Type | Windows Version | Magic eDeveloper V9 Plus | Magic Client V9 Plus | Magic Application Server V9 Plus
Windows | Intel | 98 | ○ | ○ | ×
 |  | NT 4.0 Workstation | ○注意1 | ○注意1 | ×
 |  | NT 4.0 Server | ○注意1 | ○注意1 | ○注意1
 |  | 2000 Professional | ○ | ○ | ×
 |  | 2000 Server, Advanced Server | ○ | ○ | ○
 |  | Server 2003 (Standard, Enterprise) | △注意2 | △注意2 | △注意2
 |  | XP Professional | △注意3 | △注意3 | ×
 |  | XP Home | × | × | ×
 |  | Me | × | × | ×

凡例 … ○： 動作確認済、△： 制限あり、× ： 動作保証対象外、予定： 評価予定

注意1: Windows NT利用時の注意事項

  • WindowsNT4.0SP6a以降のみサポートしています。

注意2: Windows Server 2003 利用時の注意事項

  • Windows2000の互換機能を使用してMagicが動作することを確認したもので Windows Server 2003 の新機能に関しては未評価です。
  • Pervasive.SQLを使用する場合は、Pervasive.SQL V8 を使用してください。Pervasive.SQL 2000i およびそれ以前のバージョンについては、Windows 2003 Server上での動作が保証されていません。

  • Windows Server 2003 にはJava VMが搭載されていません。ブラウザクライアントをクライアントとして実行する場合には Java VMがないと正常に動作しませんので、必要な場合には「Microsoft社 Java VM のインストール」をご覧になり、Java VMをインストールしてください。

  • ISAPIリクエスタを使用する場合、IISマネージャ－Webサービス拡張でISAPIリクエスタ（MGrqispi94.dll)を許可にしてください。

  • CGIリクエスタ－をIIS6.0で実行したとき、Cookieのパラメータに2バイト文字を使用し、そのCookie情報をHTTPサーバーに送る際、以下のエラーが発生することがわかっています。 現状では制限事項です。ISAPIリクエスタ MGrqipsi94.dll を利用する場合にはこの制限はありません。

    CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP header

注意3： Windows XP 利用時の注意事項

  • Windows2000の互換機能を使用してMagicが動作することを確認したもので WindowsXP の新機能に関しては未評価です。
  • Pervasive.SQLを使用する場合は、Pervasive.SQL V8、あるいは 2000i を使用してください。それ以前のバージョンでは、Windows XP上での動作が保証されていません。
  • Windows2000 互換モード、「視覚テーマを無効にする」で使用することを推奨します。また、必要に応じて画面のプロパティにおいて、テーマを「Windows クラシック」にするなど、ウィンドウとボタンが「Windows クラシック スタイル」になるように設定することを検討してください。これはWindowsXPのスタイルとクラシックのスタイルでは使用されるフォントのサイズも異なるため、Magicにおいて使用可能なクライアント領域が異なるためです。そのため、いままで表示できていたフォームが表示しきれずにスクロールバーが表示されることがあります。

  • Windows XP SP1a 以降にはJava VMが搭載されていません。ブラウザクライアントをクライアントとして実行する場合には Java VMがないと正常に動作しませんので、必要な場合には「Microsoft社 Java VM のインストール」をご覧になり、Java VMをインストールしてください。


アプリケーションサンプル

Ver 9.40J SP1b 対応のサンプルパッケージ

(1) 新機能サンプル

V9 Plus (V9.40J SP1b) の機能をよりよく理解するためのサンプルが Magic eDeveloper Plus 9.40J SP1b (開発版)に添付されています。

  • インストール： eDeveloper 本体のインストール時に自動的にインストールされます。
  • 起動： サンプルプログラムの起動はメニューから「Magic eDeveloper Plus 9.40 → Magic9 Demo → 新機能サンプルプログラム」で起動することができます。
  • 解説： サンプルプログラムの解説用ヘルプファイルも用意されており、同メニューの「新機能サンプルヘルプ」から開くことができます。

(2) ブラウザクライアントアプリケーション開発手法 （9.4SP1b対応）

9.3SP5 では「ブラウザクライアント アプリケーション開発手法」はダウンロードで提供されていましたが、9.40J SP1a より eDeveloper の標準デモアプリケーションとして添付されるようになりました。

  • インストール： eDeveloper 本体のインストール時に自動的にインストールされます。
  • 起動： サンプルプログラムは起動はメニューから「Magic eDeveloper Plus 9.40 → Magic9 Demo → サーバ用エンジンの実行(バックグラウンド)」でバックグラウンドで動作する Magic サーバエンジンを起動してから、同メニューの「BC Methodology デモ用クライアント」で Web ブラウザで起動します。
  • 解説： サンプルプログラムの解説用ヘルプファイルも用意されており、同メニューの「BC Methodology の Readme」から開くことができます。

過去のバージョンのサンプルアプリケーション

以下のサンプルアプリケーションは和訳されて、FTPサイトで公開されています。これらのサンプルは Ver 9.3 SP3 および SP5 用に作成されたもので、Magic eDeveloper Plus 9.40 SP1b には添付されていません。ダウンロードして、リポジトリ入力してご利用ください。

(1) ブラウザクライアントのサンプル

メインウィンドウの置換

メインプログラムのコールコマンドによって、現在のタスクを終了して、同じウィンドウに新しいプログラムを表示することが可能になりました。
メインプログラムにユーザイベントハンドラでコールコマンドを設定し、かつコール特性／出力フレームに _top を設定します。親のプログラムでは、メインプログラムで定義されたユーザイベントを、イベント実行コマンドで実行します。
サンプル（英語）： Overriding_A_Top_Browser_Task.exe

キーボードでのサブフォームへのアクセス

ブラウザクライアントのサブフォームは、キーボード（Tab／Shift+tabキー）を使ってアクセスすることが可能になりました。この機能を有効にするには、新しく追加された、ブラウザフォーム／HTMLコントロールテーブル／コントロール特性／タブで移動パラメータを「Yes」に設定します。「No」の場合は、マウスクリックのみでの移動になります。
デフォルト値は、新規の場合は「Yes」、以前のバージョンから移行した場合は「No」です。
詳細は、リファレンスの１１章「表示フォーム」を参照してください。
サンプル（英語）： Keyboard_Access_Subforms.exe

CSSのサポート

ブラウザクライアントタスクで、HTMLコントロールに対して、ダイナミックにクラス名とスタイル名を設定することができます。詳細は、リファレンスの１１章「表示フォーム」の「ブラウザコントロール特性」の説明を参照してください。

サンプル（英語）：Styles_and_Classes.exe

ヘルプアクションのサポート

ブラウザでF1/Ctrl+F1などのブラウザのヘルプアクションを発行すると、ヘルプイベントを起動することが可能になりました。

ヘルプアクションが起動されると、ヘルプ画面欄で定義されたURLが開かれ、ブラウザ自身のヘルプは開きません。もし、ヘルプ画面欄が指定されていない場合は、ウィンドウズのブラウザヘルプが開かれます。

ヘルプウィンドウの特徴には、以下のようなものがあります。

  • ヘルプウィンドウは、ヘルプページとして指定されたブラウザウィンドウです。

  • タイトルは常に「HTML ヘルプ」です。

  • ヘルプページは常に最終位置で開かれます。

  • タスク画面をクリックして戻った場合でも、ヘルプウィンドウは閉じません。

  • すべてのヘルプページは同じウィンドウに表示されます。つまり、二番目に開いたヘルプウィンドウは、既に開かれていたヘルプウィンドウに置き換わります。

サンプル（英語）：Browser_Client_Help_Activation.exe

ブラウザタスクからバッチタスクのコール

ブラウザクタスクから、インターネットリクエスタに出力するバッチタスクをコールして、出力先フレームで指定したブラウザへの出力が可能になりました。

後に続くバッチタスクの中で指定された出力先フレームは無視されます。ブラウザタスクで指定されたバッチタスクへのコールコマンドの出力先フレームだけが使用されます。

詳細は、リファレンスの２５章「分散アプリケーションのアーキテクチャ」の「ブラウザ形式のインターネットアプリケーション」の説明を参照してください。

サンプル（英語）：Browser_Client_Calling_Batch.exe.

MGExternalEvent() 関数(JavaScript) と「外部イベント」

以前のバージョンでは、ブラウザクライアントタスクで、Web ブラウザ側からイベントを発生させて、Magicに認識させることはできませんでした。このため、たとえば、Webブラウザで JavaScript などにより項目の値を変更しても、Webブラウザ上では表面的に値が変更されているように見えても、それが Magic には反映されませんでした。

Ver 9.3 SP5 では、HTML 上での JavaScript で MGExternalEvent() 関数により、Webブラウザから Magic に向けて「外部イベント」というイベントを発生させ、Magic のイベントハンドラでそれをキャッチすることにより、Web ブラウザ側から Magic にアクションを起こさせることができるようになります。「外部イベント」には任意のパラメータを付加することができるので、JavaScript から Magic に任意のデータを渡すことが可能になります。

MGExternalEvent() と「外部イベント」のサンプルは、ext_event.exe からダウンロードすることができます。

(2) オンラインタスクのサンプル

親タスクのイベントハンドラから呼び出されたタスクのウィンドウの位置

以前のバージョンでは、親タスクのイベントハンドラから呼び出されたタスクのウィンドウは、親タスクから直接呼び出されたタスクと同じように扱われ、イベントを発生したタスクから呼び出したタスクのようには扱われませんでしたが、これは正しい扱いではありませんでした。

Ver9.30JSP5では、このような場合には、親タスクのイベントハンドラにより呼び出されたタスクは、イベントを発生した子タスクがコールコマンドを使って呼び出す場合と同様の扱いをするようになりました。

この変更により、呼び出されるタスクのフォームの「子ウィンドウ」が「Yes」になっている場合には、表示される位置が変わることがありますので、このような構造のプログラムになっている場合には、表示位置を確認してください。

この変更点に関するサンプルアプリケーションは、020_child_windows.exe からダウンロードすることができます。

新しいイベントハンドラ： 「コントロール」レベルの「変更」イベントハンドラ

オンラインプログラムの「コントロール」レベルのハンドラで、「変更」イベントハンドラが追加になりました。

  • このイベントは、エンドユーザの操作によりそのコントロールの値が変化した場合にトリガされます。 このイベントは、項目更新コマンドなどでプログラム的に値を変更した場合にはトリガされません。
  • オンラインプログラムだけで有効です。ブラウザタスクではサポートされていません。

コントロールの「変更」イベントについてのサンプルは、017_control_change.exe からダウンロードすることができます。

マルチマーキング

マルチマーキング用のイベントを使ったサンプルは、016_multi_marking.exe からダウンロードすることができます。

GUI形式フォームの「MDI調整」プロパティ

GUI形式フォームに新しい特性 「MDI調整」が追加されました。これにより、タスクのウィンドウが開かれるときに、Magicのウィンドウのクライアント領域いっぱいに最大化された状態で表示されるようになります。 「MDI調整」特性は、GUI 形式フォームのプロパティシートの「位置とサイズ」のグループ内にあります。 「MDI調整」特性の詳細については、リファレンスマニュアルの「表示フォーム」の章を参照してください。 「MDI調整」についてのサンプルは、013_fit_to_mdi.exe からダウンロードできます。

(3) 新しい関数のサンプル

Ver9.30J SP5で追加された以下の関数のサンプルがあります。各関数の詳細については、リファレンスガイドの「関数」の章を参照してください。

関数名 | 機能
AStr | AStr 関数は、文字型データと書式とを引数としてとり、そのデータに対して指定された書式を適用した結果を文字型データとして返します。 AStr 関数のサンプルは、015_astr.exe からダウンロードすることができます。
RqHTTPHeader | HTTPファイルを結果として出力するタスクで、RqHTTPHeader 関数を使ってHTTPヘッダを指定できるようになりました。 RqHTTPHeader 関数を使ったサンプルは、012_rqhttpheader.exe からダウンロードすることができます。


修正履歴

ここでは、V9Plus 製品の修正履歴を説明します。

本バージョンでの修正内容

バージョン (新しい順) | 新機能 | 改善内容 | 動作変更 | 制限事項
9.40J SP1b |  |  |  |

過去のバージョンの修正履歴

ここでは過去の修正内容を参考情報として修正せずにそのまま掲載しています。最新版において対応されているものもありますので、ご注意ください。

バージョン (新しい順) | 新機能 | 改善内容 | 動作変更 | 制限事項
9.40J SP1a |  |  |  |

ベータ機能

本バージョンでのベータ機能として指定されている機能は、「Ver9.40J SP1b でのベータ機能」をご参照ください。

アプリケーションサンプル

サンプルが公開されています。「アプリケーションサンプル」をご覧ください。


Ver 9.40J SP1b の新機能

  • 8.2K4 において、登録モード時に「画面再表示」 または 「ビュー再表示」アクションが無効になるように修正を行いました(これは、不適切なメッセージが出ることがあるという問題に対応するためのものです)が、この修正により8.2K4より前のバージョンで開発したアプリケーションの動作が変わってしまう、という問題がありましたので、本バージョンでは、MAGIC.INI で以下のフラグを設定することにより、互換性を維持できるようにしました。
    [dbMAGIC_ENV]
EnableRefreshAction = Y または N
    設定値 | 動作 | 備考
    Y | 登録モード時に「画面再表示」 または 「ビュー再表示」アクションが有効になる。 | 8.2K4 より前のバージョンと同じ動作
    N (デフォルト) | 登録モード時に「画面再表示」 または 「ビュー再表示」アクションが無効。 | 8.2K4 およびそれ以後のバージョンと同じ動作
  • 9.30J SP5で画像キャッシュの機能が追加されましたが、場合によっては画像キャッシュを無効にしたい場合があるため、画像キャッシュサイズに -1（キャッシュしない）を設定できるようにしました。(1000681)
  • V8.2K4以降に追加された「CHECK_KEY=Y」を、本バージョンでも利用できるようにしました (1000749)。
    [データベース特性] ダイアログ [SQL] タブ内の [データベース情報] 欄に｢CHECK_KEY=Y｣というパラメータを記述することで、SQL系データベースでのインデックスチェックが 、同一レコード内のカーソル移動時に有効になります 。
    ただし、インデックスの重複時にチェックでエラーになるとトランザクションの破棄を行うため、トランザクション開始時まで処理が戻ります。タスクレベルトランザクションでは、タスクレベルまで破棄されます。


Ver 9.40J SP1b の改善内容

ここでは、以前のバージョンでの不具合・制限事項に対応したものをあげてあります。

実行時機能

  • CALL COMコマンドでCOMオブジェクト(Excelアプリケーションなど)を操作してから、タスクを終了してもMagicが終了するまでメモリが解放されない問題に対応しました。(1000760)
  • 親タスクからイベントハンドラでActiveX (MS Web Browserなど) を実行する子タスクをコールするプログラムで、ハンドラで２回以上子タスクをコールした場合、子タスクのウィンドウを２回クローズすると異常終了する問題に対応しました。(1001070)
  • 親タスクからイベントハンドラでActiveX (MS Web Browserなど) を実行する子タスクをコールするプログラムで、ハンドラで数回子タスクをコールすると 、タスクのクローズ処理とActiveXの後処理のタイミングによって、不定期に異常終了する問題に対応しました。(1000986)
  • ハンドラからバッチタスクを起動した場合、呼び出されたバッチタスクがアクティブにならない問題に対応しました。(1000718)
  • コマンドラインオプションで論理名等の指定を行った場合、末尾の｢'｣と｢*｣記号について、9.4より前のバージョンと異なる結果になる 問題に対応しました。 例えば、以下の記述を行った場合、(1) は正しく「d:\user\a\」となりましたが、(2) は｢d:\user\a\'｣となり、末尾の｢'｣が付いたままになっていました。 本バージョンではいずれも正しく「d:\user\a\」となります。(299044)
    (1)　/[MAGIC_LOGICAL_NAMES]A =d:\\user\\a\\
(2)　/[MAGIC_LOGICAL_NAMES]A ='d:\user\a\'
  • ドキュメント形式のコールWebサービスで、10KB 以上のデータ（戻り値）を受け取ることができない問題に対応しました。(777097)
    RPCスタイルではBLOBを使っても32,766バイトが限界 です。
  • オンラインプログラムのテーブルで、カラムの可視をFALSEにした後、可視をTRUEにしてもカラム上のコンボックが表示されない問題に対応しました。(1000982)
  • ツリーコントロールのツールチップが機能しない問題に対応しました。(293916)
  • ツリーコントロールにカーソルをおいて、「マークを反転」アクションを実行すると、異常終了することがある問題に対応しました。(761794)
  • XMLGet 関数で取得した文字列の後ろに不正な文字が付く場合がある問題に対応しました。
  • オンラインプログラムのラインモード入力で新規状態から１～３レコードまで入力した後、１レコード目に移動しF４で行作成し、何も入力しないで上カーソル又は１レコード目をクリックすると２レコード目の内容が消えてしまう 問題に対応しました。(1001039)
  • HttpGet/Postで、URLの特殊文字のTriplet処理に誤りがあり、正しくURLが渡されない問題に対応しました。(1001058)
  • HttpGet/Postで URLに全角文字があるとMagicが応答しなくなる問題に対応しました。 (1001062)
  • テーブルコントロール中にチェックボックスがあり、カラムの「可視」プロパティをオフ・オンにすると、最後のレコードの後ろ(レコードの存在しない行)にチェックボックスの四角枠が表示される問題に対応しました。 (1001055)
  • プリンタの設定で33バイト以上のプリンタ名を選択して、GUI印刷できない問題に対応し、最大256バイトまで指定できるようになりました。(1001060)
  • Magicから ALT+TAB キーで別アプリケションをアクティブにして、再度、ALT+TABキーでMagicに戻った時、元のカーソルにフォーカスされない問題に対応しました。(1001071)
  • マルチ選択のリストボックスに数値型ベクトル項目を指定し、更にソーステーブルと数値型のリンク項目を指定した場合、実行時に項目を選択しても次項目に移るとキャンセルされる問題に対応しました。(761580)
  • 修正モードのHTMLフォーム形式のプログラムを実行していると、不定期にクラッシュすることがある問題に対応しました （1001091)。
  • ブラウザクライアント、インターネットのプログラムを実行していると、Magicエンジンにおいてメモリリークが発生する問題に対応しました(1001085)。

開発時機能

  • コンポーネントビルダーのクローズ時に異常終了する問題に対応しました。(743637)
  • 以下のような条件が重なったとき、開発時にリンクテーブルを別のテーブルに変更すると異常終了する問題に対応しました。(1000803)
    1. テーブルリポジトリでコンボボックスなど(ソーステーブルを指定できるもの) を使ったカラムがある。
    2. そのテーブルがリンクコマンドで使われている。
    3. 1. で定義されているコンボボックスなどがフォーム上に配置されている。
  • クラス1以上のフォームにおいて同一クラスが2つ存在する場合、オープンしたフォームテーブル以外のフォーム上のコントロール特性でEnterキーまたは、Escキーを押下すると、オープンしたフォームがアクティブになってしまう 問題に対応 しました。(1000747)
  • チェックユーティリティ(F8)でテーブルリポジトリをチェックした場合、カラムが定義されていないテーブルはエラーと見なさないようになりました。これにより、テーブルリポジトリで一括APG (最上位段でCtrl+G)を実行したとき、空のテーブルによるエラーで実行できなくなるという制限がなくなりました。(990607)
  • ２番目以降のフォルダ上で、テーブル定義を変更した結果、シンタックスチェックでエラーが起こった場合、タスクツリーで別フォルダに移動すると異常終了する 問題に対応しました。(1000729)
  • ２番目以降のフォルダ上で、シンタックスチェックで２個以上エラーになるようにテーブル定義を変更し、シンタックタスチェック後、チェック結果の２個目以降をクリックすると異常終了することがある問題に対応しました。(1000984)
  • 公開Noと公開Yesの権利が定義されているとき、プログラムの式テーブルでRight関数で権利を参照していると、クロスリファレンスを行ったとき、番号がずれた結果が出る 問題に対応しました。(1001074)
  • 下記の条件の場合、コンポーネントリポジトリでテーブルにズームし、更にカラムにズームして、スクロールすると不定期に異常終了することがある問題に対応しました。(1001077)
    1. あるコンポーネント内でモデルが定義されている。
    2. 別のコンポーネントで、１で定義されたモデルを参照しているテーブルが複数ある。
    3. アプリケーションのコンポーネントリポジトリで、2 のコンポーネントを登録する。
  • コールUDPで、引数をスキップすると実行時に異常終了する問題に対応しました。コールUDPの場合には、スキップカラムが表示されないようになりました。(966510)
  • デフォルト記憶形式=Yesの数値型モデルを使ってテーブルカラムを定義すると、シンタックスチェック（F8）で「書式が不適当です」のエラーになることがある問題に対応しました。(1001097)

ブラウザクライアント機能

  • バックグランドで、ブラウザクライアントからGUI印刷のプログラムをコールした時、寸法単位がダイヤログのフォームが正常に印刷できない 問題に対応しました。 (1000405)
  • バックグランドでエンジンを実行している場合、同一コンポーネントの異なるプログラムを起動しようとすると「The loading of the xml data island is still in progress.」のエラーが発生する問題に対応しました。 (1001063)
  • ブラウザクライアントタスクで、EXITイベントでタスクを終了するようにし、タスク後処理で ROLLBACK すると、タスクは終了せず、初期状態に戻って再開する問題に対応しました。（984298)


Ver9.40 SP1b の動作変更

  • MAGIC.INI ファイル中、[dbMAGIC_ENV] セクションの ModalIsFloating のデフォルト値を Y に変更しました。


Ver9.40J SP1a での新機能

ユーザインターフェース

ドラッグ アンド ドロップのサポート

GUI 画面上で、ドラッグ アンド ドロップ がサポートされるようになりました。Magic 同士でも、また Magic と他のアプリケーションとでも、ドラッグ アンド ドロップの機能を使って情報交換を行うことができます。

ツリー コントロール

Magic のテーブルに定義されているデータを、ツリーコントロールの形で表示することができるようになりました。ツリーのノードの追加・削除・変更などは、レコードの追加・削除・変更と同じようなプログラミングにより行うことができます。

複数行選択可能なリストボックス

GUI画面上で、複数行が選択可能なリストボックスを定義できるようになりました。文字列型のほか、本バージョンで新しく導入された配列データ型と組み合わせて便利に使うことができます。

データ出力ウィザード

オンラインタスクで、エンドユーザが現在表示されているタスクのデータビュー中のデータを印刷したり、ファイルに保存したりできるようになりました。

内部メッセージボックスでの言語変換

Magicが内部で利用するメッセージボックス (削除の確認ダイアログなど)は、マルチランゲージサポート(MLS)機能により変換されませんでしたが、9.4SP1a から変換されるようになりました。

外部コンポーネントとのインターフェース

COM オブジェクトのサポート

OLE オブジェクトや ActiveX コントロールに対するサポートが強化され、メソッド、プロパティなどが簡単に利用できるようになり、また、イベントも Magic のエンジンのイベントハンドラによりハンドリングされるようになりました。

COM インターフェース

Magic のアプリケーション自身も COM インターフェースを通して、他のプログラムから呼び出せるようになりました。アプリケーションをCOMとして外部から呼び出せるようにするためのインターフェース定義ユーティリティが COM インターフェースビルダとして提供されています。

Java オブジェクトのサポート

Magic の新しい組み込み関数を通して、Java オブジェクトを Magic プログラムから呼び出すことができるようになりました。Java へのアクセスを容易にするため、Java ジェネレータというユーティリティが提供されています。

SNMP モニターのサポート

Application Server は、SNMP トラップ メッセージを送り、SNMPモニタがApplication Server を監視できるようになりました。Magic のアプリケーションもSNMPモニタにトラップ メッセージを送ることができます。

LDAP 統合

ユーザの認証機構として、LDAPサービスと統合して使うことができるようになりました。

開発時機能

「新規アプリケーション」メニュー

「ファイル」メニューに「新規作成」が追加されました。これにより「新規アプリケーション」ダイアログが表示され、アプリケーションテーブル(MAGIC.INI ファイル)に新規のアプリケーションが追加されます。

シンタックス チェッカの強化

シンタックス チェッカでエラーが発見されたとき、以前のバージョンではそこでシンタックスチェッカが停止して、修正を行わないと次に進むことができませんでした。

本バージョンからは、エラーが発見されたときにもチェッカは停止せず、エラーやワーニングメッセージはいったんすべて「チェック結果」ウィンドウに表示され、そこからダブルクリックすることによりエラー箇所にジャンプする、というやりかたになりました。

また、動作環境の「チェッカー用メッセージテーブルファイル」により、エラーごとに重要度を開発者が変更することができるようになり、また、「開発しの最小チェックレベル」により、チェッカーがメッセージを表示する重要度を指定できるようになりました。これにより、特定のエラーは意図的に無視することなどができるようになりました。

リモートフローモニタ

リモートフローモニタの機能が強化され、｢オプション」メニューやINIファイルの設定により、より自由度の高いモニタができるようになりました。

アプリケーション ウィザード

アプリケーション ウィザードは、アプリケーションのテーブルやプログラムなどを簡単に定義・作成することのできる機能です。アプリケーション ウィザード自身もMagicで作成されたMFFであり、「ユーザ定義開発メニュー」の機能を利用しています。

変数 I/O での「L=ライン」フォーマット

入出力ファイルテーブルにおいて、メディアとして「V=変数」を選んだ場合、以前のバージョンでは「フォーマット」が常に「N=なし」になっていましたが、9.4SP1a から、「L=ライン」も選べるようになりました。これにより、変数を使った入出力データ処理の機能が、ファイルによる処理により近づきました。

式テーブルのプログラム一覧での引数表示

式テーブル中で「プログラム(P)」ボタンを押すとプログラム一覧が表示されますが、そこからさらにズームすると、そのプログラムが受け取るパラメータの一覧が表示されるようになりました。

テーブルリポジトリでの上書登録の「拡張」モード

テーブルリポジトリで「上書登録」を行う際に、以前のバージョンでは、カラムやキーの内部番号(ISN)の状態により、カラムやキーを参照しているプログラムでの対応がずれてしまうことがありました。

9.40J SP1aでは、上書登録時に「拡張指定」ができるようになり、ここで上書する場合のカラムやキーの対応方法を指定できるようになりました。デフォルトでは以前のバージョンと同様に ISN を保持する形で上書を行いますが、拡張指定により、新旧どちらのテーブルのISNを保持するか、あるいは、ISNではなく名前や並び順により照合を行うことができるようになりました。

Blob カラムから Oracle カラムでのマッピング

Blob データ型のカラムを Oracle テーブル上に定義すると、デフォルトではLONGRAW タイプのカラムとして定義されますが、Blob タイプを LONGRAW タイプにマッピングするといくつかの制限事項が発生します。この問題は、Oracle 上で LONGRAW ではなく、BLOB タイプのカラムにマッピングすることにより回避することができます。

「設定 → データベース」テーブルで、Oracle の「データベース情報」に以下のフラグを入れておくと、Magic のBlob 型のカラムは、Oracle の BLOB タイプに常にマッピングされるようになります。

Default_Blob_to_Blob=Y

実行エンジン

コール コマンドの「公開プログラム」オプション

コールコマンドの新しいタイプとして、「公開プログラム」というタイプが追加されました。これはプログラムの公開名を指定して呼出を行うものですが、コール リモートコマンドと異なり、MRBを経由してのパーティショニングは行わず、現在のアプリケーションおよびロードされているコンポーネントの中のから、指定された公開名のプログラムを探し、通常のコールプログラムコマンドと同様に呼出を行います。

動的にコンポーネントをロードすることのできる 9.40J SP1a の新機能と併用して、その中のプログラムを呼び出したい場合などに便利に利用することができます。

公開イベント

新しく「公開イベント」を利用できるようになりました。これはユーザイベントの一種ですが、「イベント実行」コマンドで呼び出し時に公開イベント名を文字列として指定できるものです。

動的にコンポーネントをロードすることのできる9.40J SP1aの新機能と併用して、その中のイベントをトリガしたい場合に便利に利用することができます。

ブロックループ

ブロックコマンドに、「Loop」というオプションが追加になりました。以前のバージョンでは「If」と「Else」条件分岐の制御構造だけでしたが、「Loop」により、条件ループの制御構造も作れるようになりました。

永続的なメモリテーブル

メモリテーブルの内容は、Magicセッションが終了すると消えてしまいましたが、9.40J SP1aではMagic終了後も保存できるように、MTblGet と MtblSet という関数が追加されました。MtblSetはメモリテーブルの内容を一つのBLOB変数に格納し、MTblGet は逆に、BLOB変数の内容をメモリテーブルに復元します。

配列のサポート

新しく配列型のデータ型が追加されました。配列型の変数内の個々の要素にアクセスするには、VecSet, VecGet 関数を用い、要素のデータ型を調べるには VecCellAttr、配列要素のサイズを調べるには VecSize 関数を用います。配列は、Magic以外の外部アプリケーションとデータ交換を行う場合にも利用できます。

バッファ管理機能

Magic以外の外部アプリケーションと複雑なデータ構造のデータを交換する場合には、複数のデータを一つの大きなバイナリデータに変換する(通常、シリアライズあるいはマーシャリングなどと呼ばれる)処理が必要になりますが、9.40J SP1a ではこれを行うためにバッファ管理機能が追加になりました。

バッファ管理機能は次のような関数を使って実装されます：

BufGetAlpha, BufGetBit, BufGetBlob, BufGetDate, BufGetLog, BufGetNum, BufGetTime, BufGetVariant, BufGetVector, BufSetAlpha, BufSetBit, BufSetBlob, BufSetDate, BufSetLog, BufSetNum, BufSetTime, BufSetVariant, BufSetVector

共有データのサポート

共有データは、複数のコンテキスト間で共有する共有データを実現するために導入されました。共有データは、SetParam/GetPram 関数によりアクセスするグローバルデータと同じですが、グローバルデータが一つのコンテキスト内でのみ有効で、他のコンテキストではアクセスできないのに対し、共有データは一つのMagicインスタンス内のすべてのコンテキストで共有できるところが異なります。共有データをアクセスするには、SharedValGet と SharedValSet の関数を使います。

グローバルデータのパックとアンパック

グローバルデータを一つのBLOB変数にまとめたり、逆にBLOB変数の内容からグローバルデータを展開するために、ParamsPack と ParamsUnpack 関数が追加になりました。これは、特定のコンテキストの間でのみグローバルデータを共有する場合とか、あるいはグローバルデータをひとまとめにして保存しておきたい場合などに使うことができます。BLOBデータを介して共有するので、異なるインスタンス内にあるコンテキスト間でも共有することができ、あるいは、BLOB変数をデータベースに保存しておくことにより、後でコンテキストを展開することもできます。

ミリ秒単位の時間ハンドリング

ミリ秒単位の時刻データを取得するために、mTime, mTStr, mTVal などの関数が追加になりました。

テーブルオーナの論理名サポート

テーブル特性の「テーブルオーナ」として論理名を使うことができるようになりました。これにより、アプリケーションを変更することなく、テーブルのオーナの定義を、インストールサイトの設定に合わせて変更することができるようになります。

XML文書のデータエスケープ

マージ出力機能を使ってXML文書を作成する場合、XML中のデータとして不正な文字（「<、>」などの特殊文字）は、常に「&lt;」などの形式に変換する必要がありますが、これに対応するために、次の二つの機能が提供されました

XMLVal と XMLStr 関数。これは通常の文字列とXMLで使う文字列との間の変換を行うものです。

マージ形式フォームの「XML出力」プロパティ。これがYesだと、このフォーム上のタグに置き換えられるデータはすべて XML 形式に変換されます。

サーバエンジンの安全な停止

9.40J SP1a より前のバージョンでは、サーバエンジンに停止リクエストが来た場合、内部の処理やコンテクストの有無に関わらず、その時点でエンジンが停止されました。このため、実行中のコンテクストが正常に終了しないうちに強制終了され、トランザクションはロールバックされてしまっていました。

9.40J SP1a より、サーバエンジンに停止リクエストが送られた場合、コンテクストの有無を確認し、全てのコンテクストが正常に終了するか、あるいは MAGIC.INI に設定されたタイムアウトに達して解放されるまで、実行を続けます。すべてのコンテクストが終了して初めてサーバエンジンは終了するようになりました。

ただし、緊急にサーバを強制的に終了させる必要がある場合に対応するため、停止のリクエストを発行する際に、停止リクエストのタイムアウト時間を指定し、そのタイムアウトに達したら、コンテクストの有無に関わらず、強制的にサーバエンジンを停止させる、という指定も行えるようになっています。このタイムアウト時間は、次のいずれかの方法により指定できます。

  • RqRtTrmEx 関数： 今まであった RqRtTrm 関数に加え、新たに RqRtTrmEx 関数が追加されました。この関数はRqRtTrm 関数と同じですが、タイムアウトが指定できるようになっています。
  • コマンドラインリクエスタ： 「–Timeout=(タイムアウト時間)」というコマンドラインパラメータによりタイムアウトを指定します。
  • SNMP： パラメータを一つ指定できる SNMP モニタでは、「host/port,timeout」 というような形式で、コンマで区切ってタイムアウト値を指定します。パラメータを二つ以上指定できる SNMP モニタでは、2番目のパラメータとしてタイムアウト値を指定します。注意： SNMP機能は、日本語版 9.4SP1aでは未サポートです。

フローモニタに現在の項目値を追加する

デバッグのためにフローモニタに現在の項目値を書き込むには、以前のバージョンでは、フローモニタのメニューから開発者が手作業で選ぶ必要がありましたが、本バージョンからは、新しい関数 FlwMtrVars 関数を用いてプログラムから書込みできるようになりました。

IN 関数

新しく IN 関数が導入されました。この関数はカンマ区切りのデータ列内に指定したデータが存在するかどうかを照合するもので、通常のMagicの式内でも、Magic SQL Where 句内でも使うことができます。

IsComponent 関数

新しく IsComponent 関数が導入されました。これは実行されたプログラムやハンドラがコンポーネントアプリケーションのものかホストアプリケーションのものかをチェックします。

Magic のコンポーネント機構では、同一のMCF/MFFファイルをコンポーネントとしてもホストアプリケーションとしても利用できますが、いずれかにより処理内容を変えたいような場合にこの関数を利用します。

変数 I/Oによる XML 関数のサポート

XML関係の関数 (XMLCnt, XMLExist, XMLFind, and XMLGet) が、「メディア」が「V=変数」、「アクセス」が「R=読込」のI/Oファイルに対しても行えるようになりました。以前のバージョンでは、これらの関数は「メディア」が「XMLダイレクトアクセス」である実ファイルに対してしか行うことができなかったので、BLOBで保持しているXMLデータも、常にいったん一時ファイルに書き込む必要がありましたが、本バージョンからはその必要がなくなりました。

外部結合リンクにより定義された項目でのソート

外部結合(O=外部)のリンクコマンドにより定義された項目を使ってソートを行う場合に、ORDER BY 句が正しく SELECT 文に付加されるようになりました。

UTF8 サポート関数

UTF8とANSI(内部)文字コードの変換のために、新しく UTF8ToAnsi および UTF8FromAnsi 関数が追加されました。

遅延トランザクションのキャッシュログ

フローモニターの「動作オプション」として新たに「トランザクションキャッシュ」が追加されました。これをオンにすることによあり、遅延トランザクションでのデータ操作命令を見ることができます。

COM オブジェクトとの配列データの交換

COMオブジェクトと配列データを交換する場合、ベクトル型のデータを使うことができます。この場合、「セルモデル」特性は、配列の基底データ型と一致させなければいけません。

多次元配列

9.40J SP1a から、ベクトル型の「セルモデル」として、他のベクトル型のモデルを選択できるようになりました。これにより多次元の配列を実現することができます。

埋め込みSQLでの変数バインド

埋め込みSQLタスクを実行する際、以前のバージョンではMagic内部で、「:n」の形式で指定される変数をバインドして展開し、一つのSQL文を文字列としてゲートウェイに渡して実行させていました。9.40J SP1a からは、ゲートウェイにはバインドする変数のプレースホルダを残したままSQL文を渡し、実行時にRDBMSのバインド機能を利用してデータをバインドさせることができるようになりました。これにより実行性能が向上します。

現バージョンでは、Oracleでのみこの機能を利用することができます。

Web サービスでのヘッダ情報

Webサービスのコールで、ヘッダ情報をコールコマンドの引数として渡すことができるようになりました。Webサービスアシスト機能では、ヘッダ情報に対応する引数のエントリを自動的に生成します。

ブラウザクライアント

並行トランザクションのサポート

ブラウザクライアントで、ブランチを持つネスト遅延トランザクション（並行トランザクション）を行えるようになりました。以前のバージョンではネスト遅延トランザクションはブランチを持つことができず、かならず１次元のスタック構造をしている必要がありました。

並行トランザクションにより、ブラウザクライアントの画面設計の自由度が向上します。

サブフォームビューのキャッシュ

9.40J SP1aではサブフォームを使うブラウザ クライアント タスクで、サブフォームのビューデータがクライアント側にキャッシュされるようになりました。これによりサーバとの通信回数が減り、処理スピードが向上します。

ブラウザクライアントのタスクキャッシュ

eDeveloper のブラウザクライアント技術の性能向上のため、ブラウザがローカルにアプリケーションロジックの一部をキャッシュして保持するようになりました。これにより、以前に実行したのと同じタスクを実行する際、キャッシュにそのタスクの定義データが残っていれば、それを再利用するようになり、大幅なデータ通信量の低減を実現できます。

キャッシュの機構ではタスクに加えられた変更をチェックしているので、開発版などでタスクが変更された場合には、新しいタスクの定義をロードするようになります。

キャッシュ機構の制御のため、次の2つの動作環境パラメータが導入されました。

  • ブラウザクライアントキャッシュパス (「アプリケーションサーバ」タブ)

  • ブラウザクライアントキャッシュエイリアス (「アプリケーションサーバ」タブ)

これらのパラメータは、MAGIC.INI に設定されています。デフォルトのインストールでは以下のような設定になっています。

CTLCacheFilesPath = C:\Program Files\Magic\eDeveloperPlus\Browser_Client_Cache
CTLCacheFilesAlias = /Magic94Cache
カスタムインストールを行った場合には、インストール時の設定に合わせて変更されています。指定したディレクトリとWebサーバの仮想ディレクトリとは同一の場所を示している必要があります。

MAGIC.INI をV9.3より移行した場合には、上記のパラメータ設定をコピーしてください。


Ver9.40J SP1a の改善内容

ここでは、以前のバージョンでの不具合・制限事項に対応したものをあげてあります。

Trim 関数

文字型データの後尾にNULL文字(バイナリの 0)が続く場合、Trim 関数は、以前のバージョンではそれを削除していましたが、9.4J SP1a からは削除しなくなりました (4350)。これは、埋め文字としてNULL文字を利用している Magic 以外のプログラムとのデータ交換を行うためのものです。

この変更に伴い、過去のバージョンとの互換性のため、次のフラグが設けられました。

[MAGIC_SPECIALS]
SpecialTrimTrailingNulls=Y

この値が Y の場合には、以前のバージョンと同様、後尾の NULL 文字は Trim 関数により削除されます。

「左詰」書式指定のある数値型項目

｢左詰」書式 (L)指定のある数値型項目をフォームエディッタ上で項目パレットから貼り付けた場合、以前のバージョンでは、エディットコントロールの「水平整列」特性がデフォルトのまま「右寄せ」になっていたので、書式指定と矛盾が生じていましたが、9.4J SP1a からは、このような場合にエディットコントロールの「水平整列」を自動的に「左寄せ」に設定するようになりました(450461)。

テーブルの行のハイライト

オンラインタスクでテーブルコントロールを表示するとき、現在のレコードがハイライトされて表示されますが、ハイライト表示を行うタイミングが、以前のバージョンではレコード前処理が終了してからだったため、レコード前処理で他のオンラインタスクや「エラー」コマンドが実行される場合には、現在のレコードが正しくハイライトされていませんでした。9.4SP1aでは、ハイライト表示のタイミングがレコード前処理の前に行われるようになったため、現在のレコードが常に正しくハイライトされるようになりました (138940)。

ブラウザクライアント

  • V9.3では、一つのフレームセット内に複数のブラウザプログラムを実行させる場合、何れかのプログラムを親として、他のプログラムをコールする必要がありました (1000122)。V9.40JSP1a からは、並行トランザクションがサポートされたため、フレームごとにブラウザクライアントを実行することができるようになりました。
    このような場合、それぞれのタスクごとにトランザクションが開始されるため、フレームごとにタスクの終了を実行する必要があります。１つのブラウザタスクを親タスクとして、他のプログラムを親のフレームの中にコールさせると、親タスクの終了によって、フレームのタスクを終了することができます。
  • ブラウザタスクに重複エラーハンドラ（対応：ロールバックして再起動）を設定した場合、実行時に重複エラーが発生すると、ブラウザ上のデータが正しく表示されないことがあった問題 (1000414) に対応しました。


Ver 9.40J SP1a の動作変更

ここでは、Ver 9.40J SP1a での動作変更の内容を記述します。

関数名の表記の変更

Magicの関数名は、以前はすべて大文字で表記されていましたが、Ver 9.40J より頭文字だけ大文字の表記になりました。（例： ADDTIME → AddTime）。この変更は表記上のことだけで、式テーブルでの入力、リポジトリ入力等に影響はありません。

アプリケーションサーバ版での環境設定の保持方法

Magic.ini ファイルに定義されている環境設定内容は、コンテキストが作成されるたびにコピーが作成されるようになりました。このため、INIPut 関数による変更は、それ以後に作成されるコンテキストにおいて有効になります。現在実行中のコンテキストには、変更が反映されません。これはコンテキスト間での干渉を防ぐためのものです。

アプリケーションサーバ版でのユーザファイルの扱い

以前のバージョンでは、ユーザ関係の機能（関数、権利設定のチェック）が行われるたびに、ユーザファイルをディスクファイルから直接読み込んでいましたが、Ver 9.40J ではユーザファイルの内容はメモリにキャッシュされ、ディスクへのI/O回数を削減するようにしました。

Magicエンジンは60分おきにユーザファイルをディスクから読み込み、キャッシュを更新します。これは複数のインスタンスが起動している場合に、他のインスタンスにより変更されたユーザファイルの内容を反映するためです。

Magicのウィンドウの位置とサイズの指定

Ver 8.2では、INIファイルの設定 （MDIleft, MDItop, MDIright, MDIbottomパラメータ）の設定により、Magicのウィンドウの位置とサイズとを指定することができましたが、V9.0 からは、Windows アプリケーションの慣例にならい、これらの値はレジストリに格納されるようになりました。このために位置とサイズを指定することが難しい、という問題がありました。

Ver 9.40J SP1a からは、Ver 8.2 と同じく INI ファイルで位置とサイズを設定できるようになりました。この設定は、レジストリの設定よりも優先して適用されます。Magicの終了時には、以前の Ver 9 版と同様、その時点での位置とサイズが格納されます。

コンポーネントビルダの変更

以前のバージョンでは、コンポーネントビルダに3種類のインターフェースビルダ (Magic, Web Service, J2EE) がありましたが、Ver 9.40J SP1a ではこれが３つに分割され、さらに Java、COM インターフェースビルダが追加されました。

以前のバージョンでのコンポーネント定義データはそのままでは使えなくなります。移行ユーティリティが提供されています。

ブラウザクライアントでのタスクキャッシングのための文字コード設定

ブラウザクライアントでのタスクキャッシング機能を実現するために、「設定 → 動作環境」で「エンコード」パラメータを設定する必要があります。

9.3SP5以前では、このパラメータは「外部参照ファイル」タブの「ブラウザタスクで使用するエンコード」パラメータ(MAGIC.INI 内では Unicode2Ansi) で指定していましたが、9.40J SP1a からは、「エンコード」パラメータ(MAGIC.INI では Ansi2Unicode) で、「(Java Name)/(Standard Name)」の形式で設定します。

日本語の場合には、以下のように指定します。

[MAGIC_ENV]
Ansi2Unicode = Shift_JIS/Shift_JIS

Standard Name と Java Name については、下記のURLを参照してください。

http://www.devsphere.com/mapping/docs/guide/encodings.html

注意： 上記URLでは、日本語のJava Name がSJISになっていますが、機種依存特殊文字などを正しく扱うためには、上記のように、Java Name にも Shift_JIS を指定してください。

ブラウザクライアントのエディットコントロールの「パスワード」と「複数行編集」特性

ブラウザクライアントのエディットコントロールでは、「パスワード」特性と「複数行編集」特性はフォームに項目が貼り付けられた場合にのみ意味があるものなので、この特性は項目レベルの特性でのみ設定できるようになりました。HTMLコントロールテーブルから特性シートを表示したときには、これらの特性は無効化されて変更できないようになっています。

エラーログファイル名の変更

エラーログファイルは、以前のバージョンでは MGFLWMTR.LOG という名前でしたが、9.40J SP1a から MGERROR.LOG という名前に変更されました。


Ver9.40J SP1a での留意・制限事項

ここでは、V9Plus (Ver 9.40J SP1a) での留意・制限事項について説明します。なお、ここに挙げられているもの以外に、「ブラウザクライアント利用時の注意事項」、「ワークグループ開発機能利用時の注意事項」にも注意事項がありますので、あわせてご参照ください。

V9 Plus (Ver 9.40J SP1a) 新機能での制限事項

V9 Plus (Ver 9.40J SP1a) において、制限事項および既知の問題が確認されています。

ユーザインターフェース

  • ツリーコントロールのツールチップが機能しません (QCR293916)。
  • マルチ選択のリストボックスにドロップしても、データが反映しません。
  • マルチ選択のリストボックスに数値型ベクトル項目を指定し、更にソーステーブルと数値型のリンク項目を指定した場合、実行時に項目を選択しても次項目に移るとキャンセルされます。(QCR761580)
  • [dbMAGIC_ENV]ModalIsFloating = Y が指定されていない場合、開発時のウィザードや各種コンポーネントビルダ、実行時のモーダルウィンドウ上での操作ができなくなることがあります。インストール時には Y が設定されています。N に設定するのはできるだけ避けてください。

関数

  • SetBufCnvParam関数が機能しません。

その他

  • XCGで作成時にデータベースをSQL系データベースに設定すると、作成されたアプリケーションのテーブルリポジトリのカラムが２バイト文字の場合、特性／DBカラム名が正しく設定されません。
  • COMサーバとして登録されたプログラムが数値型のパラメータを持つ場合、そのプログラムに渡すことのできる値は整数の場合は、-2147483648～2147483647まで、小数では15桁までです。

既存機能についての制限事項

以下の制限事項は過去のバージョンで確認されているものです。

ナビゲータ

  • 過去のバージョンにおいて、プロパティシートやナビゲータをドッキング解除し たとき、ウィンドウの位置がずれてしまったり、画面から消えてしまう問題がありました。V9 Plusではこの問題に対応しておりますが、万一、ナビゲータやプロパティシートが画面から消えてしまう現象が再度起こったら、 「プロパティシートやナビゲータが画面から消えてしまう問題」で書かれている手順により対応してください。

プログラム一般

  • 「タスク常駐」パラメータを Yes に設定してあると実行が不安定になることがあります。常に No に設定しておいてください。
  • メインテーブルのテーブル特性/キャッシュ範囲がNoの場合、物理トランザクションモードのオンラインタスクで、レコード登録を連続して実行すると、不定期に修正モードに変更されることがあります。この場合、キャッシュ範囲をNo以外、または遅延トランザクションモードに変更してください。(0976575)

関数
  • イベントハンドラテーブルで、セットされていない環境変数に対してGETPARAM関数を実行した場合、ハンドラテーブルに定義されている、それ以降のコマンドは実行されません。(1000517)
  • FLOW('C') は、タスクの終了条件かタスク後処理でしか認識できません。イベントハンドラで「取消し」を検知するには、イベントハンドラの条件式として「FLOW('C')」ではなく、「キャンセル」イベントや「KBGET(1) = 'キャンセル'ACT」 という式を使ってください。
  • LIKE関数をSQL [Where句/Magic SQL]の式以外で使用する場合、日本語（DBCS)データでは正しく動作しません。(0563530)

HTMLフォーム

  • 以下のような操作を行った場合、予期しない空白行がフォームに挿入されることがあります。(1000186)
    1. コントロールパレットからダブルクリックしてコントロールを配置した場合
    2. あるコントロールに別のコントロールを重ねようとした場合
    3. [複数行編集]が「No」のコントロールの高さを変更した場合
  • テーブルコントロールに[背景]を指定しても、フォームエディタ上では表示されません。(1000188)
  • HTMLフォームエディタのスタティックテーブルの一つのセル内に複数のコントロールを配置する場合、縦にしか並べることができません。(1000190)

プレビュー機能

  • プレビュー表示では、イメージスタイルが「T=タイル」あるいは「C=コピー」の場合、有効になりません。(1000192)
  • 表示倍率を変更するコンボボックスにカーソルがあると、キーボードによって改ページができません。(1000194)
  • 多量の印刷プレビューを行う場合には、メインメモリに十分余裕のある環境で行ってください。

ＭＲＢ

  • MGRB.INIのServerTimeoutを設定すると、非同期の実行時にI_AM_ALIVEメッセージがMRBに送られますが、メッセージが止まっても何もエラーが発生しません。(1000221)
  • 現バージョンでは、MRB SSL機能は、サポートされていません。(1000233)

ロックとトランザクション

  • [設定／データベース]テーブルの[Magic ロック]が「テーブル」「なし」の場合、リンクの再構築時にロックが解除される場合があります。(0154738)
    •

プログラムチェック

  • 外部結合リンクコマンドをセレクトコマンドより前に定義すると、プログラムチェック時に「結合リンクで参照する項目は、リンクコマンドより前に定義しなくてはなりません。」というエラーが表示されます。(0471474)
  • コールする側の変数とコールされる側のパラメータと同じモデルを使用した場合、モデルの型を変更して、プログラムチェックをかけると、「タイプがあっていません」というエラーが発生することがあります。この場合、リポジトリ出入力を行うか、受け側のパラメータの書式を再継承していただくようお願いいたします。(1000625)
  • コールリモートのパラメータにおいて、戻り値とエラーコードに同じ項目を設定した場合にプログラムチェックでエラーになりません、同じ項目を指定しないように注意してください。(1000220)

開発モード

  • 並行開発時、ロックされていたプログラムをチェックインしようとしたとき、「アボート」を選択すると「ABNORMAL TERMINATION」のエラーが出て、Magicが異常終了する問題に対応しました (755159) が、メニューリポジトリ、コンポーネントリポジトリ、テーブルリポジトリなどではまだ修正されていません。この問題は、Windows 98 でだけ起こります。

  • Windows98では、Alt+F10によるコメントの画面にコメントの内容は表示されません。(1000594)


Ver 9.40J SP1b でのベータ機能

以下の機能は Ver 9.40J SP1b で提供されていますが、日本語版ではベータ機能扱いです。 これらの機能はマジックソフトウェアジャパンのサポートセンターでのサポート対象外ですが、ご意見、ご質問、気が付いた点などは、「ベータ 機能評価レポート」に記入して、メールで japan_v9beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。 お送りいただいたメールはすべて良く検討し、製品改善のための参考にさせていただきますが、お問い合わせの内容に対し個別にはお答えできない場合もありますので、予めご了承願います。

関数

  • データ暗号化のための関数 Cipher と Decipher

  • アプリケーションのライセンス管理用の LMCheckOut、LMCkeckIn

SNMP モニターのサポート

Application Server は、SNMP トラップ メッセージを送り、SNMPモニタがApplication Server を監視できるようになりました。Magic のアプリケーションもSNMPモニタにトラップ メッセージを送ることができます。

LDAP 統合

ユーザの認証機構として、LDAPサービスと統合して使うことができるようになります。

メッセージング

メッセージングコンポーネントへの接続機能として、以下のものとの接続ができます。

  • MSMQ
  • JMS
  • MQ Series

まが、メッセージングコンポーネントや構成ファイルの位置を動的に変更できるようにするため、二つの論理名が利用されるようになりました。

論理名 | 意味
MessagingComponentDir | メッセージングコンポーネントの位置を指定します。ディレクトリ名の最後は、「\」（Windowsの場合)、あるいは「/」(Linuxの場合)で終わるように指定してください。
MessagingErrorLogFile | エラーログファイルのファイル名。MessagingComponentDir で指定したディレクトリの下に作成されます。


データベース固有の追加情報

各データベースに固有な追加情報は、以下にあります。

  • Pervasive.SQL
  • Memory
  • Oracle 8/8i/9i
  • MSSQL 7/2000
  • DB2 UDB
  • ODBC (ベータ版)


DB2 UDB V7.2 データベースゲートウェイ Ver9.4 SP1-0 追加情報

Pervasive データベースゲートウェイ
Ver9.4 SP1-0 追加情報

本文書には、Magic eBusiness Platform（以下 Magic と表記）Pervasive データベースゲートウェイとして提供されるプログラム（MGPV2K.DLL）に関する情報が含まれています。文書中に記述されている「本プログラム」とは、MGPV2K.DLL を示します。なお、P.SQL を使用する場合、P.SQL に添付されるドキュメントも参照してください。

本プログラムのバージョンは、Magic の[ヘルプ／MAGIC情報]の[ロードモジュール]欄にて確認できます。

動作環境及び注意事項

以下の環境で動作確認を行っています。

Magic バージョン | Magic Ver 9 Plus (9.40J) SP1b
DBMS | Pervasive.SQL 2000i Server および Workgroup (SP4) Pervasive.SQL V8 Server および Workgroup (SP1)

技術情報

記憶型式と有効キー長

これらのカラムの[データベース定義]欄は「標準」に設定されます。

型 | 記憶型式 | 有効キー長
文字 | String | 1-255
 | LString | 1-255
 | ZString | 1-255
数値 | Signed Integer | 2、4
 | Unsigned Integer | 2、4
 | Float | 4、8
 | Float MS-Basic | 4、8
 | Packed Decimal | 1-10
 | Numeric | 1-18
 | Magic Number | 2-10
 | C-ISAM Decimal | 2-17
論理 | Integer Logical | 1、2
 | String Logical | 1
日付 | Integer Date | 4
 | Integer Date - 1901 | 4
 | String Date | 6、8
 | YYMD Date | 4
 | Magic Date | 4
 | Magic Date - 1901 | 4
時刻 | Integer Time | 4
 | String Time | 6
 | HMSH Time | 4
 | Magic Time | 4

制限値

項目 | 制限値
インデックスの最大数 | 119
インデックスセグメントの最大数 | 119
インデックスあたりの最大セグメント数 | 119
最大インデックス長 | 255
最大固定レコード長 | 4,088
最小固定レコード長 | 5
最大可変レコード長 | 32,765
最大文字型長 | 4,088
最大メモ項目長 | 32,765
メモ項目数 | 最大可変レコード長により制限
BLOB項目数 | 1
双方向インデックスのサポート | 有
デフォルト識別子 | dat

データベースに対するパラメータ

Pervasive ゲートウェイでは、以下のパラメータを設定することができます。

場所 | パラメータ | 意味
[DBMS]テーブル[Pervasive]行の[パラメータ]欄 | /EXTENDED=Y、N | P.SQL の Extended オペレーションを使用するか否かを設定します。 Extended オペレーションを使用する場合、セレクトコマンドの範囲／位置付の条 件によるレコード絞込みが P.SQL エンジンにより実行されます。この機能は、ク ライアント／サーバシステムにおいてパフォーマンスを向上させます。 デフォルトでは「Y」となります。
 | /RTRY=n:m | n は最大リトライ回数、m はリトライ間隔（ミリ秒単位）です。レコードの挿入、更新、削除においてレコードロックまたはファイルロックが発生 した時にオペレーションをリトライする回数を設定します。 デフォルトではリトライを行いません。
[データベース]テーブルの[データベース情報]欄 | /PAGESIZE=n | 新規に作成するファイルのページサイズを設定します。 n には、512バイトの倍数、かつ4096バイトを超えない数を設定してください。 なお、この値は、P.SQL の仕様に合致したものである必要があります。 デフォルトでは、ファイル定義にしたがって最適なページサイズを計算します。

Pervasive SQL の設定

P.SQL の推奨環境設定

環境設定は P.SQL に添付の Pervasive Control Center にて行います。 以下の設定値を確認してください。

カテゴリ | 設定 | 推奨設定値
サーバ／通信バッファサイズ | 通信バッファサイズ | 設定可能な最大値
サーバ／通信バッファサイズ | MKDE 通信バッファサイズ | 設定可能な最大値
サーバ／データインテグリティ | トランザクション一貫性保守 | On

以下の設定については、Btrieve 6.x ではロック解除のタイミングなどの理由により、最小値 (起動時間制限、オペレーションバンドル制限ともに 「1」)に設定することを推奨しておりましたが、P.SQL 7 以降 (P.SQL 7、2000、2000i、8 など)ではこの問題が起こりませんので、デフォルト値のままでご利用ください。

カテゴリ | 設定
エンジン／データインテグリティ | 起動時間制限
 | オペレーションバンドル制限

  1. 「起動時間制限」および「オペレーションバンドル制限」の設定を変更する場合は、システム障害時のデータ損失とパフォーマンスとの間でのトレードオフを考慮する必要があります。
  2. この設定を大きくすると、大半の構成ではパフォーマンスの利点が生まれますが、トランザクションを使っていないアプリケーション実行中に停電などのシステム障害が発生すると、失われるデータが多くなります。逆に設定を小さくすると、システムトランザクションが頻繁に起こるようになりますのでディスクアクセスが多くなり、更新の多いアプリケーションではディスクアクセスが処理のボトルネックになることがあります。
  3. 詳細は、Pervasive.SQL V8 SDK の「Programmer's Guide」の「トランザクショナルデータベースの設計とコンセプト >Btrieve の基礎>パフォーマンスの向上>システムトランザクション」などを参照して下さい。
  4. この資料は、AG-TECH 社のWebサイト
    http://www.agtech.co.jp/download/manual/pervasive/index.html#v8_sdk
    からもダウンロード可能です。

P.SQLのバージョンの一致

  • P.SQL の仕様により、トランザクショナルエンジンのバージョンが異なる場合（例 P.SQL 2000i と Btrieve Ver6.15）、同時に同一ファイルに正常にアクセスできません。 そのため、dbMAGIC Ver8 以前のバージョンとの間で同一ファイルにアクセスする場合、必ずエンジンのバージョンを揃えてください。

サーバベースの P.SQL の使用について

  • 中規模以上のシステムでは、P.SQL の Server Edition の使用を強くお勧めします。 このどちらも Magic にはバンドルされていません。これらの P.SQL（Server Edition）を使用する場合、レコードの選択はサーバで行われ 、範囲で指定されたレコードだけがクライアントに送られるので、検索の性能が向上し、マルチユーザ環境での安定性も向上します。
  • Magic から P.SQL（Server Edition）を使用する場合、[クライアント／アクセス]カテゴリの[リクエスタ]設定を「On」にしてください。
  • P.SQLに対して、下位バージョンのリクエスタからのアクセスはサポートされていませんので、 混在する場合にはリクエスタとサーバのバージョンの組み合わせにご注意ください。

Windows の簡易 LAN について

Windows の Microsoft ネットワーク共有サービス、またはワークステーションを利用して、任意の Windows マシンを Magic のサーバとして使用し、更にこのマシン上で Magic を実行することができます。

この場合、全てのマシンがサーバとして動作する可能性があります。そのため、P.SQL に添付の Gateway Locator を使用、または[クライアント／アクセス]カテゴリの[ローカル]設定および[リクエスタ]設定を設定する等、サーバとなるマシンが明確になるように設定することをお勧めします。

  • サーバとなるマシンでは[サーバ／アクセス]カテゴリの[リモートリクエストの受付]設定を「On」にしてください。

ロックとトランザクション

推奨環境設定

本ゲートウェイ使用時（並行開発時、並行運用時共に）の最適な環境設定を以下に示します。

場所 | 設定欄 |  | 設定
[DBMS]テーブル | パラメータ |  | /EXTENDED=Y
[データベース]テーブル→ [データベース特性]ダイアログ | Magic ロック |  | テーブル（物理トランザクション使用時）
 |  |  | 両方 （遅延トランザクション使用時） ※1
 | ロックパス |  | スペース（何も設定しない）
[動作環境]テーブル | ロックファイル |  | mglock.dat
[タスク特性]ダイアログ | オンラインタスク ブラウザタスク | トランザクション開始 | レコード前処理の前（遅延トランザクション使用時）※2
 |  | ロック方式 | 入力時
 | バッチタスク | トランザクションモード | 物理
 |  | ロック方式 | 即時

※1 遅延トランザクション使用時、ロック制御はロックファイルで行われるため

※2 遅延トランザクション使用時、更新レコードの識別は行われないため

データテーブルアクセス規制

下表は、物理トランザクション使用時に、処理A から先にアクセスされたテーブルに対して、処理B が後からアクセスした場合、どういうアクセス規制が働くかを示しています。下表では次の記号を使用しています。

表中の記号 | 意味
T- | テーブルアクセスに制限があり、テーブルがオープンできません。
T+R- | テーブルアクセスには制限はありませんが、 レコードアクセスに制限があり、レコードロックがかかります。
T+R+ | テーブルアクセスにも、レコードアクセスにも制限がありません。

(1) Magic のロックファイル（mglock.dat）を共用した場合 かつ[Magic ロック]が「両方」または「テーブル」の場合

  • 処理A: [タスクタイプ]=オンライン、[ロック方式]=入力時
  • 処理B: [タスクタイプ]=オンライン、[ロック方式]=入力時 または [タスクタイプ]=バッチ、 [ロック方式]=即時
 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) | T+R+ | T+R+ | T- | T- | T- | T-
 |  | 書出(W) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-
 | 書出(W) | 読込(R) | T- | T+R+ | T- | T- | T- | T-
 |  | 書出(W) | T- | T+R+ | T- | T- | T+R+ | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-

(2) Magic のロックファイル（mglock.dat）を非共用にした場合 または[Magic ロック]が「なし」または「レコード」の場合

  • 処理A: [タスクタイプ]=オンライン、[ロック方式]=入力時
  • 処理B: [タスクタイプ]=オンライン、[ロック方式]=入力時 または [タスクタイプ]=バッチ、 [ロック方式]=即時
 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | 書出(W) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-
 | 書出(W) | 読込(R) | T- | T+R+ | T- | T+R+ | 注１ | T-
 |  | 書出(W) | T- | T+R+ | T- | T+R+ | T+R- | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-

注1: 入力時レコードロックはかかりませんが、レコードを更新しようとした場合、レコードロック解除待ちとなります。即時レコードロックはかかりませんが、レコードを更新しようとした場合、レコードロック解除待ち、もしくはレコードがロックされていますとなります。

これらの表からわかりますように、[データベース特性]ダイアログの[Magic ロック]を「両方」または「テーブル」に設定し、Magic のロックファイル（mglock.dat）を共用してください。

既知の問題と対応方法

レコードの挿入、更新、削除を行うタスクがアボートする問題の対応

  • 暗黙のページロックの説明： P.SQL では並行トランザクションをサポートしています。つまり、複数のアプリケーションが同じファイル（Ver6.x 以降のファイル形式）に同時に複数のトランザクションを実行できます。 並行トランザクション中にファイルが変更されると、変更されたレコードを含むページ（レコードが可変長のときには複数ページ）とそれに関連するインデックスのページが、P.SQL により自動的にロックされます。これを暗黙のページロックと言います。 暗黙のページロックによりロックされたページ上にある明示的にロックされていないレコードを更新、削除する場合、ロックとなります。 暗黙のページロックとレコードロックは互いにブロックしません。
  • Magic におけるマルチユーザ制御： レコードロック発生時の Magic の動作はイベントハンドラの[行ロック]イベントおよび[タスク特性]ダイアログの[エラー発生時]欄の設定により決定されます。 レコードの挿入、更新、削除に失敗した時の Magic の動作はイベントハンドラの[挿入／更新／削除に失敗]イベントおよび[タスク特性]ダイアログの[エラー発生時]欄の設定により決定されます。
  • 問題点： [挿入／更新／削除に失敗]イベント発生時に「アボート」する設定となっているタスクでは、レコードの挿入、更新、削除においてレコードロックまたはファイルロックとなった場合、タスクはアボートします。 この動作は、Ver7 以前の dbMAGIC と 標準添付の Btrieve の組み合わせの動作と異なります。
  • 問題の対応： レコードの挿入、更新、削除においてレコードロックまたはファイルロックが発生した場合、そのオペレーションをリトライします。リトライが失敗した場合、イベントハンドラの設定に基づいた動作を行います。リトライ回数およびリトライ間隔を設定するには、[DBMS]テーブル[Pervasive]行の[パラメータ]欄に以下のように設定してください。
    /RTRY=リトライ回数:リトライ間隔（ミリ秒単位）
    この設定がない場合、リトライは行われません。リトライ回数の上限は 10 回となります。また、リトライ間隔の設定がない場合、リトライ間隔は 500 ミリ秒となります。
  • 問題の対応の副作用： 並行トランザクションがコミット、または、アボートされるか、リトライ回数が上限を越えるまで Magic に制御が戻りません。必要に応じてリトライ回数とリトライ間隔を調節してください。

暗黙のページロックによるデッドロック

P.SQL の仕様（暗黙のページロック）により、次のような手順で操作を行うと、デッドロック状態になる場合があります。

  1. ユーザＡとユーザＢが Magic のロックファイル（mglock.dat）を共用します。
  2. ユーザＡがオンラインタスクにより、あるファイルのあるレコードをロックします。 （このタスクの[タスク特性]ダイアログの[ロック方式]欄は「入力時」に設定）
  3. ユーザＢがバッチタスクにより、上記ファイルのあるレコードを更新した後、ユーザＡがロック中のレコードにきたところで、レコードロック解除待ちになります。（このタスクの[タスク特性]ダイアログの[ロック方式]欄は「即時」、[トランザクションモード]欄は「物理」、[トランザクション開始]欄は「タスク前処理の前」に設定）
  4. ユーザＡがレコードの更新を行います。 ステップ３で、このレコードを含むページに対して暗黙のページロックがかかっているため、ユーザＡの方もレコードロック解除待ちになります。

なお、Esc キーを押せば、レコードロックは解除できます。

Magicの異常終了によるファイルロック

Magic が異常終了した場合、ファイルがロック状態になる場合があります。 これはP.SQL がまだ動作しているため、P.SQL で管理しているロック情報が残るためです。必要に応じて以下の処理を行ってください。

  • P.SQL に添付の Monitor を使用して異常終了したユーザを削除してください。
  • タスクトレイ上の P.SQL のアイコンを右クリックし、P.SQL を停止してください。

P.SQL はスタートアッププログラムに登録されています。このようにしておきますと、Magic の起動がより速くなります。P.SQL を終了した場合、Magic 起動前にP.SQL を起動しておくことをお勧めします。

注意事項

ファイルフォーマットについて

  • 以前のファイルフォーマットで新規ファイルを作成したい場合、[サーバ／ファイル互換性]カテゴリの[作成ファイルのバージョン]設定を使用したいファイルフォーマットに合わせて変更してください。
  • 注意事項： Magic においてファイル定義を変更（例えば、項目の定義順の入替え等）した時にも、ファイルフォーマットは設定されているファイルフォーマットに変更されます。
  • ファイルフォーマットは 6.x 以上にすることをお勧めします。Btrieve 5 で作成されたファイルと Btrieve 6 以降で作成された 5.x フォーマットには差異がある為です。また、パフォーマンスの面からも 6.x 以上にすることをお勧めします。
  • 6.x 以前のフォーマットのファイルは BLOB 型項目を扱えません。 これは P.SQL の仕様制限によるものです。
  • 6.x 以前のフォーマットのファイルに対する並行トランザクションは排他トランザクションとして扱われるため、ファイル全体がロックされます。 これは P.SQL の仕様制限によるものです。
  • 6.x 以前のフォーマットのファイルに対する Extended 命令は発行されません。

ファイル名について

  • 長いファイル名を使用できます。ただし、ファイル名の最大長に関しては P.SQL が動作しているオペレーティングシステムの仕様の制限、Pervasive ゲートウェイが 動作しているオペレーティングシステムの仕様の制限、および P.SQL がサポートしている仕様の制限を受けます。 ファイル名の最大長の詳細については、各々の製品に添付されているマニュアルおよび注意事項を参照してください。
  • ファイル名に空白文字を使用する場合、クライアント側のマシンの[クライアント／アクセス]カテゴリの[スペースを含むファイル／ディレクトリ名]設定を「On」にしてください。 この設定が「Off」の場合、空白文字の１つ手前の文字までをファイル名とします。 これは P.SQL の仕様制限によるものです。

P.SQL 7 以降の新機能の使用について

Magic に添付されている Pervasive ゲートウェイでは P.SQL 7 以降の新機能は考慮されていません。P.SQL 7 以降の新機能に対するテストは行っていませんが、現時点で注意が必要と思われる内容を以下に示します。

  • 7.x 以降のフォーマットを使用する場合、ページあたりレコード数が256に制限されます。設定／データベース／特性／データベース情報欄に「/PAGESIZE=####」を設定し、より適切なページサイズとなるように設定することをお勧めします。ページサイズは、512の倍数、かつ、4096を超えない値を設定してください。 ただし、ファイルが分割された場合、Magic の持つファイル管理関数、入出力機能関数およびファイル変換ユーティリティなどは、分割されたファイルの一つにしか有効にならず、処理が正常に終了しない場合がありますのでご注意ください。
  • P.SQL のオンラインマニュアルに”ファイルに対してキーを定義していない場合でも、トランザクションの一貫性保守機能を有効にすると自動的にキーが追加されます”と書かれています。そのため、ファイルには明示的にユニークキーを設定することをお勧めします。
  • Magic では ACS（オルタネートコレーティングシーケンス）及び ISR（インターナショナルソート規約）はサポートしていません。これらの機能を使用するとファイルの内容が予期した通りに表示されない可能性があります。
  • ステータスコードの変更点については P.SQL に添付されるオンラインマニュアル（Status Codes and Message）を参照してください。P.SQL 7 以降に追加されたステータスコードが返された場合、ファイルマネージャの異常としてダイアログに表示されます。

Pervasive.SQL V8 SP1 のキャッシュエンジンの使用について

リモートのマシンで実行されているPervasive SQL V8を使用して、遅延トランザクションのタスクを実行した場合に、不定期に処理が取消される問題がありましたが、この問題はPervasive.SQL V8 SP1にアップデートすることにより、正常に動作することを確認しております。

ただし、他のクライアントによるデータ更新の直後に同じデータを読み込んだ場合、更新前のデータが取得されることがあります。これにより、運用上支障が出る場合は、Pervasive Control Centerで以下の設定を行ってください。

設定 → クライアント → パフォーマンスチューニング → キャッシュエンジンの使用をOff

この件に関しては、株式会社　エージーテック　パーベイシブ・ソフトウエア ディヴィジョンによる技術情報の FAQページ (http://www.pervasive.co.jp/SUPPORT/FAQ/faq_psqlV8.html)に、「データの更新がされても、他のクライアントですぐにそれが反映されないことがある。」というタイトルで技術情報があります。

DDF

  • DDF作成するテーブルの[名前]欄およびカラムの[名前]欄を空白にしないで下さい。空白にした場合、Pervasive.SQLのODBCドライバにおいて正しく認識されない場合があります。(1000222)
  • Pervasive.SQL（Btrieve）使用時に、カラムテーブルで日付型項目を新規に定義すると、記憶型式がStringDateになります。Pervasive/Btrieveのデータベースで今までのバージョンと互換性を持たせる場合は、IntegerDateに変更する必要があります。(1000098)

その他

  • P.SQL ではトランザクショナルアクセス及びリレーショナルアクセスがサポートされていますが、本ゲートウェイではトランザクショナルアクセスのみを使用していますので、リレーショナルアクセスは使用できません。アクセス方法等の詳細については P.SQL に添付されるオンラインマニュアル（Getting Started with Pervasive.SQL）を参照してください。
  • Magic Ver9 では「Ver4.3 ロック互換機能」はサポートされていません。
  • 可変レコード長と固定レコード長との合計サイズは 32767 バイトまでです。これは Magic の仕様制限によるものです。
  • １個のファイルにつき、BLOB 型項目を１項目のみ定義することができます。また、メモ型項目と BLOB 型項目は１個のファイルに同時に定義できません。
  • P.SQL を使用する場合、トランザクションの範囲外ですべてのファイルをオープンしてください。
  • レコードレベルのトランザクション機能を使用する場合、[トランザクション開始]欄を「レコードロック時」としてください。これは P.SQL ではトランザクション開始前に読込んだレコードに対して更新および削除ができず、トランザクション終了時にレコードロックを解除するためです。
  • [トランザクション開始]欄を「レコード前処理の前」とした場合、トランザクション開始前にレコードが読込まれる場合があります。
  • レコードを確定する場合、処理対象となるレコードの前または後のレコードを一時的に取得することがあります。そのため、それらのレコードに既にロックがかけられている場合、レコードロックが発生することがあります。
  • 親子タスクにおいて同一のテーブルを使用した場合、子タスクでレコード登録に失敗すると、親タスクのレコードに対するロック情報が残る場合があります。
  • 存在するファイルに対してテーブル特性のアクセスキーおよび暗号化キーを変更することはできません。ただし、新規に設定する事は可能ですので、変更する場合、一度これらの設定を解除してから再設定してください。
  • [データベース特性]ダイアログの[照合順序ファイル]は無効となります。
  • ログファイル名には、セッションごとに設定されるユーザ名とプロセスＩＤが付加されます。そのため、ログファイルを長いファイル名をサポートしないディスク上に作成しないでください。


Memory データベースゲートウェイ Ver9.4 SP1-0 追加情報

Memory データベースゲートウェイ
Ver9.4 SP1-0 追加情報

本文書には、Magic eBusiness Platform（以下 Magic と表記）Memory データベースゲートウェイ（以降「Memory ゲートウェイ」と表記）として提供されるプログラム（MGMEMORY.DLL）に関する情報が含まれています。文書中に記述されている「本プログラム」とは、MGMEMORY.DLL を示します。

本プログラムのバージョンは、Magic の[ヘルプ／MAGIC情報]の[ロードモジュール]欄にて確認できます。

動作環境及び注意事項

以下の環境で動作確認を行っています。

Magic バージョン | Magic Ver 9 Plus (9.40J) SP1b
クライアントOS | Magic Ver 9 Plus (9.40J) SP1bの動作する環境

制限事項及び留意事項

使用目的

  • Memory ゲートウェイ は、データをメモリ上に格納しながらオペレーションを実行します。用途としては、常駐テーブルを使用する時に標準的に使用されることがあげられます。その他の用途として、ソートファイルおよびワークファイルとして使用することがあげられます。
  • Memory ゲートウェイにより作成されるファイルは Magic 終了時には削除される一時ファイルですので、保存が必要なアプリケーションに対しては使用しないでください。メモリゲートウェイのデータを保存するには、メモリテーブル用の関数(MTblSet, MTblGetなど)を利用し、BLOB データとしてファイルなどに保存してください。

起動方法

  • 常駐テーブルを使用する場合、動作環境の［常駐テーブル読込］欄を「Yes」に設定します。その上でテーブル特性の「常駐」欄を設定します。 注意：全てのテーブルが常駐できるわけではありません。カラム及びインデックスの制限は元になるデータベースではなく、Memory テーブルの制限に依存するためです。
  • 動作環境の［ソート／一時用データベース］欄に Memory テーブルを使用する場合、ソートファイルや一時ファイルは、一時ファイル名で作成されます。ソートファイルや一時ファイルが置かれる位置は、［一時ファイルパス］欄の設定に依存しません。
  • データテーブルを Memory テーブルファイルとして宣言するには、テーブルリポジトリの［データベース］欄を Memory テーブルベースのデータベースに設定します。
  • テーブルリポジトリの［DB テーブル］欄を設定した場合、Magic が設定するデフォルトの Memory テーブルの DB テーブル名を変更することができます。
  • Memory テーブルファイルにカラムを作成する場合、各カラムに適する記憶型式が使用されます。記憶型式を変更したいときは、テーブルリポジトリの各カラムで［カラム特性］ダイアログを表示し、［記憶型式］欄に希望する記憶型式を設定します。

その他

  • ログファイル名には、セッションごとに設定されるユーザ名とプロセスＩＤが付加されます。そのため、ログファイルを長いファイル名をサポートしないディスク上に作成しないでください。

技術仕様

記憶型式と有効キー長

これらのカラムの「データベース定義」欄は「標準」に設定されます。

型 | 記憶型式 | 有効キー長
文字 | String | 1-255
 | LString | 1-255
 | ZString | 1-255
数値 | Signed Integer | 2、4
 | Unsigned Integer | 2、4
 | Float | 4、8
 | C-ISAM Decimal | 2-17
論理 | Integer Logical | 1、2
 | String Logical | 1
日付 | Integer Date | 4
 | Integer Date - 1901 | 4
 | String Date | 6、8
 | YYMD Date | 4
 | Magic Date | 4
 | Magic Date - 1901 | 4
時刻 | Integer Time | 4
 | String Time | 6
 | HMSH Time | 4
 | Magic Time | 4

制限値

項 目 | 制限値
インデックスの最大数 | 65,535
インデックスセグメントの最大数 | 65,535
インデックスあたりの最大セグメント数 | 65,535
最大インデックス長 | 32,768
最大固定レコード長 | 32,768
最小固定レコード長 | 1
最大可変レコード長 | 32,768
最大文字型長 | 32,768
最大メモ項目長 | 32,768
メモ項目数 | 最大可変レコード長により制限
BLOB項目数 | 1
双方向インデックスのサポート | 有
デフォルト識別子 | mem


Oracle8／Oracle8i データベースゲートウェイ Ver9.4 SP1-1 追加情報

Oracle8/8i/9i データベースゲートウェイ
Ver9.4 SP1-1 追加情報

本文書には､Magic eBusiness Platform（以下 Magic と表記）Oracle8/8i/9i データベースゲートウェイ Ver 9.4 SP1-1 として提供されたプログラム（MGORA8.DLL）に関して、マニュアルの記載事項以外の追加情報が記述されています。なお、文書中に記述されている「本プログラム」とは、MGORA8.DLL を示します。

動作環境

以下の環境で動作確認を行っています。その他の環境については、下記のものと互換性のある場合のみ使用可能です。

Magic バージョン | Magic Ver 9 Plus (9.40J) SP1b
サーバOS | Microsoft Windows NT Server Ver4.0 SP6a Microsoft Windows 2000 Server SP4
クライアントOS | Microsoft Windows 2000 Professional SP4
DBMS | Oracle8 WorkGroupServer for Windows NT 8.0.5.0.0 Oracle8 WorkGroupServer for Windows NT 8.1.6.1.2 Oracle 9i Database （9.0.1） for Windows NT/2000 Enterprise (すべて日本語版です)

Oracle 9ｉについて

  • Oracle8の互換機能にて評価しました。Oracle9iからの新機能は、未確認です。

  • 表領域を作成する場合、テーブル特性/SQLデータベース情報欄に設定可能であるEXTENTパラメータ等が無効になることがあります。 この場合、表領域に対して、EXTENT MANAGEMENT DICTIONARY パラメータを付加して作成することにより可能になります。このパラメータの仕様については、Oracle9iのマニュアルを御覧下さい。

注意事項

データ型

  • Oracle8の以下に挙げる機能は、サポートしていません。

    • LOBデータ型

    • National Character Setのデータ型

MAGIC SQL パラメータの式

  • MAGIC SQL パラメータの式では、以下の関数をサポートしておりません。(1000225)

    • DVAL

    • TVAL

    • ADDTIME

その他

  • Oracleは、Btrieve 等の ISAM 系のファイルマネージャと、排他制御、トランザクション等に関する仕様が異なるため、Btrieve 等の ISAM 系のファイルマネージャを使用する場合と Oracle 等の SQL RDBMSを使用する場合では、プログラムの作成方法が異なる部分があります。

  • 以下のデータベース特性のパラメータは、機能しておりません。

    • ヒント

    • XAトランザクション

  • ストアドプロシジャーのINパラメータにスペースを渡す場合は、1バイトの文字型変数項目をセットして下さい。

  • 以下のタスクでは、レコード削除時にエラーが発生します。

    1. トランザクションモードを「遅延」または、「ネスト遅延」に設定。

    2. ＤＢテーブルの「更新レコードの識別」パラメータを、「位置と更新項目」または「位置と選択項目」に設定。

    3. レコードメインのセレクト項目として、メインテーブルのカラムを100個以上設定。

  • OSがWindows98の場合、画像表示用のイメージドライバーをすべてセットアップした環境で実行すると、Oracleサーバへのアクセス時に「OCI.DLL ダイナミックライブラリ初期化ルーチンのエラーです。」で接続できなくなることがあります。この場合、MagicのカレントフォルダにあるLFxxx62N.DLL(xxx:イメージファイルの拡張子) で、使用しないイメージファイルのDLLを削除してください。(1000521)

ロックとトランザクション

物理トランザクションモードで Oracle のロック機構のみを使用するときの注意事項

物理トランザクションモードのプログラムにおいて、Magicのロックファイル(mglock.dat)を非共用にし Oracleの並行処理制御機能のみを使用する場合、テーブルのアクセス規制はOracleの排他制御のみに依存します。

注意すべき点は、共有モードがR(=読込)の時に、MagicはOracleのSHAREモードのロックをかけますが、このモードでは、MagicのRモードと異なり、他の端末から処理(W=書出)モードでのアクセス（ファイルのオープン）を許可することです。 その際、後の端末がレコードへの書き出しを行い、レコードロックをかけようとする時に、先に共有Rモード、すなわちSHAREモードでロックをかけた端末が終了しない限り、後の端末は待ちの状態が発生します。また下表の特定の場合によっては、先のSHAREモードの端末側でデッドロックが発生することがあります。

以下にアクセス規制を挙げます。 なお、下表は、処理A から先にアクセスされたテーブルに対して、処理Bが後からアクセスした場合のアクセス規制を示しています。 この表中、次の記号を使っています。

記号 | 意味
T- | テーブルアクセスに制限があります（テーブルがオープンできません）。
R- | レコードアクセスに制限があります（レコードロックがかかります）。

(1) タスクレベルのトランザクションの場合

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) |  |  | T- | 注2 | 注2 | T-
 |  | 書出(W) |  |  |  |  |  |
 |  | なし(N) | T- |  | T- | 注2 | 注2 | T-
 | 書出(W) | 読込(R) | 注3 |  | T- | 注2,3,4 | 注2,4 | T-
 |  | 書出(W) | 注3 |  |  | 注3 | 注1 | 注1
 |  | なし(N) | T- |  | T- | T- | 注2 | T-

  • 注1: T+R- ですが、レコードロックが解除されるタイミングは処理ＡのPGを終了する時です。
  • 注2: 処理A側でレコードに書込みを行うと、テーブルロックがかかります。
  • 注3: レコードに書込みを行うと、処理Aがテーブルを閉じるまで黙り状態になることがあります。
  • 注4: 処理Aでレコードの書込みを行う前に処理Bが実行された場合、いずれかでレコードの書込みのタイミングで「ORA-00060:デッドロック」のエラーが発生するか、フリーズすることがあります。

(2) レコードレベルでのトランザクションの場合

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) |  |  | T- |  |  | T-
 |  | 書出(W) |  |  |  |  |  |
 |  | なし(N) | T- |  | T- | T- |  | T-
 | 書出(W) | 読込(R) | 注1 |  | T- | 注1 |  | T-
 |  | 書出(W) | 注1 |  | R- | 注1 |  | R-
 |  | なし(N) | T- |  | T- | T- |  | T-

  • 注1:処理Aで行移動したときに書き込みが行われます。

物理トランザクションモードでのDBテーブル/共有パラメータと Oracleに発行されるSQL文の関係

共有モードW | （ロックコマンドは発行されません）
共有モードR | lock table ... in share mode
共有モードN | lock table ... in exclusive mode
入力時（即時）ロック | select ... for update

物理トランザクションモードで推奨する環境設定

(1) 他のアプリケーションとのデータベースの共有を行う場合

テーブルの[データベース特性] ／[MAGICロック] | 「テーブル｣
プログラムの[ロック方式] | オンラインタスクは｢入力時｣ バッチタスクは｢即時｣
ロックパス | 環境ごとに違うロケーション

(2) Magicでのみデータベースを操作し、従来のアクセス規制をなるだけ引き継ぎたい場合

テーブルの[データベース特性] ／[MAGICロック] | ｢両方｣
プログラムの[ロック方式] | オンラインタスクは｢入力時｣ バッチタスクは｢即時｣
ロックパス | 全てのMagicで同じロケーション

データベース情報での有効なパラメータ一覧

Oracle ゲートウェイが認識するパラメータには以下のようなものがあります。

指定場所 | パラメータと有効な値 | 意味
[設定]／[DBMS] | ALPHA_DATE=Y,N | Oracle の DATE 型のカラムを定義取得する場合、ALPHA_DATE=Y を設定することで、長さ 19 文字で YYYY-MM-DD HH:MM:SS フォーマットの Magic 文字型（ZString） に自動的にコンバートします
テーブル特性 | CLUSTER=cluster-name | 表がクラスタの一部となるように指定します。なお、クラスタ名の後に(列名)を入れないと「新規登録できません」のエラーになります。 例．CLUSTER="TMP_USR(TMP_ID)" INITRANS=n 表に割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。
 | MAXTRANS=n | 表に割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。
 | PCTFREE=n | 表の行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。
 | PCTUSED=n | 表の各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。
 | STORAGE="strage-clause" | 表に対する記憶特性を指定します。
 | TABLESPACE="tablespace-name" | Oracleがテーブルを作る表領域を示します。
インデックス特性
 | INITRANS=n | インデックスに割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。
 | MAXTRANS=n | インデックスに割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。
 | PCTFREE=n | インデックスの行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。
 | PCTUSED=n | インデックスの各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。
 | STORAGE="strage-clause" | インデックスに対する記憶特性を指定します。
 | TABLESPACE="tablespace-name" | Oracleがインデックスを作る表領域を示します。

  • テーブル特性、インデックス特性に指定するパラメータは、CREATE TABLE あるいは CREATE INDEX 文にそのまま反映されます。各パラメータの意味については、Oracle のマニュアルを参照してください。

  • Ver8以前のバージョンのOLDDATEパラメータ、OLDRAWパラメータは無効になりました。

修正履歴

Ver9.4 SP1-1 (Ver 9.40J SP1b に添付)での修正内容

  • (1000771) Oracleゲートウェイにて接続する際、間違ったユーザID、パスワードで行うと異常終了する問題に対応しました。
  • (1001054) 次の条件が重なった場合、「バインドされていない変数があります。」のエラーが発生する問題に対応しました。
    1. Oracleのテーブル特性の『キャッシュ範囲』パラメータが「なし」となっている。
    2. Oracleのテーブル特性のSQLタブの『位置』パラメータがデフォルト(あるいはROWID)になっている。
    3. プログラムの初期モードが照会モードである。
    4. 親タスクでレコードを削除すると、親タスクのレコード後処理でサブタスクがコールされて親と同一のテーブルの別のレコードを削除されるようになっている。
    5. レコードを削除した後、次のレコードに条件と一致するレコードが存在しなくてカーソルが位置付けらない。
  • (294196) Oracleデータベースのデータベース特性にDefault_Blob_to_Blob = Yを指定して、テーブルに8つ以上BLOB項目を定義した場合、そのテーブルを1度にリンクコマンドでリンクすると実行時に異常終了することがある問題に対応しました。


MS-SQL Server 7.0 データベースゲートウェイ Ver9.4 SP1-0 追加情報

MS-SQL Server 7.0/2000 データベースゲートウェイ Ver9.4 SP1-0 追加情報

本文書には、Magic eBusiness Platform（以下 Magic と表記）MS-SQL Server 7.0/2000 データベースゲートウェイ Ver9.4 SP1-0 として提供されるプログラム (MGMS7.DLL) に関する情報が含まれています。なお、文書中に記述されている「本プログラム」とは、MGMS7.DLL を示します。

動作環境及び注意事項

以下の環境で動作確認を行っています。その他の環境については、下記のものと互換性のある場合のみ使用可能です。

Magic バージョン | Magic Ver 9 Plus (9.40J) SP1b
サーバOS | Microsoft Windows 2000 Server SP4
クライアントOS | Microsoft Windows 2000 Professional SP4
DBMS | Microsoft SQL Server 7.0 SP3 Microsoft Data Engine (MSDE 1.0) V1.0 SP3 Microsoft SQL Server 2000 SP3 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) SP3

  • Microsoft SQL Server 7.0/MSDE はSP3を使用していただくことを推奨いたします。
  • Microsoft SQL Server 6.xに対するサポートは行っておりません。
  • Microsoft SQL Server 2000に対して、MS-SQL Server 7.0の互換機能について動作確認しています。

留意事項

一時テーブルのサポート

tempdbに作成される一時テーブル（ローカル／グローバル）をサポートしています。 一時テーブルを作成するには、[テーブルリポジトリ]／[DBテーブル]で、

#table_name （ローカル一時テーブルの場合)

##table_name（グローバル一時テーブルの場合)

と設定してください。 例えば、「社員テーブル」を、ローカル一時テーブルとして作成するには、 「#社員テーブル」、グローバル一時テーブルとして作成するには、 「##社員テーブル」とします。

ローカル一時テーブルを作成する場合には、インデックステーブルの「プライマリキー」をチェックしないでください。通常の重複不可のキーは大丈夫です。 これは、プライマリキーはDBMS上で制約条件として定義され、制約条件の名前はグローバルに一意でなければならないためで、プライマリキーをオンにすると、マルチユーザ環境で、「データベースにオブジェクト名'(キー名)'が既に存在します」というエラーが出ます。

データ型

  • 現在、以下に挙げるデータタイプはサポートされておりません。

    • Unicode文字型
    • Cursor型
    • uniqueidentifier型

  • 論理型の項目をキーセグメントに含めると、シンタックスチェック時に「項目番号が無効です」というエラーが出ます。これは、論理型項目はデフォルトでBIT型となりますが、MSSQLの仕様上、BIT データをインデックスに入れることができないためです。論理型データ項目をキーに入れる場合には、格納形式を「String Logical」にするか、あるいは「Integer Logical」で「サイズ」を2にしてください。

  • money 型では最大19桁(書式15.4)の数値まで扱えますが、Magicで 19桁の数値を扱う場合には、MAGIC.INIの[MAGIC_SPECIALS]に以下のパラメータを設定する必要があります。 この設定がない場合には、Magicは最大18桁までしか使えません。

    [MAGIC_SPECIALS]
XXLNumericSize = Y

MAGIC SQL パラメータの式

MAGIC SQL パラメータの式では、以下の関数をサポートしています。

  • TIME
  • HOUR
  • MINUTE
  • SECOND
  • DSTR
  • DVAL
  • TSTR
  • TVAL
  • ADDDATE

その他

  • 数字で始まるテーブル名を扱う場合は、ＤＢテーブルの名前を[ ]で囲んで指定してください。
  • 外部結合リンクは、左外部結合を使用しています。
  • プライマリキーでデータの重複エラーが発生した場合、MSSQLから返されるエラーコードは、ユニークインデックスで重複エラーが発生した場合と異なります。この場合、エラーハンドラのイベントは「制約違反」で捕捉されます。
  • 親タスクのトランザクションモードをタスクトランザクションに設定し、子タスクでオープンするテーブルが読込モードに設定した場合、実行時に子タスクのテーブルが新規作成が行われると、それ以降は処理が続行できなくなることがあります。(1000430)
  • MAGICKEY=Yパラメータの機能は有効です。

Ver8から移行する場合の注意点

  • MS-SQL Server7.0によるレコードロックは、デフォルトの設定で機能いたします。 ただし、MS-SQL Server7.0によるレコードロックを行わない場合には、[データベース特性]／[データベース情報]で以下の設定を行います。

    SQL_PHYSICAL_LOCKING=N

  • SQLコマンドダイアログで、固定文字列を指定する場合、"(ダブルクォーテーション)で囲まれた書式はサポートされません。'(シングルクォーテーション)に変更する必要があります。


DB2 UDB V7.2 データベースゲートウェイ Ver9.4 SP1-0 追加情報

DB2 UDB V7.2 データベースゲートウェイ
Ver9.4 SP1-0 追加情報

本文書には､Magic eBusiness Platform（以下 Magic と表記）DB2 UDB V7.2 データベースゲートウェイ Ver9.4 SP1-0 として提供されたプログラム（MGDB2.DLL）に関して、マニュアルの記載事項以外の追加情報が記述されています。なお、文書中に記述されている「本プログラム」とは、MGDB2.DLL を示します。

動作環境及び注意事項

以下の環境で動作確認を行っています。その他の環境については、下記のものと互換性のある場合のみ使用可能です。

Magic バージョン | Magic Ver 9 Plus (9.40J) SP1b
サーバOS | Microsoft Windows 2000 Server SP4
クライアントOS | Microsoft Windows 2000 Professional SP4
DBMS | DB2 UDB Enterprise Edition V7.2 (7.2.4)

制限事項及び留意事項

一般的な注意事項

  • Magicのテーブルリポジトリでは、テーブルや索引を定義する際に、表スペースを指定することはできません。表スペースを指定する必要がある場合、DB2 UDBのCLP等で定義した後、Magicで定義取得して運用してください。
  • SQLコマンドでストアドプロシージャの呼び出しを行なう場合、パラメータの受け渡しを必要とするプロシージャを呼び出すことはできません。パラメータのないプロシージャを呼び出す場合、"CALL プロシージャ名"のようにプロシージャ名の後に"()"を付けずに記述してください。
  • DB2 UDBのLONGVARCHARタイプのカラムは、Magicの範囲、位置付けで使用することはできません。また、DB SQL Where句やMagic SQL Where句でも、IS NULLとLIKE以外の述部に使用することはできません。これは、DB2 UDBの仕様です。
  • 外部キーとして参照されているテーブルのDBインデックス名を変更し、上書き確認で「はい」を選択すると、参照元の外部キー定義が削除されます。
  • プライマリキーとして設定されたインデックスの、セグメント内のカラムは、降順と指定しても実際に作成される索引では昇順になります。
  • IDENTITY列を使用するには、DB2 UDB側であらかじめIDENTITY列を定義したテーブルを作成し、それをMagicで定義取得した後、IDENTITY列が定義されたカラムの、[カラム特性]のSQLの[タイプ]をINTEGER IDENTITYに修正します。
  • DB2コネクトによるホスト上のDB2に対するアクセスは、サポートしておりません。

物理トランザクションモードでDB2 UDBのロック機構のみを使用するときの注意事項

  • DB2 UDBのデータベースのLOCKTIMEOUTパラメータは、デフォルトでは-1となっており、これは、ロックが解除されるまでずっと待つという設定です。この状態では、Magicのロック待ち状態のオンラインタスクに、ロック解除待ちのメッセージが表示されず、黙り状態になります。また、イベントハンドラによるロック状態の取得もできません。これを回避するには、データベースのLOCKTIMEOUTを、-1以外の適切な値に設定する必要があります。
  • レコード前処理でトランザクションを設定しているタスクで、テーブルロックの状態のとき、他のユーザーがロック待ち状態にあるとします。その場合、ロック側でレコードを移動すると、一時的にロックが解除されるため、ロック待ち状態のユーザーがロックを取得できてしまいます。これを回避するには、ロック側のトランザクションをタスクレベルにするか、データベースのLOCKTIMEOUTを0に設定してください。

  • Magicにおけるテーブルアクセス規制は以下のようになります。下表は、処理A から先にアクセスされたテーブルに対して、処理Bが後からアクセスした場合のアクセス規制を示しています。 表中、「T-」はテーブルアクセスに制限があり、テーブルがオープンできないことを意味します。

    処理A

    処理B 　 | アクセスモード | 読込(R) | 書出(W)
      アクセスモード | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
    読込(R) | 読込(R) 　 　 | T- 注1 　 　 | T-注1
    書出(W) 　 　 | 注2 　 　 | 注2
    なし(N) | T- | 注3 | T- 注1 | T- 注1 | 注3 | T-注1
    書出(W) | 読込(R) 　 　 | T- 注1 　 　 | T-注1
    書出(W) 　 　 | 注2 　 　 | 注2
    なし(N) | T-注1 | 注3 | T-注1 | T-注1 | 注3 | T-注1

    • 注1： 処理Ａが、レコードレベルのトランザクションで、データベースのLOCKTIMEOUTが0以外の場合、処理Aでレコードを移動すると処理Bがロックを取得します。
    • 注2： 分離レベルが1以上に設定されている場合、T-となります。
    • 注3： 分離レベルが2以上に設定されており、かつトランザクションがタスクレベルの場合、T-となります。

データベース情報での有効なパラメータ一覧

[設定]／[データベース]／[データベース特性]

  • SQL_ISOLATION_LEVEL=UR | CS | RS | RR
    分離レベルを設定します。現在使用されている分離レベルを変更するには、DBDISCNT関数を使って、セッションを切断する必要があります。分離レベルの設定は、まず、ここでの設定値が検索され、次に[設定]／[DBMS]／[DBMS特性]での値が検索されます。有効な値が見つからない場合、DB2 UDBのデフォルトであるCSが設定されます。


ODBC データベースゲートウェイ Ver9.4 SP1-0 追加情報

本文書には、Magic eBusiness Platform（以下 Magic と表記）ODBC(Open DataBase Connectivity) データベースゲートウェイ Ver9.4 SP1-0 として提供されるプログラム(mgodbc.dll)に関する情報が含まれています。なお、文書中に記述されている「本プログラム」とは、mgodbc.dll を示します。

本プログラムは ベータ版です。

本プログラムは、ODBCを介しての試験的・一時的なDBMSへのアクセスの目的のために公開されるモジュールです。以下の点にご注意の上、ご利用ください。

  • 本プログラムは、品質管理プロセスを十分に経たものではないため、本番の環境では使用せず、必ず、実際の業務の運営上影響の出ることのない試験環境 などでご利用ください。

  • 本プログラムは、マジックソフトウェアジャパンのサポートセンターでのサポート対象外ですが、 本プログラムについてのご意見、ご質問、気が付いた点などは、「ベータ評価レポート」に記入して、メールで japan_v9beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。 お送りいただいたメールはすべて良く検討し、製品改善のための参考にさせていただきますが、お問い合わせの内容に対し個別にはお答えできない場合もありますので、予めご了承願います。

動作環境及び注意事項

以下の環境で動作確認を行っています。その他の環境については、下記のものと互換性のある場合のみ使用可能です。

Magic バージョン | Magic Ver 9 Plus (9.40J) SP1b
ODBCバージョン | ODBC 2.00 API に準拠しています。

設定方法

  1. コントロールパネル、または管理ツールの中のODBCデータソースを起動し、ユーザーDSNまたはシステムDSNで、利用するデータソースを作成します。データソースの構成の詳細な設定、およびODBCドライバのインストール等については、ODBC付属のドライバドキュメントやヘルプファイルを参照してください。
  2. Magic の起動前に、MAGIC.INIの中の [MAGIC_GATEWAYS] セクションに、MGDB19=(パス名)MGODBC.DLLを正しく記述し、かつMGODBC.DLLが存在することを確認します。 MGODBC.DLLがディスク上（インストールフォルダの下の\Gateways）に存在しない場合、追加オプションでODBC データベースゲートウェイをインストールしてください。
  3. Magic を起動し、[設定／データベース]を開きます。そこで、1.で登録したデータベースのエントリを作成します。DBMS欄にはODBCを選択し、DB名にはデータソース名を入力します。
  4. ユーザ名やパスワードを要求するデータベースの場合は、データベース特性ダイヤログの中のユーザ名／ユーザパスワードで設定します。このダイヤログは、[編集／特性]を選択するか、"Ctrl+P"のショートカットキーで開きます。
  5. アプリケーションを開き、[開発／テーブルリポジトリ]のデータベース欄に3.で作成したデータベースを選択し、テーブルの定義を行います。
  6. 既存のテーブルに対して、[オプション／定義取得]を起動することにより、テーブルリポジトリに定義内容を取り込むことが可能です。
  7. テーブル、カラム、インデックスの定義方法等に関する詳細は、リファレンス、またはSQLガイドをご覧ください。

仕様および制限事項

  • 接続するODBCドライバの制限事項等により、Magic、およびODBC データベースゲートウェイが提供する機能をすべて利用できないことがあります。
  • Oracle、MS-SQLのデータベースを利用する場合、それぞれ固有の データベースゲートウェイを使用することを推奨します。
  • MS-ACCESSのデータベースを利用する場合、すべてのカラム特性のNULL値許可をYesに設定する必要があります。
  • ODBCドライバは論理ロックを使用するため、DBMSに対してロックを発行しません。複数台のマシンで実行する場合は、Magic のロックを使用してください。
  • データベース特性、テーブル特性、インデックス特性にあるヒントパラメータは有効 にはなりません。


参考技術情報

ここでは、V9Plus についての参考技術情報を紹介します。

  • ブラウザクライアント利用時の注意事項
  • ワークグループ開発機能利用時の注意事項
  • 文字型書式「位置指示記号」の拡張
  • サポートするイメージフォーマット
  • リポジトリ等の制限値
  • MAGIC.INI のdbMAGIC フラグ
  • MAGIC.INI の Special フラグ
  • プロパティシートやナビゲータが画面から消えてしまう問題
  • 9.30SP5でのSTAT/TDEPTH関数の変更について


ブラウザクライアント利用時の注意事項

ブラウザクライアント機能を使ったアプリケーション開発について

ブラウザクライアントタスクは、オンラインタスクと多くの点で似ていますが、Web をベースとした機能であるため、オンラインプログラムの開発とは違った開発方法論、留意事項があります。快適な速度で動作する安定したシステムを構築する上では、この違いを良く把握しておくことが非常に重要です。

特に注意すべきこととして、以下のようなことがあります。

  1. 画面デザインをできるだけ簡略化する。必要ならば、一度に全部を表示するのではなく、いくつかの画面に分割する。オンラインプログラムでは、一画面に百以上ものコントロールを配置するということは普通ですが、ブラウザクライアントタスクで同様のことを行うと、Web ブラウザ (Internet Explorer) の性質上、動作が非常に遅くなることがあります。また、データ通信量も多くなり、細い回線では通信速度が無視できない程になることもあります。特に、タブ、コンボボックス、リストボックス等はWebブラウザへの負荷が大きく、また、ラインモードで表示する場合には行数に比例してコントロール数が多くなり ますので、これらの使用は必要最小限にしてください。

  2. クライアント側のマシンの要求レベルに注意する。ブラウザクライアントは、クライアント側の Web ブラウザ上で Java アプレットを動作させながら処理を行うように設計されている関係で、クライアント側のマシンにもそれなりの仕様(CPU, メインメモリ)が必要となります。運用する環境でのクライアントマシンのスペックが低い場合には、実行速度が問題になる可能性があります。

  3. データ更新処理の場合のロックとトランザクションの扱いに注意が必要。オンラインタスクとは異なり、ブラウザクライアントでは、トランザクションは「遅延トランザクション」のみとなり、レコードロックも扱いに違いあります。データ更新が多い用途にブラウザクライアントを使う場合には、遅延トランザクションの考え方を良く理解してデータアクセス方法を設計する必要があります。

  4. 処理が長時間にわたるバッチタスクを同期で実行しない。ブラウザクライアントタスクから、バッチプログラムを呼び出すことは可能ですが、バッチプログラムが処理を終了するまで、画面の制御はクライアント側に返って来ません。ブラウザクライアントでは、クライアントとMagicサーバの間は、Web (HTTP)により接続されているので、あまり長時間にわたって待ちが生じると、タイムアウト等が発生し、トラブルのもとになります。長時間かかるバッチを実行する場合には、非同期のリクエストとして別途処理させ、Web ブラウザ側での待ち時間はできるだけ少なくするように設計するようにしてください。

ブラウザクライアント関係のモジュール

本バージョンで提供しているJavaApplet、JavaScript、ActiveXコントロールは以下のとおりです。
モジュール | ファイル名
JavaApplet | MGBC940_01BJ.CAB、 MGBC940_01BJS.CAB、 MGBCL940_01BJPN.CAB、 MGBCL940_01BENG.CAB
JavaScript | MGBC940_01BJ.JS
ActiveXコントロール | MGBCCOM9.CAB

Windows 95 でのブラウザクライアント実行

  • Windows95はActiveXコントロールとしてUnicodeをサポートしていないため、ブラウザクライアントで使用することができません。

Windows 98 でのブラウザクライアント実行

  • Windows98上でのブラウザクライアントにおいて、マイクロソフト社提供のATL.DLLがVer2.Xの場合、「in the parsing process」エラーになることがあります。その場合は、ATL.DLL（3.00.8449）を更新してください。
    DLLは、http://activex.microsoft.com/controls/vc/atl.cab　から ダウンロードし、解凍後、ATL.EXEを実行してください。
  • Magicエンジン、HTTPServer、ブラウザを、Windows98 同一PC上にて構成している環境の場合、ブラウザクライアントの中で別のブラウザクライアントプログラムを呼び出した時に、「The Applet not found」というメッセージが出てコントロールが出来なくなる場合があります。(1000065)

Java 仮想マシン(JVM)について

ブラウザクライアント機能は、クライアントマシンの Internet Explorer 上で Java アプレット(上記のモジュール)を実行することにより実装されています。そのため、Java 仮想マシンのバージョンにより、動作に影響がある場合があります。以下の点にご留意ください。

  • 各PCのブラウザで使用する Microsoft Java VM （Microsoft Virtual Machine for Internet Explorer）のビルド番号は、統一することをお奨めいたします。(1000026)

    MSJでは、以下のビルド番号で動作確認をしています。
    ビルド： 3805 および 3809

    Java 仮想マシンのビルド番号は、コマンドプロンプトよりjview.exeを実行して確認できます。

    C:\> jview
Microsoft (R) Command-line Loader for Java Version 5.00.3809
Copyright (C) Microsoft Corp 1996-2000. All rights reserved.
  • Java 仮想マシン (JVM) の変更による、以下のような問題が確認されています。
    • 現象： ブラウザクライアントによるMagicアプリケーションを実行しようとすると、プログラムが動作しない。このとき、「アプレット ClientManager notinited」、「アプレット MsgText notinited」などのエラーが Web ブラウザのステータス行に出ることがある。
    • 原因： Internet Explorer がアプレットの実行のために使う Java 仮想マシン(JVM)が、Java2 SDK のインストールなどにより変更されためです。デフォルトではMicrosoft社のJVMが使われ、ブラウザクライアント機能はマイクロソフト社のJVMにより動作可能ですが、Java2 SDK をインストールすると、Sun社の JVM がアプレットの実行のために使われるようになるため、ブラウザクライアントが動作しなくなります。
    • 確認方法： Internet Explorer の「ツール」→「インターネットオプション」メニューを選び、「詳細設定」タブを選びます。問題の起こる環境では、「Java （Sun)」というグループが追加されており、その下に 「<applet> に Java 2 xxx を使用 (再起動が必要)」という項目があり、それにチェックがついています。このような状態になっていたら、Java VM の変更により発生した問題であることが確認できます。
    • 対応方法： この問題は、Sun の JVM ではなく、Microsoft の JVM を使うようにすることにより、回避できます。具体的には、以下のようにします。
      1. 上記 「 <applet> に Java 2 xxx を使用 ・・・」のチェックボックスをはずす。
      2. Internet Explorer をいったん全部閉じ、再度起動する。(マシンのリブートは不要です)。

Microsoft社 Java VM のインストール

Windows XP SP1a、Windows 2003 サーバおよびそれ以降の Windows バージョンで、ブラウザクライアントが動作しない場合には、Windows にJava VMがインストールされていない可能性があります。

利用するクライアントPCの Windows に、MS JVM がインストールされていない場合には、製品CD-ROM の \MSJVM\3805 ディレクトリにある msjavx86.exe を実行することにより MS JVM をインストールしてください。

参考： Microsoft Windows XP SP1a から、Windows製品には MS JVM が添付されなくなりました。Windows 2003 サーバにも MS JVM はインストールされません。これは、2003年1月21日のボルチモアの米連邦地裁による 、MS JVM の配布を禁止する仮差し止め命令に基づくものです。

Magicのブラウザクライアント機能は、Microsoft 社のVisual J++ を使って構築されているので、アプリケーションと共に、およびアプリケーションの一部として、MS JVM を再配布する権利がライセンスによって弊社に認められています。

この件についての、Microsoft社の見解、事実関係の詳細、および裁判に関する情報は、以下のリンクをご参照ください。

  • Microsoft社の「Java Developments at Microsoft」ページ
    http://www.microsoft.com/japan/java/
  • マイクロソフトサポート技術情報- 813926、Windows XP SP1 とWindows XP SP1a の相違点
    http://support.microsoft.com/default.aspx?scid=kb;ja;813926

その他の留意事項

  • ブラウザクライアントを使用する場合は、設定／動作環境／外部参照ファイルの「エンコード」 を「Shift_JIS/Shift_JIS」に設定しておく必要があります。インストール時のデフォルトで設定されていますので、変更しないでください。
  • ブラウザクライアントプログラムではNULL()関数が正しく動作しません。
  • 複数行編集項目の先頭行または末尾行にカーソルが存在する状態において、上下矢印キーを押下しても、 カーソルはその項目にとどまります。(0332692)
  • サブフォームを使用する場合、サブタスクから上位タスクの項目を参照する場合、パラメータを設定する必要があります。また、このパラメータはサブタスクで値を変更して、親のタスクに返すことはできません。(0963891)
  • フォアグラウンドとバックグラウンドにおいて使用する場合では、実行時の内部的なコンテキストの管理方法が異なります。そのため、複数のコンテキストを切り替える必要がある場合のテスト時においては、バックグラウンド で使用してください。(1000024)
  • 数値型、論理型のコンボボックス、リストボックス、ラジオボタンのラベルが選択できないことがあります。この場合、文字型のコントロールに変更するか、数値型ではデータコントロールの設定を行うことで対応してください。(1000092)
  • ブラウザ形式プログラムのフォームを作成するとき、項目名には2バイトコードは使用しないことを推奨いたします。(1000010)
  • MidV関数、RepV関数は2分された全角文字によりデータを正しく認識できなくなることがありますので使用しないでください。(1000117)
  • ブラウザの「戻る」、「進む」、「更新（リロード）」ボタンを押下すると、動作が不安定になる場合があります。アプリケーション側での対応（リスタート、戻り、ビュー再表示ボタン等）を考慮してください。(1000198)
  • ブラウザタスクは、ユーザメニューおよびコールプログラムから実行することはできません。(1000201)
  • Rollback 関数の第一引数は無効となり、確認ダイアログは表示されません。(1000203)
  • [タスク特性／ロック方式]を「入力時」と設定してもロックはかかりません。(1000206)
  • サブフォームを使用する場合、[タスク特性／トランザクションモード]の「ネスト遅延」は使用できません。(1000210)
  • ハイパーテキストコントロールのハイパーリンクパラメータは、コントロール特性から設定できます。(1000217)
  • サブタスクの初期モードを「親と同じ」にしても、親タスクのモードと動的に連動しません。その場合は、親のモードを変更したあとに、サブタスク側でビュー再表示やパラメータ変更に伴う再計算を行うことで、対応が可能です。(1000284)
  • ブラウザのイメージファイル名の指定には、論理名は使用できません。(1000352)
  • リストボックス、コンボボックスでラベルを変数で定義し、選択肢を子タスクのバッチで登録している場合、実行時にコンボボックスの幅が広がることがあります。この場合、Trim関数、RTrim関数を付加した式をラベルに設定してください。(1000431)
  • ブラウザ画面のクローズボタン（×ボタン）をクリックして終了すると、実行時に問題が発生することがありますので、終了アクションを実行するボタンを画面の中にレイアウトしてください。(1000481)
  • レコードをライン表示したサブフォームでデータ修正を行い、別レコードに移動しないで親タスクのコントロールに移動した場合、子タスクのレコード後処理を通過しません。(1000514)
  • 低速回線上で使用する場合、URLを指定しないハイパーリンク（“javascript：void(0)”）を使用していると、このハイパーリンクをクリックしてブラウザクライアントのページをロードする間、クライアントは長時間待たされることがあります。そのような場合、ハイパーテキストコントロールのハイパーリンク特性で“javascript：void(0)”を定義して回避する方法があります。(1000537)
  • フレームは<base target="XXX">タグをサポートしていません。(1000558)
  • IE5.5では、以下の問題が確認されています。
    • テーブルコントロールおよびスタイルシートの「絶対位置」が指定されたコントロールがあると、実行時にIEが異常終了することがあります。(1000154)
    • IEの制御によって、Alt+F11 のイベントハンドラが実行された後、常にブラウザ最大化のイベントが発生します。

良くある問題とその対応方法

現 象 | 原 因 | 対 応
Windows XP SP1a 及び Widows 2003 Server (およびそれ以降のWindows バージョン)上で、画面は表示されるがまったく動作しない。 | Java VMがインストールされていない。 | 「Microsoft社 Java VM のインストール」を参照してJava VMをインストールしてください。
「The loading of the xml data island is still in progress.」「Client cannot continue processing after aborting the content loading!」というダイアログが出て、「Internal Error」になる。 | 「設定」→「動作環境」メニュー→「外部参照」タブ→「エンコード」の設定が間違っている。 | 「Shift_JIS/Shift_JIS」を設定する。あるいは、MAGIC.INIファイルを編集し、「Ansi2Unicode = Shift_JIS/Shift_JIS」と指定する。
 | 「設定」→「動作環境」メニュー→「アプリケーションサーバ」タブ→「ブラウザクライアントキャッシュエイリアス」の設定が間違っている。 | Webサーバの仮想ディレクトリの設定を確認し、ここで指定されている仮想ディレクトリが実際に存在する実ディレクトリにマッピングされており、かつ、Magicから書込み可能な権限があることを確認する。
「エラー：オブジェクトを指定してください」というエラーが出る。 | 「設定」→「動作環境」メニュー→「アプリケーションサーバ」タブ→「ブラウザクライアントのサブバージョン」の設定が間違っている。 | ベータ版ではBETA01などの指定がされているが、製品版では不要なので、空白にする。
 | 「設定」→「動作環境」メニュー→「アプリケーションサーバ」タブ→「Webドキュメントパス」および「Webドキュメントパスの別名」の設定が間違っている。 | Webサーバの仮想ディレクトリの設定を確認し、「Webドキュメントパスの別名」が「Webドキュメントパス」にマップされており、かつそのディレクトリに上記ブラウザクライアント関係のモジュールが存在することを確認する。
動作が不安定になる。 | オンラインタスクのみで有効な関数やアクションを使用していた。（例） KBPUT()、画面再表示アクション等 | 使用しないようにプログラムを修正する。
一部のプログラムが極端に遅くなる。 | ① ビュー再表示アクションをタスク前処理など不要と思われる箇所で多用している。 | ①不要なアクションを減らす。
 | ② 非常に大きな変数を多用している。 | ②変数サイズの見直しを行う。又は、データコントロールが使用できる場合は、使用するようにする。
リストボックス、コンボボックスでラベルを変数で定義し、選択肢を子タスクのバッチで登録している場合、実行時にコントロールの幅が広がる。 (1000431) |  | 空白削除の関数（RTrim、Trim）を使用する。
コンボボックスまたはリストボックスのラベルを項目で設定するとき、ラベルの先頭が「,」の場合、ラベルが正しく表示されないことがある。 |  | ラベルの先頭に「,」が付加されないようにプログラムを修正する。


ワークグループ開発機能利用時の注意事項

ワークグループ開発時の注意点

チーム開発機能は、複数の開発者が同時にプログラムリポジトリに対して読込み／書込み処理を行う為、障害発生の可能性があります。又、リポジトリ内のデータ構造はMagic独自のリンク構成になっているため、何らかの障害が発生した場合にはアプリケーションファイル（以下MCF）全体に影響する障害が発生する可能性があります。

運用上の工夫により、障害発生の可能性を低くすることが可能ですので、以下の点にご留意ください。

  • Pervasive.SQLエンジンは、サーバ版を使用してください。
  • Pervasive.SQLエンジンには、以下の設定を行って下さい。Pervasive Control Center で設定します。(1000018)

    設定

             値

    トランザクション一貫性保守

    On (パフォーマンスよりも、データの一貫性が優先されます)

    以下の設定については、Btrieve 6.x ではロック解除のタイミングなどの理由により、最小値 (起動時間制限、オペレーションバンドル制限ともに 「1」)に設定することを推奨しておりましたが、P.SQL 2000i、8 などでは、この設定によりロック期間は変わりませんので、デフォルト値のままご利用ください。「Pervasive データベースゲートウェイ追加情報 」の「P.SQL の環境設定について」の項もご参考にしてください 。
    カテゴリ | 設定
    エンジン／データインテグリティ | 起動時間制限
    オペレーションバンドル制限
  • チーム開発を行なう場合、同一フォルダ内に、複数のアプリケーション（CTL)を混在させないことを推奨いたします。もし混在させる場合は、必ず各CTL毎に[アプリケーションテーブル／識別子]がユニークになるように指定してください。(1000016)
  • 開発版で開発中のCTLファイルを実行版で実行する場合、CTLの同期が取られません。実行版で運用しているCTLを直接開発版で変更しないようにしてください。(1000017)
  • モデル、またはテーブルの修正中は、他のリポジトリの修正作業を行わないようにしてください。(0505263)
  • プログラムリポジトリの順序が入れ替わるような作業は極力しないでください。例えば、フォルダ切替、プログラム移動／コピー、プログラム一覧の途中への新規作成などでは、プログラムリポジトリの順序や番号が変わることがありますので、チーム開発中には行わず、新規作成予定のプログラムは事前に空プログラムを生成しておいてください。
  • 複数の開発者が同一のプログラムを修正しないように、事前に担当プログラムの分担を決めておいてください。
  • 長時間、プログラムリポジトリ内に留まらず、こまめにチェックインしMCFを保存するようにします。
  • こまめにアプリケーションのバックアップを行ってください。
  • 破損したMCFを使用して継続してリポジトリ入出力を行わないでください。MCFが破損した場合、リポジトリ出力／入力でも復元できない場合があります。
  • 開発時にMagicが異常終了した場合は、再起動し修正中のプログラムが破損していないか確認し、可能であれば、１世代前のアプリケーションに復元してください。
  • 余裕のあるメモリー環境でお使いください。メインメモリとして、256M以上を推奨いたします。

Ver 9 Plus では、バージョン管理マネージャはサポートされていません。(1000183)

別々に開発したプログラムをマージする場合

チーム開発機能を使用しないで、MCFを分散して開発を行った場合、表面上は同じに見えても、テーブル定義での内部のカラム番号(ISN)がそれぞれのMCFで異なってしまうことがあります。この場合、それらを統合するためにリポジトリ出入力と上書登録を行うと、内部のカラム番号が異なってしまうことにより、そのテーブルを使用しているプログラム中のセレクトコマンドに設定された項目番号がずれてしまうことがあります。

この問題を防ぐためには、以下のいずれかの方法によってください。

  • テーブルリポジトリをコンポーネント化する。これにより、複数の開発者によるテーブル定義変更を抑止することができ（MFFファイル使用）、事前にプログラムを統合する必要がなくなります。(1000421)
  • テーブル定義を変更する場合、先にプログラムを統合し、常に一人の開発者のみがテーブル定義変更を行うようにする。
  • 「検索と置換」機能を使う。アプリケーションＡに対して、テーブルを変更したアプリケーションＢのプログラムを統合すると仮定すると、以下のように統合を行います。
    1. ＡとＢのテーブル定義が同じになるように、それぞれ修正する。
    2. Ｂのテーブルとプログラムをそれぞれリポジトリ出力する。
    3. Ａを開き、Bのテーブルリポジトリ出力ファイルをリポジトリ入力する。(この時点ではまだプログラムリポジトリは入力しない)。それに対応するＡのテーブルにカーソルを置いて、「オプション」メニュー → 「検索と置換」を選択する。
    4. 「置換」欄でリポジトリ入力したＢのテーブルを選択し、実行する。
    5. 「置換」が終わった後、Ａのテーブルを削除し、その位置にＢのテーブルを移動する。テーブル定義の削除の際、物理テーブルの削除を行わない。
    6. Ｂのプログラムをリポジトリ入力する。

テーブルのカラムに設定されたデータコントロールをプログラムのフォームに配置して範囲設定している場合は、範囲の項目がずれたり、０になる場合があります。

プログラムリポジトリの修正について

プログラムリポジトリのチェックアウトが必要な操作

プログラムリポジトリはアプリケーションのプログラム一覧情報を管理しています。プログラム一覧情報の変更を行う場合、プログラムリポジトリを変更する必要があります。 プログラム一覧情報を更新するには、予め プログラムリポジトリをチェックアウトする必要があります。具体的には、次の操作を行うとき、プログラムリポジトリをチェックアウトしておく必要があります。

  • プログラムの新規作成

  • プログラムの削除

  • プログラムの順番の変更

  • 別のフォルダへのプログラムの移動

  • プログラムフォルダ名の変更

  • プログラムの上書き

  • プログラムのコピー

  • プログラムリポジトリへの権利設定

  • プログラムのリポジトリ入力

  • テーブルリポジトリからのAPG( 作成モード) の実行

プログラムリポジトリでのチェックアウト、チェックイン

［バージョン管理］メニューに表示される［チェックアウトPrg.Rep］または［チェックインPrg.Rep］をクリックするか、ツールバーのアイコンをクリックすることでプログラムリポジトリのチェックアウトやチェックインができます。プログラムリポジトリではアンチェックはできません。

プログラムのリポジトリ入力

プログラムを含んだアプリケーションをリポジトリ入力する時、プログラムリポジトリをチェックアウトするように要求されます。Magic Ver9.2 のリポジトリ出力ファイルを入力している時、プログラムリポジトリをチェックアウトするように要求されます。プログラムリポジトリがチェックアウトされなかったり、他の開発者によってチェックアウト済みの場合、Magic はリポジトリ入力処理が実行されなかったことを示す警告メッセージを表示します。

旧バージョンのMagic のアプリケーションをリポジトリ入力する場合、入力処理時にプログラムが含まれているかどうかを判断できません。このため、無条件にプログラムリポジトリのチェックアウト要求を出します。プログラムリポジトリがチェックアウトされなかったり、他の開発者によってチェックアウト済みの場合、Magic はリポジトリ入力処理が実行されなかったことを示す警告メッセージを表示します。この場合、リポジトリ入力処理は失敗し、アプリケーションは入力前の状態にロールバックされます。


文字型書式「位置指示記号」の拡張

dbMAGIC Ver7，Ver8では、AS/400（iSeries）のDBCS対応のために、Magicの文字型書式の「位置指示記号」をスイッチを指定することにより機能拡張するようにしていました。Magic Ver9では、拡張された「位置指示記号」をデフォルトで使用できるようになっています。

DDSフィールド | 位置指示記号 | 制限事項
DBCS 専用フィールド（J） | J | 全角のみ入力可
DBCS 混用フィールド（O） | X | 全角、半角の混在入力可
DBCS 択一フィールド（E） | T | 全て全角か、全て半角で入力可
DBCS 図形フィールド（G） | G | 全角のみ入力可。シフトコード無し
SBCS （A） | S | 半角のみ入力可

注意：

  • これらの書式は、AS/400（DB2/400)以外でも使用することが可能です。この場合、G は J と同一の動作になります。
  • Magic位置指示記号の（J、T、G）は、必ず２文字単位で記述します。
  • 追加された位置指示記号と、Magic位置指示記号文字（J, X, T, G, S)は混在して記述することができません。例．JJJJXXXXなど
  • 追加された位置指示記号（J、T、G、S）は、U、L、# を使用できません。
  • この機能を無効化したい場合は、MAGIC.INI にて以下の設定を行ってください。
    [dbMAGIC_ENV]
AS400Set = N


サポートするイメージフォーマット

サポートしているイメージファイルのフォーマットは以下のとおりです。対応するグラフィックサポートモジュールをインストールする必要があります。

ファイルタイプ | サブタイプ | 表示
BMP | OS/2 | 〇
 | Windows RGB Encoded | 〇
 | Windows RLE Encoded | 〇
JPG | Standard Encoding | 〇
 | Progressive Encoding | ×
JIF | Standard Encoding | 〇
 | Progressive Encoding | ×
PCX | ZSoft Paintbrush Version0 | ▽
 | ZSoft Paintbrush Version2 | 〇
 | ZSoft Paintbrush Version5 | 〇
MAC | MacPaint No Header | 〇
 | MacPaint With Header | 〇
PCT | Macintosh PICT | 〇
TGA | 8 Bit Compressed | 〇
 | 8 Bit UnCompressed | 〇
 | 16 Bit Compressed | 〇
 | 16 Bit UnCompressed | 〇
 | 24 Bit Compressed | 〇
 | 24 Bit Uncompressed | 〇
IMG | GEM Paint | ×
TIFF | Fax CITT3 | 〇
 | Huffman Compressed | 〇
 | LZW Compressed | ×
 | Packbits Compressed | 〇
 | Uncompressed | 〇
WMF | Window Metafile | 〇
MSP | Microsoft Paint | ▽
PSD | Adobe Photoshop 2.5 | ×
RAS | Sun Raster Images | 〇
EPS | Color - No Preview | ▽
 | Color - With Preview | 〇
 | Monochrome - No Preview | ▽
 | Monochrome - With Preview | 〇

注意： ▽ は、実際のイメージと異なって表示される場合があることを意味しています。

GIFイメージのサポートについて

GIFデータを表示させるには、UNISYS社からのライセンスが必要で、デフォルトの状態では、指定はできますが、表示はされません。

Magic上でも GIF ファイルを表示させるには、UNISYS社からライセンスを購入し、MAGIC.INIの［MAGIC_ENV］セクションに、以下の記述を追加します。(1000235)

MAGIC_ENV]
UnlockGIFLZWCode = [License Number]
ここで、[License Number] はライセンスコードです。

なお、ライセンスに関する詳しい情報は、米国 Unisys Corporation の下記URL(日本語)にあります。
http://www.unisys.com/about__unisys/lzw/lzw__license__japanese.htm


リポジトリ等の最大制限値

V9 Plusでの各種リポジトリ等の最大制限値は以下のようになっています。

リポジトリ | 構成要素 | 制限値
設定 | アプリケーション | 99
モデルリポジトリ |  | リソースに依存
テーブルリポジトリ | テーブル数 | リソースに依存
 | カラム数 | 999
 | インデックス数 | DBMSに依存
 | インデックスセグメント | DBMSに依存
プログラムリポジトリ | プログラム数 | 40,000
 | 処理レベルテーブル | 10,000
 | 処理テーブル | 10,000
 | 変数項目テーブル | 10,000
 | 式テーブル | 9,999
 | フォームテーブル | 9,999
 | DBテーブル | 10,000
 | 入出力ファイルテーブル | 9,999
 | 1フォームあたりの最大コントロール数 | 1,000
 | フォームのコントロールを一度に選択できる個数 | 1,000
 | クリップボードにコピーできる最大コントロール数 | 500
 | コール処理コマンドのパラメータ数 | 255
ヘルプリポジトリ | ヘルプ数 | 40,000
権利リポジトリ | 権利数 | 5,000
メニューリポジトリ | メニュー数 | 5,000
 | レベル数 | 10
 | 1レベルの最大エントリ数 | 5,000
コンポーネントリポジトリ | コンポーネント数 | 128


MAGIC.INIのdbMAGIC_ENVフラグ

MAGIC/Windows Technical Note

MAGIC.INIのdbMAGICフラグ

目的:

このドキュメントは、いくつかのMagicバージョンにおいて有効なdbMAGICフラグの一覧です。

dbMAGICフラグは、MAGIC.INIの[dbMAGIC_ENV]セクションに記述します。

内容:

フラグの一覧:
  1. As400Set
  2. TripletNonAsciiUrl
  3. ShowComponentError
  4. ModalIsFloating
  5. LocateProgramList
  6. PrecedeProgramList
  7. PrintLine
  8. NoDocumentName
  9. GetDefPrintMode
  10. ZoomFix

As400Set = Y/N
(デフォルト = Y)

AS/400（iSeries）のDBCS対応のために、Magicの文字型書式の「位置指示記号」をスイッチを指定することにより機能拡張します。

DDSフィールド | 位置指示記号 | 制限事項
DBCS 専用フィールド（J） | J | 全角のみ入力可
DBCS 混用フィールド（O） | X | 全角、半角の混在入力可
DBCS 択一フィールド（E） | T | 全て全角か、全て半角で入力可
DBCS 図形フィールド（G） | G | 全角のみ入力可。シフトコード無し
SBCS （A） | S | 半角のみ入力可

注意：

  • これらの書式は、AS/400（DB2/400)以外でも使用することが可能です。この場合、G は J と同一の動作になります。
  • Magic位置指示記号の（J、T、G）は、必ず２文字単位で記述します。
  • 追加された位置指示記号と、Magic位置指示記号文字（J, X, T, G, S)は混在して記述することができません。例．JJJJXXXXなど
  • 追加された位置指示記号（J、T、G、S）は、U、L、# を使用できません。
  • このフラグがNの場合、この機能は無効化されます。

... リストへ戻る

TripletNonAsciiUrl = Y/N
(デフォルト = N)

URLを表す文字列にASCIIコード以外の文字が設定されている場合、そのコードは%##（##は16進コード）という形式に変換します。このコードはシフトJISとなります。この機能を有効にするには、このフラグをYに設定してください。

... リストへ戻る

ShowComponentError = Y/N
(デフォルト = N)

コンポーネントのエラーが発生した場合、Component.logに出力していたメッセージを、フローモニター及びメッセージボックスで表示します。この機能を有効にするには、このフラグをYに設定してください。

... リストへ戻る

ModalIsFloating = Y/N
 (デフォルト = N)

Ver9.30 SP3a以前のバージョンでは、フォーム特性で「モーダルウィンドウ」=「Ｙes」にすると、「フローティングウィンドウ」が「No」に設定してあっても、「Yes」の時と同じ動作になってしまいました。 Ver 9.30 SP5では、「モーダルウィンドウ」=「Yes」であっても、「フローティング」にはならず、モーダル=Nと同じ位置に表示されるようにしました。 Ver9.30SP3aと互換を保たせるには、このフラグをYに設定してください。

... リストへ戻る

LocateProgramList = Y/N
(デフォルト = N)

プログラム一覧（コールプログラムでズームしたとき等）の操作性を向上させるため、 コンボボックス（全て、同一CTL、コンポーネント）を切り替えたときに、カーソルを常に 先頭行にするのではなく、直前までカーソルのあったプログラムに位置付します。この機能を有効にするには、このフラグをYに設定してください。

... リストへ戻る

PrecedeProgramList = Y/N
(デフォルト = N)

プログラム一覧の操作性を向上させるため、「コンポーネント名.辞書名」の順ではなく、「辞書名@コンポーネント名」の順で表示します。この機能を有効にするには、このフラグをYに設定してください。

... リストへ戻る

PrintLine = Y/N/L/S
(デフォルト = S)

「ページ当たりのレコード件数」が指定されている場合、最後のページで、指定されたレコード件数に達しないうちにレコードが終了した場合の印刷動作を変えることができます。

フラグの値 | 動作
Y | ラインコントロール、スタティックコントロールともに、レコードが終了した時点で印刷を終了させます。空白行は印刷されません。
N | ラインコントロール、スタティックコントロールとも、指定行数まで印刷します。すなわち、レコードが終了した後には空白行が印刷され、スタティックコントロールも空白行に印刷されます。
L | ラインコントロールのみ印刷が終了します。最終レコードの後の空白行には、中のスタティックコントロールのみ印刷され、ラインコントロールは印刷されません。
S | スタチックコントロールのみ終了させる。すなわち、空白行にはラインコントロールのみ印刷されます。

... リストへ戻る

NoDocumentName = Y/N
(デフォルト = N)

GUI形式印刷、印刷ドキュメント名は、入出力ファイルの「名前」欄の名称の前に'Magic - "を付加します。 'Magic - 'を付加したくない場合には、このフラグをYに設定してください。

... リストへ戻る

GetDefPrintMode = Y/N
(デフォルト = N)

バックグランドモードでGUI形式印刷した場合、Windowsのプリンタドライバのプロパティで設定している値（デフォルト値）が反映されない場合があります。 もし、この場合には、このフラグをYに設定することでデフォル値を保持することができます。

... リストへ戻る

ZoomFix = Y/N
(デフォルト = Y)

このフラグは、V7,1での動作変更に対する互換性維持のためのフラグで、タスクが

  1. 「タスク終了」に終了フラグ(変数)を設定
  2. 「チェック時期」に「I=即時」を選択。
  3. レコードメイン：「項目更新」コマンド（終了フラグに'TRUE'LOG設定）を、フローモード「A:後置き」又は「B:前置き」にて設定。(「中止」は、YでもNでも同じ結果。)

というつくりになっているとき、ZoomFix = N ならば、レコード後処理を通過し、レコードに対する修正も書き込まれるが、ZoomFix = Y ならば、レコード後処理も通過せず、レコード書き込みも行われず、すぐに終了するようになります。

なお、V9Plusではタスクを終了するためには、上記のようなロジックにはせず、イベントハンドラを使う、あるいは「クローズ」アクションを利用することを推奨します。このフラグはV7、V8などのバージョンとの互換性をとるためだけに利用してください。

... リストへ戻る


MAGIC/Windows Technical Note

MAGIC.INIのSpecialフラグ

目的:

このドキュメントは、いくつかのMagicバージョンにおいて有効なSpecialフラグの一覧です。これらのフラグは、MAGIC.INI ファイルの[MAGIC_SPECIALS] セクションに記述します。

内容:

>フラグの一覧:
  1. SpecialCenteredFloatingWindow
  2. XXLNumericSize
  3. ExceptionMessageBoxDisplay
  4. ImportCreateErrHandler
  5. SecureBrowserClient
  6. CompressBrowserXML
  7. SpecialPaintFormInCreate
  8. MergeTrim
  9. SpecialConvAddSlash
  10. ClosePrintedTablesInSubtasks
  11. MergeFlushSize
  12. SpecialTrimTrailingNulls

SpecialCenteredFloatingWindow = Y/N
(デフォルト = N)

「フローティングウィンドウ」が「Yes」のGUI形式フォームの表示位置を制御します。

このフラグがNの場合、フローティングウィンドウはフォーム特性において設定された位置に表示されます。
このフラグがYの場合、フローティングウィンドウは中央に表示されます。

注意: 変更の反映: 即時

... リストへ戻る

XXLNumericSize = Y/N
(デフォルト = N)

このフラグがYの場合、19桁～38桁までの数値項目を扱うことが可能になります。ただし、この設定を行うとパフォーマンスに影響がでる場合があります。

... リストへ戻る

ExceptionMessageBoxDisplay = Y/N
(デフォルト = N:バックグランドでアプリケーシュンサーバとして起動した場合
                Y:それ以外)

OSの例外処理が発生してMagicが終了する過程において、エラーのメッセージボックスを表示しないようになります。

このフラグこのフラグがYの場合、エラーメッセージボックスを表示します。
このフラグこのフラグがNの場合、エラーのメッセージボックスボックスを表示しないようになります。この場合、エラー情報はmgexcep.logに出力されます。

... リストへ戻る

ImportCreateErrHandler = Y/N/TRNS
(デフォルト = N)

ISAM （Pervasive SQL）データベースを使用した、dbMAGIC Ver8のアプリケーションの移行を容易に出来るように拡張されました。MAGIC.INIに以下のオプションを指定してインポートすることによりエラーハンドラを自動的に追加させることができます。

このフラグがYの場合、レコードアクセス失敗時の設定を優先します。
このフラグがTRNSの場合、トランザクションの設定を優先します。
このフラグがNの場合、deforuto。

(1) レコードアクセス失敗時の設定優先時(Y設定時)の動作

トランザクションエラー時 (V8) | エラー発生時 (V9)
アボート | アボート
リトライ | アボート
スキップ | アボート

レコードロック時 (V8) | エラーハンドラ (V9)
リトライ | 無し
アボート | [エラーハンドラ:レコードロック 対応: アボート]
スキップ | [エラーハンドラ:レコードロック 対応: 無視する]

アクセス失敗時(V8) | エラーハンドラ(V9)
スキップ [エラーハンドラ: 挿入/更新/削除に失敗　対応: 無視する]
[エラーハンドラ: 重複インデックス　対応: 無視する]
リトライ | 無し
アボート | 無し

(2) トランザクションの設定を優先時 (TRNS設定時)の動作

トランザクションエラー時 (V8) | エラー発生時 (V9)
アボート | アボート
リトライ | 復旧
スキップ | アボート

レコードロック時(V8) | エラーハンドラ(V9)
リトライ | 無し
アボート | [エラーハンドラ: レコードロック 対応: アボート]
スキップ | [エラーハンドラ: レコードロック 対応: 無視する]

トランザクションエラー時 (V8) | エラーハンドラ (V9)
アボート | 無し
リトライ | 無し
スキップ [エラーハンドラ: 挿入/更新/削除に失敗　対応: 無視する]
[エラーハンドラ: 重複インデックス　対応: 無視する]

(3)デフォルト(N設定時)の動作

トランザクションエラー時 (V8) | エラー発生時 (V9)
アボート | アボート
リトライ | 復旧
スキップ | 復旧

レコードロック時 (V8) | エラーハンドラ (V9)
リトライ | 無し
アボート | [エラーハンドラ:レコードロック 対応: アボート]
スキップ | [エラーハンドラ:レコードロック 対応: 無視する]

アクセス失敗時(V8) | エラーハンドラ(V9)
スキップ | 無し
リトライ | 無し
アボート | 無し

トランザクションエラー時 (V8) | エラーハンドラ (V9)
アボート | 無し
リトライ | 無し
スキップ | 無し

... リストへ戻る

SecureBrowserClient = Y/N
(デフォルト = N)

ブラウザクライアントのXMLのソース部分は、暗号化されるようになります。これにより、タスクロジックと最初のデータは、ブラウザのソース表示等で閲覧することができなくなります。

このフラグがYの場合、ブラウザクライアントのXMLのソース部分は、暗号化されるようになります。

... リストへ戻る

CompressBrowserXML = Y/N/A
(デフォルト = A)

ブラウザクライアントによって処理されるHTMLの中のXMLフォーマット部分を圧縮することが可能になります。ただし、クライアント（ブラウザ）でデータを展開する必要があるため、タスクをブラウザでロードした後に実行される初期化処理が長くなることがあります。

このフラグがYの場合、ブラウザクライアントによって処理されるHTMLの中のXMLフォーマット部分を常に圧縮することが可能になります。
このフラグがNの場合、ブラウザクライアントによって処理されるHTMLの中のXMLフォーマット部分を常に圧縮しません。
このフラグがAの場合、接続が遅いか否かを判断して自動的に決定します。接続が遅くかつ、HTMLのサイズが3KB以上の場合、XMLは圧縮されます。 接続の速度は各エンドユーザの最初のリクエストで評価されます。

注意： この機能を有効にするには、XML暗号化の設定を行う必要があります

... リストへ戻る

SpecialPaintFormInCreate = Y/N
(デフォルト = N)

「登録」モードのタスクが終了した後もウィンドウを開いたまま残しておきたい場合には、各項目の値をデフォルト値あるいは「代入」式で指定した式により評価することができます。

このフラグがYの場合、全ての変数項目の代入式とデフォルト値は計算され、また、コントロールの値として式が指定されている場合には、その式が計算されます。
このフラグがNの場合、全ての変数項目の代入式とデフォルト値は評価しません。

... リストへ戻る

MergeTrim = Y/N
(デフォルト = Y)

マージ出力時に文字列の右側の空白が削除できるようにします。

この機能を使用する場合、このフラグがYに設定してください。

... リストへ戻る

SpecialConvAddSlash = Y/N
(デフォルト = Y)

インターネットプログラムにおけるHTML ドキュメント、HTMLフォーム等のフォーム特性、およびこれらのフォーム上のコントロール特性において「Web サーバ上のリソース（イメージファイル、サウンドファイル等）を定義した場合、ファイル名の先頭に「/」がなくても、実行時に「/」が付加されます。
これにより、コントロールタイプがイメージの文字項目および式において指定されたリソースを参照する場合にも「/」が付加されるようになりましたので、プログラム上においてパス名の変更が必要となる場合があります。この機能を無効にするには、このフラグをNに設定してください。

... リストへ戻る

ClosePrintedTablesInSubtasks = Y/N
(デフォルト = Y)

親タスクの入出力テーブルを使用して、子タスクでテーブル出力する際、子タスク終了時のテーブルの出力処理が変更できます。

このフラグがYの場合、子タスクが終了する度にテーブル出力をクローズします。このため、子タスクが起動される度にヘッダが付加されます。
このフラグがNの場合、親タスクの処理が終了するまでテーブル出力をクローズしません。このため、全て同じテーブルとして出力されます。

... リストへ戻る

MergeFlushSize = number
(デフォルト = 51200)

このフラグは、マージ出力時のメモリバッファサイズ（バイト）を定義できます。

利用可能なメモリリソースの範囲内で最も最適なパフォーマンスになるように定義してください。

... リストへ戻る

SpecialTrimTrailingNulls = Y/N
 (デフォルト = N)

文字型データの後尾にNULL文字がある場合、Trim関数は、Ver9.30JSP5以前はNULL文字も削除していましたが、Ver9.40JSP1以降は削除しません。
Trim関数でNULL文字を削除する場合には、このフラグをYに設定してください。

... リストへ戻る


プロパティシートやナビゲータが画面から消えてしまう問題

Magic V9.3 製品を使っているとき、ナビゲータやプロパティシートをドッキングさせず、フロート状態にしていると、突然このウィンドウが画面から消えてしまう現象があり、9.3SP5a でこの問題に対応しましたが、万一、本バージョンで同じ問題が起こった場合には、大変お手数ですが、以下の手順でレジストリのキー を削除することで元の戻せます。

STEP 1. Magic をいったん終了します。

STEP 2. レジストリエディッタ （REGEDIT.EXEなど)で、 \\HKEY_LOCAL_MACHINE\SOFTWARE\Magic Software Japan\Magic\9.40 を開きます。

STEP 3. その下にある、Navigator および PropSheet 以下を削除します。

STEP 4. Magicを再起動します。


9.30SP5でのSTAT/TDEPTH関数の変更について

ハンドラの「有効」欄の条件式として STAT 関数など、タスク世代に関連する関数を設定した場合、9.30J SP3a以前では、結果に一貫性が欠ける問題がありました (1000660)。

9.30JSP5では一貫した結果を返すように修正しましたが、その副作用として、アプリケーションの動作に影響することがあります。

変更により影響を受けるプログラム

以下の条件を満たすプログラムは、この変更により影響があります。

  • イベントハンドラの「有効」欄で、ハンドラ有効の条件式としてタスク世代を扱う関数 (STAT, TDEPTH など)を使っている。
  • イベントハンドラの定義されているタスクと、実行時にイベントを発生するタスクとが異なる。

9.30JSP3a以前の問題

イベントハンドラに STAT や TDEPTH など、タスク世代を指定する関数を使った場合、イベントハンドラが定義されているタスクと、実行時にイベントを発生させるタスクが異なる場合、以下のような一貫性を欠く結果が返される、という問題がありました。

  • イベントハンドラの「有効」欄で、ハンドラ有効の条件式として使った場合には、世代 0 は、ハンドラの定義されているタスクを指します。
  • イベントハンドラの中のフローテーブル中のコマンドで使った場合(コマンド実行の「条件」欄とか、項目更新の「式」欄など)には、世代 0 は、イベントを発生させたタスクを指します。

例： 親子タスクがあって、修正モードの親タスクにイベントハンドラが定義されており、登録モードの子タスクで実行時にイベントを発生するようになっていた場合、イベントハンドラの「有効」欄に STAT (0,'M'MODE) が定義されていたとすると、この式は親タスクのモードをチェックするので、子タスクのモードに関わらず、常に TRUE になる。一方、同じ式がイベントハンドラのコマンドの「条件」欄に指定されていた場合には、この式はイベントを発生させた子タスクのモードを参照するので、FALSE と評価される。

9.30JSP5以降の動作

9.30JSP5以降では、タスク世代の「0」は、常に「イベントを発生させたタスク」を参照するように修正されました。

例： 上の例では、STAT (0,'M'MODE) の式は、イベントハンドラの「有効」欄であっても、コマンドの「条件」欄であっても、常に、イベントを発生させた子タスクのタスクモードを参照するので、FALSE と評価される。

影響のある関数

この変更により影響を受ける関数には、次のようなものがあります。

  • タスク世代番号を引数に持つ関数：
    CHEIGHT | CTOP | EOF | LINE | WINBOX
    CLEFT | CTOPMDI | EOP | PAGE | WINHWND
    CLEFTMDI | CWIDTH | LASTPARK | STAT
    COUNTER | DBCACHE | LEVEL | VIEWMOD
  • タスク世代番号を返す関数：
    TDEPTH

プログラムの修正

9.30J SP5以降で、 9.30J SP3a以前と同様の動作を行う場合は、次のような変更を行ってください。

  1. イベントを定義するタスクで数値型変数(仮にAとする)を定義して、タスク前処理でTDEPTH()に更新する。
  2. イベントの「有効」条件式に STAT( TDEPTH() - A, 'C'MODE )を設定する。


付録

ここでは、V9Plus 製品に関しての、その他の有用な情報について紹介します。

  • アプリケーションサンプル
  • ボーナスパック
  • テクニカルホワイトペーパー
  • ベータ機能評価レポート
  • Magic eBusiness Platform V9 Plus 使用許諾契約書


ボーナスパック

CD-ROM の \BONUS というフォルダの下に Magic 関連のサンプルアプリケーションおよびユーティリティが同梱されています。

フォルダ名 | 内容
\BONUS\Utility\colorfont | 基本色／フォント定義ファイル コンバート・ ユーティリティ（英語）
\BONUS\Demoapl\Interlude | 株式会社マイクロリンク社 Interlude 評価版

注意：

  • ボーナスパックは、 ベータ版およびアップデートモジュールには、添付されていません。

  • ボーナスパックに対するサポートは、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. が提供するサポートサービスには含まれません。


テクニカルホワイトペーパー

製品版 CD-ROM には、以下のテクニカルホワイトペーパーが収録されています。

資料 | CD-ROM フォルダ
インタラクティブWebアプリケーションの開発と実行 | \Online\Interactive Web Applications.pdf
イベントドリブンアーキテクチャ | \Online\Event Driven Architecture.pdf
Magic コンポーネント開発 | \Online\Components.pdf
ブラウザクライアントアプリケーション開発手法 | \Online\BC_Methodology.pdf

注意：

  • テクニカルホワイトペーパーは、 ベータ版および アップデートモジュールには、添付されていません。

  • テクニカルホワイトペーパーの内容に関しては、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. が提供するサポートサービスには含まれません。


ベータ版評価レポートのお願い

ベータ機能評価レポート

ベータ機能に関するご質問等は、マジックソフトウェアジャパンのサポートセンターではお受けいたしておりませんが、ご意見、ご質問、気が付いた点などは、下記の「ベータ 機能評価レポート」に記入して、メールで japan_v9beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。

Magic eBusiness Platform V9Plus ベータ機能評価レポート

記入日： ２００４年　 月　 日

会社名：

担当者：

E-mail：

ＴＥＬ：

ＦＡＸ：

サポート契約： （ ）Windows　（ ）フルセット　 （ ）なし 該当する（ ）に＊を挿入してください。

１．動作環境

ＰＣ機種：

ＣＰＵ：

ＲＡＭ：

ＯＳ： （ ）Windows98／（ ）Windows2000（SP： ）／（ ）WindowsNT4.0 SP6a／（ ）WindowsXP

ＩＭＥ：

アクセラレータ：

ビデオチップ：

プリンタ：

使用サーバ：

使用ブラウザ：（ ）IE5.5 （SP： )、　（ ） IE6（SP： ）

２．評価結果

対象製品： （ ）Magic eDeveloper （ ） Magic Application Server （ ） Magic Client

製品バージョン： （ ） ※ SPxx まで含め、正確に記入してください。

該当する（ ）に＊を挿入してください。

Ａ （ ） 問題無し

Ｂ （ ） 一部支障あり

Ｃ （ ） 正常に動作しない

Ｄ （ ） インストール・起動不可

上記２でＢ，Ｃ，Ｄの場合、以下の内容をお書きください。

３． 再現性

（ ）再現性あり、 （ ）時々再現する、 （ ）再現性なし

４．不具合の現象 （できるだけ詳細にお書きください。現象確認を迅速に行なうために、極力画面のハードコピー、サンプルプログラム等の提供をお願いいたします。）

５．その他ご意見


使用条件

Magic eBusiness Platform V9 Plus 使用許諾契約書

お客様へのお願い

このパッケージに入っているソフトウェアをご購入またはご使用にあたり、本契約書を十分にお読みください。このパッケージを開封された場合には、本契約に同意されたものとみなします。

マジックソフトウェア・ジャパン株式会社（以下「ＭＳＪ」という）とお客様（以下「お客様」という）は、このパッケージに同封されているソフトウェア・プログラム（以下「許諾プログラム」という）及び同封物（マニュアルなど）について以下の通り合意しました。

1. 総則

許諾プログラムに関する全ての著作権は、Magic Software Enterprises社、ＭＳＪまたは許諾プログラムに関して正当な権限を有する第三者が保有していま　す。 ＭＳＪはお客様に、以下条項の規定に従って、許諾プログラムの譲渡不能かつ非独占的な使用権を付与します。

2. 契約期間

本契約は、お客様がこのパッケージを開封した時から発効し、お客様が文書により解約を申し入れるか、または第７条の規定により解約されるまで有効とします。

3. 使用権

(1) 使用権の内容はお客様が購入された許諾プログラムの種類により異なります。お客様はパッケージに表記された種類に従い、以下の使用権の内容を遵守して下さい。

・ Magic eDeveloper V9 Plusの場合

  お客様は、許諾プログラムを機械読取可能な形で、特定の１台のコンピュータ・システムにおいて使用すること（以下「使用権」という）ができます。またお客様がマルチターミナル・システムで許諾プログラムを使用する場合は、接続される端末数分の使用権を別途ＭＳＪより取得しなければなりません。Magic eDeveloper V9を購入されたユーザは、無償で使用することができます。ただし、Magic eDeveloper V9 Plusへのバージョンアップ、無償バージョンアップキャンペーンで取得したMagic eDeveloper V9は対象外となります。

・ Magic eDeveloper V9 Plus Web Editionの場合

  お客様は、許諾プログラムを機械読取可能な形で、特定の１台のコンピュータ・システムにおいて使用すること（以下「使用権」という）ができます。許諾プログラムは、Webアプリケーションの開発のみを行うことが可能でクライアントサーバのオンラインプログラムの開発を行うことはできません。またお客様がマルチターミナル・システムで許諾プログラムを使用する場合は、接続される端末数分の使用権を別途ＭＳＪより取得しなければなりません。

・ Magic Client V9 Plusの場合

  お客様は、許諾プログラムを機械読取可能な形で、お客様が購入したユーザ数分を同時にコンピュータ・システムにおいて使用すること（以下「使用権」という）ができます。またお客様がマルチターミナル・システムで許諾プログラムを使用する場合は、接続される端末数分の使用権を別途ＭＳＪより取得しなければなりません。

・ Magic Application Server V9 Plusの場合

  お客様は、許諾プログラムを機械読取可能な形で、コンピュータ・システムにおいてお客様が購入した合計のインスタンス数、及びスレッド数分を同時に使用すること（以下「使用権」という）ができます。

・ Magic Application Server V9 Plus Liteの場合

  お客様は、許諾プログラムを機械読取可能な形で、コンピュータ・システムにおいてお客様が購入したインスタンス数、及びスレッド数分を同時に使用すること（以下「使用権」という）ができます。複数購入したインスタンス数、及びスレッド数を累計、又は複数のコンピュータ・システムを使用して一つのアプリケーションシステムを構成することは出来ません。

(2) お客様は、ＭＳＪの書面による同意を得なければ、使用権を第三者に対して譲渡、移転、または再使用権の設定を行うことはできません。このパッケージの同封物の一部もしくは全部、並びに許諾プログラムの内容の一部もしくは全部を第三者に譲渡または移転してはなりません。

(3) お客様は、許諾プログラムを改変、リバースエンジニアリングまたは逆アセンブルしないことに同意します。

4. 許諾プログラム等の複製

(1) お客様は、許諾プログラムの複製物を作成してはなりません。但し、バックアップを目的とする場合に限り、機械読取可能な形で許諾プログラムの複製物を２部まで作成することができます。

(2) お客様は、許諾プログラムのすべての複製物に、許諾プログラムに付されている著作権表示およびその他の権利表示を付すものとします。

(3) お客様は、このパッケージの許諾プログラム以外の同封物の一部、または全部の複製物を作成する場合には、ＭＳＪの事前の許諾を得るものとします。

5. 許諾プログラムの保護

   お客様は、許諾プログラムを、ＭＳＪの書面による事前の同意を得ることなく本契約当事者以外のいかなる者に対しても提供しないことに同意します。

6. ＭＳＪの保証の範囲

(1) ＭＳＪは許諾プログラムがお客様の特定の使用目的に合致し、また、いかなる場合でもその実行に誤りがないことを保証するものではありません。但し、お客様が登録カードを返送し、かつお客様が許諾プログラムを通常の方法で使用している場合に限り、許諾プログラム購入の日から３箇月以内にＭＳＪが指定プログラムの誤り（バグ）を修正したソフトウェア・プログラムを発表したときには、その修正したソフトウェア・プログラムまたは修正したソフトウェア・プログラムに関する情報を提供します。これをもってＭＳＪの唯一の保証とします。

(2) ＭＳＪの責任は、第６条(1)項に規定された保証のみに限定されるものとし、許諾プログラムを使用することにより生じたいかなる損害についてもその責は負いません。

7. .契約の解約

   ＭＳＪは、お客様が本契約に定める事項に違反したとき、またはお客様において本契約を継続しがたい重大な事由があるときは、お客様に対し、何らの事前の通知なしに直ちに本契約を解約できるものとします。

8. .契約終了時の措置

   本契約が第７条により解約された場合またはその他の事由により本契約が終了した場合、お客様は本契約が終了した日より１０日以内にインストールされた許諾プログラムのデータ及び許諾プログラムを格納した媒体並びにそれらの複製物を廃棄するものとします。

9. 一般条項

   本契約のいずれかの条項またはその一部が法令により無効となった場合でも、その他の条項は、有効に存続するものとします。

10. 裁判管轄

   本契約に関する訴えは、東京地方裁判所をもって第一審の専属管轄裁判所とします。

マジックソフトウェア・ジャパン株式会社