ｄｂＭＡＧＩＣ Ver8.2K4 SP2a 追加情報

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

本文書には、dbMAGIC Ver8.2K4 SP2aについて、マニュアルに記載されていない注意点や制限事項など重要な情報が記載されています。

  • サポートDBMS、OS対応一覧
  • 注意事項／制限事項
  • Magic リクエスタブローカ (MRB 8.3-12J)
  • ワークグループ開発機能利用時の注意事項
  • ゲートウェイ固有の追加情報
  • 修正履歴
    • Ver 8.2K4SP2a での修正事項
    • Ver 8.2K4SP2 での修正事項
    • Ver 8.2K4SP2 以前のバージョンでの修正履歴
  • 参考技術情報
    • サポートするイメージフォーマット
    • 制限値
  • ベータ機能評価レポート

  • マニュアルファイル(PDF形式)は、バージョン 1.3 形式です。参照するためには、 Acrobat Reader の 4.05J 以上が必要です。


サポートDBMS、OS対応一覧

ｄｂＭＡＧＩＣの本バージョンでサポートするＤＢＭＳとＯＳの一覧表です。

一般的注意事項

  • 本製品に添付のデータベースゲートウェイは、本製品 (dbMAGIC 8.2K4 SP2) と組み合わせてご利用ください。他のバージョンと組み合わせて利用される場合の動作は保証されておりません。
  • 利用するオペレーティングシステム、DBMSソフトウェアは、日本語版をご利用ください。 他言語のバージョンをご利用になった場合の動作は保証されておりません。
  • この表の中では、次の記号を使用しています。

    記号 | 意味
    ○ 動作確認済
    △ 制限あり
    － 対象外
    予定 | 評価予定

dbMAGIC V8 サポートDBMS一覧表

DBMS | Version | 区分 | dbMAGIC Version Winodws 8.2K4SP2
BTRIEVE Pervasive.SQL | 6.15 for WinNT/95 | 5 format | ○
 |  | 6 format | ○
 | 6.15 for WinNTSVリクエスタアクセス | 5 format | ○
 |  | 6 format | ○
 | 6.15 for NetWareリクエスタアクセス | 5 format | ○
 |  | 6 format | ○
 | 7 for WinNTSVリクエスタアクセス | 6 format | ○
 |  | 7 format | ○
 | 7 for NetWareリクエスタアクセス | 6 format | ○
 |  | 7 format | ○
 | Pervasive SQL2000 Workstation for Win95/98/NT | 6 format | ○
 |  | 7 format | ○
 | Pervasive SQL2000 Workgroup for Win95/98/NT | 6 format | ○
 |  | 7 format | ○
 | Pervasive SQL2000 Server for WinNT | 6 format | ○
 |  | 7 format | ○
 | Pervasive SQL2000 Server for Netware | 6 format | ○
 |  | 7 format | ○
 | Pervasive.SQL V8 Workgroup | 6 format | ○注意1
 |  | 7 format | ○注意1
 | Pervasive.SQL V8 Server | 6 format | ○注意1
 |  | 7 format | ○注意1
ORACLE | 7.3.4 |  | ○
 | 8.0.5 |  | ○
 | 8.1.5(Oracle8i) |  | ○
 | Oracle9i |  | △ 注意2
MS-SQL | 6.5 |  | ○
 | 7 |  | ○
 | 2000 |  | △ 注意3

注意事項

注意1 | GTW（MGPV2K.DLL）使用します。動作確認レポートの詳細は、こちら。
注意2 | Oracle8/8i用のGTW を使用して、互換のレベルで動作を確認しました。詳細は、こちら。
注意3 | MS-SQL Server 7.0の互換機能について動作するのを確認したものでSQLServer2000の新機能に関しては未評価です。

dbMAGIC V8 サポートOS一覧表

OS | Version | dbMAGIC Version
 |  | Windows 8.2K4SP2
Windows | 95/98 | ○
 | ME | △ 注意2
 | 4.0 Workstation | ○
 | 4.0 Server | ○
 | 2000 Professional | ○ 注意1
 | 2000 Server | ○ 注意1
 | 2000 Advanced Server | ○ 注意1
 | XP Professional | △ 注意3
 | 2003 Standard | △ 注意4
 | 2003 Enterprise | △ 注意4

注意事項

注意1.
  • PervasiveSQL2000を使用します。Btrieve6.15はサポート対象外です。
  • WindowsNTの互換機能を使用してdbMAGICが動作することを確認したものでWinodws2000の新機能に関しては未評価です。
注意2
  • Pervasive.SQL2000は SP2で対応。
  • Btrieve6.15 はサポート対象外です。
  • Oracle はサポート対象外です。
注意3
  • Windows XP Home Editionはサポート対象外です。
  • Windows NTの互換機能を使用してdbMAGICが動作することを確認したものでWindowsXPの新機能に関しては未評価です。互換モード（NT4.0SP5）で使用することを推奨します。
  • Btrieve： Pervasive.SQL2000iが必要です。
  • http://www.pervasive.co.jp/download/よりPervasive.SQL2000->Pervasive.SQL2000iパッチモジュール入手可能です。特に不具合34907のパッチの適用を推奨します。 (http://www.pervasive.co.jp/psql/p2000iv5.html)。
  • Oracle： Oracle8はXPを未サポートです。
  • Magic/400： サポート対象外です。
注意4
  • Windows NTの互換機能を使用してMagicが動作することを確認したもので Windows Server 2003 の新機能に関しては未評価です。
  • Pervasive.SQLを使用する場合は、Pervasive.SQL V8 を使用してください。Pervasive.SQL 2000i およびそれ以前のバージョンについては、Windows 2003 Server上での動作が保証されていません。
  • ISAPIリクエスタを使用する場合、IISマネージャ－Webサービス拡張でISAPIリクエスタ（MGrqispi.dll)を許可にしてください。
  • CGIリクエスタ－IIS6.0との組み合わせで以下の現象が確認されています。
    Cookieのパラメータに2バイト文字を使用し、そのCookie情報をHTTPサーバーに送る際、ブラウザーに以下のエラーが返ります。
      CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP header


注意事項／制限事項

ここでは、ｄｂＭＡＧＩＣ Ver8.2K4 SP2 を利用する上での注意点や制限事項などを記述しています。

  • 動作環境
  • フォームエディタ
  • 印刷機能
  • インターネット機能
  • パーティショニング機能
  • コマンドラインリクエスタ
  • RQ関数
  • テーブルリポジトリ
  • ロックとトランザクション
  • リポジトリ入出力
  • データアクセス
  • 旧バージョンからの移植の際しての注意
  • その他

ここで記述してあるほかに、

  • ワークグループ開発機能利用時の注意事項
  • 各ゲートウェイ固有の追加情報
  • Magic リクエストブローカ

にも注意事項が書いてありますのでご参照ください。

動作環境

  • 初期のWindows95 (4.00.950 または 4.00.950a)の場合、OS のモジュール構成によ っては、dbMAGIC が正常に起動しない場合があります。 この現象は、oleaut32.dll が Ver 2.1 と comctl32.dll が Ver 4.00.950 の時に 発生することを確認しております。 この場合は、Internet Exploler 3.02以上をインストールしていただくか、本製品の CD-ROM の OSディレクトリ上にある 401comctl.exe(comctl32.dll を Ver 4.72.361 1.1900 にアップデートします) と、Jaaxdist.exe (Oleaut32.dllを Ver2.20.405 4 にアップデートします) を実行してください。
  • [設定/動作環境]の[パーティショニング] タブで [アプリケーションサーバとして 使用する] 欄を Yes にすると [設定/動作環境]の[動作設定]タブの [キーボード休止秒数] の指定が無効になります。
  • MRB(Magic Requester Broker)用のパスワード(MRB.INI の PasswordSupervisor) が 設定されていない場合は、MRB起動時に "Security Hazerd" というワーニングダイア ログが表示されます。
  • セットアップされたPCに不当なタイムスタンプ(例えば、'0000/01/01')に設定された フォルダが存在する場合、 LICENCE ERROR:SYSTEM DATE IS INCORRECT というエラーが出てdbMAGICが起動しない場合があります。 このような場合、Windowsディレクトリの中のフォルダのタイムスタンプをチェック して、変更してみて下さい。
  • OS のシステムクロックが '2038年1月20日'以降に設定されている場合 dbMAGICは正常に起動しません。

フォームエディタ 一般

  • フォームテーブルの Javaフォーム形式は、現在ベータ機能です。
  • [基本色]テーブルにて、背景色を透過指定した場合、フォームエディタ上の色パレットでは黒色の背景色で表示されます。
  • 開発時、フォームエディタ上でテーブルの下辺位置とフォームの下辺が同じ場合、 フォームの右側にスクロールバーが表示されます。実行時には表示されません。
  • [複数行編集]欄が ｢Yes｣ のテキストコントロールに対して [表示調整]コマンドを発行すると、テキストがぶれて表示されます。ただし、再表示すれば表示は元に戻りま す。
  • 複数選択して変更できる特性は、以下の通りです。そのほかの特性を変更した場合、 最初に選択されたコントロールの特性のみが変更されます。

    GUIフォームエディタ

    HTMLフォームエディタ

    JAVAフォームエディタ

    フォント （式を含む）

    色 （式を含む）

    有効

    可視

    左辺位置 （式を含む）

    上辺位置 （式を含む）

    幅 （式を含む）

    高さ （式を含む）

    位置（割合）

    スタイル

    境界

    垂直整列

    水平整列

    複数行編集

    X1 X2 Y1 Y2

    データ入力（式を含む）

    複数行編集

    フォント （式を含む）

    色 （式を含む）

    境界線の幅 (式を含まない)

    可視

    段落整列

    インデントレベル

    テキストタイプ

    幅 （式を含む）

    高さ （式を含む）

    幅(%)

    水平整列

    垂直整列

    固定幅

    有効

    データ入力（式を含む）

    複数行編集

    垂直スクロール

    水平スクロール

    フォント （式を含む）

    色 （式を含む）

    境界線の幅

    可視

    スタイル

    左辺位置 （式を含む）

    上辺位置 （式を含む）

    幅 （式を含む）

    高さ （式を含む）

    位置（割合）

    X1 X2 Y1 Y2

    Y1,Y2のみ式を設定した場合、式の値がY1>Y2になると、ラインの傾きが左上がりから右上がりに変わります。 また、Y1のみ式を入れていると、Y1>Y2になると、Y2にもY1の値が入って、本来左上がりになるところが、横一直線になります。 対応策としては、Y1,Y2のいずれか、あるいは両方が可変の場合、すべての座標を式で設定しておく必要があります。
  • コントロールにデータを再定義した場合、変更できない特性は以下の通りです。
    • フォント
    • 色
    • スタイル
    • 境界
    • 複数行編集
    • アクション
    • カラム数
    • ステップ数
  • テーブルコントロールでタイトル高さと行高さの変更をコントロール特性で指定で きない場合があります。このような場合、テーブルコントロールの行間をマウスで 調整してください。
  • フォームエディタでフォームサイズを変更する為に、マウスで下辺をドラッグして、 MAGICのWindowの枠の位置まで持っていくと、縦スクロールバーが表示されます。
  • APGで作成したコントロールと、手動で貼り付けたコントロールでは幅が異なります。

HTMLフォームエディタ

  • HTMLフォームにおいてリッチエディットを貼り付けられますが、このコントロール は表示専用となります。
  • 項目パレットからコントロールを配置する場合、タブコントロールはコンボボック スに置き換えられます。
  • 以下のような操作を行った場合、予期しない空白行がフォームに挿入されることが あります。
    • コントロールパレットからダブルクリックしてコントロールを配置した場合
    • あるコントロールに別のコントロールを重ねようとした場合
    • [複数行編集]欄が「No」のコントロールの高さを変更しようとした場合
  • HTMLフォーム形式のエディットコントロールをHTMLドキュメント形式のフォームに 貼り付けた場合、フォームエディタ上ではスタイルが｢Windows立体｣になりますが、 実行時には平面となります。
  • フォーム上で矢印キーを押下した場合、マウスカーソルの形状が変化することがあ ります。
  • テーブルコントロールに[背景]を指定しても、フォームエディタ上では表示されま せん。
  • カラム特性の[カラム数]が「1」でないラジオボタンは正しく配置できないことがありますので、[カラム数]はコントロール特性で設定してください。
  • Javaアプレット、ActiveXコントロールに渡すパラメータを定義式で指定する場合、 文字型で定義してください。
  • HTMLフォームエディタのスタティックテーブルの一つのセル内に複数のコントロー ルを配置する場合、縦にしか並べることができません。
  • インターネットAPG で作成された HTMLフォーム上のテーブルコントロールのタイトルが隣のものと重なる場合があります。この場合は、重なったテキストコントロー ルのコントロール特性において［テキスト］欄の文字列の最後にスペースを入力してください。この後、マウスでこのテキストコントロールを配置し直してください。
  • フォームの複写およびコントロールのコピーを行う際、フォーム特性およびコントロール特性のハイパーリンクの設定においてハイパーリンクタイプがURLの場合、式 欄の値が複写されません。フォームの複写およびコントロールのコピー後に再度設 定をしてください。

Javaフォームエディタ

  • [ブラウザで表示]コマンドを実行しても、WWWブラウザにはコントロールは表示され ません。
  • 親のコントロールのみを選択していても、親のコントロールを移動すると子のコント ロールも移動してしまいます。
  • フォーム上で矢印キーを押下した場合、マウスカーソルの形状が変化することがあり ます。
  • ホットスポットコントロールをイメージコントロールに貼り付ける場合、イメージか らはみ出して設定されることがあります。
  • JAVAフォームエディタにおいて設定した幅と高さと、WWWブラウザで表示される幅と 高さを比較すると、WWWブラウザの方が約1.2倍大きく表示されます。

印刷機能

  • GUI印刷にてフォーム寸法単位をダイアログに設定した場合、dbMAGIC のバージョ ンにより出力結果が異なる場合があります。寸法単位は、センチかインチを指定し て下さい。
  • 入出力特性の[用紙サイズ]、[用紙の向き]および[部数]の指定より、スタイル設定ユー ティリティで指定された印刷の向きが優先されます。
  • プレビュー表示では、イメージスタイルが以下の場合、有効になりません。
    • T=タイル
    • C=コピー
  • プレビュー表示では、プリンタ固有のマージンの設定を考慮しておりません。このため、左右上下の余白部分が実際の印刷結果と異なります。
  • プレビュー表示の倍率を変更するとキーボードによって改ページができなくなる場合があります。このような場合は、マウスにてスクロール操作してください。
  • ［フォーム特性］の［フォーム拡大］が［O=１ページ］の場合、プレビュー表示で、 リッチエディットが表示されません。
  • ［フォーム特性］の［フォーム拡大］が［M=複数ページ］の場合、リッチエディッ トが拡大して出力されません。

インターネット機能

  • 使用するWWWブラウザによっては、dbMAGICのHTTPリクエスタが１回起動されるべき 個所で複数回起動されることがあります。現在はInternetExplore 3.0x においてこ の現象が確認されています。InternetExplore 4.01 SP1 ではこの現象は確認されて いません。
  • 複数のフォームをデータ出力する場合、1レコード毎に1フォーム作成されることが あります。
  • 文字型のイメージは正しく表示できない場合があります。表示したいイメージファ イルはCTL特性の[インターネット開発ファイルルート]欄の指すディレクトリに配置 し、あらかじめWWWブラウザで表示できるイメージフォーマットにしておく必要があ ります。
  • フォーム特性の環境設定においてドメイン制限「Yes」の場合、Cookieの情報が正し く渡りません。Cookieを使用する場合、ドメイン制限「No」としてください。

HTML実行時の動作

  • 背景に使用するイメージファイルはCTL特性の[インターネット開発ファイルルート] 欄で指定したディレクトリに配置する必要がありますが、実行時には動作環境の [Webドキュメントパス]欄で指定したディレクトリを参照してしまいます。このため、 背景に使用するイメージファイルはそれらの両方のパスに配置してください。

Java実行時の動作

  • Javaフォームを使用する場合、JDK1.1.6以上をサポートするWWWブラウザが必要とな ります。また、HTMLフォームにおいてJavaアプレットを使用する場合、そのアプレッ トが必要とするJDKをサポートするWWWブラウザが必要となります。
  • Javaフォームにおいて、データが入力できないことがあります。また2バイトコード の入力はできません。参照のみで使用することをお勧めします。
  • Javaフォームにおいて、テーブルコントロールの子コントロールとそうでないコント ロールとは、同一レコードの内容が表示されないことがあります。
  • 動作環境の[Webドキュメントパスの別名]欄に設定する文字列には、特殊文字を含む ことはできません。パスには半角英数字を使用することをお勧めします。
  • Javaフォームにおいて、日付型の書式に「J」や「S」を使用することはできません。
  • Javaフォームにおいて、フォームエディタとWWWブラウザでは表示が異なることがあ ります。
    • フォームエディタ上の各コントロールはGUIフォームエディタと共通の表示をして いますが、Javaでは色や形が異なることがあります。
    • Zオーダが正しく反映されないことがあります。
    • コントロール特性の「フォント」が正しく反映されないことがあります。
    • コントロール特性の「色」に透過色を指定すると、灰色として表示されます。
    • 割合での位置を設定したコントロールと、設定していないコントロールでは座標の 計算に若干のずれが生じます。一つのフォームにおいて、全てのコントロールに同 じ割合を設定することをお勧めします。
    • テーブルコントロールの外枠線は正しい位置に表示されません。また、フォームエ ディタでは切り捨てられる行数の端数が、WWWブラウザでは切り捨てられずに表示 されます。
    • グループコントロールのグループ名を表示する上辺位置がWWWブラウザでは若干上 方に移動されます。
  • コントロール特性の[可視]欄の指定が効かないことがあります。
  • コンボボックスの高さを割合で設定した場合、WWWブラウザでは高さが変化されない ような表示になります。
  • ホットスポットを設定した場合、親となるイメージの位置とサイズに式が使用され ていると、ホットスポットの座標が正しく計算されないことがあります。
  • ハイパーリンクの設定が存在する場合、URLの変換が他のフォーム（HTMLフォーム 等）と異なる場合があります。ハイパーリンクの設定を行う場合、URLは絶対パスと し、かつディレクトリ名の区切りは「/」として記述することをお勧めします。

パーティショニング 機能

  • MGRB.INI の AutoLoadで指定したエンジン数に達すると、それ以降はエンジンを終了 しても AutoLoadされません。
  • MGREQ.INIのBrokerTimeoutを「0」にした場合、マニュアルではエンジンからMRBには 何も返されないとありますが、実際には約10Secでエラーが返ってきます。
  • コールリモートのパラメータにおいて、戻り値とエラーコードに同じ項目を設定した 場合にプログラムチェックユーティリティでエラーになりません、同じ項目を指定し ないように注意してください。
  • MGRB.INIのServerTimeoutを設定すると、非同期の実行時にI_AM_ALIVEメッセージが MRBに送られますが、メッセージが止まっても何もエラーが発生しません。
  • dbMAGIC起動時に自動的にアプリケーションを起動する場合、開発モードで起動する とアプリケーションサーバとして認識されません。アプリケーションサーバとして 認識させる為には、dbMAGIC起動後に一度開発モードを抜ける必要があります。
  • MRB の終了時にエラーが発生する場合があります。

コマンドラインリクエスタ

  • -ARGUMENTSにおいてNULL値（-U）を指定した場合、構文エラーとなります。
  • -ARGUMENTS及び-VARIABLESにおいて「,」をデータとしては使用する場合には、円記号でエスケープしてください。 (例： abc\,def など)
  • -ARGUMENTS及び-VARIABLESにおいて数値型のパラメータを使用した場合、誤差が生じ る場合があります。
  • -EXEにおいてに引数を複数記述すると、正しく起動しない場合があります。常 に必要なパラメータについては、MGRB.INIにおいて引数を設定してください。
  • -TERMINATEにおいて右辺に何も指定しない場合、ALLとみなされます。
  • MGRQCMDL.EXE -QUERY=PENDING= では、PasswordQuery しか指定できません。

RQ関数

  • RQRTINF関数を実行する場合、正しい戻り値が取得できないことがあるため、直前にRQ RTS関数を実行してください。
  • RQRTAPPS関数を実行する場合、正しい戻り値が取得できないことがあるため、直前に RQRTS関数を実行してください。
  • RQRTAPPS関数の入力パラメータであるエンジン番号を0に設定した場合、MRBが管理す るすべてのMAGICエンジンのアプリケーション数（およびRQRTAPP関数のアプリケーシ ョン名）が取得されます。
  • RQRTAPP関数を実行する場合、正しい戻り値が取得できないことがあるため、直前に RQRTAPPS関数、及びRQRTS関数を実行してください。
  • RQRTTRM関数を実行する場合、意図したエンジンが終了できないことがあるため、直前 にRQRTS関数を実行してください、
  • RQQUEINF関数を実行する場合、 正しい戻り値が取得できないことがあるため、直前に RQREQLST関数、またはRQQUELST関数を実行してください。
  • RQREQINF関数の入力パラメータである登録番号は、RQREQLST関数を実行した後の場合、 一番最後のリクエストから順に割り振られた番号です。 また、RQQUELST関数を実行した後の場合は、ペンディングのリクエストだけを対象に して、実行する順に割り振られた番号になります。
  • RQSTAT関数を発行すると、RQREQINF関数の戻り値はクリアされます。
  • RQRTREQINF関数の入力パラメータである最小ID、最大IDを共に0を設定した場合、最大 で20までの値を返します。すなわち、リクエスト数が20を越えていても、20以上の値 は返しません。
  • リクエストに関する次の関数のPasswordSupervisor、またはPasswordQueryのチェック 機能は無効です。
    • RQREQLST
    • RQQUELST
    • RQSTAT
    • RQQUEDEL
    • RQQUEPRI

テーブルリポジトリ

  • DDF作成するテーブルの[名前]欄およびカラムの[名前]欄を空白にしないで下さい。 空白にした場合、BtrieveのODBCドライバにおいて正しく認識されない場合があります。

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

  • バッチタスクにおいて、処理レベルテーブルのトランザクションに｢L=オンロック｣ を指定した場合、[エラー]欄に｢R=リトライ｣および｢S=スキップ｣を設定しても正し く動作しません。バッチタスクにおいては[トランザクション]欄に[P=前処理]を指 定することをお勧めします。
  • 128 ユーザ以上のマルチユーザ環境で使用する場合は、MAGIC.INI ファイルに以下の指定を行ってください。
    [MAGIC_SPECIALS]
SpecialLockVersion = 8
    • この指定を行う場合、全ての端末において同一の設定をして ください。
    • dbMAGIC Ver8と以前のdbMAGICとを共存させる場合、この設定をし ないでください。

リポジトリ入出力

  • リポジトリ入力時にプログラムリポジトリの全体の権利が反映されない場合がありま す。

データアクセス

  • 親タスクのタスク後処理から子タスクを起動するとき、この子タスクがバッチタスク でリンクテーブル（Wリンクを使用）のみを使用して更新処理をしている場合、レコー ドロック解除待ちとなるべき状態において、そのメッセージが一度表示されるとタス クが終了してしまいます。
  • レコードアクセスが失敗するようなプログラムにおいて、レコードアクセス失敗時が 「S=スキップ」の場合、インデックス重複エラーの後のに#2のエラーが返る場合があ ります。
  • キャッシュが有効になっているプログラムでは、タスク制御/オプションタブ/ウィ ンドウ再表示機能が効きません。

旧バージョンからの移植に際しての注意

  • リファレンス(PDF ファイル) の 19章 19.5 Ver8 への移行の際の注意事項 をご覧 ください。

その他

  • CONST ファイルを mgconst.jpn の変わりに mgconst.hig（または、hi2,hi3)を使用 することで、各オブジェクトのテーブル行数を増やすことができます。ただし、式 テーブルは、変更できません。
  • カラムからのクロスリファレンス実行中にはESCキーで中断できないことがあります。 中断する場合、OKボタンを押下してからESCキーを押下してください。
  • MAGIC.INI に以下の様に設定すると、開発モード時に、各オブジェクトがツリー表示されます。
    [MAGIC_SPECIALS]
SpecialTree=Y
    注意： アプリケーションオープンに失敗した場合、スペシャルツリーが複数個表示される場合があります。この場合、一度アプリケーションクローズしてください。
  • マージタグの MGIF_name を使用する場合、データが論理型でない場合の動作は不定 となりますので、必ず論理型のデータを使用してください。
  • マージタグの MGIF_name を使用する場合、MGIF_name をネストするとタグが正しく 認識されない場合があります。ネストは2レベルまでとすることをお勧めします。
  • Windows NT Ver4.0 においては以下の内容が確認されています。
    • 複数行編集「No」のエディットコントロールではカーソル位置と表示される文字位置が揃わない場合があります。この場合、複数行編集「Yes」に変更するか、プロポーショナルフォントを使用することを検討してください。
    • パスワードエディット「Yes」のエディットコントロールではIMEは起動できません。
    • コンボボックスにフォーカスがあり、データ欄の設定されていないプッシュボタンを押下してバッチの子タスクを起動し、かつ子タスクのオプションメニュー 「Yes」の場合、キーボードより入力した 'Y' という内容はコンボボックスの選択肢 'Y' という文字が存在しない場合のみ確認ウィンドウに渡されます。 確認ウィンドウにおいてキーボードを使用する場合、左右矢印キーおよび改行キーを利用することをお勧めします。
  • Microsoft(R) Office 97 においては以下の内容が確認されています。
    • Office 95で作成されたオブジェクトがリンクされたOLEコントロールをダブルク リックしても該当するアプリケーションは起動されないことがあります。これは ワードパットのオブジェクトの挿入においても発生することが確認されています。 確認したオブジェクトはWord 95およびExcel 95です。Word 97およびExcel 97 以上で作成されたオブジェクトにおいては発生しないことが確認されています。 これはOLE2に関連するモジュールがOffice 97によって上書されたためと考えら れます。
    • DDEPOKE()関数を使用する際にExcel 97のグラフシートが表示されている場合、 MSO97.DLLのページ違反が発生します。Excel 97のマクロを利用して、DDEPOKE() 関数を発行する前後にアクティブなシートを変更するようにすることで回避でき ることが確認されています。
    • MS-IME97を使用する場合、マルチインスタンスで起動しているdbMAGICのIMEの入 力モードが変更されることがあります。これは「MS-IME97 のﾌﾟﾛﾊﾟﾃｨ」が全ての ウィンドウで共通となる動作をするためであり、メモ帳のマルチインスタンス等 においても発生することが確認されています。
  • フォントテーブルの 100番目「コンソール出力フォント」が表示されていない場合 があります。 行作成(F4キー) を行うことで表示されるようになります。
  • バッチの埋め込みSQLタスクを作成する際、SQLコマンドの「戻り値」の欄に設定した項目が、カレントタスク内で定義されたものである場合、そのSQLコマンドの戻り値を取得することができません。 このような場合、上位のタスクで定義した項目を「戻り値」として使用してくださ い。


MRB（MAGICリクエストブローカ）8.3-12J 追加情報

dbMAGIC Ver 8.2K4 SP2
MAGIC リクエストブローカ 追加情報

dbMAGIC Ver 8.2K4 SP2 用 (MRB 8.3-12J)

  1. 留意事項
  2. MRB 8.3-12Jで修正された内容

1. 留意事項

  • コールリモートコマンド、ファイルのアップロードなどにおいてBLOB項目にファイルのデータを入れて、パラメータとしてやりとりする場合、ファイルサイズは1MB以内にされることを推奨します。ファイルサイズが大きくなる場合、FTPなどの代替手段を使用されることをご検討ください。
    大きな BLOB 項目を転送する場合、ファイルサイズに応じて MGREQ.INI の CommTimeout を設定する必要があります。この値は、あらかじめFTPなどでファイルの転送にかかる時間を計測して、その値にプラスアルファを加えた値に設定してください。
    しかし、この値は、内部的な通信のリトライの間隔となるため、あまり大きな値を設定することは推奨できかねます。そのため、特に通信回線が細い場合などは、この値が60秒以内で転送できるサイズにとどめることを推奨します。

  • 公開プログラム名中に「|」文字を使うと正しく動作しません。これ以外にも、公開プログラム名にはできるだけ特殊文字や全角文字、半角カナ文字は避けてください。インターネットでの使用時に環境依存のトラブルを避けるには、公開プログラム名は英数字とアンダースコア「_」のみを使用することを推奨致します。

2. MRB 8.3-12で修正された内容

  1. MGrqispi.dll でアクセス違反が起こり、WAM エラーが発生する問題に対応しました。
  2. MGrqgnrc.dll でのマルチCPU対応： マルチCPU環境で、特定のCPUのみを利用するようにフラグを設けました。MGREQ.INI ファイル中に、以下のように指定すると有効になります。
    3. [REQUESTER_ENV]
SpecialAffinity = Y
  3. MRBサービスで、サービス起動時に一定の遅延を置くようにしました。 これは、MRBのサービス に先立って起動しておかなければならない他のサービス等がある場合に、利用することができます。MGRB.INI ファイルに、以下のように指定すると有効になります。
    4. [MRB_ENV]
DelayServiceStart = n
    ここで、「n」には遅延を行う秒数を整数で指定してください。
  4. Magicアプリケーションサーバが高負荷の状況で、MRBからそのアプリケーションサーバの登録が消えてしまう問題に対応しました(980339)。
  5. CGIリクエスタ (mgrqcgi.exe) を使用した場合に、MRB内でハンドルのリークが起こり、2～3万件のリクエストを処理した後でシステム全体が不安定になる問題に対応しました。この問題は Windows NT 上でMRBを実行しているときに起こります。(830903)
  6. Magic アプリケーションサーバでTIMEOUTが発生し、クライアントが RQGNRC_ERR_CNCT_RESET を受け取った場合に、クライアントが RQGNRC_ERR_RT_NOT_RSPND を MRB へ返すように変更しました。この修正により、待機中のMagic アプリケーションサーバがMRBから削除されてしまうことを防止できるようになりました。
  7. HTTPのGETメソッドで複数の文字型パラメータを渡すようなプログラムで、「Aguments」パラメータ中に、２バイト目のコードが0x5Cである全角文字（「ソ、表、噂」など）があると、正しくデータが取得出来ない問題に対応しました。
  8. 公開名中に、２バイト目のコードが 0x7C である全角文字（「ポ、榎」など）があると、正しく実行されない問題に対応しました。
  9. インターネットリクエスタ mgrqcgi.exe および mgrqispi.dll でのクロスサイトスクリプティングの脆弱性の問題に対応しました。


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

チーム開発機能では、Magic独自のリンク構成を持っているリポジトリの内部構造を、複数の開発者が同時にアクセスします。利用にあたっての障害発生の可能性をできるだけ低くするために、以下の点にご留意ください。

Btrieve/Pervasive.SQL の設定

  • Btrieve あるいは Pervasive.SQLエンジンは、サーバ版を使用してください。
  • Btrieve エンジンのトランザクション一貫性 を有効にしてください。 これにより、パフォーマンスよりも、データの一貫性が優先されます。設定するには、Btrieve 6.15 および Pervasive.SQL 7 の場合 Setup ユーティリティ、 Pervasive.SQL 2000/2000i および 8 の場合 Pervasive Control Center を使用します。 設定内容は以下の通りです。

    パラメータ | 設定値
    トランザクション一貫性保守 | On

  • もし、Btrieve 6.15 をご利用になる場合には、ファイルのロックの期間をできるだけ短くするため、以下のパラメータの設定も推奨します。

    Btrieve 6.15 パラメータ | 設定値
    オペレーションバンドルリミット | 1
    起動タイムリミット | 1
    ディスクI/Oウェイトリミット | 1

    Pervasive.SQL 7以降 (7、2000、2000i、8) では、この設定によりロック期間は変わりませんので、デフォルト値のままご利用ください。「dbMAGIC Pervasive データベースゲートウェイ追加情報 」の「P.SQL の環境設定について」の項もご参考にしてください。

一般的注意事項

  • チーム開発を行なう場合、同一フォルダ内に、複数のアプリケーション（CTL)を混在させないことを推奨いたします。(1000016)
  • 開発版で開発中のCTLファイルを実行版で実行する場合、CTLの同期が取られません。実行版で運用しているCTLを直接開発版で変更しないようにしてください。(1000017)
  • 長時間、プログラムリポジトリ内に留まらず、こまめにチェックインしMCFを保存するようにします。
  • こまめにアプリケーションのバックアップを行ってください。
  • 破損したMCFを使用して継続してリポジトリ入出力を行わないでください。MCFが破損した場合、リポジトリ出力／入力でも復元できない場合があります。
  • 開発時にMagicが異常終了した場合は、再起動し修正中のプログラムが破損していないか確認し、可能であれば、１世代前のアプリケーションに復元してください。
  • 余裕のあるメモリー環境でお使いください。メインメモリとして、256M以上を推奨いたします。
  • 読込専用でタスクをオープンしていても、フォームは変更できますが、その内容は CTLには反映されません。
  • タイプまたはテーブルの修正中は他のリポジトリの修正作業を行わないようにしてく ださい。(0505263)
  • プログラムリポジトリの順序が入れ替わる、下記のような作業は極力しないでください。これらの操作はチーム開発中には行わず、新規作成予定のプログラムは事前に空プログラムを生成しておいてください。

    • プログラムの新規作成

    • プログラムの削除

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

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

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

    • プログラムの上書き

    • プログラムのコピー

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

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

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

  • 複数の開発者が同一のプログラムを修正しないように、事前に担当プログラムの分担を決めておいてください。

バージョン管理マネージャ (MVCS) について

  • CTL特性の[MVCSスナップショットファイル]欄および[MVCSロックファイルパス]欄は、 全てのクライアントにおいて共通に利用できるように指定してください。そのときに、必ず各CTL毎に[MVCSスナップショットファイル]および[MVCSロックファイルパ ス]欄の設定がユニークになるように留意してください。 これらの指定を省略する場合、アプリケーションの識別子を元にパスが決定される為、 [設定／アプリケーション]の[識別子]欄は、全てのクライアントにおいて共通に利用できるように指定してください。そのときに、必ず各CTL毎に「識別子」がユニーク になるように指定してください。 例えば[MVCSスナップショットファイル]欄の指定を省略した状態で、アプリケーショ ンの識別子が "Z:\MAGIC\CTL\AA" の場合、スナップショットファイルは "Z:\MAGIC\CTL\AASNP.MCF" という名前で作成されます。
  • また、[MVCSデータベース]欄も全てのクライアントで共通に利用できるように指定 してください。そして、必ず各CTL毎に[MVCSデータベース]欄が指すデータベース の[位置]欄は、ユニークになるように設定してください。「位置」を決める場合には 以下の点に留意してください。
    • データベーステーブルの名前には「MVCS」「MagicMVCSDataBase」を使用しないで ください。これはdbMAGIC内部で使用しているデータベース名となります。
    • dbMAGICをインストールしたディレクトリには「MV」という名前で始まるファイル やディレクトリを作成しないでください。これはdbMAGIC内部で使用しているMVCS によって自動的に作成されるファイルの識別子となります。
  • MVCSに登録されるユーザIDは、通常は現在のユーザIDが使用されますが、アプリケー ションパーティショニングでログオンしたユーザIDが使用されることがあります。


各ゲートウェイ固有の追加情報

ここでは、各ゲートウェイに固有な追加情報について記載します。

  • Pervasive SQL
  • Btrieve
  • Oracle8/Oracle8i
  • MS-SQL Server 6.5
  • MS-SQL Server 7.0
  • Memory
  • ODBC

全ゲートウェイ製品に共通な事項

動作環境及び注意事項

  • 各ゲートウェイにおいて動作保障されている環境については、サポートDBMS、OS対応一覧 をご参照ください。
  • dbMAGIC Ver8.2K4 SP2以上の動作する機種および環境が必要です。
  • dbMAGIC Ver8.2K4 SP2以上と組み合わせて使用してください。それ以外の製品と組み合わせて使用した場合の動作は予測できません。
  • 各DBMS製品は、日本語版を使用してください。日本語版以外のDBMS製品を利用した場合の動作は保証されていません。

使用条件

  • 各ゲートウェイプログラムを購入本数以上複製すること、または逆コンパイル・逆アセンブルすること、もしくは再使用許諾・賃貸・貸与及び譲渡することはできません。
  • 各ゲートウェイプログラムは、特定物として現存するままの状態で提供され、マジックソフトウェア・ジャパン株式会社及びMagic Software Enterprises Ltd. は、本プログラムの瑕疵及びその使用結果について一切保証もせず、損害賠償も負いません。
  • 本プログラムの著作権は、Magic Software Enterprises Ltd. にあります。


dbMAGIC Pervasive データベースゲートウェイ 追加情報

dbMAGIC Pervasive データベースゲートウェイ Ver8.2K4 SP2 追加情報

dbMAGIC Ver8.2K4 SP2 用 (8.2-05AJ)

本文書には、dbMAGIC Pervasive データベースゲートウェイ Ver8.2K4 として提供されるプログラム(MGPV2K.DLL)に関する情報が含まれています。なお、文書中に記述されている"本プログラム"とは、"MGPV2K.DLL"を示します。

本文書中において特にことわりのない場合、Pervasive.SQL は Pervasive.SQL 2000 Workgroup を指します。以下 Pervasive.SQL は P.SQL と表記します。

なお、P.SQL を使用する場合、P.SQL に添付されるドキュメントも参照してください。

  • 動作環境
  • 仕様および制限事項
  • 修正履歴
    • Ver8.2K4 SP2 (8.2-05AJ) での修正

動作環境

  • 本ゲートウェイと P.SQL 2000 Workgroup を組合わせて使用する場合、dbMAGIC Ver8.2K4 に添付されている P.SQL 2000 Workgroup SP1a を使用してください。
  • 本ゲートウェイで動作保障されている動作環境については、「サポートDBMS、OS対応一覧」をご参照ください。
  • 基本構成
    P.SQL 2000 Workgroup はデータサーバとなるマシンにインストールし、そのマシンの P.SQL のエンジンからのみデータをアクセスすることをお勧めします。詳細は 下記の「Windows 9x または Windows NT の簡易 LAN について」を参照してください。
  • 本ゲートウェイの使用する P.SQL の機能
    P.SQL ではトランザクショナルアクセス及びリレーショナルアクセスがサポートされています。本ゲートウェイではトランザクショナルアクセスを使用していますので、リレーショナルアクセスは使用できません。アクセス方法等の詳細については P.SQL に添付されるオンラインマニュアル（Getting Started with Pervasive.SQL）を参照してください。

仕様および制限事項

動作環境について

  • dbMAGIC Ver8 では「Ver4.3ロック互換機能」はサポートされなくなりました。
  • P.SQL の仕様により、トランザクショナルエンジンのバージョンが異なる場合（例 P.SQL 2000 と Btrieve Ver6.15）、同時に同一ファイルに正常にアクセスできません。そのため、dbMAGIC Ver8.2K4 SP2 と dbMAGIC Ver8.2K3 以前のバージョンで同一ファイルにアクセスする場合、必ずエンジンのバージョンを揃えてください。

最適環境設定

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

場所 | パラメータ名 | 設定値
[DBMS]テーブル | パラメータ | /EXTENDED=Y
[データベース]テーブルの[データベース特性]ダイアログ | dbMAGICロック | T=テーブル
 | ロックパス | スペース（何も設定しない）
[動作環境]テーブル | ロックファイル | mglock.dat
[タスク制御]ダイアログ | ロック方式 | 入力時 （オンラインタスク） 即時 （バッチタスク）

インストールについて

  • P.SQL をインストールする時、Windows の System ディレクトリに既に以下のファイルが存在している場合、それらのプログラムの拡張子は OLD に変更されます。必要に応じて、この旧バージョンのファイルをコピーして保管、または以前の状態 に戻して使用してください。
    • WBTRCALL.DLL
    • WBTRVRES.DLL
    • WBTRV32.DLL
    • W7BTRV7.DLL

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

  • 中規模以上のシステムでは、P.SQL サーバエンジンの使用を強く勧めます。P.SQL のサーバ製品は dbMAGIC にはバンドルされていません。これらの P.SQL (Server Edition) を使用する場合、レコードの選択はサーバで行われます。範囲で指定されたレコードだけがクライアントに送られます。
  • dbMAGIC Ver8 から P.SQL (Server Edition) を使用する場合、[クライアント／アクセス]カテゴリの[リクエスタ]設定を「On」にしてください。
  • P.SQL に対して、下位バージョンのリクエスタからのアクセスはサポートされていませんので、P.SQL 2000 へのリクエストは P.SQL 2000 のリクエスタを使用してください。

Windows 9x または Windows NT の簡易 LAN について

  • Windows 9x の Microsoft ネットワーク共有サービス、または、Windows NT のワークステーションを利用して、任意の Windows 9x または Windows NT のマシンをdbMAGIC のサーバとして使用し、更にこのマシン上で dbMAGIC を実行することができます。
  • この場合、全てのマシンがサーバとして動作する可能性があります。そのため、P.SQL に添付の Gateway Locator を使用、または[クライアント／アクセス]カテゴリの[ローカル]設定および[リクエスタ]設定を設定する等、サーバとなるマシンが明確になるように設定することをお勧めします。
  • サーバとなるマシンでは[エンジン／アクセス]カテゴリの[リモートリクエストの受付]設定を「On」にしてください。

P.SQL の環境設定について

  • 環境設定は P.SQL に添付の Pervasive Control Center にある Configuration Utility にて行います。以下の設定値を確認してください。
    カテゴリ | 設定 | 設定値
    エンジン／通信バッファサイズ | 通信バッファサイズ | 設定可能な最大値
    エンジン／通信バッファサイズ | 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 からもダウンロード可能です。

Magicでの設定

  • 可変レコード長と固定レコード長との合計サイズは 32767 バイトまでです。これは dbMAGIC の仕様制限によるものです。
  • １個のファイルにつき、BLOB 型項目を１項目のみ定義することができます。また、メモ型項目と BLOB 型項目は１個のファイルに同時に定義できません。
  • P.SQL を使用する場合、トランザクションの範囲外ですべてのファイルをオープンしてください。
  • レコードレベルのトランザクション機能を使用する場合、レコードレベルの[トランザクション]パラメータを「オンロック」としてください。これは P.SQL ではトランザクション開始前に読込んだレコードに対して更新および削除ができず、トランザクション終了時にレコードロックを解除するためです。
  • レコードレベルの[トランザクション]パラメータを「前処理」とした場合、トランザクション開始前にレコードが読込まれます。
  • レコードを確定する場合、処理対象となるレコードの前または後のレコードを一時的に取得することがあります。そのため、それらのレコードに既にロックがかけられている場合、レコードロックが発生することがあります。
  • 親子タスクにおいて同一のテーブルを使用した場合、子タスクでレコード登録に失敗すると、親タスクのレコードに対するロック情報が残る場合があります。
  • [レコードアクセス失敗時]パラメータに「リトライ」が指定されているバッチタスクを実行中、レコードのアクセスに失敗するとリトライせずにアボートする場合があります。
  • [レコードアクセス失敗時]パラメータに「スキップ」が指定されているバッチタスクを実行中、レコードのアクセスに失敗するとスキップせずにアボートする場合があります。
  • 存在するファイルに対してテーブル特性のアクセスキーおよび暗号化キーを変更することはできません。ただし、新規に設定する事は可能ですので、変更する場合、一度これらの設定を解除してから再設定してください。
  • [データベース特性]ダイアログの[照合順序ファイル]は無効となります。
  • ログファイル名は、セッションごとに設定されるユーザ名とプロセスＩＤが自動的にファイル名に付加されます。そのため、ログファイルを長いファイル名をサポートしないディスク上に作成しないでください。
  • [DBMS]テーブルの Btrieve パラメータに「/BTRIEVE_ENGINE=LOCAL」を設定した場合、多量のレコードをフェッチする場合のキャンセルの反応が良くなります。これは P.SQL のサーバエンジンを使用せず、クライアントエンジンだけを使用する場合に追加してください。

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

下表は、物理トランザクション使用時に、処理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 によって自動的にロックされます。これを暗黙のページロックと言います。

暗黙のページロックによってロックされたページ上にある明示的にロックされていないレコードを更新、削除する場合、ロックとなります。

暗黙のページロックとレコードロックは互いにブロックしません。

dbMAGIC でのマルチユーザ制御

レコードロックが発生した場合の dbMAGIC の動作は[タスク制御]ダイアログの[レコードロック時]パラメータにより決定されます。デフォルトの設定は「リトライ」です。ただし、オンラインタスクではつねに「リトライ」となります。

レコードの挿入、更新、削除に失敗した場合の dbMAGIC の動作は[レコードアクセス失敗時]パラメータにより決定されます。デフォルトの設定は「アボート」です。

ただし、オンラインタスクではつねに「アボート」となります。また、トランザクションを使用している場合、トランザクションの[エラー]パラメータにより決定されます。デフォルトの設定は「アボート」です。

問題点

[レコードアクセス失敗時]パラメータまたは[エラー]パラメータが「アボート」のタスクでは、レコードの挿入、更新、削除においてレコードロックまたはファイルロックとなった場合、タスクはアボートします。この動作は、Ver7 以前の dbMAGIC と 標準添付の Btrieve の組み合わせの動作と異なります。

問題の対応

レコードの挿入、更新、削除においてレコードロックまたはファイルロックとなった場合、そのオペレーションをリトライします。リトライが失敗した場合、[レコー ドアクセス失敗時]パラメータの動作を行います。リトライ回数およびリトライ間隔を設定するには以下の２つの環境変数を設定してください。

環境変数名 | 設定値 | デフォルト値
B6_RTRY | エラーステータスを返すまでのリトライ回数 | 1200 回
B6_MS | リトライ間隔 (ミリ秒単位) | 500 ミリ秒

ほとんどの場合はデフォルト設定で問題が発生しないと思われますが、問題が発生する場合にはこれらの環境変数を適当な値に設定して対応してください。

環境変数の変更は、Windows NT ではコントロールパネルのシステム、Windows 9x では autoexec.bat にて設定します。

問題の対応の副作用

並行トランザクションがコミット、または、アボートされるか、リトライ回数が上限を越えるまで dbMAGIC に制御が戻って来ません。必要に応じてリトライ回数とリトライ間隔を調節してください。

ファイルロック関係

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

  1. ユーザＡとユーザＢが dbMAGIC のロックファイル（mglock.dat）を共用します。
  2. ユーザＡがオンラインタスクにより、あるファイルのあるレコードをロックします。（このオンラインタスクの[ロック方式]パラメータは「O=入力時」に設定されています。[ロック方式]パラメータは[タスク制御]ダイアログの中にあります。）
  3. ユーザＢがバッチタスクにより、上記ファイルのあるレコードを更新した後、ユーザＡがロック中のレコードにきたところで、レコードロック解除待ちになります。（このバッチタスクのパラメータは次のように設定されています。[タスク制御]ダイアログの[ロック方式]パラメータは「I=即時」、[タスク定義]テーブルの[トランザクション]パラメータは「Yes」。）
  4. ユーザＡがレコードの更新を行います。ステップ３で、このレコードを含むページに対して暗黙のページロックがかかっているため、ユーザＡの方もレコードロック解除待ちになります。なお、Escキーを押せば、レコードロックは解除できます。

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

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

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

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

以前のファイルフォーマットで新規ファイルを作成したい場合、[エンジン／互換性]カテゴリの[作成ファイルのバージョン]設定を使用したいファイルフォーマットに合わせて変更してください。

注意事項：

  1. dbMAGIC においてファイル定義を変更（例えば、項目の定義順の入替え等）した場合にも、ファイルフォーマットは設定されているファイルフォーマットに変更されます。
  2. ファイルフォーマットは 6.x 以上にすることをお勧めします。Btrieve 5 で作成されたファイルと Btrieve 6 以降で作成された 5.x フォーマットには差異がある為です。また、パフォーマンスの面からも 6.x 以上にすることをお勧めします。
  3. 6.x 以前のフォーマットのファイルは BLOB 型項目を扱えません。これは P.SQL の仕様制限によるものです。
  4. 6.x 以前のフォーマットのファイルに対する並行トランザクションは排他トランザクションとして扱われるため、ファイル全体がロックされます。これは P.SQL の仕様制限によるものです。
  5. 6.x 以前のフォーマットのファイルに対する Extended 命令は発行されません。

ファイル名について

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

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

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

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

P.SQL 2000 のODBCドライバの使用について

  • 定義取得においてインデックスの情報が正しく取得できない場合があります。必要に応じて、定義取得後にインデックスの定義を修正してください。

修正履歴

Ver8.2K4 SP2 (8.2-05AJ) での修正

  • /EXTENDED=Y の時、範囲処理でメモリーオーバーランになる件に対応しました。


dbMAGIC Btrieve データベースゲートウェイ 追加情報

dbMAGIC Btrieve データベースゲートウェイ Ver 8.2K4 SP2 追加情報

dbMAGIC Ver 8.2K4 SP2 用 (8.2-05AJ)

本文書には、dbMAGIC Btrieve データベースゲートウェイ Ver8.2K4 として提供されるプログラム(MGBTRV.DLL)に関する情報が含まれています。なお、文書中に記述されている"本プログラム"とは、"MGBTRV.DLL"を示します。

  • 動作環境
  • 修正履歴
  • 仕様および制限事項

動作環境

  • 本ゲートウェイと Btrieve 6.15 Workstation を組合わせて使用する場合、dbMAGIC Ver8.2K4 に添付されている Btrieve 6.15.430 を使用してください。
  • 本ゲートウェイで動作保障されている動作環境については、「サポートDBMS、OS対応一覧」をご参照ください。
  • 本文書中において特にことわりのない場合、Btrieve は Ver6.15 を指します。

修正履歴

Ver 8.2-03J での変更点

  • [DBMS]テーブルのパラメータ欄に「/EXTENDED=N」を指定せず、かつ以下のような範囲処理を設定した場合、正しく動作するようになりました。
    1. セレクトコマンドの範囲大にのみ条件を設定した場合
    2. CNDRANGE 関数の条件が 'False'Log となる場合

Ver 8.2-04J での変更点

  • 内部的なメモリの確保方法を変更しました。以前は以下のエラーが発生することがありました。
         mem_free() Corrupted Memory !!! (rc = -200)
  • 内部的なGetDirectオペレーションの発行条件を変更しました。以前はメインファイルとリンクファイルを同一ファイルかつ同一キーで使用していた場合、リンク失敗後のレコードが表示されないことがありました。

Ver 8.2-05J での変更点

  • 上位タスク等でレコードがロックされている場合、同一レコードに対するデータベースによるロックが解除されないようになりました。ただし、dbMAGIC Ver8.2K4 と組み合わせて使用する必要があります。
  • 項目更新において加算更新を使用した場合、最初にリンクされたレコードに対するロックが解除されるようになりました。ただし、dbMAGIC Ver8.2K4 と組み合わせて使用する必要があります。
  • ブレイク処理において最後に処理されるメインテーブルのレコードに対するロックが解除されるようになりました。
  • ファイルの作成時に同じ名前のファイルが存在するか否かを確認するようになりました。これは Btrieve の API を使用して確認します。これにより、ファイルのオープン時と作成時の二段階でファイルの存在が確認されるようになり、ファイルが存在するにも関わらず、ファイルのオープン時にステータス12が返された場合、「テーブルがオープンできません.」というエラーメッセージが表示されます。
  • Get オペレーションにおいてセンド側のキーバッファの情報がログに出力されるようになりました。
  • フローモニターにゲートウェイのログの内容を表示する場合、1バイト目に不必要な文字が表示されないようになりました。

Ver 8.2-05AJ での修正

  • /EXTENDED=Y の時、範囲処理でメモリーオーバーランになる件に対応しました。

仕様および制限事項

動作環境について

  • 「Ver4.3ロック互換機能」はサポートされなくなりました。必要に応じて dbMAGICを Ver5.7B3 以降にバージョンアップして頂くことをお勧めします。
  • Btrieve の仕様により、Btrieve エンジンのバージョンが異なる場合（例 Ver6.15と Ver5.10）、同時に同一ファイルに正常にアクセスできません。したがって、dbMAGIC Ver8 と dbMAGIC Ver6 以前のバージョンで同一ファイルにアクセスする場合、Btrieve のバージョンを Ver6.15 に揃えてください。
  • dbMAGIC Ver5.x を使用する場合、dbMAGIC Ver5.x DOS 版と Btrieve Ver6.15 for DOS は同時に使用できませんので、dbMAGIC Ver5.x Windows 版 と Btrieve Ver6.15 for Windows 版を利用してください。これは Btrieve で使用している DOS EXTENDER が 他の DOS EXTENDER（dbMAGIC Ver5.x で使用している DOS EXTENDER を含む）との共存ができないためです。

最適環境設定

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

場所 | パラメータ名 | 設定値
[DBMS]テーブル | パラメータ | /EXTENDED=Y
[データベース]テーブルの[データベース特性]ダイアログ | dbMAGICロック | T=テーブル
 | ロックパス | スペース（何も設定しない）
[動作環境]テーブル | ロックファイル | mglock.dat
[タスク制御]ダイアログ | ロック方式 | 入力時 （オンラインタスク） 即時 （バッチタスク）

インストールについて

  • Btrieve をインストールする場合、Windows の System ディレクトリに既に以下のファイルが存在している場合、それらのプログラムの拡張子は OLD に変更されます。必要に応じて、この旧バージョンのファイルをコピーして保管、または以前の状態に戻して使用してください。
    • WBTRCALL.DLL
    • WBTRVRES.DLL
  • Btrieve 関連の README ドキュメントは、Btrieve プログラムグループの BIN ディレクトリにコピーされます。参照する場合、アイコンからダブルクリックしてください。

サーバベースの Btrieve Ver6.15 の使用について

  • 中規模以上のシステムでは、Btrieve for Windows NT Ver6.15 (Server Edition)または Btrieve for NetWare Ver6.15 (Server Edition) の使用を強く勧めます。このどちらも dbMAGIC にはバンドルされていません。これらのBtrieve (Server Edition) を使用する場合、レコードの選択はサーバで行われます。範囲で指定されたレコードだけがクライアントに送られます。
  • dbMAGIC Ver8 からサーバベースの Btrieve を使用するためには、Microsoft Windows 9x および Microsoft Windows NT 上からリクエストするための環境設定を行う必要があります。設定方法については、Btrieve の付属マニュアルを参照してください。
  • サーバベースの Btrieve を実行するためには､ そのリクエストに必要となる数個の DLL ファイル（下記参照）にパスを通す必要があります。これらのリクエスタがパスにない場合、クライアントベースの Btrieve が設定されていれば、そのリクエストを処理します。ただし、これらのファイルはサーバベースのBtrieve に付属のものを使用してください。詳細については Btrieve の付属マニュアルを参照してください。
    • Windows 9x 環境で使用する DLL ファイル： WBTRV32.DLL, W32BTICM.DLL
    • Windows NT 環境で使用する DLL ファイル： WBTRV32.DLL, W32BTICM.DLL

Windows 9x または Windows NT の簡易 LAN について

Windows 9x の Microsoft ネットワーク共有サービス、または、Windows NT のワークステーションを利用して、任意の Windows 9x または Windows NT のマシンをdbMAGIC のサーバとして使用し、更にこのマシン上で dbMAGIC を実行することができます。その場合、サーバとして使用しているマシンの Btrieve の設定を次のように変更することをお勧めします。

コンポーネント | カテゴリ | パラメータ | 設定値 | 備考
MKDE (Workstation Edition) | ファイル設定 | ローカルファイルの共有 | Multi Engine | 必須の設定です。
 | クライアント／システムトランザクション | オペレーションバンドルリミット | 1 | 注1
 |  | 起動タイムリミット | 1

注1： この設定により、システムトランザクションの実行が頻繁に行われるようになるため、ロックの解除は速くなりますが、ディスクアクセスは増加 することがあります。

Btrieve の設定 (Windows 9x/Windows NT Ver4)について

  • 次の２つのパラメータを変更してください。ここで設定する値はデフォルト値とは異なる値です。

    コンポーネント | カテゴリ | パラメータ | 設定値
    MKDE (Workstation Edition) | メモリリソース | 通信バッファサイズ | 65827
    クライアント／システムトランザクション | トランザクション一貫性保守 | On

  • 可変レコード長と固定レコード長との合計サイズは 32767 バイトまでです。これは dbMAGIC の仕様制限によるものです。
  • １個のファイルにつき、BLOB 型項目を１項目のみ定義することができます。また、メモ型項目と BLOB 型項目は１個のファイルに同時に定義できません。
  • Btrieveでは、トランザクション内でファイルをオープンすると致命的エラーが発生します。トランザクションの範囲外ですべてのファイルをオープンしてください。
  • レコードレベルのトランザクション機能を使用する場合、レコードレベルの[トランザクション]パラメータを「オンロック」としてください。これは Btrieve ではトランザクション開始前に読込んだレコードに対して更新および削除ができず、トランザクション終了時にレコードロックを解除するためです。
  • レコードレベルの[トランザクション]パラメータを「前処理」とした場合、トランザクション開始前にレコードが読込まれます。
  • レコードを確定する場合、処理対象となるレコードの前または後のレコードを一時的に取得することがあります。そのため、それらのレコードに既にロックがかけられている場合、レコードロックが発生することがあります。
  • 親子タスクにおいて同一のテーブルを使用した場合、子タスクでレコード登録に失敗すると、親タスクのレコードに対するロック情報が残る場合があります。
  • [レコードアクセス失敗時]パラメータに「リトライ」が指定されているバッチタスクを実行中、レコードのアクセスに失敗するとリトライせずにアボートする場合があります。
  • [レコードアクセス失敗時]パラメータに「スキップ」が指定されているバッチタスクを実行中、レコードのアクセスに失敗するとスキップせずにアボートする場合があります。
  • 存在するファイルに対してテーブル特性のアクセスキーおよび暗号化キーを変更することはできません。ただし、新規に設定する事は可能ですので、変更する場合、一度これらの設定を解除してから再設定してください。
  • [データベース特性]ダイアログの[照合順序ファイル]は無効となります。
  • ログファイル名は、セッションごとに設定されるユーザ名とプロセスＩＤが自動的にファイル名に付加されます。そのため、ログファイルを長いファイル名をサポートしないディスク上に作成しないでください。
  • [DBMS]テーブルの Btrieve パラメータに「/BTRIEVE_ENGINE=LOCAL」を設定した場合、多量のレコードをフェッチする場合のキャンセルの反応が良くなります。これは Btrieve のサーバエンジンを使用せず、クライアントエンジンだけを使用する場合に追加してください。

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

下表は、物理トランザクション使用時に、処理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）を共用してください。

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

暗黙のページロックの説明

Btrieve6.15 では並行トランザクションをサポートしています。つまり、複数のアプリケーションが同じファイル（Ver6.xのファイル形式）に同時に複数のトランザクションを実行できます。

並行トランザクション中にファイルが変更されると、変更されたレコードを含むページ（レコードが可変長のときには複数ページ）とそれに関連するインデックスのページが、Btrieve によって自動的にロックされます。これを暗黙のページロックと言います。

暗黙のページロックによってロックされたページ上にある明示的にロックされていないレコードを更新、削除する場合、ロックとなります。暗黙のページロックとレコードロックは互いにブロックしません。

dbMAGIC でのマルチユーザ制御

レコードロックが発生した場合の dbMAGIC の動作は[タスク制御]ダイアログの[レコードロック時]パラメータにより決定されます。デフォルトの設定は「リトライ」です。ただし、オンラインタスクではつねに「リトライ」となります。

レコードの挿入、更新、削除に失敗した場合の dbMAGIC の動作は[レコードアクセス失敗時]パラメータにより決定されます。デフォルトの設定は「アボート」です。

ただし、オンラインタスクではつねに「アボート」となります。また、トランザクションを使用している場合、トランザクションの[エラー]パラメータにより決定されます。デフォルトの設定は「アボート」です。

問題点

[レコードアクセス失敗時]パラメータまたは[エラー]パラメータが「アボート」のタスクでは、レコードの挿入、更新、削除においてレコードロックまたはファイルロックとなった場合、タスクはアボートします。この動作は、Ver7 以前の dbMAGIC と 標準添付の Btrieve の組み合わせの動作と異なります。

問題の対応

レコードの挿入、更新、削除においてレコードロックまたはファイルロックとなった場合、そのオペレーションをリトライします。リトライが失敗した場合、[レコー ドアクセス失敗時]パラメータの動作を行います。リトライ回数およびリトライ間隔を設定するには以下の２つの環境変数を設定してください。

環境変数名 | 意味 | デフォルト値
B6_RTRY | リトライ回数 | 1200回
B6_MS | リトライ間隔 （ミリ秒単位） | 500 ミリ秒

ほとんどの場合はデフォルト設定で問題が発生しないと思われますが、問題が発生する場合にはこれらの環境変数を適当な値に設定して対応してください。

環境変数の変更は、Windows NT ではコントロールパネルのシステム、Windows 9x では autoexec.bat にて設定します。

問題の対応の副作用

並行トランザクションがコミット、または、アボートされるか、リトライ回数が上限を越えるまで dbMAGIC に制御が戻って来ません。必要に応じてリトライ回数とリトライ間隔を調節してください。

ファイルロック関係

  • Btrieve の仕様（暗黙のページロック）により、次のような手順で操作を行うと、デッドロック状態になる場合があります。
    1. ユーザＡとユーザＢが dbMAGIC のロックファイル（mglock.dat）を共用します。
    2. ユーザＡがオンラインタスクにより、あるファイルのあるレコードをロックします。（このオンラインタスクの[ロック方式]パラメータは「O=入力時」に設定されています。[ロック方式]パラメータは[タスク制御]ダイアログの中にあります。）
    3. ユーザＢがバッチタスクにより、上記ファイルのあるレコードを更新した後、ユーザＡがロック中のレコードにきたところで、レコードロック解除待ちになります。（このバッチタスクのパラメータは次のように設定されています。[タスク制御]ダイアログの[ロック方式]パラメータは「I=即時」、[タスク定義]テーブルの[トランザクション]パラメータは「Yes」。）
    4. ユーザＡがレコードの更新を行います。ステップ３で、このレコードを含むページに対して暗黙のページロックがかかっているため、ユーザＡの方もレコードロック解除待ちになります。
    なお、Escキーを押せば、レコードロックは解除できます。
  • クライアントベースの Btrieve Ver6.15を使用して、別々のリモートクライアントからレコードを変更する場合、最初のクライアントによる変更がディスクにコミットされるまで、他のクライアントはその共有ファイルを変更できません。そのため、このようなマルチユーザ環境でレコードを変更する際、"ファイルのロック待ちです" というメッセージが表示され、トランザクションの [エラー]パラメータの設定に準じてアボートまたはリトライすることがあります。
  • dbMAGIC が異常終了した場合、ファイルがロック状態になる場合があります。これは Btrieve エンジンがまだ動作しているため、Btrieve で管理しているロック情報が残るためです。この現象の回避策としては、以下のようにしてください。
    • Windows NT では、サービス管理で、Btrieve エンジンを停止させます。
    • Windows 9x では、デスクトップで、CTL+ALT+DELキーを押して、タスク一覧を表示させ、そこで、Btrieve エンジン（W32mkde.exe）を強制終了させます。
  • Btrieve エンジンを dbMAGIC から自動的に起動させるのではなく、スタートアッププログラムに登録する等、事前に Btrieve エンジンを立ちあげておくことをお勧めします。また、このとき、MicroKernel エンジンの「設定」/「自動スタート時にアイコンを隠す」は offにしてください。このようにしておきますと、dbMAGIC の起動がより速くなり、dbMAGIC の異常終了などで Btrieve の状態が異常となった場合、手動で Btrieve エンジンを終了させることができます。
  • また、Btrieve の設定を次のように変更することをお勧めします。

    コンポーネント | カテゴリ | パラメータ | 設定値
    MKDE (Workstation Edition) | ﾌｧｲﾙ設定 | ﾛｯｸﾌｧｲﾙの削除 | On

    これは Btrieve Ver6.15.430 からロックに対する処理が改善されたことからも有効と考えられます。

Btrieve Ver6.x のフォーマットのファイルにアクセスする方法

Btrieve Ver6.x ファイルフォーマットで新規ファイルを作成したり、既に Btrieve Ver6.x ファイルフォーマットで作成されたファイルに対し て読み書きを行いたい場合、Btrieve ユーティリティとして製品に添付されている Microkernel セットアッププログラム（W32mkset.exe、Btrieve サーバエンジンを使用する場合、NTMSETUP.EXE）を起動し、以下の設定を行ってください。

コンポーネント | カテゴリ | パラメータ | 設定値
MKDE (Workstation Edition) 注1 | ファイル設定 | Ver6.x 以前のフォーマットでファイルを作成 | Off

注1： Btrieve サーバエンジンを使用する場合、[コンポーネント] として 「Microkernel DB Engine」を選択します。

注意事項：上記の [現在値] の値が「Off」に設定されている時、dbMAGIC で Btrieve Ver6.x 以前のファイルフォーマットで作成されたファイルのファイル定義を変更（例えば、項目の定義順を入れ替える等）した場合、そのファイルのフォーマットは Btrieve Ver6.x のファイルフォーマットに変更されます。

Btrieve Ver 5.x のフォーマットのファイルにアクセスする方法

・ Btrieve Ver 5.x のファイルフォーマットで新規ファイルを作成したり、既に Btrieve Ver 5.x のファイルフォーマットで作成されたファイルに対して読み書きを行いたい場合、dbMAGIC 起動前に、Btrieve ユーティリティとして製品に添付されている Microkernel セットアッププログラム（W32mkset.exe、Btrieve サーバエンジンを使用する場合、NTMSETUP.EXE）を起動し、以下の設定を行ってください。

コンポーネント | カテゴリ | パラメータ | 設定値
MKDE (Workstation Edition) 注1 | ファイル設定 | Ver6.x 以前のフォーマットでファイルを作成 | On

注1： Btrieve サーバエンジンを使用する場合、[コンポーネント] として 「Microkernel DB Engine」を選択します。

注意事項：

  1. 上記の [現在値] の値が「On」に設定されている時、dbMAGIC でBtrieve Ver 6.x のファイルフォーマットで作成されたファイルのファイル定義を変更（例えば、項目の定義順を入れ替える等）した場合、そのファイルのフォーマットは Btrieve Ver 5.x のファイルフォーマットに変更されます。
  2. Btrieve Ver 5.x のフォーマットのファイルは BLOB 型項目を扱えません。これは Btrieve の仕様制限によるものです。
  3. Btrieve Ver 5.x のフォーマットのファイルに対する並行トランザクションは排他トランザクションとして扱われるため、ファイル全体がロックされます。これは Btrieve の仕様制限によるものです。

ファイル名について

  • 長いファイル名を使用できます。ただし、ファイル名の最大長に関しては Btrieve エンジンが動作しているオペレーティングシステムの仕様の制限、Btrieve ゲートウェイが動作しているオペレーティングシステムの仕様の制限、および Btrieve エンジンがサポートしている仕様の制限を受けます。ファイル名の最大長の詳細については、各々の製品に添付されているマニュアルおよび注意事項を参照してください。
  • dbMAGIC Ver8 と Btrieve for Windows NT Ver6.15 (Server Edition) を使用して、Windows NT Server のディスク上に長いファイル名を持つファイルを作成する場合、約80文字のファイル名まで使用することができます。なお、このケースで Btrieve サーバエンジンではなく、Btrieve クライアントエンジンを使用した場合、上記の制限はありません。
  • ファイル名に空白文字を使用することはできません。空白文字を使用した場合、空白文字の１つ手前の文字までをファイル名として扱います。これは Btrieve の仕様制限によるものです。

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

dbMAGICでの注意事項

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

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

Btrieveでの注意事項

  • Btrieve 6 リクエスタから Btrieve 7 Server Engine へのアクセスはサポートされていません。Btrieve 7 リクエスタから Btrieve 6 Server Engine および Btrieve 6 Workstation Engine へのアクセスはサポートされていますので、Btrieve リクエスタは Btrieve 7 リクエスタをご使用下さい。
  • Btrieve ファイルフォーマットは6.x以上にする事をお勧めします。Btrieve 5 で作成されたファイルと Btrieve 6 以降で作成された Btrieve 5.x フォーマットには差異がある為です。
  • Btrieve に正しく接続できない場合等に InstallScout および SmartScout ユーティリティを使用して環境を確認する事ができますが、これらのユーティリティにおいて Scalable SQL に関連する個所の確認をスキップすることをお勧めします。


dbMAGIC Oracle8/Oracle8i データベースゲートウェイ追加情報

dbMAGIC Ver 8.2K4 SP2 用 (8.20-8.19AJ)

本文書には､Ver8.2K4 SP2 として提供された プログラム（MGora8i.dll）に関して、マニュアルの記載事項以外の追加情報が記述されています。なお、文書中に記述されている 「本プログラム」とは、MGora8i.dll を示します。

  • 動作環境及び注意事項
  • 制限事項及び留意事項
  • Oracleのロック機構のみを使用するときの注意事項
  • データベース情報での有効なパラメータ一覧
  • 旧バージョンのOracle7対応ゲートウェイから移行する場合の注意点
  • 修正履歴

動作環境及び注意事項

  • 本ゲートウェイで動作保障されている動作環境については、「サポートDBMS、OS対応一覧」をご参照ください。
  • 本製品は、Oracle8/8i で動作保障されています。Oracle7.x へアクセスした場合の動作保証はされておりません。

制限事項及び留意事項

動作環境

  • Oracleは、Btrieve 等の ISAM 系のファイルマネージャと、排他制御、トランザクション等に関する仕様が異なるため、Btrieve 等の ISAM 系のファイルマネージャを使用する場合と Oracle 等の SQL RDBMSを使用する場合では、プログラムの作成方法が異なる部分があります。
  • Oracle テーブル(BtrieveのDBに相当)に対するアクセス規制は、リファレンスマニュアルに記載されております Btrieve 等の ISAM 系のファイルマネージャの仕様と異なります。
  • OracleG/WはOracleのDB資産を運用するために設計されたものですので、CTLファイルをOracleDBで開発すること、及びそのアプリケーションで運用することに対して、動作の保証はいたしません。
  • 以下のような機能について、動作保証はされておりませんので、ご了承ください。
    • LOBデータ型
    • National Character Setのデータ型
  • Oracle8.1.5クライアント環境の場合、以下の問題が確認されています。
    • コミット時に発生した複数のエラーメッセージを、DBERR関数で取得できない場合があります。
    • データベースデフォルトが年２桁の値で設定されている日付項目の定義取得時、[カラム特性]／[デフォルト値]に正しい値が設定されない場合があります。

テーブル

  • [データベース特性]／[ヒント]に記述したパラメータは有効になりません。
  • [データベース特性]／[XAトランザクション]は、現在サポートしておりません。
  • テーブルリポジトリの［DBテーブル］欄に「オーナー名.テーブル名」でテーブルを設定する場合には、それぞれのインデックスに対して［インデックス特性]の[オーナー名]と[データベース名]を設定してください。
  • 10桁以上の数値型のカラムに対して桁数を変更した場合、変更がOracleのテーブルに反映されないことがあります。
  • テーブルサイズが32000以上のテーブルへのアクセスができないことがあります。

プログラム一般

  • 文字型256桁以上のカラムに対して、範囲大、位置付大にパラメータを設定すると、エラーが出る、またはアベンドすることがあります。
  • バッチタスクでレコードレベルのトランザクションが有効で[タスク制御]／[ロック方式]が即時の場合、エラー欄のリトライパラメータは有効になりません。
  • バッチタスクで次のような条件が重なると、エラーが出ることがあります。この場合、いずれかの条件を外してください。
    • トランザクションがレコードレベルで有効
    • [タスク特性]／[ロック方式]が即時
    • タスクの初期モードが照会以外
    • アクセスモードがＷ：書出のリンクコマンドを使用
    • [タスク特性]／[範囲式]で定義式を設定
  • ブレイク処理を定義したバッチ処理では、[タスク制御]／[ロック方式]は即時に設定してください。
  • オンラインタスクにおいて、レコードロックが解除された後の処理は、タスク定義のレコードレベルのエラー欄の設定に依存します。
    オンライン処理でロックが解除された後、無条件に処理を続行するには、スキップに設定します。
  • バッチ処理において、[タスク制御]／[レコードアクセス失敗時]にリトライ、またはスキップを設定しても、アボートする場合があります。
  • バッチ処理において、[タスク制御]／[ロック方式]が即時以外の場合、レコードロック時の動作は、[タスク制御]／[レコードロック時]パラメータの設定以外に、タスク定義／レコードレベルのエラー欄の設定が有効になる場合があります。

埋め込みSQL

  • 埋め込みSQLで SELECT文 を処理して結果データベースにBtrieveを指定しかつ、サーバベースのBtrieveエンジンを使用する場合は、[動作環境]の[一時ファイルパス]をサーバ上に指定してください。
  • 埋め込みSQLで［戻り値］のパラメータに親タスクのビューを指定し、そのビューを画面に張り付けている場合、親タスクに戻った時、値は更新されますが画面はリフレッシュされません。
  • ストアドプロシジャーのINパラメータにスペースを渡す場合は、1バイトの文字型変数項目をセットして下さい。
  • 埋め込みSQLのSQLステートメントにUNION句とORDER BY句を併用した場合、「問い合せブロックにある結果の列数が無効です」のエラーが出ることがあります。
  • 設定したSQLステートメントがDROPやINSERTなど、出力パラメータを必要としないSQLコマンドであるにも拘わらず、出力パラメータ欄に項目を設定した場合、そのSQLステートメントは実行されません。

Oracleのロック機構のみを使用するときの注意事項

マルチユーザ環境において、dbMAGICのロックファイル(mglock.dat)を非共用にしてOracleの並行処理制御機能のみを使用する場合、テーブルのアクセス規制はOracleの排他制御に依存します。

注意すべき点は、共有モードがR(=読込)の時に、MagicはOracleのSHAREモードのロックをかけますが、このモードでは、MagicのRモードと異なり、他の端末から処理(W=書出)モードでのアクセス（ファイルのオープン）を許可することです。

その際、後の端末がレコードへの書き出しを行い、レコードロックをかけようとする時に、先に共有Rモード、すなわちSHAREモードでロックをかけた端末が終了しない限り、後の端末は待ちの状態が発生します。また下表の特定の場合によっては、先のSHAREモードの端末側でデッドロックが発生することがあります。

以下にアクセス規制を挙げます。

なお、下表は、処理A から先にアクセスされたテーブルに対して、処理Bが後からアクセスした場合に、どういうアクセス規制が働くかを示しています。また、 R/W はアクセスモード R (読込)、共有モード W (書出)を表しています。

記号 | 意味
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

共有モードのロックを有効にするには、タスクレベルのトランザクションをYESにする必要があります。

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

(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）に自動的にコンバートします
 | OLDDATE=Y,N | 日付型記憶型式「String Date」（サイズ 8）のカラムの扱いについて、旧バーションで、かつOLDDATE=Y のパラメータで作成したデータとの互換性を保つ時にだけ(すなわちRAW型になる)、OLDDATE=Y を設定してください。
 | OLDRAW=Y,N | RAW 型のカラムの扱いについて、 旧バーションでかつ OLDRAW=Y のパラメータで作成したデータとの互換性を保つ時にだけ、OLDRAW=Y を設定してください。
[設定]／[データベース]／[データベース特性] | OLDDATE=Y,N | (同上)
 | OLDRAW=Y,N | (同上)
テーブル特性 | CLUSTER=cluster-name | 表がクラスタの一部となるように指定します。なお、クラスタ名の後に(列名)を入れないと「新規登録できません」のエラーになります。 例．CLUSTER="TMP_USR(TMP_ID)" INITRANS=n 表に割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。
 | MAXTRANS=n | 表に割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。
 | PCTFREE=n | 表の行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。
 | PCTUSED=n | 表の各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。
 | STORAGE="strage-clause" | 表に対する記憶特性を指定します。
 | TABLESPACE="tablespace-name" | Oracleがテーブルを作る表領域を示します。
 | OLDDATE=Y,N |
 |  | (同上)
インデックス特性
 | INITRANS=n | インデックスに割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。
 | MAXTRANS=n | インデックスに割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。
 | PCTFREE=n | インデックスの行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。
 | PCTUSED=n | インデックスの各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。
 | STORAGE="strage-clause" | インデックスに対する記憶特性を指定します。
 | OLDDATE=Y,N | (同上)
 | OLDRAW=Y,N | (同上)

旧バージョンのOracle7対応ゲートウェイから移行する場合の注意点

Oracle8のVARCHAR2型とRAW型の有効桁数の拡張に対応されたため、以下の型、書式、記憶型式に設定した場合、旧バージョンとの相違があります。この場合、[カラム特性]／[タイプ]に、それぞれの旧バージョンのタイプを設定することにより、互換性をとることができます。

型 | 書式 | 記憶型式 | Ver7 G/W | Ver8 G/W
文字型 | 2001～4000 注1 | ZString | LONG | VARCHAR2
文字型 | 256～2000 注2 | String | LONG RAW | RAW
メモ型 | 254～1998 注2 | StringMemo | LONG RAW | RAW
メモ型 | 254～1998 注2 | MagicMemo | LONG RAW | RAW

注1： VARCHAR2型が4000バイトまで拡張されたため
注2： RAW型が2000バイトまで拡張されたため

修正履歴

Ver 8.2-02J での変更点

  • Oracle8で、カラム数が256以上あるテーブルにアクセスするとdbMAGICが異常終了するという問題に対応しました。
  • [カラム特性]／[記憶型式]がfloat型の数値型10桁以上のカラムに対して、セレクトコマンドの範囲パラメータ大小に異なる値を設定すると、対象データが存在するにも関わらず、1件も抽出されないという問題に対応しました。
  • 外部結合リンクを使用する際に、セレクトコマンドの位置付に変数、定数を指定すると、リンクが正常に行われないという問題に対応しました。

Ver 8.20-8.12J での変更点

  • Oracle7で、INOUTパラメータを使用したプロシージャを実行する際に、スペースが含まれたデータを使用すると、スペースの前でデータが切れてしまい、正しく渡されないことがあるという問題に対応しました。
  • DBエラーを返すようなSQL文を指定したバッチタスクをサブタスクとして持つプログラムを実行した場合、dbMAGICが応答しなくなるという問題に対応しました。
  • [インデックス特性]／[インデックスの再作成]を「Yes」に設定したテーブルにアクセスした場合、インデックスが削除されないことがあるという問題に対応しました。
  • デフォルト値が設定されたカラムを持つテーブルを定義取得した場合、[カラム特性]／[ﾃﾞｰﾀﾍﾞｰｽ ﾃﾞﾌｫﾙﾄ値]に不正な値が入ることがあるという問題に対応しました。
  • 複数のデータベースにアクセスして、かつ、タスクレベルでROLLBACKが生じるようなバッチプログラムを実行した場合､dbMAGICが異常終了することがあるという問題に対応しました。

Ver 8.20-8.13J での変更点

  • コミット時に発生したエラーメッセージが、DBERR関数の戻り値にセットするように対応しました。あわせてログファイルにも出力するように対応しました。
  • 256桁以上の文字項目の範囲大、位置付け大に値をセットして実行すると、dbMAGICが異常終了した問題に対応しました。
  • 数値項目の範囲大、位置付け大に32768以上の値をセットして実行すると、処理結果は正しいものの、ゲートウェイのログファイルにはWHERE句に不正な値が出力された問題に対応しました。
  • 最後のカラムの記憶形式が｢String Number｣または｢String Date｣のテーブルを更新すると、不定期にメモリ破壊を起こすことがあった問題に対応しました。
  • 結合リンクテーブルの位置付けに定数を設定したプログラムで、メインテーブルの位置付け処理を行う際のSQL文に、WHERE句にリンクジョインの条件が付加するように対応しました。
  • パフォーマンスを考慮し、バッチプログラムで生成されるSQL文を以下のように変更しました。
    1. タスク特性／インデックスの指定がない場合、ORDER BY句を付加しません。
    2. タスク特性／インデックスに重複可キーを設定した場合、ORDER BY句にrowidを付加しません。
    3. ソート欄に重複の可能性のあるメインテーブル、リンクジョインテーブルのカラムを設定した場合、ORDER BY句にrowidを付加しません。
    なお 2, 3 については、メインテーブルのテーブル特性／位置欄が「 U=重複不可インデックス」の場合、以前と同様ORDER BY句に重複不可インデックスのセグメントに定義されたカラムが付加されます。
  • テーブルをリネームした後のエラーメッセージを、DBERR関数の戻り値にセットされないように対応しました。

Ver 8.20-8.19J での変更点

  • Oracle8、Oracle8iを同じゲートウェイでアクセスすることが出来るようになりまし た。
  • 修正モード－行作成（F4）でレコードを追加し、連続登録を行うと、直前に入れたキ ー値が挿入されることがあった問題に対応しました。
  • 結果データベースがOracleである埋め込みSQLタスクで、Order By句付きのSQLステー トメントを実行した場合、その時使われたオープンカーソルの一部が、そのタスクが 終了後もクローズされなかった問題に対応しました。
  • 降順のセグメントを持つインデックスを持つテーブルを定義取得した場合、そのイン デックスのセグメントテーブル中にそのセグメントが正しく設定されなかった問題に 対応しました。
  • 埋め込みSQLタスクで複数の入力パラメータを使用して、長さが2575バイトを越える SQLステートメントを実行しようとした時に、MAGICが異常終了する問題に対応しまし た。
  • 常駐タスクのSQL Where句欄に設定された引用符を持たない @変数は、再計算されなか った問題に対応しました。
  • SQL Where句として変数が設定され、実行時それが空白で評価された場合には、「ORA-00936: 式がありません」というエラーが出ていた問題に対応しました。
  • SQL Where句中に設定されたLike比較演算子の右辺に変数が設定され、その文字変数 中に存在する%の後ろに空白があった場合には、１件のレコードも取得できなかった 問題に対応しました。
  • 埋め込みSQLタスクで、エラーメッセージを返すプロシージャを実行しても、その メッセージがMAGICに表示されなかった問題に対応しました。

Ver 8.20-8.19AJ での変更点

  • SQL Where句とセレクトコマンドの位置付けの組み合わせで、「データが一致しません」のエラーが発生する件に対応しました。(8000293)


dbMAGIC MS-SQL Server6.5 データベースゲートウェイ 追加情報

dbMAGIC MS-SQL Server6.5 データベースゲートウェイ Ver8.2K SP2 追加情報

dbMAGIC Ver8.2K SP2 用 (8.20-02J)

本文書には、dbMAGIC MS-SQL Server6.5 データベースゲートウェイVer8.2Kとして提供されるプログラム(MGMS632.DLL)に関する情報が含まれています。なお、文書中に記述されている"本プログラム"とは、"MGMS632.DLL" を示します。

  • 動作環境及び注意事項
  • 制限事項及び留意事項
  • 修正履歴

動作環境及び注意事項

  • Microsoft SQL Server6.5 日本語版で動作保障されています。
  • 本ゲートウェイで動作保障されている動作環境については、「サポートDBMS、OS対応一覧」をご参照ください。

制限事項及び留意事項

動作環境

  • MS-SQL Server 6.5 G/W は MS－SQL Server 6.5 のＤＢ資産を運用するために設計されたものです。CTLファイルをMS-SQL Server 6.5で開発すること、及びそのアプリケーションで運用することに対して動作の保証はいたしません。

テーブル

  • Ver7.xで有効であった[項目特性]／[データベース情報]でのパラメータ「MAGICKEY=Y」は、Ver8.2Kにおいて同等に機能します。ただし、将来のバージョンに渡ってサポートされる保証はありません。
  • 数値型で桁数が小数点付き16桁の場合、デフォルトの[項目特性]/[記憶型式]がFLOAT MSBasic になりますが、格納される値によって誤差が生じ、レコードの修正、削除ができなくなることがあります。これを回避するには、[記憶型式]をFLOAT MSBasicから、Packed Decimal等に変更してください。
  • [データベース特性]／[ユーザ名]と、[テーブル特性]／[オーナー名]が異なる場合、以下の制限が起こります。
    • [インデックス特性]／[DBインデックス名]を変更した場合、元のインデックスが削除されないまま新しい名前のインデックスが追加される。
    • [インデックス特性]／[インデックスの再作成]を「Yes」にしても、インデックスが削除されない。この場合、再作成も行われない。
    • DBCOPY()関数を使用した場合、テーブルが正常にコピーされない。

プログラム一般

  • ログファイルに「ﾄﾗﾝｻﾞｸｼｮﾝのﾛ-ﾙ ﾊﾞｯｸ要求が、対応する BEGIN TRANSACTION を持っていません。」と出力される場合がありますが、処理上は問題ありません。
  • 一度のトランザクション処理時に同じトランザクション文がログファイルには複数出力されることがありますが、実際には一度しか発行されないため処理上は問題ありません。
  • レコードレベルでトランザクションを有効にして、かつエラー処理リトライのバッチ処理を実行した場合、トランザクション失敗時にリトライが行われないことがあります。このような処理を必要とする場合、[タスク制御]/[ロック方式]を即時から入力時に変更してください。
  • ブレイクレベルのトランザクションのエラー欄を「リトライ」とした場合、ブレイク処理を再実行しますが、この時にブレイク内の先頭レコードに対してのレコード後処理を２回行うことがあります。
  • バッチ処理でレコードロック時の動作は、[タスク制御]／[レコードロック時パラメータ]の設定以外に、タスク定義の[エラー欄]の設定が有効になることがあります。
  • バッチ処理で[タスク制御]／[レコードアクセス失敗時]にリトライ、またはスキップを設定しても、アボートすることがあります。
  • 外部結合リンクは、左外部結合を使用しています。

SQL

  • MS-SQL Server 6.5の制限により、SQL Where句を使用する際に TEXT型列に対して使える条件は、LIKE，NOT LIKE，IS NULL 及び IS NOT NULLのみです。
  • 埋め込みSQLの結果の変数をタイプリポジトリの項目と関連付けた場合、タイプの自動変換を行うと、[カラム特性]の[記憶型式]が？？に戻るため、実行時にエラーを起こすことがあります。

MS-SQL Server7.0使用時の制限

本プログラムは、MS-SQL Server6.5 の仕様に対応しています。そのため、MS-SQL Server 7.0を使用する場合も、基本的には MS-SQL Server 6.5の仕様範囲内での使用となります。以下に、現時点で明確になっている制限事項を記述します。

  • [DBMS特性]／[プランの出力]を「Yes」にした場合、MS-SQL Server 7.0からエラーが返され、テーブルを操作することができません。
  • SQL Server7.0では、扱えるデータ型の種類が増えていますが、本プログラムでは対応しておりません。
  • [テーブル特性]／[オーナー名]に、テーブル所有者名を明記して下さい。明記しない場合、以下の制限が起こることがあります。
    • [テーブル特性]／[テーブルの存在チェック]を「Yes」に設定している場合、既存のテーブルをオープンすることができない。
    • テーブルにインデックスを追加することができない。
    • 下記DB関数が正常に動作しない。
      • DBEXIST()
      • DBRECS()
      • DBSIZE()
      • DBDEL()

修正履歴

Ver8.20-02Jでの変更点

  • 多数のテーブルを結合リンクでリンクさせる場合、メインテーブルの[テーブル特性]／[カーソル]を「D=ﾃﾞﾌｫﾙﾄ」、「Y=Yes」に設定すると正常にリンクされないことがあるという問題に対応しました。
  • 外部結合リンクを使用する際に、セレクトコマンドの位置付に変数、定数を指定するとリンクが正常に行われないという問題に対応しました。

以上


dbMAGIC MS-SQL Server7.0 データベースゲートウェイ 追加情報

dbMAGIC Ver 8.20K4 SP2 用 (8.20-8.17AJ)

本文書には、dbMAGIC MS-SQL Server7.0 データベースゲートウェイ Ver 8.20-8.17AJ として提供されるプログラム(MGms732.dll)に関する情報が含まれています。なお、文書中に記述されている 「本プログラム」とは、MGms732.dll を示します。

  • 動作環境及び注意事項
  • 制限事項及び留意事項
  • 修正履歴
    • Ver 8.20-8.17AJ での変更点
    • Ver 8.20-8.17J での変更点
    • Ver 8.20-8.13 での変更点
    • Ver 8.20-01J での変更点

動作環境及び注意事項

  • 本ゲートウェイで動作保障されている動作環境については、「サポートDBMS、OS対応一覧」をご参照ください。
  • Microsoft SQL Server6.x へアクセスした場合の動作保証はされておりません。
  • Microsorf SQL Server7.0 におきましては、SP3 以上の環境で使用することを推奨します。
  • Microsoft SQL Server 2000に対して、MS-SQL Server 7.0の互換機能について動作することを確認しました。 確認された非互換の情報は、「制限事項及び注意事項」 の「MS-SQL Server 2000」を参照してください。

制限事項及び留意事項

動作環境

  • MS-SQL Server7.0 G/W は MS-SQL Server7.0 のDB資産を運用するために設計されたものです。CTLファイルをMS-SQL Server 7.0で開発すること、及びそのアプリケーションで運用することに対して動作の保証はいたしません。
  • MS-SQL Server 6.5からMS-SQL Server 7.0で拡張された以下のような機能については、本プログラムでは対応しておりません。
    • Unicode文字型
    • Cursor型
    • uniqueidentifier型
  • [DBMS特性]／[プランの出力]は有効になりません。これは、MS-SQL Server 7.0での仕様変更によるものです。

テーブル

  • GROUP BY句、または集計関数を使用したビューを定義取得したテーブルをオープンしようとすると、ハングアップすることがあります。この場合、テーブル特性／配列のサイズを1に設定してください。
  • "所有者.テーブル名"の最大長は128バイト以内にしてください。128バイトを超えた場合、定義取得時やデータ照会時に正常に実行できないことがあります。
  • 数字で始まるテーブル名を扱う場合は、ＤＢテーブルの名前を[ ]で囲んで指定してください。
  • 数値型で桁数が小数点付き16桁の場合、デフォルトの[カラム特性]/[記憶型式]が FLOAT MSBasic になりますが、格納される値によって誤差が生じ、レコードの修正、削除ができなくなることがあります。これを回避するには、[記憶型式]をFLOAT MSBasicから、Packed Decimal等に変更してください。
  • Ver7.xで有効であった[カラム特性]／[データベース情報]でのパラメータ「MAGICKEY=Y」は、Ver8.2K3において同等に機能します。ただし、将来のバージョンに渡ってサポートされる保証はありません。
  • 仮想インデックスを使用したタスクで、サイズが8000以上の文字型またはメモ型のカラムを持つテーブルにアクセスすると、インデックスに指定したカラム以外のデータが表示されないことがあります。また、このテーブルに対してデータの修正を行うと、エラーが出て修正が行われないことがあります。

プログラム一般

  • MS-SQL Serverのインストール時の設定において、並べ替え順序がバイナリ順以外の場合、セレクトコマンドの範囲パラメータにワイルドカードを設定した処理が正常に行われないことがあります。
  • インデックスセグメントに設定していないカラムをソート項目に設定しているプログラムでは、text型のカラムを持つテーブルに対してデータの修正を行うと、エラーが出ることがあります。
  • レコードレベルでトランザクションを有効にして、かつエラー処理リトライのバッチ処理を実行した場合、トランザクション失敗時にリトライが行われないことがあります。このような処理を必要とする場合、[タスク制御]/[ロック]方式を即時から入力時に変更してください。
  • ブレイクレベルのトランザクションのエラー欄を「リトライ」とした場合、ブレイク処理を再実行しますが、この時にブレイク内の先頭レコードに対してのレコード後処理を２回行うことがあります。
  • バッチ処理でレコードロック時の動作は、[タスク制御]／[レコードロック時パラメータ]の設定以外に、タスク定義のエラー欄の設定が有効になることがあります。
  • バッチ処理で[タスク制御]／[レコードアクセス失敗時]にリトライ、またはスキップを設定しても、アボートすることがあります。
  • 外部結合リンクは、左外部結合を使用しています。

SQL

  • MS-SQL Server 7.0の制限により、SQL Where句を使用する際に text型列に対して使える条件は、LIKE，NOT LIKE，IS NULL 及び IS NOT NULLのみです。
  • 埋め込みSQLの結果の変数をタイプリポジトリの項目と関連付けた場合、タイプの自動変換を行うと、[カラム特性]の[記憶型式]が？？に戻るため、実行時にエラーを起こすことがあります。
  • 埋め込みSQLで、text型やimage型のバイナリデータを引数に持つストアドプロシージャを実行した場合、空のDBエラーダイアログが表示されることがあります。
  • 埋め込みSQLで、文字型のカラムに対し、定義されているサイズ以上の値でレコードを更新すると、DBエラーが表示されることがあります。その場合、レコードは更新されません。

MS-SQL Server 2000

  • インデックスが存在しないテーブルをオンラインタスクで開こうとすると、「複数ステップのOLE DBの操作でエラーが発生しました。各OLE DBの状態の値を確認してください。作業は終」というエラーメッセージが表示されます。この場合、インデックス（実キー）を定義するか、[テーブル特性]／[カーソル]を「N=No」にして使用して下さい。
  • グローバル一時テーブルでインデックス（実キー）が定義されておらず、[テーブル特性]／[カーソル]が「D=デフォルト」、または「Y=Yes」の場合、一時テーブルをオンラインタスクでオープンしようとすると、「受け入れ可能なカーソルを作成できませんでした。」というエラーメッセージが表示されます。また、ローカル一時テーブルでインデックス（実キー）が定義されていない場合には、カーソル設定値にかかわらず同様の動作となります。
  • dbdiscnt()で一旦接続を切断してから再び接続しようとすると、必ずデータベースログオンダイアログが表示されます。また、1度目は正しいユーザー名とパスワードが入っていますが、再接続してから再び切断すると、次回接続時のログオンダイアログのユーザー名が、空欄になります。

修正履歴

Ver8.20-8.17AJ での変更点

  • MSSQLServerで、データベース特性のデータベース情報に「SQL_PHYSICAL_LOCKING=Y」を設定し、レコードロックされるようにしている場合、アクセスを「R=読込」にすると、2つのテーブルでレコードロックが行われないという問題に対応しました。(431424)
  • MS-SQL7でDecimal(12,3)やNUMERIC(12,3)の数値項目を定義取得して、最大値のデータを登録すると、小数点以下が桁落ちする件に対応しました。(536081)
  • MS-SQL7でオプション－範囲でワイルドカードを使用した場合、正しく抽出できない件に対応しました。

Ver8.20-8.17 での変更点

  • 一時テーブルの最後のレコードを削除するとエラーメッセージが表示される問題に対応しました。
  • IDENTITY プロパティを設定したカラムが重複不可インデックスに指定されていると、レコードを追加して上矢印キーを押下したときに、すべてのレコードが最後に入力したレコードと同じ値として表示される問題に対応しました。
  • DateTime型のカラムでCAST /CONVERT 関数（8.12 GTWでの修正による）が使用される場合、DateTime型のカラムがインデックスとして使用されると、index seek の代わりにindex scanが実行される問題に対応しました。
  • 文字型23桁のDateTime型カラムでミリ秒が正しく表示されない問題に対応しました。
  • Ctrl+KでDateTime型のキーに変更するとエラーメッセージが表示されアベンドする問題に対応しました。
  • |（ビットごとのORを表す演算子）が含まれる埋め込みSQLプログラムで「'|'の近くに無効な構文があります。」というエラーメッセージが表示される問題に対応しました。
  • 埋め込みSQLでCONTAINSが2語以上の検索語に対して実行されない問題に対応しました。
  • [テーブル特性]／[カーソル]の「D=デフォルト」の仕様が以下のように変更されました。
    • 前バージョンまでの仕様：
      メインテーブルにアクセスする場合は、カーソルを使用します。
      リンクテーブルにアクセスする場合は、DBコマンドを使用します。
    • 新しい仕様：
      オンラインタスクでメインテーブルにアクセスする場合は、カーソルを使用します。
      バッチタスクでメインテーブルにアクセスする場合は、DBコマンドを使用します。
    リンクテーブルにアクセスする場合は、DBコマンドを使用します。
  • オンラインタスクで最初の行にコメントの入った埋め込みSQLを実行するとエラーメッセージが表示される問題に対応しました。
  • APGで作成したオンラインタスクで、[タスク定義]／[トランザクション]を「N=なし」に、[タスク制御]／[ロック方式]を「N=なし」に設定した場合、IDENTITYカラムが重複不可インデックスに設定されたテーブルでレコードを追加しようとするとアベンドする問題に対応しました。
  • LRUコマンドメカニズムの問題により不定期にMS-SQL Serverに接続できなくなる問題に対応しました。

Ver8.20-8.13での変更点

本ゲートウェイのバージョンは、インターナショナル版と対応するようにいたしました。

  • numeric型のインデックスを持つテーブルに対して、位置付け大のパラメータに値を設定して実行するとエラーが発生した問題に対応しました。
  • MSSQL Server6.5対応ゲートウェイで定義取得したテーブルが、500桁以上の文字型を持つ場合、文字化けが発生した問題に対応しました。
  • [テーブル特性]／[カーソル]を「Yes」に設定しているテーブルに対し、レコード削除のバッチ処理を実行させた場合、全レコードが削除できない問題に対応しました。
  • 一時テーブルにレコード書き込みアクションを行うと、空のエラーメッセージが表示された問題に対応しました。
  • カーソル=Noのローカル一時テーブルを表示しようとすると、テーブルがオープンできなかった問題に対応しました。
  • データベースデフォルトを指定したDateTime型を持つテーブルを表示するとアベンドした問題に対応しました。
  • 一時テーブルに対して全レコード削除を行った場合、最後のレコードを削除した時に空のDBエラーダイアログが表示された問題に対応しました。
  • NULLデフォルトYesの日付項目を修正すると、アベンドした問題に対応しました。
  • MS-SQL Server 7.0のレコードロックを使用した場合、リンク外部結合を定義したタスクを実行すると、データ更新時にエラーが発生した問題に対応しました。
  • MS-SQL Server 7.0のレコードロックを使用した場合、リンク結合を定義したタスクを実行すると、レコードロック時にリトライしなかった問題に対応しました。
  • MS-SQL Server 7.0のレコードロックを使用した場合、リンク結合を定義したタスクを実行すると、メインテーブルでレコードロックがかからなかった問題に対応しました。
  • MS-SQL Server 7.0のレコードロックを使用した場合、共有モードがR=読込に設定されたリンク結合テーブルに、レコードロックがかかる問題に対応しました。
  • リンク結合テーブルの日付型項目に範囲指定を行うと、実行時に構文エラーが発生した問題に対応しました。
  • 時間部分が00:00:00ではない日付データの範囲処理を行うと、正常に機能しなかった問題に対応しました。
  • 10000桁のメモ型を持つテーブルをソート処理で表示した場合、メモ項目に実際とは異なるデータが表示された問題に対応しました。
  • タスクレベルトランザクションを設定したプログラムからA,Bのプログラムをコールすると、Bのプログラムでソートを行うと、Aのプログラムでロールバックした問題に対応しました。
  • サイズ250桁以上の文字型を持つテーブルに対して、インデックスを指定せずにリンクを行うとアベンドした問題に対応しました。
  • 埋め込みSQLでストアドプロシジャーを実行すると、空のエラーメッセージが出た問題に対応しました。
  • NULLデフォルトYesの項目に対するストアドプロシジャーを実行すると、不正な値が挿入された問題に対応しました。
  • CHARまたはVARCHARのタイプを返すSELECT構文に対してAPGを行うと、最後の文字がカットされた問題に対応しました。
  • SELECT @@VERSION など、FROM句のないSELECT構文に対してAPGを行うと、ハングアップした問題に対応しました。
  • GROUP BY句のあるSELECT構文を埋め込みSQLでAPGを行うと、ハングアップした問題に対応しました。

Ver8.20-01J での変更点

  • MS-SQL Server7.0で機能拡張されたレコードレベルでの物理ロックをサポートしております。
  • dbMAGICでMS-SQL Server7.0のロックを使用する場合、[データベース特性]／[データベース情報]で、以下のように設定します。
    SQL_PHYSICAL_LOCKING=Y
  • この設定により、dbMAGICは以下に示すように「UPDLOCK」ヒントを追加します。
    SELECT a,b
FROM tab1 (UPDLOCK)
ORDER BY a

    この設定をしない場合は、以前のバージョンのように論理ロックを使用します。

    メモ型またはBLOB型のデータの更新は、物理ロックを使用しているときのみ可能です。

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

     ##table_name（グローバル一時テーブル）

    と設定してください。

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


dbMAGIC Memory データベースゲートウェイ 追加情報

dbMAGIC Memory データベースゲートウェイ Ver8.2K4 SP2 説明書

dbMAGIC Ver8.2K4 SP2 用 (8.2-05J)

本文書には、dbMAGIC Memory データベースゲートウェイ Ver8.2K4 として提供されるプログラム(MGMEMORY.DLL)に関する情報が含まれています。なお、文書中に記述されている"本プログラム"とは、"MGMEMORY.DLL" を示します。

  • 仕様および制限事項
  • 修正履歴

仕様および制限事項

使用目的

dbMAGIC Memory データベースゲートウェイ（以降「Memory ゲートウェイ」と表記します）は、データをメモリ上に格納しながらオペレーションを実行します。用途としては、常駐テーブルを使用する場合に標準的に使用される事があげられます。その他の用途として、ソートファイルおよびワークファイルとして使用する事があげられますが、参照の用途のみに使用してください。

Memory ゲートウェイによって作成されるファイルは dbMAGIC 終了時には削除される一時ファイルですので、保存が必要なアプリケーションやデータに対しては使用しないでください。

この Memory ゲートウェイは Btrieve とほぼ同等な機能を提供します。しかし、”１インスタンス”で使用する事を前提としているため、完全な互換機能を提供するものではありません。

Memory ゲートウェイを使用する場合、Windows のテンポラリファイル用のディレクトリにファイルがいくつか作成されます。Memory テーブルをデータベースとするファイルをオープンするとこのファイルサイズが大きくなりますので、ディスクの空き容量
を十分に確保してください。

Memory テーブルでは実行に 2MB のメモリを使用します。この中には 512KB のキャッシュバッファを含みます。

起動方法

  1. 1) 常駐テーブルを使用する場合、動作環境の［常駐テーブル読込］欄を「Yes」に設定します。その上でテーブル特性の「常駐」欄を設定します。常駐テーブルについては dbMAGIC リファレンスマニュアルの第 4 章「タイプリポジトリとテーブルリポジトリ」を参照してください。

    2. 全てのテーブルが常駐できるわけではありません。カラム及びインデックスの制限は元になるデータベースではなく、Memory テーブルの制限に依存するためです。
  2. 動作環境の［ソート／一時用データベース］欄に Memory テーブルを使用する場合、ソートファイルや一時ファイルは、一時ファイル名で作成されます。ソートファイルや一時ファイルが置かれる位置は、［一時ファイルパス］欄の設定に依存しません。設定方法については dbMAGIC リファレンスマニュアルの第 2 章「設定」を参照してください。
  3. データテーブルを Memory テーブルファイルとして宣言するには、テーブルリポジトリの［データベース］欄を Memory テーブルベースのデータベースに設定します。
  4. テーブルリポジトリの［DBテーブル］欄を設定した場合、dbMAGIC が設定するデフォルトの Memory テーブルのDBテーブル名を変更することができます。
  5. Memory テーブルファイルにカラムを作成する場合、各カラムに適する記憶型式が使用されます。記憶型式を変更したいときは、テーブルリポジトリの各カラムで［カラム特性］ダイアログを表示し、［記憶型式］欄に希望する記憶型式を設定します。

ファイル使用時の注意事項

  • ファイルのオープンはアクセラレイティドモードのみとなります。
  • Extended 命令は発行されません。
  • ロックおよびトランザクション命令は発行されません。
  • オーナネームは指定できません。

サポートされるデータタイプ

Memory テーブルでサポートされるデータ型は Btrieve と同等となります。以下の表では使用できるデータ型とインデックスとして使用可能か否かを表わします。

Btrieve のデータ型 | サイズ | インデックス
String |  | 可能
Integer | ２または４バイト | 可能
Float | ４または８バイト | 可能
Date | ４バイト | 可能
Time | ４バイト | 可能
Decimal | ９バイトまで | 不可
Money | ９バイトまで | 不可
Logical | １または２バイト | 可能
Numeric | １８バイトまで | 不可
BFloat | ４または８バイト | 不可
LString | ２５５バイトまで | 可能
ZString |  | 可能
Unsigned Binary | ２または４バイト | 可能

一時ファイル

Memory ゲートウェイを使用する場合、Windows のテンポラリファイル用のディレクトリにファイルがいくつか作成されます。これらのファイルの作成場所を指定するには、［DBMS］テーブルの Memory Tables エントリの［パラメータ］欄に

TMPDIR=pathname
を追加設定してください。

Memory テーブルをデータベースとするファイルをオープンするとこのファイルサイズが大きくなりますので、ディスクの空き容量が十分なディレクトリを指定してください。ただし、これらのファイルをサーバ上に作成しますと、トラフィックが増加しますので、ローカル上に作成されるように指定する事をお勧めします。

pathnameにおいて指定されたパスに一時ファイルが作成されます。デフォルトのパスは Windows のテンポラリファイル用のディレクトリです。

一時ファイルの作成場所を指定する場合、ファイル名が同一となりますので、各ユーザ毎に個別のディレクトリにて管理されるようにしてください。

ログファイル

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

現時点の保留事項

  • Memory ゲートウェイのログファイルを作成する場合、一時ファイルが正しく作成されない場合があります。ログファイルを作成する場合、明示的に一時ファイルの作成場所を指定して下さい。

修正履歴

Ver8.2-03J での変更点

  • レコード削除を行うバッチタスクにおいて、インデックスを使用しない場合、最後のレコード削除の後にエラーとならないようになりました。

Ver8.2-04J での変更点

  • 内部的なメモリの確保方法を変更しました。以前は以下のエラーが発生することがありました。
    mem_free() Corrupted Memory !!! (rc = -200)

Ver8.2-05J での変更点

  • Get オペレーションにおいてセンド側のキーバッファの情報がログに出力されるようになりました。
  • フローモニターにゲートウェイのログの内容を表示する場合、1バイト目に不必要な文字が表示されないようになりました。


dbMAGIC ODBC データベースゲートウェイ

dbMAGIC ODBC データベースゲートウェイ Ver8.2β 追加情報

dbMAGIC Ver8.2 SP2 用 (8.20J-Beta2)

この度は、dbMAGIC ODBC データベースゲートウェイVer8.2べータ版評価にご参加いただき誠にありがとうございます。

本文書には、ODBC(Open DataBase Connectivity) データベースゲートウェイVer8.2として提供されるプログラム (MGODBC32.DLL) に関する情報が含まれています。なお、文書中に記述されている 「本プログラム」とは、MGODBC32.DLL を示します。

  • 動作環境
  • 設定方法
  • 仕様及び制限事項

ODBC データベースゲートウェイはベータ版です。ご意見、ご質問等は弊社サポートセンターでは受け付けておりませんが、ベータ評価レポートを japan_v9beta@magicsoftware.com にて受け付けております。詳しくはベータ評価レポートのページをご参照ください。

動作環境

  • 動作するドライバの条件として ODBC 2.00 API 準拠が必須です。また、ODBCドライバマネージャは 32 ビットドライバマネージャのみ動作します。
  • 接続するODBCドライバの制限事項等により、dbMAGICおよびODBCゲートウェイが提供する機能をすべて利用できないことがあります。
  • Oracle, MS-SQLのデータベースを利用する場合、ODBCゲートウェイでなく、それぞれ固有のデータベースゲートウェイを使用することを強く推奨します。

設定方法

  1. コントロールパネルのODBC (Windows95では32ビットODBC) を起動し、ユーザーDSNまたはシステムDSNで、利用するODBCデータソースを作成します。データソースの構成の詳細な設定、およびODBCドライバのインストール等については、ODBC付属のドライバドキュメントやヘルプファイルを参照してください。
  2. dbMAGIC起動前に、MAGIC.INIの中の[MAGIC_GATEWAYS]セクションに、MGDB19=(パス名)MGODBC32.DLLを正しく記述し、かつMGODBC32.DLLが存在することを確認します。MGODBC32.DLLがディスク上に存在しない場合、追加オプションでODBCゲートウェイをインストールしてください。
  3. dbMAGICを起動し、[設定／データベース]でアクセスしたいデータベースに対してエントリを作成します。DBMS欄にはODBCを選択します。DB名には1.で作成したODBCデータソースのデータソース名を入力します。dbMAGICはDB名のデフォルトに"MAGIC"を用います。
  4. データベース特性ダイアログを開くには、データベーステーブルのデータベースの行にカーソルを合わせ特性ボタンをクリックするか、"Ctrl+P"を入力します。ユーザ名やパスワードはデータソースが要求する場合に入力します。
  5. 開発時に一つのDBMSしか用いない場合は、[設定／動作環境]のデフォルトデータベースパラメータに、アプリケーションで使用するデータベースを設定してもかまいません。
  6. [開発／テーブルリポジトリ]の任意の行で、データベースパラメータに 3. で作成したデータベースを選択し、テーブルの定義を行います。
  7. 既存のテーブルに対しては、[オプション／定義取得]を起動することにより、テーブルリポジトリに定義内容を取り込める場合があります。(定義取得については、SQLガイド17-4をご覧ください。）
  8. テーブル、カラム、インデックスの定義方法等に関しては、SQLガイド17章、18章、25章をご覧ください。

仕様及び制限事項

  • MS-ACCESSのデータベースを利用する場合、すべてのカラム特性のNULL値許可を Yesに設定する必要があります。
  • ODBCドライバは論理ロックを使用する為、DBMSに対してロックを発行しません。複数台のマシンで実行する場合は、dbMAGICのロックを使用してください。
  • データベース特性、テーブル特性、インデックス特性にあるヒントパラメータは有効にはなりません。

以上


ｄｂＭＡＧＩＣ（Ver8）の改編履歴

本文書には、dbMAGIC Ver8 の今までに於ける変更点を列挙いたしました。

  • Ver8.2K4 SP2 での改善内容
  • Ver8.2K4 SP1 での改善内容
  • Ver8.2K4 での改善内容
  • Ver8.2K3 での改善内容
  • Ver8.2K2 での改善内容
  • Ver8.2K での改善内容


Ver8.2K4 SP2aでの改善内容

Ver8.2K4 SP2aでは、以下の問題が対応されています。

開発時機能

  • V5.7 (および以前)からリポジトリ入力した場合に、クラス１のフォームで、 5x2などのサイズで定義したエディットコントロールの複数行編集がNoになってしまう問題。(8000330)。
    この修正を有効化するには、以下のフラグをMAGIC.INI の [dbMAGIC_ENV] セクションに追加してください。デフォルトでは無効になっています。
    [dbMAGIC_ENV]
ImpV57MultilineEdit = Y
  • V5.7 (および以前)からリポジトリ入力した場合に、クラス１のフォームで、テキストコントロールの色属性が、フォーム＃１の色属性になってしまうことがある問題 (8000331)。
    この修正を有効化するには、以下のフラグをMAGIC.INI の [dbMAGIC_ENV] セクションに追加してください。デフォルトでは無効になっています。
    [dbMAGIC_ENV]
ImpV57TextCtrlColor = Y
  • 複数階層のタスクで、子タスク以降のタスクで使用しているタイプの範囲を変更するとプログラムが破損する場合がある問題。(8000325)

実行時機能

  • ２階層のプログラムで、パラメータにBLOB項目があるプログラムの実行を繰り返すとMAGICが異常終了する問題。(8000326)
  • イベントによって呼び出されたタスクをクローズする時にMagicが異常終了する場合がある問題。(875843)
  • 印刷プレビューで垂直スクロールすると不定期に異常終了する問題。(8000321)
  • 印刷プレビューでページ指定した後、全てのページを行っても、前回のページ指定で印刷される問題。(284926)
  • 印刷プレビューでゼロ除算による異常終了が発生する問題。(8000345)


Ver8.2K4 SP2での改善内容

実行時機能

  • 印刷プレビューで異常終了する場合がある問題に対応しました。
  • 不定期にエディットコントロールでIMEが無効になってしまう問題に対応しました。
  • バックグランドモードで Magic アプリケーションサーバを実行している途中で 、アプリケーションの設計エラー・ネットワークやサーバ自体の問題などに起因して内部エラーが発生した場合、「ABNORMAL TERMINATION…」のメッセージボックスが出たままになり、「OK」ボタンをオペレータが押すまで、そこで実行が中断してしまう問題に対応しました。以下の設定を行うと、内部エラー発生時にメッセージボックスは出さず、指定したファイルにエラーメッセージが追加記録されて、Magicはすぐに終了します。
    [MAGIC_SPECIALS]
BGEngineLogFile = (ログファイル名)

    なお、上記の設定がない場合には、今まで通りの動作です。

  • ZEN関数で「ｳﾞ」 → 「ヴ」 とならず、「ウ″」 となってしまう問題に対応しました。
  • HTMLマージを使うとき、テンプレートファイルに <!$MGIF> タグが 200 個以上あると、Magicに内部エラーが起こり異常終了してしまう問題がありましたが、<!$MGIF> タグ数の上限は400にまで上げられ、また、上限に達した場合でも内部エラーが起こらないようになりました。
  • テーブルコントロールでスクロールすると、スクロールが止まらなくなることがある問題に対応しました。(3797)
  • 親タスクをESCキーで終了した後、タスク後処理で別のバッチタスクを呼び出すようになっており、かつ、このバッチタスクにおいてレコードロックが発生した場合に、「レコードロックの解除待ち」が1回だけ出た後にタスクが終了してしまう問題に対応しました。修正後には、通常通り、「レコードロック解除待ち」がロック解除されるまで繰り返しでるようになります。この修正を有効にするには、以下の設定を MAGIC.INI で行います。
    [MAGIC_SPECIALS]
ClearCurrentAction = Y

    デフォルトの設定は N (以前の動作と同じ)です。

    参考： このフラグは、内部的には実行時のアクションのキューの扱いに関わるもので、このフラグがYの場合、ペンディングされたアクションのキューが新しいタスクがオープン前にクリアされるようになります。

  • 開始プログラムとして設定されているプログラムの項目にMAGIC起動直後漢字入力を行うと、不正な文字が入力されることがある問題に対応しました。
  • テキスト形式印刷において、入出力特性のページフッタを使用すると、最終ページの空白行にプリンタ属性の「24」のコマンドが出力される件に対応しました。(995656)
  • ファイル/プリンタの設定でプリンタの変更をできるようにしました。
  • 8.2K4 において、登録モード時に「画面再表示」 または 「ビュー再表示」アクションが無効になるように修正を行いました(これは、不適切なメッセージが出ることがあるという問題に対応するためのものです)が、この修正により8.2K4より前のバージョンで開発したアプリケーションの動作が変わってしまう、という問題がありましたので、本バージョンでは、MAGIC.INI で以下のフラグを設定することにより、互換性を維持できるようにしました。
    [dbMAGIC_ENV]
EnableRefreshAction = Y または N
    設定値 | 動作 | 備考
    Y | 登録モード時に「画面再表示」 または 「ビュー再表示」アクションが有効になる。 | 8.2K4 より前のバージョンと同じ動作
    N (デフォルト) | 登録モード時に「画面再表示」 または 「ビュー再表示」アクションが無効。 | 8.2K4 およびそれ以後のバージョンと同じ動作
  • ブレイクレベルのトランザクションを設定しているマージプログラムで、実行時、 マージのテンプレートファイルが存在しなかった場合、Magicがハングアップしてしまう問題に対応しました。

開発時機能

  • 並行開発中、開発途上やテスト実行での誤動作により異常終了してしまうと、再起動した後で、まれにプログラムが破損してタスクの定義が空になってしまうことが報告されていますが、このような状況をMagicが検出した時、エラーメッセージを出すようにしました。下記のフラグを設定した場合にのみ有効となります。デフォルトでは無効になっています。
    [dbMAGIC_ENV]
ShowWrongCTL = Y

    なお、これはMagic開発版が開発モードにある場合にだけ有効です。実行モードにある場合や、バックグラウンドモードにある場合などでは、上記フラグの設定に関わらず、エラーメッセージは表示されません。

    CTLの異常状態は、タスクに対して以下の操作を行ったタイミングで検出されます。

    • プログラムやタスクを開こうとしたとき (F5)。
    • プログラムチェックを行ったとき (F8)。
    • プログラムの複写登録(Ctrl+R)・上書登録(Ctrl+W)を行おうとしたとき。
  • Query ファイル・オープンの開発画面（タスクを開いた状態で Ctrl+H）を開いた場合、あるいは修正した場合に、MGGENW.EXE が異常終了することがある問題に対応しました。
  • Mgconst.hi3/hi2/hig 使用時に、Queryファイル・オープンの開発画面(タスクを開いた状態でCtrl+H)の表示が乱れる問題に対応しました。
  • DBCS固有の書式記号を使った AS/400 のテーブルをチェック(F8)した時に、定義は正しいのに「書式が不適当です」のメッセージが不定期に出る問題に対応しました。
  • フォーム編集中にラインとエディットを使用して、ラインがZオーダの先頭になるように移動した場合、Zオーダの値が変更される件に対応しました。(851428)
  • 仕様書出力で、クラス1のフォーム特性でフォームの幅を1000にすると、仕様書出力が途中で終了してしまう問題に対応しました。
  • タスクの式テーブルで、式の定義を展開した結果が1000バイト以上になる場合、仕様書出力でハングする場合がある問題に対応しました。


Ver8.2K4 SP1での改善内容

dbMAGIC Ver8.2K4 SP1の改善内容 改善された項目は以下の通りです。

フローモニター

  • フローモニターをタスク実行時に自動的に起動できるようになりました。 これにより、dbMAGIC がバックグラウンドモードで起動している場合にもフローモニ ターを実行できます。 この機能を使用する場合、MAGIC.INI にて以下の設定を行ってください。
    [MAGIC_FLOW_MONITOR]
LoadMonitor=Y
  • フローモニターに表示される内容をファイルに書き込むことができるようになりまし た。作成されるファイル名は mgflwmtr.ユーザID.PID.log となります。 この機能を使用する場合、フローモニターの Window には情報は表示されません。 この機能を使用する場合、以下の設定を行ってください。
    [MAGIC_FLOW_MONITOR] Monitor2File=Y
  • フローモニターの保存を実行した後にカレントディレクトリが変更されないようにな りました。 例えば、CTLファイルが相対パスで記述されていた場合、アプリケーションクローズ 時に「原因不明のエラーです」というエラーが発生することがありました。

印刷機能

  • GUI印刷において、指定されたプリンタの初期化情報（用紙サイズなど）を正しく反 映できるようになりました。
  • プレビュー機能において部単位の印刷が正しく行われるようになりました。
  • プレビュー表示中にリソース不足が発生した場合、該当タスクが終了するようになり ました。以前はアプリケーションエラー等が発生し、dbMAGIC が異常終了する場合がありました。
  • タイプリポジトリやテーブルリポジトリでツールチップを割り当てたカラムを入出力フォームに配置して、プレビューを表示した場合、スクロールを行なうとアプリケーションエラー等が発生し、dbMAGIC が異常終了する場合がありました。

インターネット機能

  • HTMLファイルの先頭に空白行が入らないようになりました。
  • URLを記述する場合、2バイトコードの2バイト目が0x5c（\）の場合、そのコードの後 に「\」を付加する必要がなくなりました。
  • URLを表す文字列にASCIIコード以外の文字が設定されている場合、そのコードは%## （##は 16進コード）という形式に変換されます。このコードはシフトJISとなります。 この機能を使用する場合、MAGIC.INI にて以下の設定を行ってください。
    [dbMAGIC_ENV]
TripletNonAsciiUrl = Y

その他

  • マージ出力時に文字列の右側の空白が削除できるようになりました。 この機能を使用する場合、以下の設定を行ってください。
    [MAGIC_SPECIALS]
MergeTrim = Y
  • 埋め込みSQLにおいて入力パラメータ内に含まれる改行コードを空白に変換しないようになりました。


Ver8.2K4 での改善内容

動作環境

  • SQL系データベースでのインデックスチェックが有効になりました。
    [データベース特性] ダイアログ [SQL] タブ内の [データベース情報] 欄に｢CHECK_KEY=Y｣というパラメータを記述することで、インデックスチェックを有効にできるようになります。
    ただし、インデックスの重複時にチェックでエラーになるとトランザクションの破棄を行うため、トランザクション開始時まで処理が戻ります。タスクレベルトランザクションでは、タスクレベルまで破棄されます。
  • フォームエディタフォームの複写時に一部の情報が継承されない不具合を修正しました。
  • コントロールが多く張り付けてあるフォームを上書登録すると異常終了することがある不具合を修正しました。
  • イメージ効果の選択肢が正しく表示されない不具合を修正しました。
  • テーブルの幅がウィンドウサイズを越えている場合、テーブル上のチェックボックスやラジオボタンの表示が縦スクロールで乱れる不具合を修正しました。
  • コントロールパレットからサウンドを貼り付けてもファイル名がコントロール特性に反映されない不具合を修正しました。

●インターネット機能

  • HTML/HTMLドキュメントフォームのテーブルコントロールの色を指定できるようになりました。 MAGIC.INI の [dbMAGIC_ENV] セクションにて以下のように色の指定を行います。
    DTableColor = テーブル全体の色No
DtbTtlColor = タイトル領域の色No
DTbRowColor = データ領域の色No

    色No は基本色テーブルの番号で、背景色が反映されます。

  • HTMLフォームにおいてインデントが正しく行われない場合がある不具合を修正しました。
  • ハイパーリンクに長いパラメータを設定するとアベンドする不具合を修正しました。

パーティショニング機能

  • コールリモートの数値型パラメータを16桁まで渡すことができるように修正しました。

テーブルリポジトリ

  • テーブルリポジトリでの自動変換機能時のメモリリークの不具合を修正しました。
  • テーブルの複写登録時を行った場合、テーブルが存在しているのに「リネームしますか？」というダイアログが表示されない場合がある不具合を修正しました。

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

  • ブレイク処理で ロック方式=即時 のバッチタスクを実行すると、最初のレコードでロックが残る不具合を修正しました。
  • バッチ処理で、画面表示=N、ロック方式が即時以外の場合、レコードロックが解除された後，dbMAGICエンジンが異常終了する不具合を修正しました。
  • 加算モードにおいて元のレコードのレコードロックが解除されない不具合を修正しました。

リポジトリ入出力

  • リポジトリ入力したイメージコントロールのイメージ効果が出力元と変わってしまう不具合を修正しました。
  • ヘルプリポジトリをリポジトリ出力するとツールチップとWindowsヘルプが途中で分割されてしまうことがある不具合を修正しました。

その他

  • エンジンが実行中は、バックグラウンドモードのログがファイルに出力されない不具合を修正しました。ログファイル名として プロセスIDを付加しました。
  • バックグラウンドモードで起動すると、非同期で出したリクエストが処理されない不具合を修正しました。
  • ウィンドウ消去=N にしたアプリケーションを動かしていると、異常終了する場合がある不具合を修正しました。
  • 登録モード時に '画面再表示'ACT または 'ビュー再表示'ACT が発行されると不適切なメッセージが表示される場合があるため、このアクションは登録モード時に無効になるように修正しました。
  • フローモニターで一行の表示文字列が長い場合、アクセス違反が発生する不具合を修正しました。
  • フローモニターでファイル名の出力を行うとアクセス違反が発生する不具合を修正しました。
  • フローモニターのインデントが戻らない場合がある不具合を修正しました。
  • 入出力特性のトークン前付符号/後付符号のデフォルト値を変更できるようにしました。 MAGIC.INI の [dbMAGIC_ENV] セクションにて以下のように指定を行います。
    [dbMAGIC_ENV]
MergePrefix = {!$
MergeSuffix = }

マニュアル

マニュアル(PDFファイル)を以下の通り修正しました。

リファレンス(第5版)

章 | 項目 | 場所 | 変更内容
６章 | 6.8 ［DBテーブル］ウィンドウ | キャッシュ | 記述を修正
 | 6.9 ［入出力ファイル］テーブル | リクエスタ | 記述を修正
１０章 | 10.12 HTML フォームエディタ | MAGICプログラム | 記述を修正
１５章 | 15.2 MGREQ.INI ファイル |  | Username,Paasword/DefPath,DefName/DefHtmlの説明を修正
 | 15.6 実行時の動作 |  | MRB のエラーコード一覧を修正
１９章 | 19.1 ログファイル |  | In Task Form # ,can't split xxxx の説明を修正

新機能ガイド（第5版)

章 | 項目 | 場所 | 変更内容
４章 | 4.3 リモートコール |  | MRB のエラーコード一覧を修正

用語集 (第4版)

章 | 項目 | 場所 | 変更内容
２章 | 2.3 MRB のエラーコード一覧を修正 | 付録Ａ | ログファイル一覧を追加

開発者ガイド分散開発編（第5版)

章 | 項目 | 場所 | 変更内容
８章 |  | 全体 | dbMAGIC サーバ という表記を "データサーバ" に変更
 | 8.1 dbMAGICサーバ |  | 節の名前を "データサーバとの通信処理" に変更
 | 8.2 UNIX 版データサーバ | Server type number | 説明を修正
 |  | 1 台のホスト上で複数のサーバを使用する場合 | 説明を修正
 | 8.3 dbMAGICサーバのINIファイルのセットアップ | [MAGIC ENV]セクション | "DataRecovery" を "ISAMTransaction" に修正
 |  | クライアントのMAGIC.INI ファイルのセットアップ | サーバに関連するMAGIC.INI ファイルのパラメータ において "MCF Recovery" を削除


Ver8.2K3 での改善内容

チーム開発

  • 他のユーザがタイプリポジトリを変更するとCTL内部で不整合が発生する不具合を修正しました。
  • 同時に複数のプログラムを削除すると異常終了する不具合を修正しました。

テーブルキャッシュ

  • テーブルキャッシュ使用時にレコードを登録した場合、登録レコードが再表示されない不具合を修正しました。

UDF

  • 特定の名前を使用したモジュール名をUDFで使用すると異常終了する不具合を修正しました。

フォームエディタ

  • HTMLファイル書込を行う場合、背景の値の先頭にインターネット開発ファイルルート値が付加されないようになりました。この問題はVer8.2K2でのみ発生します。

MRB

  • MRB の自動再起動リクエストを受け付けている MRB が異常終了した場合、自動的に MRB が再起動されるようになりました。これは MRB 起動時に MRB のプロセスを二つ起動し、一つのプロセスが他のプロセスを管理する事によって行われます。この機能を無効にする場合、MRB の起動パラメータに -NoBrokerRestart を追加して下さい。
  • サーバエンジンの自動再起動MRB を経由して起動したサーバエンジンが異常終了した場合、自動的にサーバエンジンが再起動されるようになりました。スタートメニュー等から起動したサーバエンジンは再起動の対象とはなりません。この機能を有効にする場合、MGRB.INI の[MRB_ENV]に ReLoad=Y と記述して下さい。
  • MRB への再接続： AltMessagingServer への接続から MessagingServer へ再接続するまでの時間を指定できるようになりました。指定された時間までは MessagingServer への接続は試みません。この機能を有効にする場合、MGREQ.INI の[REQUESTER_ENV]に RetryMainTime=再接続までの時間（分）と記述して下さい。この記述がない場合、RetryMainTime=5 として動作します。
  • 新しいログ mrb_event.log が出力されるようになりました。このログには MRB の起動や終了などの動作に関する情報が出力されます。
  • ログファイルの分割 MGRB.INI および MGREQ.INI にて指定するログファイルが自動的に分割されます。分割された場合のファイル名は 元のファイル名_DDMM_HHMM.元の拡張子 となります。

埋め込みSQL

  • 8.2Kから 8.2K2 にリポジトリ入出力機能を使用して再構築すると、埋め込みSQLを使っているプログラムが不定期に異常終了するという不具合が修正されました。

メモリリークの改善

  • BLOBを扱うタスクで子タスクがトランザクションを開始させた場合、メモリリークが発生する不具合を修正しました。
  • テーブルコントロールが配置されたフォームを持つタスクを実行すると、メモリリークが発生する不具合を修正しました。
  • [データベース特性]/[DBMS特性]で指定する[照合順序ファイル]の内容によってメモリリークが発生する不具合を修正しました。

●インターネット機能

  • WWWブラウザに NetScape Navigatorを使用すると[出力先フレーム]欄で指定したフレームに表示されない不具合を修正しました。
  • コントロール特性のハイパーリンクの設定においてハイパーリンクタイプをMAGICプログラムにした場合、長いパラメータなどを設定すると異常終了する不具合を修正しました。

プログラムチェック機能

  • EXPCALC関数を複数個使用した式が、プログラムチェックユーティリティでエラーとして扱われてしまう不具合を修正しました。


Ver8.2K2 での改善内容

データアクセス

  • Btrieve データへのバッチアクセスでメモリリークが発生する場合がありました。
  • 「ビュー再表示」アクションを使用した後にインクリメンタルサーチを行うと異常終了する場合がありました。
  • 日付型のデータの書式が YYYY/MM の場合は0を入れると「日付が不正です」というエラーになっていました。この件の対応により YYYY/MM/DD 書式で "0000/00/01" と入力してもエラーにならず、 "0000/00/00" になります。
  • 動的にインデックスを変更するようなプログラムにおいて、インクリメンタルサーチを行った後でインデックス変更を行い、再度インクリメンタルサーチを行うとMAGICが異常終了する場合がありました。
  • 照会モードの修正許可が YES になっていると、ある変数項目がソート項目になっており、かつリンク開始終了の間にあると、ソート処理で正常に起動しない場合がありました。
  • 子タスクで、親からのパラメータを基にプログラム特性／高度な設定／メインフォームに式を指定した場合、正常に機能しない場合がありました。
  • 外部結合リンクの、[位置付]欄に定数を指定できませんでした。

印刷機能

  • プレビュー表示をスクロールすると異常終了する場合がありました。
  • ネストの深いタスク上でプレビュー表示を行うと異常終了する場合がありました。
  • プレビュー表示で、罫線部と文字列の表示位置にずれが表示する場合がありました。
  • プレビュー表示で、縦のラインコントロールが直線表示にならない場合がありました。
  • プレビュー表示で、フォーム上で指定した Zオーダ通りに表示されない場合がありました。
  • ［フォーム拡大］が［O=1ページ］の場合、リッチテキストコントロールのコントロールのサイズがテキストのサイズより小さい場合、正常に拡張出力されませんでした。ただし、［M=複数ページ］の場合は、拡張出力されません。
  • MAGIC.INI の [MAGIC_SPECIALS] セクションに 以下のパラメータが追加されました。
    [MAGIC_SPECIALS]
ClosePrintedTablesInSubtasks=Y/N

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

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

リポジトリ入出力

  • 旧バージョンからのリポジトリ入力を行うと、日付のデフォルト値が CTL特性で定義された値になってしまいました。
  • Ver7.X からの移行を行うと、キャッシュ範囲の指定が全て［位置とデータ］になっていました。
  • Ver5 の辞書データの読み込み時に異常終了する場合がありました。
  • 仕様書出力モードで出力すると、日付のデフォルト値が数値で出力されていました。ただし、変数のデフォルト値は、数値のまま出力されます。

フォームエディタ

  • GUIフォームエディタにおいて、プッシュボタンのボタンスタイルをハイパースタイルとした場合、ラベルの「&」が下線に変換されずにそのまま表示されていました。
  • 「HTMLファイル書込」コマンドにおいて論理名が展開されませんでした。
  • HTMLフォームエディタにおいて「サイズ調整」コマンド（幅最小／最大化、高さ最小／最大化）が実行できませんでした。
  • テーブル上のプッシュボタンが位置を式で定義している場合、テーブルスクロールを行っても、ボタン位置が連動しませでした。
  • Active-X と Java コントロールにパラメータを渡せるようになりました。
  • タブコントロール上の最初のコントロールでズーム処理が可能になっている画面で、キーボード操作にてタブの移動を行った場合、タブの移動と同時にズーム処理の動作が行われていました。
  • テーブルコントロールの色をコントロール特性で変更することができませんでした。
  • コンボボックス（平面）において、プルダウン状態の色（色番号 93)がプルダウンを閉じても残っていました。
  • チェックボックス上で IME がOFFにならない場合がありました。

内部ヘルプ

  • 内部ヘルプの色を指定できる様になりました。基本色テーブルの #4"基本ヘルプ画面色" の色が反映されます。

処理コマンド

  • 結合リンクを使用したプログラムで、レコード前処理に6行以上レコードがあると、プログラムチェックにひっかかる場合がありました。
  • 外部結合リンクを使用した時に、変数を項目更新しても正しい値に更新されない場合がありました。

インターネット機能

  • コントロール特性の[背景]で指定したパス名の前に '/' が付加されて出力されるようになりました。


Ver8.2K での改善内容

印刷機能

  • 入出力特性の用紙サイズに B4サイズと B5サイズを追加しました。
  • プレビュー機能において、横スクロール操作や IME のウィンドウとの重なりによる表示の乱れを改善しました。ただし、スクロール時の動作が若干遅くなっています。

フォームエディタ

  • HTMLフォーム(HTMLドキュメント）エディタで エディットコントロールに対して「サイズ調整」が有効になりました。

インターネット機能

  • HTML ドキュメント、HTML フォーム、Java フォーム等のフォーム特性、およびこれらのフォーム上のコントロール特性において「Web サーバ上のリソース（イメージファイル、サウンドファイル等）を定義した場合、ファイル名の先頭に「/」がなくても、実行時に「/」が付加されます。
    これにより、コントロールタイプがイメージの文字項目および式において指定されたリソースを参照する場合にも「/」が付加されるようになりましたので、プログラム上においてパス名の変更が必要となる場合があります。
    ファイル名の先頭に「/」を付加したくない場合、MAGIC.INI ファイルに以下の設定を行ってください。
    [MAGIC_SPECIALS]
SpecialConvAddSlash = N
  • HTMLフォーム上で リストボックスに "\" を含んだラベルを定義した場合、ブラウザ上で正しく表示されるようになりました。

リポジトリ入出力

  • 仕様書出力モードで出力した場合、子タスクのタスク名が出力されるようになりました。

関数

  • Ver8.2K でのLASTPARK関数の不具合に対応しました。
  • EXPCALC 関数のパラメータとして数値項目を使用した場合に、エラーメッセージを表示しないようになりました。

データアクセス

  • Ver8.2K での全角文字のインクリメンタルサーチの不具合に対応しました。

アプリケーション・パーティショニング

  • MGRB.INIの[MRB_REMOTE_EXECUTABLES_LIST]で指定されたエンジンが起動できるようになりました。

プログラムリポジトリ

  • イベントテーブルの[Prog/Task]欄にマウスポインタを置いた場合に、不当なツールチップが表示されないようになりました。
  • タスク定義ウィンドウの[ブレイクテーブル]-[トランザクション]の初期値を以下のように変更しました：
    1. [動作環境]-[マルチユーザ]で[ロック前にトランザクション開始]＝No
    2. メインテーブルを変更したとき
    3. メインテーブルがISAM

    上記条件が全て満たされた場合

    • オンラインタスクでは：「U=更新」
    • バッチタスクでは ：「N=なし」

    これ以外の場合は、

    • オンラインタスクでは：「L=オンロック」
    • バッチタスクでは ：「N=なし」
  • Ver8.2K でのコールリモートのパラメータとして BLOB 項目を使用した場合の不具合に対応しました。

動作環境

  • 表記を次のように変更しました。「SQLメッセージの詳細表示」 → 「メッセージの詳細表示」

ダイアログ表示

  • Mgconst.hi2,hi3 を使用した場合の 「SQL Where 句」、「Query ファイルオープン」 のダイアログ表示の不具合に対応しました。

MRB モニタープログラム

  • PasswordQuery を設定できるようにしました。このため、パスワードの設定はダイアログを別途開いて設定していただくことになります。
  • ［リクエスト］タブにて削除できないリクエストでは「削除」ボタンを無効にしました。

MVCS機能

  • CTLロールバックにおいて表示されるダイアログの［CTLファイル］欄で指定できる文字数が255文字までになりました。

マニュアル

第４版として以下の内容を追加／修正しました。

リファレンスマニュアル

章 | 項目 | 場所 | 変更内容
第２章 | 2.3 設定/動作環境 | ［マルチユーザ］タブ の #15 | "SQLメッセージの詳細表示" を "メッセージの詳細表示" に変更しました。 また、Webアプリケーションとの関連性を追記しました。
 | 2.7 設定/サーバ | 特性の説明 | アプリケーションサーバとデータサーバでの設定内容の記述を追記しました。
 | 2.23 コマンドラインオプション |  | ［日本語環境］でのパラメータの値 以降を 2.24節に分離、[MAGIC_ENV]セクション以外のセクションの説明用としました。
第８章 |  | DDEXEC関数 | DDERR の説明になっていたので修正しました。
 |  | EURO関数 | EURODEL,EUROSET,EUROUPD の戻り値を数値に修正しました。
 |  | FLWMTR関数 | パラメータの"論理ブレイク"の説明を修正しました。
 |  | ISDEFAULT関数 | 注意を追加。これに伴って、例を修正しました。
 |  | RQLOAD関数 | パスワードを スーパバイザパスワードから 参照用パスワードに変更しました。
 |  | RQREQLST関数 | 戻り値の説明を修正しました。
 |  | RQRTINF関数 | 戻り値の順序を修正(IPアドレスは３番目になる)しました。
第１０章 | 10.7 コントロールの編集 | 「サイズ調整」ボタン | 説明を修正しました。
第１７章 | 17.3 トランザクション処理と実行レベル | トランザクションの初期値 | 説明を修正しました。
第１８章 | 18.1 ワークグループ開発に関する設定 |  | ［注意］を追加しました。
第１９章 | 19.5 Ver8 への移行の際の注意事項 |  | Readme に記述されている 旧バージョンからの移行に関する注意事項を転記しました。

開発者ガイドー分散開発編

章 | 項目 | 場所 | 変更内容
第４章 | 4.4 プログラムの作成 | 呼び出されるプログラム | 説明を一部修正しました。
付録D |  |  | 付録D としてコマンドラインリクエスタのパラメータ一覧を追加しました。

開発者ガイドーインターネット編

章 | 項目 | 場所 | 変更内容
第２章 | 2.6 その他の注意事項 | エラーメッセージの表示 | 説明を追加しました。
第５章 | 5.2 プログラム「データ入力(I-net)」の作成 | 「データ入力(I-net)」のWebページの定義 | 説明に項番６を追加しました。

新機能ガイド

章 | 項目 | 場所 | 変更内容
第３章 | 3.7 新しい関数 | EURO関数 | EURODEL,EUROSET,EUROUPD の戻り値を数値に修正しました。
 |  | FLWMTR関数 | パラメータの"論理ブレイク"の説明を修正しました。
 |  | ISDEFAULT関数 | 注意を追加。これに伴って、例を修正しました。
 |  | RQLOAD関数 | パスワードを スーパバイザパスワードから 参照用パスワードに変更しました。
 |  | RQREQLST関数 | 戻り値の説明を修正
 |  | RQRTINF関数 | 戻り値の順序を修正(IPアドレスは３番目になる)しました。
第４章 | 4.4 関数 | RQLOAD関数 | パスワードを スーパバイザパスワードから 参照用パスワードに変更しました。
 |  | RQREQLST関数 | 戻り値の説明を修正
 |  | RQRTINF関数 | 戻り値の順序を修正(IPアドレスは３番目になる)しました。
第１６章 | 16.2 関数 | EURO関数 | EURODEL,EUROSET,EUROUPD の戻り値を数値に修正しました。
 | 16.3 西暦2000年問題対応のためのデフォルト値 |  | 「注意」を削除しました。


サポートしているイメージファイルのフォーマット

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

ファイルタイプ | サブタイプ | 表示
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


制限値 ・各テーブルの最大登録数

制限値 ・各テーブルの最大登録数は以下のとおりです。

場所 | 項目 | 最大 | 備考
環境設定 | アプリケーション | 99 |
 | その他環境設定用テーブル |  | 特に制限をかけていませんが、メモリ環境などに依存します。
タイプリポジトリ |  | 5,000 |
テーブルリポジトリ | テーブル数 | 999 |
 | インデックスセグメント | 199 | インデックスは、使用するDBMSによって実際に使用できる制限値が変わります
プログラムリポジトリ | プログラム数 | 20,000 |
 | 処理レベルテーブル | 10,000 |
 | 処理テーブル | 10,000 |
 | 変数項目テーブル | 676 | 変数のみをセレクト定義した場合のみ
 | 式テーブル | 9,999 |
 | フォームテーブル | 9,999 |
 | １つのフォームに配置できるコントロール数 | 1,000 |
 | フォームのコントロールを一度に選択できる個数 | 1,000 |
 | ＤＢテーブルーブル | 10,000 |
 | 入出力ファイルテーブル | 9,999 |
 | ソートテーブル | 32,765 |
 | タスクイベントテーブル | 1,000 |
ヘルプリポジトリ |  | 20,000 |
権利リポジトリ |  | 5,000 |
メニューリポジトリ | メニュー数 | 5,000 |
 | レベル数 | 10 |
 | １レベル当りのエントリ数 | 5,000 |
イベントテーブル |  | 1,000 |


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

ベータ機能評価レポート

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

dbMAGIC Ver 8.20K4 SP2 ベータ機能評価レポート

記入日： ２００４年　 月　 日

会社名：

担当者：

E-mail：

ＴＥＬ：

ＦＡＸ：

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

１．動作環境

ＰＣ機種：

ＣＰＵ：

ＲＡＭ：

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

ＩＭＥ：

アクセラレータ：

ビデオチップ：

プリンタ：

使用サーバ：

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

２．評価結果

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

Ａ （ ） 問題無し

Ｂ （ ） 一部支障あり

Ｃ （ ） 正常に動作しない

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

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

３． 再現性

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

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

５．その他ご意見