JPH05204988A - サーバデータベースのアクセス方法 - Google Patents
サーバデータベースのアクセス方法Info
- Publication number
- JPH05204988A JPH05204988A JP3049175A JP4917591A JPH05204988A JP H05204988 A JPH05204988 A JP H05204988A JP 3049175 A JP3049175 A JP 3049175A JP 4917591 A JP4917591 A JP 4917591A JP H05204988 A JPH05204988 A JP H05204988A
- Authority
- JP
- Japan
- Prior art keywords
- database
- command
- dbms
- application program
- commands
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 異なる適用業務プログラムコンピュータから
遠隔DBMSのファシリティを検査する上での問題を解
決する。 【構成】 第1計算環境内で発生され計画される適用業
務プログラムを、この第1計算環境とは異なる第2の計
算環境で動作する遠隔データベース管理システム(DB
MS)で登録されている関係データにアクセス可能にす
る。このDBMSから離れている適用業務サイトからの
DBMSを介してのアクセスはDBMSへの適用業務プ
ログラムデータアクセスをマッピングする適用業務プロ
グラムに対し論理的に下位であるプロセスによりサポー
トされる。
遠隔DBMSのファシリティを検査する上での問題を解
決する。 【構成】 第1計算環境内で発生され計画される適用業
務プログラムを、この第1計算環境とは異なる第2の計
算環境で動作する遠隔データベース管理システム(DB
MS)で登録されている関係データにアクセス可能にす
る。このDBMSから離れている適用業務サイトからの
DBMSを介してのアクセスはDBMSへの適用業務プ
ログラムデータアクセスをマッピングする適用業務プロ
グラムに対し論理的に下位であるプロセスによりサポー
トされる。
Description
【0001】
【産業上の利用分野】本発明は遠隔データリポジトリと
は異なるコンピュータにおいて実行する適用業務プログ
ラムから以下にデータベース管理システム(DBMS)
と呼ぶ遠隔データリポジトリをアクセスする際の問題に
関する。
は異なるコンピュータにおいて実行する適用業務プログ
ラムから以下にデータベース管理システム(DBMS)
と呼ぶ遠隔データリポジトリをアクセスする際の問題に
関する。
【0002】
【従来の技術および解決すべき課題】データリポジトリ
すなわちDBMSは、ビジネスや、商業、科学、政治な
どにおける広い範囲の実際の世界のアクティビティを管
理し、制御し、分析し、モデル化し、追跡し、文書化す
るために種々の方法で使用出来る情報を記憶する。DB
MSに記憶される情報は特定の目的についての情報を検
索する種々の適用業務プログラムにより共用出来る。異
なったコンピュータについて異なるDBMS内に同一の
情報を維持することは非常に困難であるから、適用業務
プログラムは存在する必要な情報をアクセスし取扱うこ
とが出来るものであることが重要である。
すなわちDBMSは、ビジネスや、商業、科学、政治な
どにおける広い範囲の実際の世界のアクティビティを管
理し、制御し、分析し、モデル化し、追跡し、文書化す
るために種々の方法で使用出来る情報を記憶する。DB
MSに記憶される情報は特定の目的についての情報を検
索する種々の適用業務プログラムにより共用出来る。異
なったコンピュータについて異なるDBMS内に同一の
情報を維持することは非常に困難であるから、適用業務
プログラムは存在する必要な情報をアクセスし取扱うこ
とが出来るものであることが重要である。
【0003】しかしながら、適用業務プログラムはDB
MS内の情報をアクセスし取扱うばかりでなく、コンピ
ュータディスプレイとキーボードとにより人間と対話し
なければならない。この対話は、適用業務プログラムが
人間に近いところにあるコンピュータで実行出来れば大
いに容易となる。また、しばしば、言語、オペレーティ
ングシステムまたはコンピュータにより限定される特定
のコンピュータ環境に対し開発され適用される適用業務
プログラムが異なるコンピュータ環境に適用(そしてそ
れにおいて走行)されるDMBS内のデータまたはその
特徴を探す必要がある。それ故、適用業務プログラムに
とってその適用業務プログラムのコンピュータではない
コンピュータに置かれたDBMS内の情報をアクセスし
扱うことが出来るものであるとよい。
MS内の情報をアクセスし取扱うばかりでなく、コンピ
ュータディスプレイとキーボードとにより人間と対話し
なければならない。この対話は、適用業務プログラムが
人間に近いところにあるコンピュータで実行出来れば大
いに容易となる。また、しばしば、言語、オペレーティ
ングシステムまたはコンピュータにより限定される特定
のコンピュータ環境に対し開発され適用される適用業務
プログラムが異なるコンピュータ環境に適用(そしてそ
れにおいて走行)されるDMBS内のデータまたはその
特徴を探す必要がある。それ故、適用業務プログラムに
とってその適用業務プログラムのコンピュータではない
コンピュータに置かれたDBMS内の情報をアクセスし
扱うことが出来るものであるとよい。
【0004】DBMS内の情報の維持の他の特徴は特定
の計算環境またはデータモデルに対し特殊化されたデー
タベースコマンドを有する異なった模式で実行を行うD
BMSがあるということである。別々に実行するDBM
Sの一つの重要なクラスは関係データベースシステムと
して知られるものである。このクラス内のDBMSはS
QLとして知られるデータベースコマンド言語を有する
ものである。C.J.Data著「アン・イントロダクション・
ツー・データベース・システムズ」第1巻、Addison-We
sley社刊(1986年第4編)の第2章に示される関係
データベースシステムはSQLデータベースコマンド言
語にもとづいている。しかしながら、この限定されたD
BMSのクラスにおいてもSQLコマンドに差があり、
これらは異なる実行を受け入れて処理する。SQLデー
タベースコマンド言語のこれらの相異は異なる実行およ
びサポートされる言語機能の差の異なるオペレーティン
グ環境を生じさせる。
の計算環境またはデータモデルに対し特殊化されたデー
タベースコマンドを有する異なった模式で実行を行うD
BMSがあるということである。別々に実行するDBM
Sの一つの重要なクラスは関係データベースシステムと
して知られるものである。このクラス内のDBMSはS
QLとして知られるデータベースコマンド言語を有する
ものである。C.J.Data著「アン・イントロダクション・
ツー・データベース・システムズ」第1巻、Addison-We
sley社刊(1986年第4編)の第2章に示される関係
データベースシステムはSQLデータベースコマンド言
語にもとづいている。しかしながら、この限定されたD
BMSのクラスにおいてもSQLコマンドに差があり、
これらは異なる実行を受け入れて処理する。SQLデー
タベースコマンド言語のこれらの相異は異なる実行およ
びサポートされる言語機能の差の異なるオペレーティン
グ環境を生じさせる。
【0005】SQLデータベースコマンド言語を支持す
るDBMSを利用する適用業務プログラムはいくつかの
異なるプログラミング言語の一つで書かれる。DBMS
データをアクセスするためのSQLデータベースコマン
ドは適用業務プログラム内に埋めこまれる。適用業務プ
ログラムはいくつかの段階で実行するように用意され
る。まず、SQLプリプロセッサと呼ばれる適用業務ア
クセスエージェントのコンポーネントが適用業務プログ
ラムのテキストを検索し、埋め込まれたSQLデータベ
ースコマンドを、データベースインターフェースファン
クションと呼ばれる適用業務アクセスエージェントの他
のコンポーネントと置き換える。これらデータベースイ
ンターフェースファンクションはSQLデータベースコ
マンドの実行を行うためにDBMSとの実際の対話を仲
介する。次に、変更された適用業務プログラムが言語コ
ンパイラで処理され、このコンパイラがそれをコンピュ
ータインストラクションの、マシンに依存するシーケン
スに変換する。最後に変換された適用業務プログラムが
データベースインターフェースファンクションと組合さ
れ(またはリンクされ)て特定の計算環境で呼出されて
実行されうるモジュールをつくる。
るDBMSを利用する適用業務プログラムはいくつかの
異なるプログラミング言語の一つで書かれる。DBMS
データをアクセスするためのSQLデータベースコマン
ドは適用業務プログラム内に埋めこまれる。適用業務プ
ログラムはいくつかの段階で実行するように用意され
る。まず、SQLプリプロセッサと呼ばれる適用業務ア
クセスエージェントのコンポーネントが適用業務プログ
ラムのテキストを検索し、埋め込まれたSQLデータベ
ースコマンドを、データベースインターフェースファン
クションと呼ばれる適用業務アクセスエージェントの他
のコンポーネントと置き換える。これらデータベースイ
ンターフェースファンクションはSQLデータベースコ
マンドの実行を行うためにDBMSとの実際の対話を仲
介する。次に、変更された適用業務プログラムが言語コ
ンパイラで処理され、このコンパイラがそれをコンピュ
ータインストラクションの、マシンに依存するシーケン
スに変換する。最後に変換された適用業務プログラムが
データベースインターフェースファンクションと組合さ
れ(またはリンクされ)て特定の計算環境で呼出されて
実行されうるモジュールをつくる。
【0006】データベースインターフェースファンクシ
ョンに対する呼び出しで適用業務プログラム内に埋め込
まれたSQLデータベースコマンドを置き換えることに
加えて、いくつかのSQLプリプロセッサとSQLDB
MSはリンクされた適用業務プログラムの実行中にコマ
ンドを行う必要の充分前にSQLデータベースコマンド
を実行のために分析し用意する能力をサポートする。バ
インディングとも呼ばれるこのデータベースコマンド実
行の用意は適用業務プログラムのパフォーマンスを著し
く改善する。これは、SQLデータベースコマンドの分
析が一般にコマンド内のデータベースオブジェクト(例
えばテーブルコラム等)のネームを特定のDBMS内に
あるオブジェクトのネームと比較するために比較的高価
なI/Oオペレーションを必然的に伴うためである。更
に、多くのSQLデータベースコマンドについて、コマ
ンドを行うに必要なデータベースステップの最良のシー
ケンスの決定は多数の代替シーケンスの考慮を必要とす
る。最良のステップシーケンスを選ぶことを最適化と云
う。分析と最適化が完了してしまうと、そのDBMSは
その結果を保持し、対応するSQLデータベースコマン
ドの実行が要求されたときにそれを使用しうる。
ョンに対する呼び出しで適用業務プログラム内に埋め込
まれたSQLデータベースコマンドを置き換えることに
加えて、いくつかのSQLプリプロセッサとSQLDB
MSはリンクされた適用業務プログラムの実行中にコマ
ンドを行う必要の充分前にSQLデータベースコマンド
を実行のために分析し用意する能力をサポートする。バ
インディングとも呼ばれるこのデータベースコマンド実
行の用意は適用業務プログラムのパフォーマンスを著し
く改善する。これは、SQLデータベースコマンドの分
析が一般にコマンド内のデータベースオブジェクト(例
えばテーブルコラム等)のネームを特定のDBMS内に
あるオブジェクトのネームと比較するために比較的高価
なI/Oオペレーションを必然的に伴うためである。更
に、多くのSQLデータベースコマンドについて、コマ
ンドを行うに必要なデータベースステップの最良のシー
ケンスの決定は多数の代替シーケンスの考慮を必要とす
る。最良のステップシーケンスを選ぶことを最適化と云
う。分析と最適化が完了してしまうと、そのDBMSは
その結果を保持し、対応するSQLデータベースコマン
ドの実行が要求されたときにそれを使用しうる。
【0007】本発明における問題は、一つのコンピュー
タにおいて実行する適用業務プログラムが、異なる計算
環境を有する異なったコンピュータについて走行するD
BMSの完全なサービスを操りうるようにするメカニズ
ムと手順を与えることである。本発明は遠隔DBMSの
異なった使用及びそれらの使用のデータベースコマンド
言語の特徴の開発を特に問題としている。データベース
コマンドの特異性のトレランスは通信プロトコルを介し
て遠隔コンピュータ内のDBMSに結合されるアプリケ
ーションアクセスエージェントプログラムの一つの状態
(使用)を用いて達成される。本発明はまた、このアプ
リケーションプログラムの実行の前にデータベースコマ
ンドの結合を支持することにより向上したパフォーマン
スを達成する。
タにおいて実行する適用業務プログラムが、異なる計算
環境を有する異なったコンピュータについて走行するD
BMSの完全なサービスを操りうるようにするメカニズ
ムと手順を与えることである。本発明は遠隔DBMSの
異なった使用及びそれらの使用のデータベースコマンド
言語の特徴の開発を特に問題としている。データベース
コマンドの特異性のトレランスは通信プロトコルを介し
て遠隔コンピュータ内のDBMSに結合されるアプリケ
ーションアクセスエージェントプログラムの一つの状態
(使用)を用いて達成される。本発明はまた、このアプ
リケーションプログラムの実行の前にデータベースコマ
ンドの結合を支持することにより向上したパフォーマン
スを達成する。
【0008】これら目的をアドレスする他のメカニズム
は次のものを含む。 1. 他の遠隔DBMS(すなわち分散データベースシ
ステム)においてデータベースコマンドを行うためにそ
れらDBMSと対話しうる適用業務プログラムコンピュ
ータにおける(局所)DBMS; 2. 遠隔手順呼出し(RPC)メカニズムを用いた局
所DBMSの使用に対してなされうるデータベース呼出
しの遠隔実行; 3. データベースコマンドを受け、分析し、最適化
し、そして中間または延期された実行のためにデータベ
ースのステップの結果としてのシーケンスを遠隔DBM
Sに送る適用業務プログラムコンピュータのプログラ
ム; 4. 適用業務プログラムのデータベースコマンドを、
その(このとき遠隔である)適用業務プログラムの代替
としてその(このとき局所の)DBMSへデータベース
コマンドを出すDBMSの遠隔コンピュータのプログラ
ム(またはデバイス)に通信すること;および 5. 国家または国際標準機関の監視下での遠隔データ
ベースアクセス(RDA)通信プロトコル。
は次のものを含む。 1. 他の遠隔DBMS(すなわち分散データベースシ
ステム)においてデータベースコマンドを行うためにそ
れらDBMSと対話しうる適用業務プログラムコンピュ
ータにおける(局所)DBMS; 2. 遠隔手順呼出し(RPC)メカニズムを用いた局
所DBMSの使用に対してなされうるデータベース呼出
しの遠隔実行; 3. データベースコマンドを受け、分析し、最適化
し、そして中間または延期された実行のためにデータベ
ースのステップの結果としてのシーケンスを遠隔DBM
Sに送る適用業務プログラムコンピュータのプログラ
ム; 4. 適用業務プログラムのデータベースコマンドを、
その(このとき遠隔である)適用業務プログラムの代替
としてその(このとき局所の)DBMSへデータベース
コマンドを出すDBMSの遠隔コンピュータのプログラ
ム(またはデバイス)に通信すること;および 5. 国家または国際標準機関の監視下での遠隔データ
ベースアクセス(RDA)通信プロトコル。
【0009】上記の第1のメカニズムは殆どのDBMS
の実行では使用不能な進歩したデータベース機能を必要
とする。更に、そのようなDBMSが適用業務プログラ
ムコンピュータに存在していなければならない。これは
ライセンス、メインテナンスおよび資源(CPUおよび
記憶機構)のコストを著しく増大させる。
の実行では使用不能な進歩したデータベース機能を必要
とする。更に、そのようなDBMSが適用業務プログラ
ムコンピュータに存在していなければならない。これは
ライセンス、メインテナンスおよび資源(CPUおよび
記憶機構)のコストを著しく増大させる。
【0010】データベース呼出しインターフェースは一
般にDBMS実行とその計算環境に特有のものであるか
ら、上記第2のメカニズムは個別に実行される遠隔DB
MSのそれぞれについて適用業務プログラムコンピュー
タにおける特殊なサポートを必要とする。特定のDBM
S呼出インターフェースについての複数のサポートは開
発コストが高く、新しい遠隔DBMS実行が使用可能と
なるときには拡張されねばならない。
般にDBMS実行とその計算環境に特有のものであるか
ら、上記第2のメカニズムは個別に実行される遠隔DB
MSのそれぞれについて適用業務プログラムコンピュー
タにおける特殊なサポートを必要とする。特定のDBM
S呼出インターフェースについての複数のサポートは開
発コストが高く、新しい遠隔DBMS実行が使用可能と
なるときには拡張されねばならない。
【0011】上記第3のメカニズムは遠隔DBMSで使
用されるデータベースステップの種類とデータベースコ
マンド言語の特徴と所要のステップを計算するアプリケ
ーションプログラムでのプログラムにより支持される機
能の両方に極めて密接に関係する。更に、遠隔DBMS
のデータベースコマンド言語に対する機能的な向上は適
用業務アクセスエージェントに対する同様の向上とマッ
チしなければならない。
用されるデータベースステップの種類とデータベースコ
マンド言語の特徴と所要のステップを計算するアプリケ
ーションプログラムでのプログラムにより支持される機
能の両方に極めて密接に関係する。更に、遠隔DBMS
のデータベースコマンド言語に対する機能的な向上は適
用業務アクセスエージェントに対する同様の向上とマッ
チしなければならない。
【0012】上記第4のメカニズムは、適用業務プログ
ラムのデータベースコマンドが適用業務プログラムのコ
ンピュータの適用業務プログラムの実行前に遠隔DBM
Sに与えられないから、実行前にデータベースコマンド
を分析し、準備することが出来ない。
ラムのデータベースコマンドが適用業務プログラムのコ
ンピュータの適用業務プログラムの実行前に遠隔DBM
Sに与えられないから、実行前にデータベースコマンド
を分析し、準備することが出来ない。
【0013】上記第5のメカニズムもデータベースコマ
ンドの実行を用いる適用業務プログラムの実行前のデー
タベースコマンドの分析および処理をサポートしない。
これは(多分)著しいパフォーマントペナルティを生じ
させ、そして適用業務プログラムの複数回の実行につい
てデータベースコマンドの分析と最適化のためのコスト
の償却を許すものではない。
ンドの実行を用いる適用業務プログラムの実行前のデー
タベースコマンドの分析および処理をサポートしない。
これは(多分)著しいパフォーマントペナルティを生じ
させ、そして適用業務プログラムの複数回の実行につい
てデータベースコマンドの分析と最適化のためのコスト
の償却を許すものではない。
【0014】
【課題を解決するための手段】本発明は通信ファシリテ
ィにより接続された複数のコンピュータシステムからな
る環境において動作する。これら計算システムの内のい
くつかが適用業務プログラムコンピュータとされ、残り
のシステムはDBMSコンピュータとされる。適用業務
コンピュータとDBMSコンピュータはその実行および
計算環境を変化しうる。通信メカニズムは適用業務プロ
グラムおよびDBMSコンピュータにより用意された通
信プロトコルに従って動作される。本発明では、適用業
務プログラムコンピュータはDBMSコンピュータから
物理的に離れており、それ故適用業務コンピュータの範
囲から離されており、一つのDBMSコンピュータは
「遠隔」データサイトである。
ィにより接続された複数のコンピュータシステムからな
る環境において動作する。これら計算システムの内のい
くつかが適用業務プログラムコンピュータとされ、残り
のシステムはDBMSコンピュータとされる。適用業務
コンピュータとDBMSコンピュータはその実行および
計算環境を変化しうる。通信メカニズムは適用業務プロ
グラムおよびDBMSコンピュータにより用意された通
信プロトコルに従って動作される。本発明では、適用業
務プログラムコンピュータはDBMSコンピュータから
物理的に離れており、それ故適用業務コンピュータの範
囲から離されており、一つのDBMSコンピュータは
「遠隔」データサイトである。
【0015】本発明によれば、データベースコマンド言
語をサポートするDBMSを用いる適用業務プログラム
はいくつかの異なったプログラミング言語で書くことが
出来る。DBMSデータにアクセスするためのデータベ
ースコマンドはその適用業務のプログラムに埋込まれ
る。適用業務アクセスエージェントがいくつかのステッ
プでの実行のための適用業務プログラムを用意し、そし
てDBMSデータおよびファシリティの探索により実行
をサポートする。
語をサポートするDBMSを用いる適用業務プログラム
はいくつかの異なったプログラミング言語で書くことが
出来る。DBMSデータにアクセスするためのデータベ
ースコマンドはその適用業務のプログラムに埋込まれ
る。適用業務アクセスエージェントがいくつかのステッ
プでの実行のための適用業務プログラムを用意し、そし
てDBMSデータおよびファシリティの探索により実行
をサポートする。
【0016】まず、プリプロセッサである適用業務アク
セスエージェントの一つの成分が適用業務プログラムの
テキストを検査し、埋込まれたデータベースコマンド
を、データベースインターフェースファンクションであ
る適用業務アクセスエージェントの他の成分と置き換え
る。この成分はデータベースコマンドの実行を行うため
にDBMSとの実際の対話を仲介する。次に、この変更
された適用業務プログラムが言語コンパイラで処理され
る。このコンパイラはそれをコンピュータインストラク
ションの機械シーケンスに変換する。この変換された適
用業務プログラムはデータベースインターフェースファ
ンクションと組合されあるいはリンクされて特定の計算
環境において実行しうるモジュールをつくる。
セスエージェントの一つの成分が適用業務プログラムの
テキストを検査し、埋込まれたデータベースコマンド
を、データベースインターフェースファンクションであ
る適用業務アクセスエージェントの他の成分と置き換え
る。この成分はデータベースコマンドの実行を行うため
にDBMSとの実際の対話を仲介する。次に、この変更
された適用業務プログラムが言語コンパイラで処理され
る。このコンパイラはそれをコンピュータインストラク
ションの機械シーケンスに変換する。この変換された適
用業務プログラムはデータベースインターフェースファ
ンクションと組合されあるいはリンクされて特定の計算
環境において実行しうるモジュールをつくる。
【0017】適用業務プログラムから抽出された埋込み
データベースコマンドは、このプログラムがプリプロセ
ッサにより扱われている間に組立てられる。抽出された
データベースコマンドはプリプロセス中に実行のために
分析され、用意され、そして組立てられる。適用業務ア
クセスエージェントのバインドプログラム成分は遠隔D
BMSと対話してアプリケーションプログラムからのデ
ータベースコマンドを、適用業務プログラムの実行に応
じて実行するためのデータベースコマンドを保持するネ
ームをもつDBMSに結合する。
データベースコマンドは、このプログラムがプリプロセ
ッサにより扱われている間に組立てられる。抽出された
データベースコマンドはプリプロセス中に実行のために
分析され、用意され、そして組立てられる。適用業務ア
クセスエージェントのバインドプログラム成分は遠隔D
BMSと対話してアプリケーションプログラムからのデ
ータベースコマンドを、適用業務プログラムの実行に応
じて実行するためのデータベースコマンドを保持するネ
ームをもつDBMSに結合する。
【0018】最後に、適用業務アクセスエージェントの
データベースインターフェースファンクション成分は適
用業務プログラム内の、データベースコマンドを置き換
える呼出しを受ける。適用業務プログラムから一つの呼
出しがなされると、データベースインターフェースファ
ンクション成分が呼び出されたコマンドをDBMSに知
らせ、このDBMSがこのコマンドを実行してその結果
をデータベースインターフェースファンクションにもど
す。受信したこれら結果は直ちにあるいは適用業務プロ
グラムからの以降の要求によりそのプログラムに入れら
れる。
データベースインターフェースファンクション成分は適
用業務プログラム内の、データベースコマンドを置き換
える呼出しを受ける。適用業務プログラムから一つの呼
出しがなされると、データベースインターフェースファ
ンクション成分が呼び出されたコマンドをDBMSに知
らせ、このDBMSがこのコマンドを実行してその結果
をデータベースインターフェースファンクションにもど
す。受信したこれら結果は直ちにあるいは適用業務プロ
グラムからの以降の要求によりそのプログラムに入れら
れる。
【0019】本発明は異なった適用業務プログラムコン
ピュータから遠隔DBMSのファシリティの探索の問題
を、次のことを行うに必要なプロトコルのエレメントを
限定することにより解決する。 1. データベースコマンドを遠隔DBMSコンピュー
タで結合(分析、最適化および保持)させる。及び 2. 遠隔DBMSコンピュータでの保持されたコマン
ドの実行を開始する。
ピュータから遠隔DBMSのファシリティの探索の問題
を、次のことを行うに必要なプロトコルのエレメントを
限定することにより解決する。 1. データベースコマンドを遠隔DBMSコンピュー
タで結合(分析、最適化および保持)させる。及び 2. 遠隔DBMSコンピュータでの保持されたコマン
ドの実行を開始する。
【0020】データベースコマンド言語の特徴バージョ
ンをサポートする目的は、適用業務プログラムコンピュ
ータにおける適用業務アクセスエージェントがデータベ
ースコマンドの意味を分析し理解する度合をそれらデー
タベースコマンドの実行を適正に呼び出すために適用業
務プログラムの変換に必要な最少のものに制限すること
により達成される。更に、遠隔DBMSコンピュータに
おけるデータベースコマンドの結合のためのプロトコル
はデータベースコマンド言語シンタックスの特質と特定
の遠隔DBMS実行の意味には不感となるように適用さ
れる。
ンをサポートする目的は、適用業務プログラムコンピュ
ータにおける適用業務アクセスエージェントがデータベ
ースコマンドの意味を分析し理解する度合をそれらデー
タベースコマンドの実行を適正に呼び出すために適用業
務プログラムの変換に必要な最少のものに制限すること
により達成される。更に、遠隔DBMSコンピュータに
おけるデータベースコマンドの結合のためのプロトコル
はデータベースコマンド言語シンタックスの特質と特定
の遠隔DBMS実行の意味には不感となるように適用さ
れる。
【0021】本発明の他の重要な特徴は遠隔DBMSに
おける結合の前にデータベース言語コマンドからホスト
変数(Host Variable)を抽出することである。言語に特
有の変数はホスト変数のタイプとサイズについての情報
を含むマーカで置き換えられる。これはDBMSサイト
に対し言語ダイアレクトによるデータ言語差を分離す
る。これは適用業務アクセスエージェントがDBMSの
タイプには無関係に同じようにすべてのDBMSに呼び
掛しうるようにする。
おける結合の前にデータベース言語コマンドからホスト
変数(Host Variable)を抽出することである。言語に特
有の変数はホスト変数のタイプとサイズについての情報
を含むマーカで置き換えられる。これはDBMSサイト
に対し言語ダイアレクトによるデータ言語差を分離す
る。これは適用業務アクセスエージェントがDBMSの
タイプには無関係に同じようにすべてのDBMSに呼び
掛しうるようにする。
【0022】
【実施例】本発明は図1のように構成され機能するよう
になっており、10は第1コンピュータシステムであっ
て、適用業務プログラムを実行するために従来技術を用
いて適正に構成されている。コンピュータシステム10
は例えばIBM3090タイプのメインフレームマシン
でよい。周知のように3090コンピュータシステムは
主記憶装置を備えたCPUと、入力/出力チャンネル制
御手段と、直接アクセス記憶装置と、それに接続される
他のI/O装置とを含んでいる。このようなコンピュー
タシステムは、PL/1またはCOBOLのような言語
で書かれた適用業務プログラムを実行するMVSタイプ
のオペレーティングシステムの制御のもとで動作する。
このコンピュータシステムで動作する本発明のコンポー
ネントは例えばプログラミング言語「C」で書くことが
出来る。そのようなコンピュータシステムに対するユー
ザインターフェースはIBMのTSO(時分割オプショ
ン)のもとでの対話時分割を備えた任意の端末装置であ
る。コンピュータシステム10のマシン、言語、および
オペレーティングシステムの特徴によりつくられる環境
はコンピュータシステム12の環境とは異なる。コンピ
ュータシステム12は例えばOS/2EEオペレーティ
ングシステムを備えたPS/2タイプのパーソナルコン
ピュータを含むことが出来る。そのようなシステムは
「C」言語で書かれたDBMSをサポートすることが出
来る。この言語は周知のSQL言語のダイアレクトをサ
ポートする。本発明における局所エージェンシーは
「C」言語で書かれたコンピュータシステム12内のプ
ログラムでよい。
になっており、10は第1コンピュータシステムであっ
て、適用業務プログラムを実行するために従来技術を用
いて適正に構成されている。コンピュータシステム10
は例えばIBM3090タイプのメインフレームマシン
でよい。周知のように3090コンピュータシステムは
主記憶装置を備えたCPUと、入力/出力チャンネル制
御手段と、直接アクセス記憶装置と、それに接続される
他のI/O装置とを含んでいる。このようなコンピュー
タシステムは、PL/1またはCOBOLのような言語
で書かれた適用業務プログラムを実行するMVSタイプ
のオペレーティングシステムの制御のもとで動作する。
このコンピュータシステムで動作する本発明のコンポー
ネントは例えばプログラミング言語「C」で書くことが
出来る。そのようなコンピュータシステムに対するユー
ザインターフェースはIBMのTSO(時分割オプショ
ン)のもとでの対話時分割を備えた任意の端末装置であ
る。コンピュータシステム10のマシン、言語、および
オペレーティングシステムの特徴によりつくられる環境
はコンピュータシステム12の環境とは異なる。コンピ
ュータシステム12は例えばOS/2EEオペレーティ
ングシステムを備えたPS/2タイプのパーソナルコン
ピュータを含むことが出来る。そのようなシステムは
「C」言語で書かれたDBMSをサポートすることが出
来る。この言語は周知のSQL言語のダイアレクトをサ
ポートする。本発明における局所エージェンシーは
「C」言語で書かれたコンピュータシステム12内のプ
ログラムでよい。
【0023】適用業務プログラム14はコンピュータシ
ステム10での実行用に書かれる。しかしながらコマン
ド16のようなデータベースコマンドがコンピュータシ
ステム12のデータベース内のデータの処理のためにプ
ログラム14に埋込まれている。システム10と12の
環境の相異のためにコマンド16(および適用業務プロ
グラム内の他のデータベースコマンド)はその適用業務
の他の部分に用いられる言語とは異なる言語で書かれ
る。これらデータベースコマンドはコンピュータシステ
ム12での実行用に統語的には正しい。しかしながら、
これらはコンピュータシステム10では有効であるが、
システム12には有効でないフォーマットで変数、パラ
メータ値等の情報を含みうる。
ステム10での実行用に書かれる。しかしながらコマン
ド16のようなデータベースコマンドがコンピュータシ
ステム12のデータベース内のデータの処理のためにプ
ログラム14に埋込まれている。システム10と12の
環境の相異のためにコマンド16(および適用業務プロ
グラム内の他のデータベースコマンド)はその適用業務
の他の部分に用いられる言語とは異なる言語で書かれ
る。これらデータベースコマンドはコンピュータシステ
ム12での実行用に統語的には正しい。しかしながら、
これらはコンピュータシステム10では有効であるが、
システム12には有効でないフォーマットで変数、パラ
メータ値等の情報を含みうる。
【0024】本発明は適用業務プログラムの合成の前に
データベースコマンドを識別し、処理し、それらを組立
て、そしてプログラム14の走行時間中実行のためにコ
ンピュータシステム12内でそれらを結合するための適
用業務プログラムのプリプロセスに関する。本発明はま
た適用業務プログラム14をデータベースコマンドとそ
の言語による呼出しと置き換えることでコンピュータシ
ステム10に全体として固有のフォームに変換する。適
用業務プログラムのコンパイル後に本発明はコンピュー
タシステム12による関係したデータベースコマンドの
実行を要求することによって適用業務プログラムの呼出
しに応答する。本発明は適用業務プログラムに代りこの
実行されたコマンドの結果を受ける。
データベースコマンドを識別し、処理し、それらを組立
て、そしてプログラム14の走行時間中実行のためにコ
ンピュータシステム12内でそれらを結合するための適
用業務プログラムのプリプロセスに関する。本発明はま
た適用業務プログラム14をデータベースコマンドとそ
の言語による呼出しと置き換えることでコンピュータシ
ステム10に全体として固有のフォームに変換する。適
用業務プログラムのコンパイル後に本発明はコンピュー
タシステム12による関係したデータベースコマンドの
実行を要求することによって適用業務プログラムの呼出
しに応答する。本発明は適用業務プログラムに代りこの
実行されたコマンドの結果を受ける。
【0025】本発明の機能を行うためのコンポーネント
はアプリケーションアクセスエージェント17にある。
好適にはアクセスエージェント17はコンピュータシス
テム10に従来のように入れられて、本発明の新規な機
能を行うために周知の技術を用いて作動される一群のプ
ログラムである。
はアプリケーションアクセスエージェント17にある。
好適にはアクセスエージェント17はコンピュータシス
テム10に従来のように入れられて、本発明の新規な機
能を行うために周知の技術を用いて作動される一群のプ
ログラムである。
【0026】アクセスエージェント17の主成分はプリ
プロセッサ18、バインドプログラム38、およびデー
タベースインターフェースファンクション40を含む。
適用業務アクセスエージェントでつくられ、充填され、
かつ使用されるデータ構造はバインドファイル20、ホ
スト変数テーブル30およびカーソルテーブル34を含
む。
プロセッサ18、バインドプログラム38、およびデー
タベースインターフェースファンクション40を含む。
適用業務アクセスエージェントでつくられ、充填され、
かつ使用されるデータ構造はバインドファイル20、ホ
スト変数テーブル30およびカーソルテーブル34を含
む。
【0027】プリプロセッサ18は適用業務プログラム
(APP CMD)14を分析し、コマンド16のよう
なデータベースコマンド(DB CMD)を認識し、こ
れらデータベースコマンドを統語キューにもとづき分類
する。プリプロセッサがデータベースコマンドを認識し
分類した後に、プリプロセッサはそれらを適用業務プロ
グラムの変更バージョン14aに置き換えるのであり、
このプログラムの内容は埋込みデータベースコマンドの
置換えを除き変更されない。分類されてしまうと、デー
タベースコマンドはその分類によるタイプと内容を有す
るデータベース機能呼出し28を適用業務プログラムの
プログラミング言語で発生するべく更に分析される。プ
リプロセッサ18が適用業務プログラム内のデータベー
スコマンドを置き換えるとき、このプリプロセッサはそ
のコマンドにタグを付し、そのコマンドの入力および出
力ホスト変数を認識し、それらをホスト変数テーブル3
0に置き、必要であれば置き換えられたコマンドと他の
関係したデータベースコマンドを相関させ、そしてアプ
リケーションプログラムに呼出しを置く(図1の2
8)。適用業務プログラム呼出し28は後述するような
パッケージネーム、タグ、入力変数構造のパラメータお
よび出力変数構造のパラメータを含む。最後に、プリプ
ロセッサ18は夫々のデータベースコマンドをそれらに
付されたタグとバインドファイル20内の入力および出
力変数を記述するマーカと共に保持する。変更コマンド
を22で示す。バインドファイルは識別子「NAME」
を有し、プリプロセッサ18が適用業務プログラムの変
更を完了するまで変更されたデータベースコマンドを保
持する。バインドファイルはコンピュータシステム12
内のDBMSにコマンドを結合するためにバインドプロ
グラム38への入力として用いられる。
(APP CMD)14を分析し、コマンド16のよう
なデータベースコマンド(DB CMD)を認識し、こ
れらデータベースコマンドを統語キューにもとづき分類
する。プリプロセッサがデータベースコマンドを認識し
分類した後に、プリプロセッサはそれらを適用業務プロ
グラムの変更バージョン14aに置き換えるのであり、
このプログラムの内容は埋込みデータベースコマンドの
置換えを除き変更されない。分類されてしまうと、デー
タベースコマンドはその分類によるタイプと内容を有す
るデータベース機能呼出し28を適用業務プログラムの
プログラミング言語で発生するべく更に分析される。プ
リプロセッサ18が適用業務プログラム内のデータベー
スコマンドを置き換えるとき、このプリプロセッサはそ
のコマンドにタグを付し、そのコマンドの入力および出
力ホスト変数を認識し、それらをホスト変数テーブル3
0に置き、必要であれば置き換えられたコマンドと他の
関係したデータベースコマンドを相関させ、そしてアプ
リケーションプログラムに呼出しを置く(図1の2
8)。適用業務プログラム呼出し28は後述するような
パッケージネーム、タグ、入力変数構造のパラメータお
よび出力変数構造のパラメータを含む。最後に、プリプ
ロセッサ18は夫々のデータベースコマンドをそれらに
付されたタグとバインドファイル20内の入力および出
力変数を記述するマーカと共に保持する。変更コマンド
を22で示す。バインドファイルは識別子「NAME」
を有し、プリプロセッサ18が適用業務プログラムの変
更を完了するまで変更されたデータベースコマンドを保
持する。バインドファイルはコンピュータシステム12
内のDBMSにコマンドを結合するためにバインドプロ
グラム38への入力として用いられる。
【0028】適用業務14から抽出されるデータベース
コマンドの遠隔DBMSへの結合の機能はバインドプロ
グラム38に与えられる。バインドプログラムはネーム
を有するDBMSとの間の会話を成立させ、アプリケー
ションプロセスを実行するコンピュータシステム10へ
のコマンドを結合するに必要な情報と共にバインドファ
イル20のエントリを遠隔DBMSに送る一連のオペレ
ーションを導入する。
コマンドの遠隔DBMSへの結合の機能はバインドプロ
グラム38に与えられる。バインドプログラムはネーム
を有するDBMSとの間の会話を成立させ、アプリケー
ションプロセスを実行するコンピュータシステム10へ
のコマンドを結合するに必要な情報と共にバインドファ
イル20のエントリを遠隔DBMSに送る一連のオペレ
ーションを導入する。
【0029】データベースインターフェースファンクシ
ョン40はプログラム14aがコンパイルされるときに
そのプログラムにリンクされる一連の機能を含む。デー
タベースインターフェースファンクション40は呼出し
28のような変更されたプログラム14aの呼出しに応
じてデータベースコマンド呼出しプロトコルを用いて遠
隔DBMSでデータベースコマンドの実行を行う。適用
業務プログラムから呼出されるとき、データベースイン
ターフェースファンクション40はそのプログラムを識
別する呼出し内のパラメータ、DBMSに結合されたタ
グ付きのデータベースコマンドおよびそのコマンドの実
行に必要な変数に通話を行う。
ョン40はプログラム14aがコンパイルされるときに
そのプログラムにリンクされる一連の機能を含む。デー
タベースインターフェースファンクション40は呼出し
28のような変更されたプログラム14aの呼出しに応
じてデータベースコマンド呼出しプロトコルを用いて遠
隔DBMSでデータベースコマンドの実行を行う。適用
業務プログラムから呼出されるとき、データベースイン
ターフェースファンクション40はそのプログラムを識
別する呼出し内のパラメータ、DBMSに結合されたタ
グ付きのデータベースコマンドおよびそのコマンドの実
行に必要な変数に通話を行う。
【0030】関係DBMSの観点から本発明をみるため
に図1を参照するにコンピュータシステム10と12は
インターフェース48により物理的に接続された従来技
術による通信アクセスエレメント(各システムにおける
通信アダプタ46,50を含みうる)により接続されて
いる。通信ファシリティ46,48,50は公知のもの
である。本発明においては、このファシリティはネーム
から特定のコンピュータを識別し、異なるコンピュータ
において走行するプログラム間に通信をつくり、接続さ
れた通信プログラム間でデータを転送し、そしてコンピ
ュータ間の通信を終了させることが出来る。
に図1を参照するにコンピュータシステム10と12は
インターフェース48により物理的に接続された従来技
術による通信アクセスエレメント(各システムにおける
通信アダプタ46,50を含みうる)により接続されて
いる。通信ファシリティ46,48,50は公知のもの
である。本発明においては、このファシリティはネーム
から特定のコンピュータを識別し、異なるコンピュータ
において走行するプログラム間に通信をつくり、接続さ
れた通信プログラム間でデータを転送し、そしてコンピ
ュータ間の通信を終了させることが出来る。
【0031】コンピュータシステム12において適用業
務アクセスエージェント52はバインドプログラム38
を有する結合(バインド)プロトコルを導入し、バイン
ドプログラムから入るタグ付きのデータベースコマンド
をネーム「ID」で識別されるDBMS54に入れる。
DBMS54はこのデータベースコマンドを受けてそれ
らをパッケージ60に置く。このパッケージはプログラ
ム14aをパッケージ内容の源として識別する。タグを
有する一つのデータベースコマンド62がパッケージ6
0に示されている。従来のように、識別子「NAME」
はプログラム14にコマンドを「結合する」ものであ
る。パッケージはDBMSのカタログ63に記憶され
る。DBMS54は記憶機構56に保持される関係デー
タベースを維持する。
務アクセスエージェント52はバインドプログラム38
を有する結合(バインド)プロトコルを導入し、バイン
ドプログラムから入るタグ付きのデータベースコマンド
をネーム「ID」で識別されるDBMS54に入れる。
DBMS54はこのデータベースコマンドを受けてそれ
らをパッケージ60に置く。このパッケージはプログラ
ム14aをパッケージ内容の源として識別する。タグを
有する一つのデータベースコマンド62がパッケージ6
0に示されている。従来のように、識別子「NAME」
はプログラム14にコマンドを「結合する」ものであ
る。パッケージはDBMSのカタログ63に記憶され
る。DBMS54は記憶機構56に保持される関係デー
タベースを維持する。
【0032】データベースインターフェースファンクシ
ョン40からのデータベースコマンドの実行を要求する
メッセージを受けると、適用業務アクセスエージェント
52はDBMS54により要求されるサービスが何であ
るかを決定するために受信メッセージを解釈する。エー
ジェント52は次に指示されたサービスを要求し、応答
を待ち、そして応答が入るとサービス結果をデータベー
スインターフェースファンクション40にもどす。
ョン40からのデータベースコマンドの実行を要求する
メッセージを受けると、適用業務アクセスエージェント
52はDBMS54により要求されるサービスが何であ
るかを決定するために受信メッセージを解釈する。エー
ジェント52は次に指示されたサービスを要求し、応答
を待ち、そして応答が入るとサービス結果をデータベー
スインターフェースファンクション40にもどす。
【0033】概 略 プリプロセッサ18は結果として生じる実行に対し適用
業務プログラム14を用意するプロセスにおける重要な
リンクである。プリプロセッサ18は次の基本的機能を
行う: 1. 適用業務プログラムに埋込まれたデータベースコ
マンドの認識と分類。 2. 適用業務プログラムに埋込まれたデータベースコ
マンドの、プログラム言語で変数を宣言しあるいはデー
タベースインターフェースプログラムを呼出すその言語
によるステートメントでの置き換え。及び 3. バインドプログラム38によるDBMS54への
結果としての提供のためのデータベースコマンドの記
録。
業務プログラム14を用意するプロセスにおける重要な
リンクである。プリプロセッサ18は次の基本的機能を
行う: 1. 適用業務プログラムに埋込まれたデータベースコ
マンドの認識と分類。 2. 適用業務プログラムに埋込まれたデータベースコ
マンドの、プログラム言語で変数を宣言しあるいはデー
タベースインターフェースプログラムを呼出すその言語
によるステートメントでの置き換え。及び 3. バインドプログラム38によるDBMS54への
結果としての提供のためのデータベースコマンドの記
録。
【0034】データベースコマンド言語プリプロセッサ
18は入力として、或るプログラム言語で特定される適
用業務プログラムのインストラクションを含むファイル
を用いる。プログラミング言語インストラクションに散
在するのは或るデータベースコマンド言語のシンタック
スで表示されるデータベースコマンドである。具体的に
云うと、データベースコマンド言語がSQLのいくつか
の変形の内の或るものであると仮定する。プリプロセッ
サ18はデータベースコマンドを認識し、それらを適用
業務プログラム言語のステートメントと置き換える。結
果として得られる(変更された)適用業務プログラム1
4aはプリプロセッサ18の出力の内の一つであり、そ
して適用業務プログラム言語についてコンパイラにより
変換するのに適したものである。プリプロセッサ18の
第2の出力はデータベースコマンドの内の或るものであ
り、その内のいくつかがプリプロセッサ18により僅か
に変更されているものを含む保持リスト(例えばファイ
ル)である。この第2ファイルはバインドファイル20
であって適用業務アクセスエージェントのバインドプロ
グラム38への入力である。
18は入力として、或るプログラム言語で特定される適
用業務プログラムのインストラクションを含むファイル
を用いる。プログラミング言語インストラクションに散
在するのは或るデータベースコマンド言語のシンタック
スで表示されるデータベースコマンドである。具体的に
云うと、データベースコマンド言語がSQLのいくつか
の変形の内の或るものであると仮定する。プリプロセッ
サ18はデータベースコマンドを認識し、それらを適用
業務プログラム言語のステートメントと置き換える。結
果として得られる(変更された)適用業務プログラム1
4aはプリプロセッサ18の出力の内の一つであり、そ
して適用業務プログラム言語についてコンパイラにより
変換するのに適したものである。プリプロセッサ18の
第2の出力はデータベースコマンドの内の或るものであ
り、その内のいくつかがプリプロセッサ18により僅か
に変更されているものを含む保持リスト(例えばファイ
ル)である。この第2ファイルはバインドファイル20
であって適用業務アクセスエージェントのバインドプロ
グラム38への入力である。
【0035】図2はデータベースコマンドのプリプロセ
ッサ18の高レベルの機能を示す。ライン100〜10
3は、データベースコマンドプリプロセッサのパラメー
タが、アプリケーションプログラム(入力)、アプリケ
ーションプログラムのデータベースコマンドについての
パッケージネーム(入力)、変更されたアプリケーショ
ンプログラム(出力)およびバインドプログラムのバイ
ンドファイル(出力)を含むリスト(例えばファイル)
であることを示す。ライン103はアプリケーションプ
ログラムファイルの走査を示す。ライン104〜105
はデータベースコマンドの認識と、データベースコマン
ドラインではないラインをアプリケーションプログラム
ファイルから変更プログラムファイルへのコピーを示
す。ライン106〜107は分類モジュールのパラメー
タとして認識されたコマンド(入力)と計算されたクラ
ス(出力)を用いて分類モジュールの呼出しを特定す
る。ライン108〜109は入力パラメータとして認識
されたコマンドと計算されたクラス、適用業務すなわち
アプリケーションプログラムに関連したパッケージネー
ムおよび出力パラメータとしてコマンドに割当てられた
タグを有する置き換えモジュールの呼出しを特定する。
ライン110〜111は入力パラメータとして認識され
たコマンド、その計算されたクラスおよび割当てられた
タグをもつバインドファイルにコマンドを付加するため
のモジュールの呼出しを特定する。
ッサ18の高レベルの機能を示す。ライン100〜10
3は、データベースコマンドプリプロセッサのパラメー
タが、アプリケーションプログラム(入力)、アプリケ
ーションプログラムのデータベースコマンドについての
パッケージネーム(入力)、変更されたアプリケーショ
ンプログラム(出力)およびバインドプログラムのバイ
ンドファイル(出力)を含むリスト(例えばファイル)
であることを示す。ライン103はアプリケーションプ
ログラムファイルの走査を示す。ライン104〜105
はデータベースコマンドの認識と、データベースコマン
ドラインではないラインをアプリケーションプログラム
ファイルから変更プログラムファイルへのコピーを示
す。ライン106〜107は分類モジュールのパラメー
タとして認識されたコマンド(入力)と計算されたクラ
ス(出力)を用いて分類モジュールの呼出しを特定す
る。ライン108〜109は入力パラメータとして認識
されたコマンドと計算されたクラス、適用業務すなわち
アプリケーションプログラムに関連したパッケージネー
ムおよび出力パラメータとしてコマンドに割当てられた
タグを有する置き換えモジュールの呼出しを特定する。
ライン110〜111は入力パラメータとして認識され
たコマンド、その計算されたクラスおよび割当てられた
タグをもつバインドファイルにコマンドを付加するため
のモジュールの呼出しを特定する。
【0036】データベースコマンドの認識と分類の説明 データベースコマンド言語(例えばSQL)で書かれた
データベースコマンドは特定のプリプロセッサの使用に
よりきまる統語的キューを介して認識される。これらは
データベースコマンドに先立つタグである(例えばスト
リング「EXEC SQL」)。データベースコマンド
は次のカテゴリーの内の一つに分類出来る: 1. ホスト変数宣言; 2. アトミックコマンド; 3. セット型コマンド; 4. ダイナミックコマンド;または 5. トランザクションコマンド。
データベースコマンドは特定のプリプロセッサの使用に
よりきまる統語的キューを介して認識される。これらは
データベースコマンドに先立つタグである(例えばスト
リング「EXEC SQL」)。データベースコマンド
は次のカテゴリーの内の一つに分類出来る: 1. ホスト変数宣言; 2. アトミックコマンド; 3. セット型コマンド; 4. ダイナミックコマンド;または 5. トランザクションコマンド。
【0037】ホスト変数宣言は、特定の識別子(ネー
ム)が、アプリケーションプログラム言語のステートメ
ント並びにデータベースコマンドにより直接に処理しう
る特定のタイプの変数であることを特定する。ホスト変
数宣言は個々のプログラム言語に固有の(例えばSQL
についてのPL/1変数宣言“BEGIN DECLA
RE SECTION”および“END DECLAR
E SECTION”)並びに識別子とタイプネームか
らなる統語キューにより認識される。
ム)が、アプリケーションプログラム言語のステートメ
ント並びにデータベースコマンドにより直接に処理しう
る特定のタイプの変数であることを特定する。ホスト変
数宣言は個々のプログラム言語に固有の(例えばSQL
についてのPL/1変数宣言“BEGIN DECLA
RE SECTION”および“END DECLAR
E SECTION”)並びに識別子とタイプネームか
らなる統語キューにより認識される。
【0038】アトミックデータベースコマンドはアプリ
ケーションとDBMSとの間の1回の対話で実行しうる
コマンドである。これらはデータ定義コマンド(例えば
SQL内の“CREATE…”,“ALTER…”,
“DROP…”等)、単一行データ選択および更新コマ
ンド、削除コマンドまたは挿入コマンドを含む。アトミ
ックデータベースコマンドはそれらの統語的な接頭語、
例えばSQL内のコマンドの第1または第1と第2ワー
ドにより認識可能である。いくつかのアトミックデータ
ベースコマンドはホスト変数に対する照合を含むことが
出来る。これらホスト変数照合は容易に認識可能なマー
ク(例えばいくつかのSQL内の“:”)を前につける
ことによって区別される。ホスト変数照合はデータベー
スコマンドへの入力としてのものあるいはデータベース
コマンドから結果(出力)を受けるためのものである。
入力および出力ホスト変数間の区別をしなければならな
い。SQLでは出力ホスト変数がキーワード“INT
O”に続く。プリプロセッサにはわからない統語的接頭
語を有する言語上の拡張に適合させるためにこれら未知
のデータベースコマンドはアトミックデータベースコマ
ンドとして分類され、そしてすべてのホスト変数照合が
入力変数として採用される。
ケーションとDBMSとの間の1回の対話で実行しうる
コマンドである。これらはデータ定義コマンド(例えば
SQL内の“CREATE…”,“ALTER…”,
“DROP…”等)、単一行データ選択および更新コマ
ンド、削除コマンドまたは挿入コマンドを含む。アトミ
ックデータベースコマンドはそれらの統語的な接頭語、
例えばSQL内のコマンドの第1または第1と第2ワー
ドにより認識可能である。いくつかのアトミックデータ
ベースコマンドはホスト変数に対する照合を含むことが
出来る。これらホスト変数照合は容易に認識可能なマー
ク(例えばいくつかのSQL内の“:”)を前につける
ことによって区別される。ホスト変数照合はデータベー
スコマンドへの入力としてのものあるいはデータベース
コマンドから結果(出力)を受けるためのものである。
入力および出力ホスト変数間の区別をしなければならな
い。SQLでは出力ホスト変数がキーワード“INT
O”に続く。プリプロセッサにはわからない統語的接頭
語を有する言語上の拡張に適合させるためにこれら未知
のデータベースコマンドはアトミックデータベースコマ
ンドとして分類され、そしてすべてのホスト変数照合が
入力変数として採用される。
【0039】セット型データベースコマンドは次のタイ
プからなる: 1. 一連のデータベース項目を特定するコマンド(例
えばSQLのDECLARE CURSOR…”); 2. 一連のデータベース項目の処理を開始するための
コマンド(例えばSQLの“OPEN…”); 3. 一連のデータベース項目の次のエレメントにアク
セスするためのコマンド(例えばSQLの“FETCH
…”);または 4. 一連のデータベース項目の処理を終了させるため
のコマンド(例えばSQLの“CLOSE…”)。
プからなる: 1. 一連のデータベース項目を特定するコマンド(例
えばSQLのDECLARE CURSOR…”); 2. 一連のデータベース項目の処理を開始するための
コマンド(例えばSQLの“OPEN…”); 3. 一連のデータベース項目の次のエレメントにアク
セスするためのコマンド(例えばSQLの“FETCH
…”);または 4. 一連のデータベース項目の処理を終了させるため
のコマンド(例えばSQLの“CLOSE…”)。
【0040】アプリケーションアクセスエージェントの
プリプロセッサ18は特にこれらセット型コマンドの夫
々を認識し、処理しなければならない。認識と分類はデ
ータベースコマンドの初期キーワードにもとづく。
プリプロセッサ18は特にこれらセット型コマンドの夫
々を認識し、処理しなければならない。認識と分類はデ
ータベースコマンドの初期キーワードにもとづく。
【0041】ダイナミックデータベースコマンドはアプ
リケーションプログラムがその実行までデータベースコ
マンドの仕様を延期しうるようにする。ダイナミックデ
ータベースコマンドは分析、最適化、(一時的)保持お
よびアプリケーションプログラムの実行中の実行のため
にDBMSに与えられる。ダイナミックデータベースコ
マンドは実際のデータベースコマンドが実行中に与えら
れることを示す、アプリケーションプログラム内の特定
の、区別可能なコマンドである。実行されるべきデータ
ベースコマンドはダイナミックデータベースコマンドの
一つのパラメータであり、ストリング型のホストバリア
ブルから供給される。他のデータベースコマンドと同様
にダイナミックデータベースコマンドはそのリードキー
ワード(例えばSQL内の“EXECUTE IMME
DIATE…”,“PREPAER…”)により認識し
うる。
リケーションプログラムがその実行までデータベースコ
マンドの仕様を延期しうるようにする。ダイナミックデ
ータベースコマンドは分析、最適化、(一時的)保持お
よびアプリケーションプログラムの実行中の実行のため
にDBMSに与えられる。ダイナミックデータベースコ
マンドは実際のデータベースコマンドが実行中に与えら
れることを示す、アプリケーションプログラム内の特定
の、区別可能なコマンドである。実行されるべきデータ
ベースコマンドはダイナミックデータベースコマンドの
一つのパラメータであり、ストリング型のホストバリア
ブルから供給される。他のデータベースコマンドと同様
にダイナミックデータベースコマンドはそのリードキー
ワード(例えばSQL内の“EXECUTE IMME
DIATE…”,“PREPAER…”)により認識し
うる。
【0042】トランザクションコマンドは現在のデータ
ベーストランザクションを確約または打切るためのデー
タベースコマンドである。いくつかのSQL実行におい
てはトランザクションコマンドは“COMMIT WO
RK”および“ROLLBACK WORK”である。
ベーストランザクションを確約または打切るためのデー
タベースコマンドである。いくつかのSQL実行におい
てはトランザクションコマンドは“COMMIT WO
RK”および“ROLLBACK WORK”である。
【0043】図3はプリプロセッサ18の分類モジュー
ルを示す。これはSQLの具体例を用いてのデータベー
スコマンドの分類を示す。ライン200〜201はプリ
プロセッサ分類モジュールのパラメータがデータベース
コマンド(入力)と決定されたクラス(出力)であるこ
とを示す。ライン202〜207は、SQLDECLA
REスコープ内にある間に出会うデータベースコマンド
が、そのコマンドが“END DECLARE”ではじ
まらない限りホスト変数コマンドとして分類されること
を示す。ライン209はデータベースコマンドのリード
ワードにもとづく多分岐ブランチステートメントであ
る。多分岐ブランチの5つのケース(ライン210,2
13,215,217,219)がデータベースコマン
ドの計算されたクラスをセットする。殆どの場合、数個
の異なるデータベースコマンドが一つのブランチを満足
させる。
ルを示す。これはSQLの具体例を用いてのデータベー
スコマンドの分類を示す。ライン200〜201はプリ
プロセッサ分類モジュールのパラメータがデータベース
コマンド(入力)と決定されたクラス(出力)であるこ
とを示す。ライン202〜207は、SQLDECLA
REスコープ内にある間に出会うデータベースコマンド
が、そのコマンドが“END DECLARE”ではじ
まらない限りホスト変数コマンドとして分類されること
を示す。ライン209はデータベースコマンドのリード
ワードにもとづく多分岐ブランチステートメントであ
る。多分岐ブランチの5つのケース(ライン210,2
13,215,217,219)がデータベースコマン
ドの計算されたクラスをセットする。殆どの場合、数個
の異なるデータベースコマンドが一つのブランチを満足
させる。
【0044】アプリケーションプログラムコンピュータ
のプリプロセッサ18はアプリケーションプログラムを
分析し、データベースコマンドを認識し、それらを、全
データベースコマンドの完全な分解ではなく統語キュー
にもとづき分析する。データベースコマンドの認識とそ
れらの分類は、アプリケーションプログラムのデータベ
ースコマンドがバインドされる特定の意図された遠隔D
BMSの知識を伴わず、それとは無関係に行われる。分
類ステップはデータベースコマンドの初期キーワードの
みを検索し、それ故それは次のデータベースコマンド言
語シンタックスの特異性とは無関係である。分類の一例
としてステートメントEXEC SQLCREATE
TABLE EMP(NAME CHAR(23);が
SQLデータベースコマンドとして分類モジュールによ
り認識され、アトミックコマンドとして分類される。
のプリプロセッサ18はアプリケーションプログラムを
分析し、データベースコマンドを認識し、それらを、全
データベースコマンドの完全な分解ではなく統語キュー
にもとづき分析する。データベースコマンドの認識とそ
れらの分類は、アプリケーションプログラムのデータベ
ースコマンドがバインドされる特定の意図された遠隔D
BMSの知識を伴わず、それとは無関係に行われる。分
類ステップはデータベースコマンドの初期キーワードの
みを検索し、それ故それは次のデータベースコマンド言
語シンタックスの特異性とは無関係である。分類の一例
としてステートメントEXEC SQLCREATE
TABLE EMP(NAME CHAR(23);が
SQLデータベースコマンドとして分類モジュールによ
り認識され、アトミックコマンドとして分類される。
【0045】データベースコマンドの置換の説明 アプリケーションプログラム14内の夫々の認識され、
分類されたデータベースコマンドはコマンドを実行させ
るアプリケーションプログラムのプログラミング言語ス
テートメントで置き換えられねばならない。一般に、ア
プリケーションプログラムの各データベースコマンドに
ついてプリプロセッサ18はデータベースコマンドをデ
ータベースインターフェースファンクションの呼出しで
置換する。データベースインターフェースファンクショ
ン40は通信プロトコルを介しての遠隔DBMSとの通
信によりデータベースコマンドをそのDBMSにおいて
実行させる。パラメータをデータベースインターフェー
スファンクションに通すコンベンションはアプリケーシ
ョンプログラムとアプリケーションアクセスエージェン
トプログラムのコンピュータ環境によりきまるものであ
って使用者のニーズにまかされる。
分類されたデータベースコマンドはコマンドを実行させ
るアプリケーションプログラムのプログラミング言語ス
テートメントで置き換えられねばならない。一般に、ア
プリケーションプログラムの各データベースコマンドに
ついてプリプロセッサ18はデータベースコマンドをデ
ータベースインターフェースファンクションの呼出しで
置換する。データベースインターフェースファンクショ
ン40は通信プロトコルを介しての遠隔DBMSとの通
信によりデータベースコマンドをそのDBMSにおいて
実行させる。パラメータをデータベースインターフェー
スファンクションに通すコンベンションはアプリケーシ
ョンプログラムとアプリケーションアクセスエージェン
トプログラムのコンピュータ環境によりきまるものであ
って使用者のニーズにまかされる。
【0046】ホスト変数宣言はそこにおけるネームと同
一のネームであっておよび同一タイプの言語変数の宣言
に対応する言語ステートメントにより置き換えられる。
ホスト変数のネームとタイプはホスト変数テーブル30
に記録される。このテーブルはプリプロセッサ18によ
り管理される関連テーブルである。ホスト変数テーブル
は置換とバインドファイル処理の間にプリプロセッサ1
8により使用される。
一のネームであっておよび同一タイプの言語変数の宣言
に対応する言語ステートメントにより置き換えられる。
ホスト変数のネームとタイプはホスト変数テーブル30
に記録される。このテーブルはプリプロセッサ18によ
り管理される関連テーブルである。ホスト変数テーブル
は置換とバインドファイル処理の間にプリプロセッサ1
8により使用される。
【0047】アトミックデータベースコマンドはアトミ
ックコマンドの実行のためのデータベースインターフェ
ースファンクション40への呼出しで置き換えられる。
遠隔DBMSに保持されるデータベースコマンドの内の
どれを実行すべきかを示すために保持されるデータベー
スコマンドを識別するためのメカニズムが必要である。
このため、本発明はアプリケーションプログラムのデー
タベースコマンド群を識別し、アプリケーションプログ
ラムのデータベースコマンドの夫々を識別する。 本発
明はコマンドを保持し実行する遠隔DBMSに固有のネ
ームを有するパッケージ(アプリケーションプログラム
のデータベースコマンド群)を識別する。本発明では多
くのネーミングコンベンションが可能であるが、アプリ
ケーションプログラムのパッケージネームはアプリケー
ションプログラムのネームに先行するアプリケーション
プログラムの「ファミリ」のネームである。これら図で
はネームは“NAME”である。アプリケーションプロ
グラムパッケージの個々のデータベースコマンドは、プ
リプロセッサ18により割振られ、バインドファイル内
に置かれ、バインドプログラム28によりDBMSに伝
えられるタグ(例えば番号)により識別される。
ックコマンドの実行のためのデータベースインターフェ
ースファンクション40への呼出しで置き換えられる。
遠隔DBMSに保持されるデータベースコマンドの内の
どれを実行すべきかを示すために保持されるデータベー
スコマンドを識別するためのメカニズムが必要である。
このため、本発明はアプリケーションプログラムのデー
タベースコマンド群を識別し、アプリケーションプログ
ラムのデータベースコマンドの夫々を識別する。 本発
明はコマンドを保持し実行する遠隔DBMSに固有のネ
ームを有するパッケージ(アプリケーションプログラム
のデータベースコマンド群)を識別する。本発明では多
くのネーミングコンベンションが可能であるが、アプリ
ケーションプログラムのパッケージネームはアプリケー
ションプログラムのネームに先行するアプリケーション
プログラムの「ファミリ」のネームである。これら図で
はネームは“NAME”である。アプリケーションプロ
グラムパッケージの個々のデータベースコマンドは、プ
リプロセッサ18により割振られ、バインドファイル内
に置かれ、バインドプログラム28によりDBMSに伝
えられるタグ(例えば番号)により識別される。
【0048】アトミックデータベースコマンドを置き換
えるデータベースインターフェースファンクションへの
呼出しはパッケージネームとデータベースコマンドタグ
を特定するパラメータを含む。アトミックデータベース
コマンドについてのデータベースインターフェースファ
ンクションの呼出しもそのコマンド(もしあれば)の入
力ホスト変数についての値を伝え、出力ホスト変数(も
しあれば)の値を受けねばならない。本発明により使用
されるメカニズムはホスト変数キュー用のデータベース
コマンド(SQLの或る実行については“:”または
“INTO”または“USING”に続く)を検索し、
ホスト言語の対応する変数の値を通す(受ける)ための
データベースインターフェースファンクションにパラメ
ータを加えることである。プリプロセッサ18は、指示
されたホスト変数が確実に宣言されるようにするために
ホスト変数テーブルを参照しなければならない。各ホス
ト変数は除去され、置き換えされるホスト変数をタイ
プ、サイズ、フォーマット等で示すマーカと置き換え
る。
えるデータベースインターフェースファンクションへの
呼出しはパッケージネームとデータベースコマンドタグ
を特定するパラメータを含む。アトミックデータベース
コマンドについてのデータベースインターフェースファ
ンクションの呼出しもそのコマンド(もしあれば)の入
力ホスト変数についての値を伝え、出力ホスト変数(も
しあれば)の値を受けねばならない。本発明により使用
されるメカニズムはホスト変数キュー用のデータベース
コマンド(SQLの或る実行については“:”または
“INTO”または“USING”に続く)を検索し、
ホスト言語の対応する変数の値を通す(受ける)ための
データベースインターフェースファンクションにパラメ
ータを加えることである。プリプロセッサ18は、指示
されたホスト変数が確実に宣言されるようにするために
ホスト変数テーブルを参照しなければならない。各ホス
ト変数は除去され、置き換えされるホスト変数をタイ
プ、サイズ、フォーマット等で示すマーカと置き換え
る。
【0049】データベース項目の同一の群に関係するす
べてのセット型データベースコマンドは、データベース
コマンドから容易に抽出しうるそれらの共用カーソルネ
ームにもとづき群化される。同一のデータベースコマン
ドタグは同一のデータベース項目セットに関係するコマ
ンドのすべてに関連づけられる。セット仕様コマンドは
アプリケーションプログラムから単に除かれる。しかし
ながら、プリプロセッサプログラムはデータベースコマ
ンドタグを割振り、そしてそれをセット仕様コマンドに
あるカーソルネームに関連づける。他の関連テーブル、
すなわちカーソルテーブル34はカーソルネームとデー
タベースコマンドタグの間の関連を記録するたにプリプ
ロセッサ18により維持される。他のセット型データベ
ースコマンドはそのコマンドの(サブ)クラスに特有の
データベースインターフェースファンクションへの呼出
しで置換えられる。セット処理の開始およびアクセスコ
マンドはホスト変数を有することが出来る。これらセッ
ト型データベースコマンドのホスト変数についての処理
はアトミックデータベースコマンドに対するものと同じ
である。前述のように、プリプロセッサにより認識され
ず理解されない初期統語接頭語を有するアトミックデー
タベースコマンドに含まれるホスト変数は入力変数とす
る。
べてのセット型データベースコマンドは、データベース
コマンドから容易に抽出しうるそれらの共用カーソルネ
ームにもとづき群化される。同一のデータベースコマン
ドタグは同一のデータベース項目セットに関係するコマ
ンドのすべてに関連づけられる。セット仕様コマンドは
アプリケーションプログラムから単に除かれる。しかし
ながら、プリプロセッサプログラムはデータベースコマ
ンドタグを割振り、そしてそれをセット仕様コマンドに
あるカーソルネームに関連づける。他の関連テーブル、
すなわちカーソルテーブル34はカーソルネームとデー
タベースコマンドタグの間の関連を記録するたにプリプ
ロセッサ18により維持される。他のセット型データベ
ースコマンドはそのコマンドの(サブ)クラスに特有の
データベースインターフェースファンクションへの呼出
しで置換えられる。セット処理の開始およびアクセスコ
マンドはホスト変数を有することが出来る。これらセッ
ト型データベースコマンドのホスト変数についての処理
はアトミックデータベースコマンドに対するものと同じ
である。前述のように、プリプロセッサにより認識され
ず理解されない初期統語接頭語を有するアトミックデー
タベースコマンドに含まれるホスト変数は入力変数とす
る。
【0050】ダイナミックデータベースコマンドはアト
ミックまたはセット型データベースコマンドと同様に処
理される。ダイナミックデータベースコマンドにはタグ
が付される。ダイナミックデータベースコマンドは直ち
に分析、最適化および実行のために与えられるべき他の
データベースコマンドまたは一つのダイナミックデータ
ベースコマンドで与えられて他で実行されるべきデータ
ベースコマンドを特定する。この区別は対応するデータ
ベースコマンド内において統語的に明らかである。直接
の実行の場合(SQL“EXECUTE IMMEDI
ATE…”)には、プリプロセッサ18はそのデータベ
ースコマンドにタグを割振り、それをダイナミックデー
タベースコマンドの直接の実行のためのデータベースイ
ンターフェースファンクションに対する呼出しで置き換
える。延期された実行の場合には、ダイナミックデータ
ベースコマンド(SQLの“PREPARE…”)はそ
の実行のために他のデータベースコマンドにおいて参照
しうるラベルを含む。プリプロセッサ18はそのコマン
ドにデータベースコマンドタグを割振り、そのタグを関
連ラベルテーブル36を用いてそのコマンド内のラベル
に関連づける。延期された実行ダイナミックデータベー
スコマンド(すなわちSQLの“PREPARE…”)
は延期実行ダイナミックデータベースコマンドについて
のデータベースインターフェースファンクションに対す
る呼出しと置換えられる。ダイナミックデータベースコ
マンドにより出されるべきデータベースコマンドは文字
ストリングリテラル表記またはテキストストリングタイ
プホスト変数により特定出来、データベースインターフ
ェースファンクションへの呼出しはこれを考慮し、処理
されるべきデータベースコマンドを含む正しいテキスト
ストリングを通さねばならない。
ミックまたはセット型データベースコマンドと同様に処
理される。ダイナミックデータベースコマンドにはタグ
が付される。ダイナミックデータベースコマンドは直ち
に分析、最適化および実行のために与えられるべき他の
データベースコマンドまたは一つのダイナミックデータ
ベースコマンドで与えられて他で実行されるべきデータ
ベースコマンドを特定する。この区別は対応するデータ
ベースコマンド内において統語的に明らかである。直接
の実行の場合(SQL“EXECUTE IMMEDI
ATE…”)には、プリプロセッサ18はそのデータベ
ースコマンドにタグを割振り、それをダイナミックデー
タベースコマンドの直接の実行のためのデータベースイ
ンターフェースファンクションに対する呼出しで置き換
える。延期された実行の場合には、ダイナミックデータ
ベースコマンド(SQLの“PREPARE…”)はそ
の実行のために他のデータベースコマンドにおいて参照
しうるラベルを含む。プリプロセッサ18はそのコマン
ドにデータベースコマンドタグを割振り、そのタグを関
連ラベルテーブル36を用いてそのコマンド内のラベル
に関連づける。延期された実行ダイナミックデータベー
スコマンド(すなわちSQLの“PREPARE…”)
は延期実行ダイナミックデータベースコマンドについて
のデータベースインターフェースファンクションに対す
る呼出しと置換えられる。ダイナミックデータベースコ
マンドにより出されるべきデータベースコマンドは文字
ストリングリテラル表記またはテキストストリングタイ
プホスト変数により特定出来、データベースインターフ
ェースファンクションへの呼出しはこれを考慮し、処理
されるべきデータベースコマンドを含む正しいテキスト
ストリングを通さねばならない。
【0051】延期ダイナミックデータベースコマンドを
実行するためのデータベースコマンド(例えば、SQL
内の“EXECUTE<label>…”または“OP
EN<label>…”とそれに続く“FETCH<l
abel>…”および“CLOSE<label
>…”)はそのステートメントの実行のためのデータベ
ースインターフェースファンクション40に対する呼出
しで置き換えられる。この呼出しはパラメータとして、
ダイナミックデータベースコマンドを分析、最適化およ
び(一時)保持を行わせる“PREPARE…”コマン
ドと関連する、ラベルテーブル36からのデータベース
コマンドタグを用いる。ダイナミックデータベースコマ
ンドを実行するために用いられるデータベースインター
フェースファンクションはアトミックまたはセット型デ
ータベースコマンドについて用いられたものと同じであ
る。
実行するためのデータベースコマンド(例えば、SQL
内の“EXECUTE<label>…”または“OP
EN<label>…”とそれに続く“FETCH<l
abel>…”および“CLOSE<label
>…”)はそのステートメントの実行のためのデータベ
ースインターフェースファンクション40に対する呼出
しで置き換えられる。この呼出しはパラメータとして、
ダイナミックデータベースコマンドを分析、最適化およ
び(一時)保持を行わせる“PREPARE…”コマン
ドと関連する、ラベルテーブル36からのデータベース
コマンドタグを用いる。ダイナミックデータベースコマ
ンドを実行するために用いられるデータベースインター
フェースファンクションはアトミックまたはセット型デ
ータベースコマンドについて用いられたものと同じであ
る。
【0052】トランザクションデータベースコマンドは
適正なトランザクションデータベースインターフェース
ファンクションに対する呼出しで置換えられる。
適正なトランザクションデータベースインターフェース
ファンクションに対する呼出しで置換えられる。
【0053】図4はアプリケーションプログラムプリプ
ロセッサ18のプログラム置換プロセスの高レベル機能
を示す。ライン300は置換プロセスが入力パラメータ
としてデータベースコマンド、そのクラス、およびアプ
リケーションプログラム用のデータベースコマンドパッ
ケージのネームを用いることを示す。このコマンドに割
振られたタグは出力パラメータである。ライン301は
データベースコマンドのクラスについての多岐ブランチ
である。他のライン302〜312は特定のデータベー
スコマンドのクラスについてアプリケーションプログラ
ムテキストの置換において特定されるモジュールを呼び
出す。
ロセッサ18のプログラム置換プロセスの高レベル機能
を示す。ライン300は置換プロセスが入力パラメータ
としてデータベースコマンド、そのクラス、およびアプ
リケーションプログラム用のデータベースコマンドパッ
ケージのネームを用いることを示す。このコマンドに割
振られたタグは出力パラメータである。ライン301は
データベースコマンドのクラスについての多岐ブランチ
である。他のライン302〜312は特定のデータベー
スコマンドのクラスについてアプリケーションプログラ
ムテキストの置換において特定されるモジュールを呼び
出す。
【0054】図5は具体例としてSQLを用いるホスト
変数宣言の置換用のプログラムモジュールの機能を示
す。ライン400はこのモジュールのパラメータであ
る。ライン401はプログラムホスト変数のネームとそ
のタイプを決定するためにデータベースコマンドパラメ
ータを分析する。ライン402はホスト変数をホスト変
数テーブル30に入れる。ライン403はアプリケーシ
ョンプログラム14の言語でコードを発生し、それを変
更プログラムファイルに付加する。アプリケーションプ
ログラム言語に依存するモジュール(“APLanguageDecl
aration “)は特定されたネームとタイプをもつ変数を
宣言するためにアプリケーションプログラムの言語のコ
ードを発生する。
変数宣言の置換用のプログラムモジュールの機能を示
す。ライン400はこのモジュールのパラメータであ
る。ライン401はプログラムホスト変数のネームとそ
のタイプを決定するためにデータベースコマンドパラメ
ータを分析する。ライン402はホスト変数をホスト変
数テーブル30に入れる。ライン403はアプリケーシ
ョンプログラム14の言語でコードを発生し、それを変
更プログラムファイルに付加する。アプリケーションプ
ログラム言語に依存するモジュール(“APLanguageDecl
aration “)は特定されたネームとタイプをもつ変数を
宣言するためにアプリケーションプログラムの言語のコ
ードを発生する。
【0055】図6は具体例としてSQLを用いるアトミ
ックデータベースコマンドの置換用のプログラムモジュ
ールの機能を示す。ライン500はこのモジュールのパ
ラメータを示す。ライン501はデータベースコマンド
用のタグを割振る。ライン502〜503は入力ホスト
変数の存在を意味づける単純なキーワードまたは句読点
についてデータベースコマンドを検索することにより入
力ホスト変数を識別する。入力ホスト変数の識別はま
た、識別されたホスト変数がホスト変数テーブルにある
かどうかを検索する。ライン504〜509は実行中に
ホスト変数の値をアクセスするためにデータベースイン
ターフェースファンクションにより使用しうる記述構造
をつくるためにコードを付加する。アプリケーションプ
ログラム言語依存モジュール(“APLanguageHostVariab
le”)は入力ホスト変数の位置とタイプを記述するため
に構造をつくりそれを満たすためのアプリケーションプ
ログラム言語のコードをつくり、その構造の「ネーム」
をもどす。ライン510〜517は出力ホスト変数につ
いてと同様の機能を行う。ライン518〜521は言語
依存モジュール(“APLanguageDIFcall ”)を用いてア
トミックデータベースコマンドを実行するためにデータ
ベースインターフェースファンクション40を呼出すべ
くアプリケーションプログラムの言語でのコードを変更
プログラムファイルに付加する。“AtomicDIF ”データ
ベースインターフェースファンクションの実施に必要な
パラメータはライン519〜520に示してある。
ックデータベースコマンドの置換用のプログラムモジュ
ールの機能を示す。ライン500はこのモジュールのパ
ラメータを示す。ライン501はデータベースコマンド
用のタグを割振る。ライン502〜503は入力ホスト
変数の存在を意味づける単純なキーワードまたは句読点
についてデータベースコマンドを検索することにより入
力ホスト変数を識別する。入力ホスト変数の識別はま
た、識別されたホスト変数がホスト変数テーブルにある
かどうかを検索する。ライン504〜509は実行中に
ホスト変数の値をアクセスするためにデータベースイン
ターフェースファンクションにより使用しうる記述構造
をつくるためにコードを付加する。アプリケーションプ
ログラム言語依存モジュール(“APLanguageHostVariab
le”)は入力ホスト変数の位置とタイプを記述するため
に構造をつくりそれを満たすためのアプリケーションプ
ログラム言語のコードをつくり、その構造の「ネーム」
をもどす。ライン510〜517は出力ホスト変数につ
いてと同様の機能を行う。ライン518〜521は言語
依存モジュール(“APLanguageDIFcall ”)を用いてア
トミックデータベースコマンドを実行するためにデータ
ベースインターフェースファンクション40を呼出すべ
くアプリケーションプログラムの言語でのコードを変更
プログラムファイルに付加する。“AtomicDIF ”データ
ベースインターフェースファンクションの実施に必要な
パラメータはライン519〜520に示してある。
【0056】図7は具体例としてSQLを用いるセット
型データベースコマンドのクラスの置換のためのプログ
ラムモジュールの機能を示す。ライン600はこのモジ
ュールのパラメータである。ライン601はデータベー
スコマンドの第1ワードの多岐ブランチである。多岐ブ
ランチ(ライン602〜605)の第1CASEはデー
タベースコマンド結果としてデータベース項目セットの
仕様についてデータベースコマンドを処理する。ライン
603は同一の結果セット(すなわちSQL内の同一の
カーソルネーム)に関係するデータベースコマンドにつ
いてタグを割振る。ライン604〜607はこのコマン
ドのカーソルネームを決定し、そのネームとカーソルテ
ーブル34内の割振られたタグとを関連づける。ライン
605と606はセット型仕様内の入力および出力ホス
ト変数を、初期およびアクセスコマンド(OPENおよ
びFETCH)の置換時にそれらを必要とするところに
送る。これらはカーソルテーブルに保存される。このよ
うに、FETCHの場合には出力変数をFETCHに関
連して用いるか、あるいはもしなければDECLARE
−CURSORからカーソルテーブルに保存された出力
変数が用いられる。これはOPENステートメントにつ
いても同じである。多岐ブランチの第2のCASE(ラ
イン608〜621)はデータベースコマンド結果セッ
トの処理の開始のためにデータベースコマンドを処理す
る。ライン608〜609はデータベースコマンドのカ
ーソルネームとそのネームに関連したタグを決定する。
ライン611〜618はアトミックデータベースコマン
ドについての置換におけるホスト変数の処理と同様に入
力ホスト変数を処理する。ライン619〜621は変更
プログラムファイルに言語依存モジュール(“APLangua
geDIFcall ”)を用いてセット型データベースコマンド
の処理の開始のためにデータベースインターフェースフ
ァンクションを呼出すためのアプリケーションプログラ
ム言語のコードを付加する。“SetDIFopen”データベー
スインターフェースファンクションの実施のために必要
なパラメータはライン620に示してある。多岐ブラン
チの第3のCASE(ライン622〜635)はデータ
ベースコマンド結果セットにおけるデータベース項目の
アクセスのためにデータベースコマンドを処理する。ラ
イン623〜624はこのデータベースコマンドのカー
ソルネームおよびそれに関連するタグを決定する。ライ
ン625〜632はアトミックデータベースコマンドに
ついての置換におけるホスト変数処理と同様に出力ホス
ト変数を処理する。ライン633〜635は変更プログ
ラムファイルに、言語依存モジュール(“APLanguageDI
Fcall ”)を用いてセット型データベースコマンドの結
果セット内のデータベース項目のアクセスのためのデー
タベースインターフェースファンクションを呼び出すべ
くアプリケーションプログラム14の言語でコードを付
加する。“SetDIFfetch ”データベースインターフェー
スファンクションの実施に必要なパラメータをライン6
34に示す。多岐ブランチの最後のCASE(ライン6
36〜641)はセット型データベースコマンドの結果
セットの処理を終了させるためのデータベースコマンド
を処理する。ライン637〜638はこのデータベース
コマンドのカーソルネームとそれに関連するタグを決定
する。ライン639〜641は変更プログラムファイル
に、言語依存モジュール(“APLanguageDIFcall ”)を
用いてセット型データベースコマンドの結果セットの処
理の終了のためにデータベースインターフェースファン
クション40を呼び出すべくアプリケーションプログラ
ム14の言語でコードを付加する。
型データベースコマンドのクラスの置換のためのプログ
ラムモジュールの機能を示す。ライン600はこのモジ
ュールのパラメータである。ライン601はデータベー
スコマンドの第1ワードの多岐ブランチである。多岐ブ
ランチ(ライン602〜605)の第1CASEはデー
タベースコマンド結果としてデータベース項目セットの
仕様についてデータベースコマンドを処理する。ライン
603は同一の結果セット(すなわちSQL内の同一の
カーソルネーム)に関係するデータベースコマンドにつ
いてタグを割振る。ライン604〜607はこのコマン
ドのカーソルネームを決定し、そのネームとカーソルテ
ーブル34内の割振られたタグとを関連づける。ライン
605と606はセット型仕様内の入力および出力ホス
ト変数を、初期およびアクセスコマンド(OPENおよ
びFETCH)の置換時にそれらを必要とするところに
送る。これらはカーソルテーブルに保存される。このよ
うに、FETCHの場合には出力変数をFETCHに関
連して用いるか、あるいはもしなければDECLARE
−CURSORからカーソルテーブルに保存された出力
変数が用いられる。これはOPENステートメントにつ
いても同じである。多岐ブランチの第2のCASE(ラ
イン608〜621)はデータベースコマンド結果セッ
トの処理の開始のためにデータベースコマンドを処理す
る。ライン608〜609はデータベースコマンドのカ
ーソルネームとそのネームに関連したタグを決定する。
ライン611〜618はアトミックデータベースコマン
ドについての置換におけるホスト変数の処理と同様に入
力ホスト変数を処理する。ライン619〜621は変更
プログラムファイルに言語依存モジュール(“APLangua
geDIFcall ”)を用いてセット型データベースコマンド
の処理の開始のためにデータベースインターフェースフ
ァンクションを呼出すためのアプリケーションプログラ
ム言語のコードを付加する。“SetDIFopen”データベー
スインターフェースファンクションの実施のために必要
なパラメータはライン620に示してある。多岐ブラン
チの第3のCASE(ライン622〜635)はデータ
ベースコマンド結果セットにおけるデータベース項目の
アクセスのためにデータベースコマンドを処理する。ラ
イン623〜624はこのデータベースコマンドのカー
ソルネームおよびそれに関連するタグを決定する。ライ
ン625〜632はアトミックデータベースコマンドに
ついての置換におけるホスト変数処理と同様に出力ホス
ト変数を処理する。ライン633〜635は変更プログ
ラムファイルに、言語依存モジュール(“APLanguageDI
Fcall ”)を用いてセット型データベースコマンドの結
果セット内のデータベース項目のアクセスのためのデー
タベースインターフェースファンクションを呼び出すべ
くアプリケーションプログラム14の言語でコードを付
加する。“SetDIFfetch ”データベースインターフェー
スファンクションの実施に必要なパラメータをライン6
34に示す。多岐ブランチの最後のCASE(ライン6
36〜641)はセット型データベースコマンドの結果
セットの処理を終了させるためのデータベースコマンド
を処理する。ライン637〜638はこのデータベース
コマンドのカーソルネームとそれに関連するタグを決定
する。ライン639〜641は変更プログラムファイル
に、言語依存モジュール(“APLanguageDIFcall ”)を
用いてセット型データベースコマンドの結果セットの処
理の終了のためにデータベースインターフェースファン
クション40を呼び出すべくアプリケーションプログラ
ム14の言語でコードを付加する。
【0057】図8はSQLの例を用いてダイナミックデ
ータベースコマンドの置換用のプログラムモジュールの
機能を示す。ライン700はこのモジュールのパラメー
タを示し、ライン701はデータベースコマンドの第1
ワードにおける多岐ブランチである。多岐ブランチの第
1のCASE(ライン702〜712)は据置き実行用
のデータベースコマンドを特定するためのデータベース
コマンドを処理する。ライン703は動的に供給される
データベースコマンドを特定し、結局それを実行するデ
ータベースコマンド用のタグを割振る。ライン704〜
705は動的に特定され実行されるデータベースコマン
ドのラベルを決定し、それをラベルテーブル36内に割
振られたタグと関連づける。ライン706はこのラベル
をカーソルテーブルのダイナミック据置きステートメン
トの実行が例えば“OPENLabel…”である場合
プリプロセッサ18により見出すべきところに入れる。
ライン707〜710は実行中に動的に限定されるデー
タベースコマンドのテキスト値をアクセスするためにデ
ータベースインターフェースファンクションにより使用
されうる記述構造をつくるためのコードを付加する。ア
プリケーションプログラムに言語依存モジュール(“AP
LanguageCommandString ”)は動的に特定されるデータ
ベースコマンドを含むテキストの位置を記述するために
その構造をつくり満たすためのアプリケーションプログ
ラム言語のコードを発生し、その構造の「ネーム」をも
どす。ライン711〜713は変更プログラムファイル
に、言語依存モジュール(APLanguageDIFcall ”)を用
いて据置き実行用のデータベースコマンドと動的に特定
するためにデータベースインターフェースファンクショ
ンを呼び出す、アプリケーションプログラム言語のコー
ドを付加する。“DynDIFdefer ”データベースインター
フェースファンクションの実施に必要なパラメータはラ
イン712に示してある。多岐ブランチの第2のCAS
E(ライン7114〜740)は動的に特定されるデー
タベースコマンドの直後または据置き実行用のデータベ
ースコマンドを処理する。ライン715〜724は動的
に特定されるコマンドの直接の実行の場合を扱う。ライ
ン716はそのコマンドにタグを割振る。ライン717
〜720はこのモジュールの“PREPARE”のケー
スに用いられると同様に変更プログラムファイル内にコ
ードを発生する。ライン721〜724は変更プログラ
ムファイルに、言語依存モジュール(“APLanguageDIFc
all ”)を用いて動的に特定されるデータベースコマン
ドの直接の実行用にデータベースインターフェースファ
ンクションを呼び出すアプリケーションプログラム言語
のコードを付加する。“DynDIFimmed ”データベースイ
ンターフェースファンクション40の実施に必要なパラ
メータをライン724に示す。ライン725〜740は
動的に特定されるデータベースコマンドの据置き実行の
場合を扱う。ライン727〜735はアトミックデータ
ベースコマンドの置換におけるホスト変数の処理と同様
に入力ホスト変数を処理する。ライン737〜740
は、変更プログラムファイルに、言語依存モジュール
(“APLanguageDIFcall ”)を用いて動的に特定される
データベースコマンドの据置き実行を開始させるために
データベースインターフェースファンクション40を呼
出すための、アプリケーションプログラムの言語のコー
ドを付加する。“AtomicDIF ”データベースインターフ
ェースファンクションの実施に必要なパラメータをライ
ン740に示す。
ータベースコマンドの置換用のプログラムモジュールの
機能を示す。ライン700はこのモジュールのパラメー
タを示し、ライン701はデータベースコマンドの第1
ワードにおける多岐ブランチである。多岐ブランチの第
1のCASE(ライン702〜712)は据置き実行用
のデータベースコマンドを特定するためのデータベース
コマンドを処理する。ライン703は動的に供給される
データベースコマンドを特定し、結局それを実行するデ
ータベースコマンド用のタグを割振る。ライン704〜
705は動的に特定され実行されるデータベースコマン
ドのラベルを決定し、それをラベルテーブル36内に割
振られたタグと関連づける。ライン706はこのラベル
をカーソルテーブルのダイナミック据置きステートメン
トの実行が例えば“OPENLabel…”である場合
プリプロセッサ18により見出すべきところに入れる。
ライン707〜710は実行中に動的に限定されるデー
タベースコマンドのテキスト値をアクセスするためにデ
ータベースインターフェースファンクションにより使用
されうる記述構造をつくるためのコードを付加する。ア
プリケーションプログラムに言語依存モジュール(“AP
LanguageCommandString ”)は動的に特定されるデータ
ベースコマンドを含むテキストの位置を記述するために
その構造をつくり満たすためのアプリケーションプログ
ラム言語のコードを発生し、その構造の「ネーム」をも
どす。ライン711〜713は変更プログラムファイル
に、言語依存モジュール(APLanguageDIFcall ”)を用
いて据置き実行用のデータベースコマンドと動的に特定
するためにデータベースインターフェースファンクショ
ンを呼び出す、アプリケーションプログラム言語のコー
ドを付加する。“DynDIFdefer ”データベースインター
フェースファンクションの実施に必要なパラメータはラ
イン712に示してある。多岐ブランチの第2のCAS
E(ライン7114〜740)は動的に特定されるデー
タベースコマンドの直後または据置き実行用のデータベ
ースコマンドを処理する。ライン715〜724は動的
に特定されるコマンドの直接の実行の場合を扱う。ライ
ン716はそのコマンドにタグを割振る。ライン717
〜720はこのモジュールの“PREPARE”のケー
スに用いられると同様に変更プログラムファイル内にコ
ードを発生する。ライン721〜724は変更プログラ
ムファイルに、言語依存モジュール(“APLanguageDIFc
all ”)を用いて動的に特定されるデータベースコマン
ドの直接の実行用にデータベースインターフェースファ
ンクションを呼び出すアプリケーションプログラム言語
のコードを付加する。“DynDIFimmed ”データベースイ
ンターフェースファンクション40の実施に必要なパラ
メータをライン724に示す。ライン725〜740は
動的に特定されるデータベースコマンドの据置き実行の
場合を扱う。ライン727〜735はアトミックデータ
ベースコマンドの置換におけるホスト変数の処理と同様
に入力ホスト変数を処理する。ライン737〜740
は、変更プログラムファイルに、言語依存モジュール
(“APLanguageDIFcall ”)を用いて動的に特定される
データベースコマンドの据置き実行を開始させるために
データベースインターフェースファンクション40を呼
出すための、アプリケーションプログラムの言語のコー
ドを付加する。“AtomicDIF ”データベースインターフ
ェースファンクションの実施に必要なパラメータをライ
ン740に示す。
【0058】図9はSQLの具体例を用いたトランザク
ションデータベースコマンドの置換についてのプログラ
ムモジュールの機能を示す。ライン800はこのモジュ
ールのパラメータを示す。ライン801はトランザクシ
ョンデータベースコマンドの第1ワードの多岐ブランチ
である。ライン802〜805は変更プログラムファイ
ルに、トランザクション確約を開始するためのデータベ
ースインターフェースファンクションの呼出しのための
アプリケーションプログラム14の言語でのコードを付
加する。ライン806〜809は変更プログラムファイ
ルにトランザクション打切り開始のためのデータベース
インターフェースファンクションの呼出しのためのアプ
リケーションプログラム14の言語によるコードを付加
する。
ションデータベースコマンドの置換についてのプログラ
ムモジュールの機能を示す。ライン800はこのモジュ
ールのパラメータを示す。ライン801はトランザクシ
ョンデータベースコマンドの第1ワードの多岐ブランチ
である。ライン802〜805は変更プログラムファイ
ルに、トランザクション確約を開始するためのデータベ
ースインターフェースファンクションの呼出しのための
アプリケーションプログラム14の言語でのコードを付
加する。ライン806〜809は変更プログラムファイ
ルにトランザクション打切り開始のためのデータベース
インターフェースファンクションの呼出しのためのアプ
リケーションプログラム14の言語によるコードを付加
する。
【0059】要約すると、データベースコマンドが上述
のように認識され、分類された後に、それらコマンド
は、埋込みデータベースコマンドの置換を除き不変であ
る内容を有するアプリケーションプログラム14の変更
されたバージョン内で置換される。ホスト変数宣言とし
て分類されたデータベースコマンドは変更されずに変更
アプリケーションプログラムに入れられる。他のデータ
ベースコマンドは、データベースコマンドの分類により
きまるタイプと内容を有するアプリケーションプログラ
ムのプログラミング言語でのデータベースインターフェ
ースファンクション実施を生じさせるために更に分析さ
れる。この置換はそのコマンドの後の実行、入力および
出力ホスト変数(もしあれば)の認識、それらのアプリ
ケーションプログラム言語によりきまる構造への配置、
関連データベースコマンドによる相関(もし必要であれ
ば)および、パッケージネーム、タグ、入力変数構造お
よび出力変数構造であるパラメターを含む適正なプログ
ラミング言語での適正なデータベースインターフェース
ファンクションの実施の配置に使用されるべきタグ(必
要であれば)の割振りにより達成される。
のように認識され、分類された後に、それらコマンド
は、埋込みデータベースコマンドの置換を除き不変であ
る内容を有するアプリケーションプログラム14の変更
されたバージョン内で置換される。ホスト変数宣言とし
て分類されたデータベースコマンドは変更されずに変更
アプリケーションプログラムに入れられる。他のデータ
ベースコマンドは、データベースコマンドの分類により
きまるタイプと内容を有するアプリケーションプログラ
ムのプログラミング言語でのデータベースインターフェ
ースファンクション実施を生じさせるために更に分析さ
れる。この置換はそのコマンドの後の実行、入力および
出力ホスト変数(もしあれば)の認識、それらのアプリ
ケーションプログラム言語によりきまる構造への配置、
関連データベースコマンドによる相関(もし必要であれ
ば)および、パッケージネーム、タグ、入力変数構造お
よび出力変数構造であるパラメターを含む適正なプログ
ラミング言語での適正なデータベースインターフェース
ファンクションの実施の配置に使用されるべきタグ(必
要であれば)の割振りにより達成される。
【0060】アプリケーションプログラムでのデータベ
ースコマンドの置換は全データベースコマンドの完全な
分解ではなく統語キューによってのみきまる。この置換
は、アプリケーションプログラムのデータベースコマン
ドが結合されるDBMS54の知識を伴わずにそれとは
独立に達成される。この置換ステップはデータベースコ
マンドの初期キーワードおよびホスト変数(これらは統
語キューで認識される)のみを検索し、それ故、それに
続くデータベースコマンド言語のシンタックスの特異性
には無関係である。
ースコマンドの置換は全データベースコマンドの完全な
分解ではなく統語キューによってのみきまる。この置換
は、アプリケーションプログラムのデータベースコマン
ドが結合されるDBMS54の知識を伴わずにそれとは
独立に達成される。この置換ステップはデータベースコ
マンドの初期キーワードおよびホスト変数(これらは統
語キューで認識される)のみを検索し、それ故、それに
続くデータベースコマンド言語のシンタックスの特異性
には無関係である。
【0061】PL/Iに埋込まれたSQLデータベース
コマンドの次のセットはアプリケーションプログラム内
のデータベースコマンドの置換についての上述したメカ
ニズムを例示するものである。このアプリケーションプ
ログラムは次のデータベースコマンドを含むものとす
る:EXEC SQL BEGIN DECLARE
SECTION;DCL PARTNO BIN FI
XED(15);DCL DESCR CHAR(1
0);DCL NAME CHAR(15);EXEC
SQL END DECLARE SECTION;
EXEC SQL SELECT PARTNUM,D
ESCRIPTION INTO:PARTNO,:DESCR FROM INVENTORY WHERE PARTNAME=:NAME;上記の置
換メカニズムの一例は次の事象を発生させる:DCL
PARTNO BIN FIXED(15);DCL
DESCR CHAR(10);DCL NAME C
HAR(15);CALL ATOMICDBINTF
N(packageP,tagl,IVARS(1,(TYPE(NA
ME),ADDR(NAME))),OVARS(2,
(TYPE(PARTNO),ADDR(PARTN
O)),(TYPE(DESCR),ADDR(DES
CR))));
コマンドの次のセットはアプリケーションプログラム内
のデータベースコマンドの置換についての上述したメカ
ニズムを例示するものである。このアプリケーションプ
ログラムは次のデータベースコマンドを含むものとす
る:EXEC SQL BEGIN DECLARE
SECTION;DCL PARTNO BIN FI
XED(15);DCL DESCR CHAR(1
0);DCL NAME CHAR(15);EXEC
SQL END DECLARE SECTION;
EXEC SQL SELECT PARTNUM,D
ESCRIPTION INTO:PARTNO,:DESCR FROM INVENTORY WHERE PARTNAME=:NAME;上記の置
換メカニズムの一例は次の事象を発生させる:DCL
PARTNO BIN FIXED(15);DCL
DESCR CHAR(10);DCL NAME C
HAR(15);CALL ATOMICDBINTF
N(packageP,tagl,IVARS(1,(TYPE(NA
ME),ADDR(NAME))),OVARS(2,
(TYPE(PARTNO),ADDR(PARTN
O)),(TYPE(DESCR),ADDR(DES
CR))));
【0062】バインドファイル発生の説明 プリプロセッサ18は遠隔DBMSにアプリケーション
プログラムのデータベースコマンドを結合させるために
バインドプログラムに必要な情報を用意しなければなら
ない。この情報はアプリケーションプログラムに埋込ま
れたデータベースコマンドの(いくつかの)テキストか
ら成る。アトミックおよびセット型仕様データベースコ
マンドの一つのタイプ(SQLの場合、DECLARE
CURSOR)のみがバインドファイル22に入れら
れる。このバインドファイルにそう入されるデータベー
スコマンド内に埋込まれた入力ホスト変数リファレンス
(変数ネーム)は単純なホスト変数マーカと置き換えら
れる。更に、これらマーカはデータベースコマンドによ
り参照されるホスト変数のタイプに関連づけられる。こ
の関連はタイプネームの位置的リストの付加またはデー
タベースコマンド内のホスト変数マークに続きタイプネ
ームを置くことである。プリプロセッサのこのモジュー
ルはデータベースコマンドにより参照されるホスト変数
のタイプを決定するために、上記のように限定されたホ
スト変数テーブルを使用する。この入力ホスト変数参照
の置換はプリプロセッサプログラムに固有のアプリケー
ションプログラム言語が単純なホスト変数リファレンス
のみならずホスト変数にわたる表現をも認識し処理しう
るようにする。この進歩したファシリティはバインドプ
ログラム、データベースインターフェースファンクショ
ン、通信プロトコルまたはDBMSの使用に対する変更
を必要とせずにアプリケーションアクセスエージェント
のプリプロセッサプログラム4の異なる使用により、異
なる言語を異なる程度に与えることが出来る。(もちろ
ん、データベースコマンド内の複雑なホスト変数表現は
その値を計算するためにデータベースインターフェース
ファンクションを実施するコードに影響しうる。)出力
ホスト変数に対する参照は出力バンイドファイルに付加
されるデータベースコマンドから除くことが出来る。
プログラムのデータベースコマンドを結合させるために
バインドプログラムに必要な情報を用意しなければなら
ない。この情報はアプリケーションプログラムに埋込ま
れたデータベースコマンドの(いくつかの)テキストか
ら成る。アトミックおよびセット型仕様データベースコ
マンドの一つのタイプ(SQLの場合、DECLARE
CURSOR)のみがバインドファイル22に入れら
れる。このバインドファイルにそう入されるデータベー
スコマンド内に埋込まれた入力ホスト変数リファレンス
(変数ネーム)は単純なホスト変数マーカと置き換えら
れる。更に、これらマーカはデータベースコマンドによ
り参照されるホスト変数のタイプに関連づけられる。こ
の関連はタイプネームの位置的リストの付加またはデー
タベースコマンド内のホスト変数マークに続きタイプネ
ームを置くことである。プリプロセッサのこのモジュー
ルはデータベースコマンドにより参照されるホスト変数
のタイプを決定するために、上記のように限定されたホ
スト変数テーブルを使用する。この入力ホスト変数参照
の置換はプリプロセッサプログラムに固有のアプリケー
ションプログラム言語が単純なホスト変数リファレンス
のみならずホスト変数にわたる表現をも認識し処理しう
るようにする。この進歩したファシリティはバインドプ
ログラム、データベースインターフェースファンクショ
ン、通信プロトコルまたはDBMSの使用に対する変更
を必要とせずにアプリケーションアクセスエージェント
のプリプロセッサプログラム4の異なる使用により、異
なる言語を異なる程度に与えることが出来る。(もちろ
ん、データベースコマンド内の複雑なホスト変数表現は
その値を計算するためにデータベースインターフェース
ファンクションを実施するコードに影響しうる。)出力
ホスト変数に対する参照は出力バンイドファイルに付加
されるデータベースコマンドから除くことが出来る。
【0063】図10はアプリケーションアクセスエージ
ェントのバインドプログラム38の入力であるバインド
ファイル22を構成するためのプリプロセッサ18のプ
ログラムモジュールの機能を示す。ライン900はこの
モジュールのパラメータを示す。ライン901はデータ
ベースコマンドのクラスについての多岐ブランチであ
る。ライン902はバインドファイルに加える必要のな
いデータベースコマンドをインターセプトする。ライン
903〜905はバインドファイルにアトミックデータ
ベースコマンドを加える。モジュール“FixUpHostVaria
bles”はデータベースコマンド内の入力ホスト変数のネ
ームをマーカと置き換え、そのホスト変数のタイプを
(このマーカに続き、あるいはデータベースコマンドに
関連した順次リストに)加える。これはまたデータベー
スコマンドから出力ホスト変数に対する参照を除去す
る。ライン905は“FixUpHostVariables”で変更され
たデータベースコマンドをバインドファイルに加える。
ライン906〜909はセット型データベースコマンド
を処理する。ライン907はこの処理をデータベース項
目の結果セットを特定するコマンドに限るものとする。
ライン908〜909はライン904〜905と同じ機
能を行う。
ェントのバインドプログラム38の入力であるバインド
ファイル22を構成するためのプリプロセッサ18のプ
ログラムモジュールの機能を示す。ライン900はこの
モジュールのパラメータを示す。ライン901はデータ
ベースコマンドのクラスについての多岐ブランチであ
る。ライン902はバインドファイルに加える必要のな
いデータベースコマンドをインターセプトする。ライン
903〜905はバインドファイルにアトミックデータ
ベースコマンドを加える。モジュール“FixUpHostVaria
bles”はデータベースコマンド内の入力ホスト変数のネ
ームをマーカと置き換え、そのホスト変数のタイプを
(このマーカに続き、あるいはデータベースコマンドに
関連した順次リストに)加える。これはまたデータベー
スコマンドから出力ホスト変数に対する参照を除去す
る。ライン905は“FixUpHostVariables”で変更され
たデータベースコマンドをバインドファイルに加える。
ライン906〜909はセット型データベースコマンド
を処理する。ライン907はこの処理をデータベース項
目の結果セットを特定するコマンドに限るものとする。
ライン908〜909はライン904〜905と同じ機
能を行う。
【0064】要約すると、アプリケーションアクセスエ
ージェント17のプリプロセッサ18は特定の遠隔DB
MSへのデータベースコマンドの結合とは無関係に実行
するから、前処理中にあるデータベースコマンドを変更
された形で、各データベースコマンドを識別するために
この変更されたアプリケーションプログラムにおいて用
いられるタグと共に保持する必要がある。バインドファ
イルはこの情報を保持するメカニズムである。このバイ
ンドファイルは遠隔DBMSへの結合中にアプリケーシ
ョンアクセスエージェントのバインドプログラムへの入
力として用いられる。
ージェント17のプリプロセッサ18は特定の遠隔DB
MSへのデータベースコマンドの結合とは無関係に実行
するから、前処理中にあるデータベースコマンドを変更
された形で、各データベースコマンドを識別するために
この変更されたアプリケーションプログラムにおいて用
いられるタグと共に保持する必要がある。バインドファ
イルはこの情報を保持するメカニズムである。このバイ
ンドファイルは遠隔DBMSへの結合中にアプリケーシ
ョンアクセスエージェントのバインドプログラムへの入
力として用いられる。
【0065】本発明は、アプリケーションアクセスエー
ジェントのプリプロセッサ18が1回実行し、その結果
(バインドファイル22)をいくつかの異なるDBMS
に異なった時点で結合しうるようにする。それ故、本発
明は、前処理と結合の段階はアプリケーションプログラ
ムに結合される夫々のDBMSについて実行されねばな
らないから、1回のステップでこれらの両方を行う他の
メカニズムよりも効率が高い。更に、そのような他のメ
カニズムではアプリケーションプログラムにおいての認
識、分類、データベースコマンドの置換中に遠隔DBM
S資源を使用し保持する必要がある。本発明ではこれら
のステップは特定のDBMSへの結合には無関係に行わ
れ、プリプロセッサの実行中に遠隔DBMSに資源を必
要としない。
ジェントのプリプロセッサ18が1回実行し、その結果
(バインドファイル22)をいくつかの異なるDBMS
に異なった時点で結合しうるようにする。それ故、本発
明は、前処理と結合の段階はアプリケーションプログラ
ムに結合される夫々のDBMSについて実行されねばな
らないから、1回のステップでこれらの両方を行う他の
メカニズムよりも効率が高い。更に、そのような他のメ
カニズムではアプリケーションプログラムにおいての認
識、分類、データベースコマンドの置換中に遠隔DBM
S資源を使用し保持する必要がある。本発明ではこれら
のステップは特定のDBMSへの結合には無関係に行わ
れ、プリプロセッサの実行中に遠隔DBMSに資源を必
要としない。
【0066】上記の例に続き次のアプリケーションプロ
グラムから発生されるバンイドファイルエントリを例示
する: TAG=TAG1 COMMAND=SELECT PARTNUM,DE
SCRIPTION FROM INVENTORY WHERE PARTNAME=:CHAR(15)
グラムから発生されるバンイドファイルエントリを例示
する: TAG=TAG1 COMMAND=SELECT PARTNUM,DE
SCRIPTION FROM INVENTORY WHERE PARTNAME=:CHAR(15)
【0067】適用業務アクセスエージェントのバインド
プログラム 概 要 適用業務アクセスエージェント17のバインドプログラ
ム38は適用業務プログラム14からのデータベースコ
マンドの結合(分析、最適化および保持)を行うために
遠隔DBMSと対話を行う。バインドプログラムは入力
として以下の項目を用いる。 1. プリプロセッサにより用意されたバインドファイ
ル; 2. データベースコマンドが結合されるべき遠隔DB
MSのネーム;および 3. データベースコマンドを結合するために遠隔DB
MSにより用いられるべき処理のオプション。
プログラム 概 要 適用業務アクセスエージェント17のバインドプログラ
ム38は適用業務プログラム14からのデータベースコ
マンドの結合(分析、最適化および保持)を行うために
遠隔DBMSと対話を行う。バインドプログラムは入力
として以下の項目を用いる。 1. プリプロセッサにより用意されたバインドファイ
ル; 2. データベースコマンドが結合されるべき遠隔DB
MSのネーム;および 3. データベースコマンドを結合するために遠隔DB
MSにより用いられるべき処理のオプション。
【0068】データベースコマンドの結合はアプリケー
ションプログラムコンピュータにおけるバインドプログ
ラムと遠隔コンピュータにおけるDBMSの間の一致通
信プロトコルを用いて行われる。
ションプログラムコンピュータにおけるバインドプログ
ラムと遠隔コンピュータにおけるDBMSの間の一致通
信プロトコルを用いて行われる。
【0069】バインドプログラムの説明 バインドプログラム38はまずアプリケーションプログ
ラムコンピュータの計算環境に特有のメカニズムを用い
てネーム付き遠隔DBMSの通信アドレスを決定する。
次にバインドプログラムが遠隔DBMSとの通信を行
う。通信の確立はバインドプログラムがそれに代って実
行を行っているユーザを識別することを含む。通信を確
立し、ユーザ識別を行うメカニズムは本発明の範囲外で
ある。通信が確立すると、バインドプログラム38は一
致メッセージフォーマットを用いてデータベースコマン
ドの結合を開始しようとすることを示す。このメッセー
ジ、すなわちBEGIN−BINDメッセージも結合さ
れるべきデータベースコマンドを処理するためにDBM
Sで使用されるべきバインド処理オプションを含む。バ
インド処理オプションは、構成されるべきデータベース
コマンドパッケージのネームを、そのパッケージが新し
いものであるか、あるいは同一のネーム、分解ルール
(例えばデータベースコマンド内のテキストストリング
リテラルを限定するために用いられるシンボル)および
アプリケーションプログラムパッケージに対する応答に
許可を有するユーザのパッケージを置換えるものである
かには無関係に含むことが出来る。
ラムコンピュータの計算環境に特有のメカニズムを用い
てネーム付き遠隔DBMSの通信アドレスを決定する。
次にバインドプログラムが遠隔DBMSとの通信を行
う。通信の確立はバインドプログラムがそれに代って実
行を行っているユーザを識別することを含む。通信を確
立し、ユーザ識別を行うメカニズムは本発明の範囲外で
ある。通信が確立すると、バインドプログラム38は一
致メッセージフォーマットを用いてデータベースコマン
ドの結合を開始しようとすることを示す。このメッセー
ジ、すなわちBEGIN−BINDメッセージも結合さ
れるべきデータベースコマンドを処理するためにDBM
Sで使用されるべきバインド処理オプションを含む。バ
インド処理オプションは、構成されるべきデータベース
コマンドパッケージのネームを、そのパッケージが新し
いものであるか、あるいは同一のネーム、分解ルール
(例えばデータベースコマンド内のテキストストリング
リテラルを限定するために用いられるシンボル)および
アプリケーションプログラムパッケージに対する応答に
許可を有するユーザのパッケージを置換えるものである
かには無関係に含むことが出来る。
【0070】通信が確立し、バインド開始メッセージに
対する受け入れ可能なレスポンスが入ると、適用業務ア
クセスエージェントのバインドプログラム38はバイン
ドファイル20内の各データベースコマンドを他の一致
メッセージフォーマットを用いてDBMSに送る。この
メッセージすなわちBIND−DATABASE−CO
MMANDメッセージはプリプロセッサ18により変更
されたデータベースコマンド22とそのデータベースコ
マンドに関連するタグを含む。このデータベースコマン
ド内の入力ホスト変数参照はもはやホスト変数識別子を
運ばず、データベースコマンドが実行されるときDBM
Sに送られるべき値のタイプを運ぶ。遠隔DBMSはB
IND−DATABASE−COMMANDメッセージ
を受けると、そのメッセージに含まれるデータベースコ
マンドを分析し、最適化し、そして保持する。このデー
タベースコマンドはアプリケーションプログラムによる
実行のためにデータベースコマンドパッケージ(そのネ
ームはBEGIN−BINDメッセージ内に特定され
た)に組込まれ、そしてBIND−DATABASE−
COMMAND内に受け入れられたタグと関連づけられ
る。それと共にパッケージネームとタグは分析され、そ
して最適化されたデータベースコマンドを識別する。D
BMSによりエラーが検出されると、それらエラーはバ
インドプログラムへのレスポンスメッセージ内でリポー
トされ、そしてデータベースコマンドはこのパッケージ
内に保持されない。そうでなければDBMSはそのレス
ポンスメッセージにおいてデータベースコマンドの受領
を知らせる。バインドファイル38からのすべてのデー
タベースコマンドがBIND−DATABASE−CO
MMANDメッセージ内に遠隔DBMSに送られてしま
うと、バインドプログラムはEND−BINDメッセー
ジを介してデータベースコマンドの結合により生じるパ
ッケージの完了を要求する。END−BINDメッセー
ジの受け入れによりこのDBMSはパッケージおよびD
BMSのカタログに対する「コミッティング」変化によ
るその最適化されたデータベースコマンドを完了し、そ
のパッケージを「コミット」しようとする試みの結果を
示す確認メッセージをもって応答する。END−BIN
DはBEGIN−BINDメッセージに関連する処理オ
プションおよび各BIND−DATABASE−COM
MANDの処理中に生じた事象を完了させる。一般にこ
れは、エラーのないときDBMS内のパッケージの保持
を生じさせる。バインドプログラムまたはDBMSがデ
ータベースコマンドの結合中に終了する場合、または通
信障害がデータベースコマンドの結合を中断させる場
合、またはバインドデータベースコマンドメッセージを
介して送られる1以上のデータベースコマンド内にエラ
ーが検出され、そしてエラーの生じたときパッケージは
つくられるべきでないことを処理オプションが特定する
場合に、このパッケージは遠隔DBMSにより保持され
ない。
対する受け入れ可能なレスポンスが入ると、適用業務ア
クセスエージェントのバインドプログラム38はバイン
ドファイル20内の各データベースコマンドを他の一致
メッセージフォーマットを用いてDBMSに送る。この
メッセージすなわちBIND−DATABASE−CO
MMANDメッセージはプリプロセッサ18により変更
されたデータベースコマンド22とそのデータベースコ
マンドに関連するタグを含む。このデータベースコマン
ド内の入力ホスト変数参照はもはやホスト変数識別子を
運ばず、データベースコマンドが実行されるときDBM
Sに送られるべき値のタイプを運ぶ。遠隔DBMSはB
IND−DATABASE−COMMANDメッセージ
を受けると、そのメッセージに含まれるデータベースコ
マンドを分析し、最適化し、そして保持する。このデー
タベースコマンドはアプリケーションプログラムによる
実行のためにデータベースコマンドパッケージ(そのネ
ームはBEGIN−BINDメッセージ内に特定され
た)に組込まれ、そしてBIND−DATABASE−
COMMAND内に受け入れられたタグと関連づけられ
る。それと共にパッケージネームとタグは分析され、そ
して最適化されたデータベースコマンドを識別する。D
BMSによりエラーが検出されると、それらエラーはバ
インドプログラムへのレスポンスメッセージ内でリポー
トされ、そしてデータベースコマンドはこのパッケージ
内に保持されない。そうでなければDBMSはそのレス
ポンスメッセージにおいてデータベースコマンドの受領
を知らせる。バインドファイル38からのすべてのデー
タベースコマンドがBIND−DATABASE−CO
MMANDメッセージ内に遠隔DBMSに送られてしま
うと、バインドプログラムはEND−BINDメッセー
ジを介してデータベースコマンドの結合により生じるパ
ッケージの完了を要求する。END−BINDメッセー
ジの受け入れによりこのDBMSはパッケージおよびD
BMSのカタログに対する「コミッティング」変化によ
るその最適化されたデータベースコマンドを完了し、そ
のパッケージを「コミット」しようとする試みの結果を
示す確認メッセージをもって応答する。END−BIN
DはBEGIN−BINDメッセージに関連する処理オ
プションおよび各BIND−DATABASE−COM
MANDの処理中に生じた事象を完了させる。一般にこ
れは、エラーのないときDBMS内のパッケージの保持
を生じさせる。バインドプログラムまたはDBMSがデ
ータベースコマンドの結合中に終了する場合、または通
信障害がデータベースコマンドの結合を中断させる場
合、またはバインドデータベースコマンドメッセージを
介して送られる1以上のデータベースコマンド内にエラ
ーが検出され、そしてエラーの生じたときパッケージは
つくられるべきでないことを処理オプションが特定する
場合に、このパッケージは遠隔DBMSにより保持され
ない。
【0071】図11は具体例としてSQLを用いるアプ
リケーションアクセスエージェント17のバインドプロ
グラム38の処理を示す。ライン1000はバインドプ
ログラムに送られるパラメータを示す。ライン1001
はDBMSネームパラメータにより特定されるDBMS
との通信を確立する。ライン1002〜1004はパッ
ケージネームとバインド処理オプションを含むBEGI
N−BINDメッセージの送出によるバインドプロセス
の開始を例示する。ライン1005〜1008はデータ
ベースコマンドとそれらのタグをBIND−DATAB
ASE−COMMANDメッセージで遠隔DBMSに送
る。ライン1009は結合プロセスを、つくられている
パッケージの処理を完了するためにEND−BINDメ
ッセージの送出で終了させる。
リケーションアクセスエージェント17のバインドプロ
グラム38の処理を示す。ライン1000はバインドプ
ログラムに送られるパラメータを示す。ライン1001
はDBMSネームパラメータにより特定されるDBMS
との通信を確立する。ライン1002〜1004はパッ
ケージネームとバインド処理オプションを含むBEGI
N−BINDメッセージの送出によるバインドプロセス
の開始を例示する。ライン1005〜1008はデータ
ベースコマンドとそれらのタグをBIND−DATAB
ASE−COMMANDメッセージで遠隔DBMSに送
る。ライン1009は結合プロセスを、つくられている
パッケージの処理を完了するためにEND−BINDメ
ッセージの送出で終了させる。
【0072】プリプロセッサ18は特定の遠隔DBMS
に対するデータベースコマンドの結合には無関係に実行
するから、遠隔DBMSへの結合の機能はアプリケーシ
ョンアクセスエージェントのバインドファイル発生機構
によりつくられるバインドファイル20を用いてアプリ
ケーションアクセスエージェント17により行われる。
バインドプロセスはネーム付きのDBMSとの通信を確
立し、そのDBMSにそこにおけるパッケージの作成に
必要な、パッケージのネームと処理オプションを含む情
報と共にBEGIN−BINDメッセージを送ることに
よりそのDBMSでのパッケージの結合を開始する。バ
インド開始に続き、アプリケーションプログラムコンピ
ュータ10におけるバインドファイル20のエントリー
が遠隔DBMSに送られるが、これはパラメータとして
変更されたアプリケーションプログラムに用いられるタ
グとその関連データベースコマンドをBIND−DAT
ABASE−COMMANDメッセージに対するパラメ
ータとして含む。バインドファイルのすべてのエントリ
ーが遠隔DBMSに送られてそこで処理された後に、バ
インドプロセスはEND−BINDメッセージを送るこ
とにより終了する。
に対するデータベースコマンドの結合には無関係に実行
するから、遠隔DBMSへの結合の機能はアプリケーシ
ョンアクセスエージェントのバインドファイル発生機構
によりつくられるバインドファイル20を用いてアプリ
ケーションアクセスエージェント17により行われる。
バインドプロセスはネーム付きのDBMSとの通信を確
立し、そのDBMSにそこにおけるパッケージの作成に
必要な、パッケージのネームと処理オプションを含む情
報と共にBEGIN−BINDメッセージを送ることに
よりそのDBMSでのパッケージの結合を開始する。バ
インド開始に続き、アプリケーションプログラムコンピ
ュータ10におけるバインドファイル20のエントリー
が遠隔DBMSに送られるが、これはパラメータとして
変更されたアプリケーションプログラムに用いられるタ
グとその関連データベースコマンドをBIND−DAT
ABASE−COMMANDメッセージに対するパラメ
ータとして含む。バインドファイルのすべてのエントリ
ーが遠隔DBMSに送られてそこで処理された後に、バ
インドプロセスはEND−BINDメッセージを送るこ
とにより終了する。
【0073】このメカニズムはアプリケーションプログ
ラム14についてのバインドファイルエントリーが数個
の異なるDBMSに異なった時点で結合しうるようにす
る。更に、これは各データベースコマンドを分析し最適
化するためのコストを、同一のユーザまたは異なったユ
ーザにより同時にあるいは異なった時点でアプリケーシ
ョンプログラムの複数インスタンスによって呼び込まれ
るデータベースコマンドの考えられる数回の実行にわた
り償却しうるようにする。通信コストは比較的高いか
ら、すでに最適化されたデータベースコマンドの実行を
行うために必要な時間(そしてそのための通信費用)は
それを分析し最適化するに必要な時間よりもかなり少く
なる。これは夫々の実行要求またはアプリケーションプ
ログラムのそれぞれの呼出しについてデータベースコマ
ンドを分析し最適化する他のメカニズムに対する本発明
の付加的な利点である。
ラム14についてのバインドファイルエントリーが数個
の異なるDBMSに異なった時点で結合しうるようにす
る。更に、これは各データベースコマンドを分析し最適
化するためのコストを、同一のユーザまたは異なったユ
ーザにより同時にあるいは異なった時点でアプリケーシ
ョンプログラムの複数インスタンスによって呼び込まれ
るデータベースコマンドの考えられる数回の実行にわた
り償却しうるようにする。通信コストは比較的高いか
ら、すでに最適化されたデータベースコマンドの実行を
行うために必要な時間(そしてそのための通信費用)は
それを分析し最適化するに必要な時間よりもかなり少く
なる。これは夫々の実行要求またはアプリケーションプ
ログラムのそれぞれの呼出しについてデータベースコマ
ンドを分析し最適化する他のメカニズムに対する本発明
の付加的な利点である。
【0074】上記の例の次のエラボレーションはアプリ
ケーションプログラムから発生されたバインドファイル
エントリーの結合により生じるパッケージ内容を例示す
る:PACKAGEネーム、ProcOpts,データコマンド
数=1:TAG1について最適化されたコード:タイプ
CHAR(15)の一つの入力変数を除く キー=入力変数で(内部データベーステーブルネーム)
のアクセスのために(内部アクセスパス)を使用 出力として(内部エレメントネーム1,内部エレメント
ネーム2)を発生 タグ1についてのオリジナルデータベースコマンド:S
ELECT PARTNUM,DESCRIPTION
FROM INVENTORY WHERE PARTNAME=:CHAR(15)
ケーションプログラムから発生されたバインドファイル
エントリーの結合により生じるパッケージ内容を例示す
る:PACKAGEネーム、ProcOpts,データコマンド
数=1:TAG1について最適化されたコード:タイプ
CHAR(15)の一つの入力変数を除く キー=入力変数で(内部データベーステーブルネーム)
のアクセスのために(内部アクセスパス)を使用 出力として(内部エレメントネーム1,内部エレメント
ネーム2)を発生 タグ1についてのオリジナルデータベースコマンド:S
ELECT PARTNUM,DESCRIPTION
FROM INVENTORY WHERE PARTNAME=:CHAR(15)
【0075】適用業務アクセスエージェントのデータベ
ースインターフェースファンクションの説明 概 略 適用業務アクセスエージェントのデータベースインター
フェースファンクション40はデータベースコマンド呼
込みプロトコルを用いて遠隔DBMSにおいてデータベ
ースコマンドの実行を行うプログラムである。データベ
ースインターフェースファンクション40はアプリケー
ションプログラムにリンクされ、アプリケーションプロ
グラムの実行中に(変更された)アプリケーションプロ
グラムから呼出される。データベースインターフェース
ファンクションとアプリケーションプログラムの間のイ
ンターフェースはアプリケーションプログラムコンピュ
ータ10の計算環境によりきまる。データベースインタ
ーフェースファンクションは遠隔DBMSにおいてパッ
ケージ内の結合したデータベースコマンドの実行を行う
ために遠隔DBMSとの間の通信プロトコルに従う。デ
ータベースインターフェースファンクションは入力ホス
ト変数の値を遠隔DBMSに通信し、出力ホスト変数の
値をデータベースコマンドの実行の結果として遠隔DB
MSからもどされる値にセットするために応答しうる。
ースインターフェースファンクションの説明 概 略 適用業務アクセスエージェントのデータベースインター
フェースファンクション40はデータベースコマンド呼
込みプロトコルを用いて遠隔DBMSにおいてデータベ
ースコマンドの実行を行うプログラムである。データベ
ースインターフェースファンクション40はアプリケー
ションプログラムにリンクされ、アプリケーションプロ
グラムの実行中に(変更された)アプリケーションプロ
グラムから呼出される。データベースインターフェース
ファンクションとアプリケーションプログラムの間のイ
ンターフェースはアプリケーションプログラムコンピュ
ータ10の計算環境によりきまる。データベースインタ
ーフェースファンクションは遠隔DBMSにおいてパッ
ケージ内の結合したデータベースコマンドの実行を行う
ために遠隔DBMSとの間の通信プロトコルに従う。デ
ータベースインターフェースファンクションは入力ホス
ト変数の値を遠隔DBMSに通信し、出力ホスト変数の
値をデータベースコマンドの実行の結果として遠隔DB
MSからもどされる値にセットするために応答しうる。
【0076】アプリケーションプログラムの実行中のデ
ータベースインターフェースファンクション40に対す
る第1呼出しに応じ(またはその前に)、適用業務アク
セスエージェント17は遠隔DBMS54との間の通信
を確立しなければならない。DBMSおよびそのコンピ
ュータ(アドレス)を決定するメカニズムはアプリケー
ションプログラムコンピュータの計算環境によりきま
る。通信の確立は、アプリケーションプログラムが実行
される、そのユーザの識別を含む。ユーザ識別のメカニ
ズムは本発明の範囲外である。通信の確立は要求される
サービス、使用されるべきDBMS、次の通信で使用さ
れるべき通信プロトコルのレベル(またはバージョン)
の識別のための一致メッセージの交換を含む。
ータベースインターフェースファンクション40に対す
る第1呼出しに応じ(またはその前に)、適用業務アク
セスエージェント17は遠隔DBMS54との間の通信
を確立しなければならない。DBMSおよびそのコンピ
ュータ(アドレス)を決定するメカニズムはアプリケー
ションプログラムコンピュータの計算環境によりきま
る。通信の確立は、アプリケーションプログラムが実行
される、そのユーザの識別を含む。ユーザ識別のメカニ
ズムは本発明の範囲外である。通信の確立は要求される
サービス、使用されるべきDBMS、次の通信で使用さ
れるべき通信プロトコルのレベル(またはバージョン)
の識別のための一致メッセージの交換を含む。
【0077】この章はコマンド呼込みプロトコル(すな
わち適用業務アクセスエージェントのデータベースイン
ターフェースファンクションと遠隔DBMSとの間で交
換されたメッセージ)並びにそのプロトコルのメッセー
ジに応じてデータベースインターフェースファンクショ
ンと遠隔DBMSとによりとられたアクションを記述す
る。
わち適用業務アクセスエージェントのデータベースイン
ターフェースファンクションと遠隔DBMSとの間で交
換されたメッセージ)並びにそのプロトコルのメッセー
ジに応じてデータベースインターフェースファンクショ
ンと遠隔DBMSとによりとられたアクションを記述す
る。
【0078】アトミックデータベースコマンドデータベ
ースインターフェースファンクションの説明 アトミックデータベースコマンドを行うために実行アプ
リケーションプログラムから呼出されるデータベースイ
ンターフェースファンクションはEXECUTE−AT
OMIC−COMMANDメッセージを構成し、遠隔D
BMSに送る。EXECUTE−ATOMIC−COM
MANDメッセージは次のエレメントを含む: 1. コマンドが配置されたアプリケーションプログラ
ムパッケージのネーム; 2. 特定のアトミックデータベースコマンドのタグ; 3. アトミックデータベースコマンドの入力ホスト変
数の値;および 4. 入力ホスト変数値のタイプの記述。
ースインターフェースファンクションの説明 アトミックデータベースコマンドを行うために実行アプ
リケーションプログラムから呼出されるデータベースイ
ンターフェースファンクションはEXECUTE−AT
OMIC−COMMANDメッセージを構成し、遠隔D
BMSに送る。EXECUTE−ATOMIC−COM
MANDメッセージは次のエレメントを含む: 1. コマンドが配置されたアプリケーションプログラ
ムパッケージのネーム; 2. 特定のアトミックデータベースコマンドのタグ; 3. アトミックデータベースコマンドの入力ホスト変
数の値;および 4. 入力ホスト変数値のタイプの記述。
【0079】アトミックデータベースコマンドデータベ
ースインターフェースファンクションは入力ホスト変数
の値をアクセスし、EXECUTE−ATOMIC−C
OMMANDメッセージに含めるためのそれらのタイプ
の記述を構成する。EXECUTE−ATOMIC−C
OMMANDを構成するに必要な情報は変更適用業務プ
ログラムによりデータベースインターフェースファンク
ションに通された情報に含まれる。EXECUTE−A
TOMIC−COMMANDメッセージの受け入れによ
り、遠隔DBMS54はそのメッセージ内のパッケージ
のネームにより示されるパッケージ内の指示されたデー
タベースコマンドについて保持された実行計画を置く。
このステップが順調に行われると遠隔DBMS54はE
XECUTE−ATOMIC−COMMANDメッセー
ジ内に入る入力ホスト変数値を用いてこのデータベース
コマンドについての計画を実行する。アトミックデータ
ベースコマンドの実行が順調に行われない場合にはこの
DBMSは実行が順調に行われなかった理由を記述す
る、一致フォーマットのインジケータを有するメッセー
ジを用意しデータベースインターフェースファンクショ
ンに送る。実行が順調であり、問題のデータベースコマ
ンドが1個以上の結果値(すなわち出力ホスト変数に含
まれたオリジナルデータベースコマンド)からなる結果
を発生すれば、これらの値はそれらのデータタイプの記
述と共に一致フォーマットのメッセージ内のデータベー
スインターフェースファンクションにもどされる。デー
タベースインターフェースファンクション40は適用業
務プログラムの対応する出力ホスト変数にもどされた結
果値をコピーする。(DBMSの値表現から適用業務プ
ログラムの計算環境における対応値表現への変換が必要
である。そのような変換を特定しサポートするメカニズ
ムは本発明の範囲外である)。
ースインターフェースファンクションは入力ホスト変数
の値をアクセスし、EXECUTE−ATOMIC−C
OMMANDメッセージに含めるためのそれらのタイプ
の記述を構成する。EXECUTE−ATOMIC−C
OMMANDを構成するに必要な情報は変更適用業務プ
ログラムによりデータベースインターフェースファンク
ションに通された情報に含まれる。EXECUTE−A
TOMIC−COMMANDメッセージの受け入れによ
り、遠隔DBMS54はそのメッセージ内のパッケージ
のネームにより示されるパッケージ内の指示されたデー
タベースコマンドについて保持された実行計画を置く。
このステップが順調に行われると遠隔DBMS54はE
XECUTE−ATOMIC−COMMANDメッセー
ジ内に入る入力ホスト変数値を用いてこのデータベース
コマンドについての計画を実行する。アトミックデータ
ベースコマンドの実行が順調に行われない場合にはこの
DBMSは実行が順調に行われなかった理由を記述す
る、一致フォーマットのインジケータを有するメッセー
ジを用意しデータベースインターフェースファンクショ
ンに送る。実行が順調であり、問題のデータベースコマ
ンドが1個以上の結果値(すなわち出力ホスト変数に含
まれたオリジナルデータベースコマンド)からなる結果
を発生すれば、これらの値はそれらのデータタイプの記
述と共に一致フォーマットのメッセージ内のデータベー
スインターフェースファンクションにもどされる。デー
タベースインターフェースファンクション40は適用業
務プログラムの対応する出力ホスト変数にもどされた結
果値をコピーする。(DBMSの値表現から適用業務プ
ログラムの計算環境における対応値表現への変換が必要
である。そのような変換を特定しサポートするメカニズ
ムは本発明の範囲外である)。
【0080】図12はデータベースインターフェースフ
ァンクションとアトミックデータベースコマンド用のコ
マンド実行プロトコルを示す。ライン1100は“Atom
micDIF”の呼込みを示し、パラメータはデータベースコ
マンドの置換中に用意される。InHVstructおよびOutHVs
truct はホスト変数に対する参照とそのホスト変数のタ
イプを含む。InHVstructまたはOutHVstruct あるいはそ
れらの両方は空でありうる。ライン1101〜1102
は、入力ホスト変数用の値を得るためにInHVstructを用
い、それらのタイプを記述する。ライン1103〜11
05はEXECUTE−ATOMIC−COMMAND
メッセージを送る。ライン1106はそのレスポンスを
受けてエラーの検査を行う。ライン1107〜1110
は出力ホスト変数に受信した結果値をコピーする。両立
しうるタイプと同一タイプの異なる表現間の変換は出力
ホスト変数のコピー中に生じる。
ァンクションとアトミックデータベースコマンド用のコ
マンド実行プロトコルを示す。ライン1100は“Atom
micDIF”の呼込みを示し、パラメータはデータベースコ
マンドの置換中に用意される。InHVstructおよびOutHVs
truct はホスト変数に対する参照とそのホスト変数のタ
イプを含む。InHVstructまたはOutHVstruct あるいはそ
れらの両方は空でありうる。ライン1101〜1102
は、入力ホスト変数用の値を得るためにInHVstructを用
い、それらのタイプを記述する。ライン1103〜11
05はEXECUTE−ATOMIC−COMMAND
メッセージを送る。ライン1106はそのレスポンスを
受けてエラーの検査を行う。ライン1107〜1110
は出力ホスト変数に受信した結果値をコピーする。両立
しうるタイプと同一タイプの異なる表現間の変換は出力
ホスト変数のコピー中に生じる。
【0081】セット型データベースコマンドデータベー
スインターフェースファンクションの説明 概 略 セット型データベースコマンドを行うために実行適用業
務プログラムから呼び出されるデータベースインターフ
ェースファンクションはいく分複雑である。セット型デ
ータベースコマンドは結果値のセット(多分大きいセッ
ト)を発生する。今日の通信設備を介してメッセージを
授受するコストは比較的高いから、セット型データベー
スコマンドを実行するのに必要なメッセージ交換の回数
を最少にすることが重要である。このため、セット型デ
ータアクセスが実行適用業務プログラム(すなわちSQ
L内の“OPEN…”)により開始されるとき、対応デ
ータベースインターフェースファンクションがOPEN
−QUERYメッセージをつくり送るのであり、このメ
ッセージは遠隔DBMSに複数の結果エレメントを単一
のレスポンスメッセージで応答することを指示する。次
に、セットデータアクセス結果にアクセスするためのデ
ータベースインターフェースファンクションは次のすで
に受信した結果エレメントをもどすかあるいはCONT
INUE−QUERYメッセージを用いて遠隔DBMS
から他の結果エレメントのグループを要求する。
スインターフェースファンクションの説明 概 略 セット型データベースコマンドを行うために実行適用業
務プログラムから呼び出されるデータベースインターフ
ェースファンクションはいく分複雑である。セット型デ
ータベースコマンドは結果値のセット(多分大きいセッ
ト)を発生する。今日の通信設備を介してメッセージを
授受するコストは比較的高いから、セット型データベー
スコマンドを実行するのに必要なメッセージ交換の回数
を最少にすることが重要である。このため、セット型デ
ータアクセスが実行適用業務プログラム(すなわちSQ
L内の“OPEN…”)により開始されるとき、対応デ
ータベースインターフェースファンクションがOPEN
−QUERYメッセージをつくり送るのであり、このメ
ッセージは遠隔DBMSに複数の結果エレメントを単一
のレスポンスメッセージで応答することを指示する。次
に、セットデータアクセス結果にアクセスするためのデ
ータベースインターフェースファンクションは次のすで
に受信した結果エレメントをもどすかあるいはCONT
INUE−QUERYメッセージを用いて遠隔DBMS
から他の結果エレメントのグループを要求する。
【0082】しかしながら、現在の結果エレメントデー
タコマンドの更新または削除(SQL内の“UPDAT
E CURRENT OF CURSOR…”または
“DELETE CURRENT OF CURSOR
…”)を処理すべきであれば複数の結果エレメントのも
どしは抑圧されねばならない。これは、更新および削除
現在エレメントデータベースコマンドが結果セットの
「現在」エレメントについて動作する。幸にDBMSは
そのセット型仕様データベースコマンド(SQLの“D
ECLARE CURSOR…FOR UPDAT
E”)の分析および現在エレメント更新は削除データベ
ースコマンドの対応するセット仕様コマンドとのその関
連づけは、セット型データベースコマンドの結果エレメ
ントが更新または削除されるときを決定しうる。DBM
Sが結果エレメントの更新または削除が可能であること
を決定すれば、それはOPEN−QUERYに応じてデ
ータの記述のみを、またOPEN−QUERYとCON
TINUE−QUERYメッセージに応じて単一の結果
エレメントをもどす。
タコマンドの更新または削除(SQL内の“UPDAT
E CURRENT OF CURSOR…”または
“DELETE CURRENT OF CURSOR
…”)を処理すべきであれば複数の結果エレメントのも
どしは抑圧されねばならない。これは、更新および削除
現在エレメントデータベースコマンドが結果セットの
「現在」エレメントについて動作する。幸にDBMSは
そのセット型仕様データベースコマンド(SQLの“D
ECLARE CURSOR…FOR UPDAT
E”)の分析および現在エレメント更新は削除データベ
ースコマンドの対応するセット仕様コマンドとのその関
連づけは、セット型データベースコマンドの結果エレメ
ントが更新または削除されるときを決定しうる。DBM
Sが結果エレメントの更新または削除が可能であること
を決定すれば、それはOPEN−QUERYに応じてデ
ータの記述のみを、またOPEN−QUERYとCON
TINUE−QUERYメッセージに応じて単一の結果
エレメントをもどす。
【0083】セット型データアクセスの結果エレメント
の処理は適用業務プログラムの複数データベースコマン
ドを含むから、セット型データベースコマンドデータベ
ースインターフェースファンクションは活性セット型デ
ータベースアクセスの状態を記録するために活性カーソ
ルテーブル34を維持する。活性カーソルテーブルはセ
ット型コマンドのタグを次の情報と関連づける: 1. OPENまたはCLOSEDの状態; 2. 結果エレメント値のタイプの記述; 3. 結果セットのすでに受信したエレメントのシーケ
ンス;および 4. アクセスされた受信エレメントの指示。
の処理は適用業務プログラムの複数データベースコマン
ドを含むから、セット型データベースコマンドデータベ
ースインターフェースファンクションは活性セット型デ
ータベースアクセスの状態を記録するために活性カーソ
ルテーブル34を維持する。活性カーソルテーブルはセ
ット型コマンドのタグを次の情報と関連づける: 1. OPENまたはCLOSEDの状態; 2. 結果エレメント値のタイプの記述; 3. 結果セットのすでに受信したエレメントのシーケ
ンス;および 4. アクセスされた受信エレメントの指示。
【0084】セット型データアクセスを開始するための
データベースインターフェースファンクションの説明 セット型データアクセス(例えばSQLの“OPE
N…”に応じて)の処理を開始するためのデータベース
インターフェースファンクションは次のエレメントを含
む、OPEN−QUERYメッセージの一致フォーマッ
トでメッセージをつくり遠隔DBMSに送る: 1. コマンドのある適用業務プログラムパッケージの
ネーム; 2. 特定のセット型データベースコマンドのタグ; 3. セット型データベースコマンドの入力ホスト変数
の値; 4. 入力ホスト変数値のタイプの記述;および 5. もどすべき結果セットの量の指示。
データベースインターフェースファンクションの説明 セット型データアクセス(例えばSQLの“OPE
N…”に応じて)の処理を開始するためのデータベース
インターフェースファンクションは次のエレメントを含
む、OPEN−QUERYメッセージの一致フォーマッ
トでメッセージをつくり遠隔DBMSに送る: 1. コマンドのある適用業務プログラムパッケージの
ネーム; 2. 特定のセット型データベースコマンドのタグ; 3. セット型データベースコマンドの入力ホスト変数
の値; 4. 入力ホスト変数値のタイプの記述;および 5. もどすべき結果セットの量の指示。
【0085】もどすべき結果セットの量の仕様はいくつ
かの形をとりうる。結果エレメントの数または結果エレ
メントを受けるに使用しうるスペースの量は一致しう
る。(他のものはDBMSに結果エレメントの全セット
をもどすための試みを可能にし、通信設備のフロー制御
またはペーシング特性を結果エレメントのフローに調整
するために使用させることである。)遠隔DBMSはO
PEN−QUERYの受信により、指示されたセット型
データアクセス用の保持された実行計画を置きそしてア
クセスする。これが順調に行われると、保持された計画
の実行が受信入力ホスト変数値を用いて開始され、要求
された(または指示されたスペースに入る)数の結果エ
レメントが発生され、そして一致フォーマットの応答メ
ッセージにフォーマットづけられる。セット型データベ
ースコマンドがセット型の更新または削除されるもので
あることをDBMSが決定した場合にはそれはOPEN
−QUERYに応じてデータの記述のみを、またCON
TINUE−QUERYに応じて単一の結果エレメント
をもどす。これらの場合に、DBMSはそのコマンドの
実行を、その実行が後に他の結果エレメントを発生すべ
く回復されうるように保留する。結果エレメントの発生
がOPEN−QUERYメッセージに特定される結果エ
レメントの量を越える前にデータベースコマンドにより
特定されるエレメントのセットを空にするならば、この
セットが空となったことの指示が応答メッセージと共に
もどされ、データベースが質問の処理を終了する。
かの形をとりうる。結果エレメントの数または結果エレ
メントを受けるに使用しうるスペースの量は一致しう
る。(他のものはDBMSに結果エレメントの全セット
をもどすための試みを可能にし、通信設備のフロー制御
またはペーシング特性を結果エレメントのフローに調整
するために使用させることである。)遠隔DBMSはO
PEN−QUERYの受信により、指示されたセット型
データアクセス用の保持された実行計画を置きそしてア
クセスする。これが順調に行われると、保持された計画
の実行が受信入力ホスト変数値を用いて開始され、要求
された(または指示されたスペースに入る)数の結果エ
レメントが発生され、そして一致フォーマットの応答メ
ッセージにフォーマットづけられる。セット型データベ
ースコマンドがセット型の更新または削除されるもので
あることをDBMSが決定した場合にはそれはOPEN
−QUERYに応じてデータの記述のみを、またCON
TINUE−QUERYに応じて単一の結果エレメント
をもどす。これらの場合に、DBMSはそのコマンドの
実行を、その実行が後に他の結果エレメントを発生すべ
く回復されうるように保留する。結果エレメントの発生
がOPEN−QUERYメッセージに特定される結果エ
レメントの量を越える前にデータベースコマンドにより
特定されるエレメントのセットを空にするならば、この
セットが空となったことの指示が応答メッセージと共に
もどされ、データベースが質問の処理を終了する。
【0086】OPEN−QUERYメッセージへの応答
メッセージのエレメントは次のものを含む: 1. SQL内の単一の結果エレメントまたはエレメン
ト列の値のデータタイプの記述; 2. 結果エレメントシーケンス;および 3. 順調な“エンドオブクエアリ”または順調でない
実行の指示。
メッセージのエレメントは次のものを含む: 1. SQL内の単一の結果エレメントまたはエレメン
ト列の値のデータタイプの記述; 2. 結果エレメントシーケンス;および 3. 順調な“エンドオブクエアリ”または順調でない
実行の指示。
【0087】セット型データベースコマンドの処理を開
始させるデータベースインターフェースファンクション
はDBMSからレスポンスメッセージを受け、そのイン
ジケータを実行が成功したかどうかについて検査する。
成功であればデータベースインターフェースファンクシ
ョンは、活性カーソルテーブル37にコマンドタグ、デ
ータタイプの記述およびエレメントシーケンスを入れ
る。DBMSが結果セットが空となったことを示してい
れば、活性カーソルテーブル内の状態がCLOSEDに
セットされ、そうでなければOPENにセットされる。
始させるデータベースインターフェースファンクション
はDBMSからレスポンスメッセージを受け、そのイン
ジケータを実行が成功したかどうかについて検査する。
成功であればデータベースインターフェースファンクシ
ョンは、活性カーソルテーブル37にコマンドタグ、デ
ータタイプの記述およびエレメントシーケンスを入れ
る。DBMSが結果セットが空となったことを示してい
れば、活性カーソルテーブル内の状態がCLOSEDに
セットされ、そうでなければOPENにセットされる。
【0088】図13はセット型データアクセスを開始す
るための、データベースインターフェースファンクショ
ンとコマンド実行プロトコルを示す。ライン1200は
“SetDIFopen”の呼び込みを示し、パラメータはデータ
ベースコマンドの置換中に用意される。ライン1201
〜1202はアトミックコマンドデーテベースインター
フェースファンクションについて述べた処理と同様に入
力ホスト変数を処理する。ライン1203はOPEN−
QUERYメッセージを送る。ライン1204〜120
5はレスポンスを受けてエラーの検査を行う。ライン1
206〜1211は活性カーソルに、処理中のセットを
加算する。このための擬似コードおよび次のセット型デ
ータベースインターフェースファンクションは例えばラ
イン1209上のカッコ付表現により活性カーソルのメ
ンバへのアクセスを表わす。また、明確化のために、ア
クセスされた結果セットの受信エレメントのトラックを
維持するためのメカニズムは示していない。ライン12
10〜1211は、結果エレメントがアクセスされる前
に活性カーソルの状態をCLOSEDにセットする。こ
れはCLOSE−CURSORメッセージの回避を可能
にする(セット型データアクセスの終了についての擬似
コードを参照のこと)。
るための、データベースインターフェースファンクショ
ンとコマンド実行プロトコルを示す。ライン1200は
“SetDIFopen”の呼び込みを示し、パラメータはデータ
ベースコマンドの置換中に用意される。ライン1201
〜1202はアトミックコマンドデーテベースインター
フェースファンクションについて述べた処理と同様に入
力ホスト変数を処理する。ライン1203はOPEN−
QUERYメッセージを送る。ライン1204〜120
5はレスポンスを受けてエラーの検査を行う。ライン1
206〜1211は活性カーソルに、処理中のセットを
加算する。このための擬似コードおよび次のセット型デ
ータベースインターフェースファンクションは例えばラ
イン1209上のカッコ付表現により活性カーソルのメ
ンバへのアクセスを表わす。また、明確化のために、ア
クセスされた結果セットの受信エレメントのトラックを
維持するためのメカニズムは示していない。ライン12
10〜1211は、結果エレメントがアクセスされる前
に活性カーソルの状態をCLOSEDにセットする。こ
れはCLOSE−CURSORメッセージの回避を可能
にする(セット型データアクセスの終了についての擬似
コードを参照のこと)。
【0089】セット型データアクセスのエレメントをア
クセスするためのデータベースインターフェースファン
クションの説明 セット型データアクセスのエレメントをアクセスするた
めのデータベースインターフェースファンクションは結
果セットの次のエレメント(SQLの“FETC
H…”)の値を得るために適用業務プログラムから呼び
出される。このデータベースインターフェースファンク
ションはセット型データベースコマンドが活性カーソル
テーブル37を検査することにより開始されていること
を決定しなければならない。アクセスが開始されていな
ければ適用業務プログラムにエラーがリポートされる。
そうでなければデータベースインターフェースファンク
ションは、遠隔DBMSから入っているがまだ適用業務
プログラムによりアクセスされていないエレメントがあ
るかどうかを決定しなければならない。アクセスされな
いエレメントがあれば、データベースインターフェース
ファンクションは、遠隔DBMSからもどされ、活性カ
ーソルテーブルに維持されるタイプ記述を用いて適用業
務プログラムの出力ホスト変数に次のアクセスされない
エレメントの値をコピーする。エレメントアクセスデー
タベースインターフェースファンクションもアクセスさ
れた(新規に)エレメントをアクセスされたものとマー
クする。活性カーソルテーブル内の状態がCLOSED
であり、すべての受信エレメントがアクセスされていれ
ば、エレメントアクセスデータベースインターフェース
ファンクションは適用業務プログラムにセット枯渇
(“end of query”)エラーをもどす。
クセスするためのデータベースインターフェースファン
クションの説明 セット型データアクセスのエレメントをアクセスするた
めのデータベースインターフェースファンクションは結
果セットの次のエレメント(SQLの“FETC
H…”)の値を得るために適用業務プログラムから呼び
出される。このデータベースインターフェースファンク
ションはセット型データベースコマンドが活性カーソル
テーブル37を検査することにより開始されていること
を決定しなければならない。アクセスが開始されていな
ければ適用業務プログラムにエラーがリポートされる。
そうでなければデータベースインターフェースファンク
ションは、遠隔DBMSから入っているがまだ適用業務
プログラムによりアクセスされていないエレメントがあ
るかどうかを決定しなければならない。アクセスされな
いエレメントがあれば、データベースインターフェース
ファンクションは、遠隔DBMSからもどされ、活性カ
ーソルテーブルに維持されるタイプ記述を用いて適用業
務プログラムの出力ホスト変数に次のアクセスされない
エレメントの値をコピーする。エレメントアクセスデー
タベースインターフェースファンクションもアクセスさ
れた(新規に)エレメントをアクセスされたものとマー
クする。活性カーソルテーブル内の状態がCLOSED
であり、すべての受信エレメントがアクセスされていれ
ば、エレメントアクセスデータベースインターフェース
ファンクションは適用業務プログラムにセット枯渇
(“end of query”)エラーをもどす。
【0090】特定のセット型データアクセスについてす
でに受信したすべてのエレメントがアクセスされ、かつ
状態がOPENであれば、データベースインターフェー
スファンクションはCONTINUE−QUERYメッ
セージのフォーマットと一致するメッセージを構成し送
る。CONTINUE−QUERYメッセージのエレメ
ントは次の通りである: 1. コマンドのある適用業務プログラムパッケージの
ネーム; 2. 特定のセット型データベースコマンドのタグ;お
よび 3. もどされるべき結果セットの量の指示。
でに受信したすべてのエレメントがアクセスされ、かつ
状態がOPENであれば、データベースインターフェー
スファンクションはCONTINUE−QUERYメッ
セージのフォーマットと一致するメッセージを構成し送
る。CONTINUE−QUERYメッセージのエレメ
ントは次の通りである: 1. コマンドのある適用業務プログラムパッケージの
ネーム; 2. 特定のセット型データベースコマンドのタグ;お
よび 3. もどされるべき結果セットの量の指示。
【0091】CONTINUE−QUERYメッセージ
の受信により、遠隔DBMSは指示されたパッケージか
らの指示されたデータベースコマンドが開始されたかど
うかを決定する。開始されていなければエラー指示が一
致メッセージフォーマットでもどされる。指示されたデ
ータベースコマンドが開始されていれば遠隔DBMSは
付加的な結果エレメントを発生するためにそのデータベ
ースについての計画の実行を回復し、要求された(また
は指示されたスペースに入る)数の結果エレメントを一
致フォーマットの応答メッセージに組立てる。DBMS
(その無限の知恵で)がセット型データベースコマンド
がセット型更新または削除を受けることを決定したなら
ば、単一の結果エレメントがもどされる。結果エレメン
トの発生がCONTINUE−QUERYメッセージに
特定される結果エレメントの量を越える前にセット型デ
ータベースコマンドにより特定されるエレメントのセッ
トを使うならば、そのセットが枯渇したことの指示を応
答メッセージと共にもどし、そしてDBMSはその質問
の処理を終了する。エレメントアクセスデータベースイ
ンターフェーフファンクションは受信した結果エレメン
トとDBMSセット枯渇指示を活性カーソルテーブルエ
ントリーに関連づける。遠隔DBMSからエレメントが
もどされた場合には、それらの内の第1のものが適用業
務プログラムの出力ホスト変数にコピーされ、そしてア
クセスされたものとしてマークされる。 図14はセッ
ト型データアクセスのエレメントをアクセスするため
の、データベースインターフェースファンクションとコ
マンド実行プロトコルを示す。ライン1300は、“Se
tDIFfetch ”の呼び込みを示し、パラメータはデータベ
ースコマンドの置換中に用意される。ライン1301〜
1302は、処理がパッケージとタグパラメータにより
特定されるセットについて開始されているかを検査す
る。受信されたがアクセスされていないエレメントがあ
れば、ライン1303〜1306はアトミックコマンド
データベースインターフェースファンクションにおける
と同じように次のそのようなエレメントの値を出力ホス
ト変数にコピーする。そうでなければライン1307〜
1308は、“end of query”レスポンスがDBMSか
ら入った場合に適用業務に“end of query”をリポート
する。すでに受信されたエレメントのすべてがアクセス
されており、“end of query”が受信されていないと
き、ライン1309〜1314はCONTINUE−Q
UERYメッセージを送り、そのレスポンスを受けるこ
とにより、未アクセスのエレメントの供給を補充する。
付加的なエレメントが受信されると、そのはじめのもの
がライン1317〜1319により出力ホスト変数にコ
ピーされる。活性カーソルもセット型データアクセスの
開始中と同様に更新される。
の受信により、遠隔DBMSは指示されたパッケージか
らの指示されたデータベースコマンドが開始されたかど
うかを決定する。開始されていなければエラー指示が一
致メッセージフォーマットでもどされる。指示されたデ
ータベースコマンドが開始されていれば遠隔DBMSは
付加的な結果エレメントを発生するためにそのデータベ
ースについての計画の実行を回復し、要求された(また
は指示されたスペースに入る)数の結果エレメントを一
致フォーマットの応答メッセージに組立てる。DBMS
(その無限の知恵で)がセット型データベースコマンド
がセット型更新または削除を受けることを決定したなら
ば、単一の結果エレメントがもどされる。結果エレメン
トの発生がCONTINUE−QUERYメッセージに
特定される結果エレメントの量を越える前にセット型デ
ータベースコマンドにより特定されるエレメントのセッ
トを使うならば、そのセットが枯渇したことの指示を応
答メッセージと共にもどし、そしてDBMSはその質問
の処理を終了する。エレメントアクセスデータベースイ
ンターフェーフファンクションは受信した結果エレメン
トとDBMSセット枯渇指示を活性カーソルテーブルエ
ントリーに関連づける。遠隔DBMSからエレメントが
もどされた場合には、それらの内の第1のものが適用業
務プログラムの出力ホスト変数にコピーされ、そしてア
クセスされたものとしてマークされる。 図14はセッ
ト型データアクセスのエレメントをアクセスするため
の、データベースインターフェースファンクションとコ
マンド実行プロトコルを示す。ライン1300は、“Se
tDIFfetch ”の呼び込みを示し、パラメータはデータベ
ースコマンドの置換中に用意される。ライン1301〜
1302は、処理がパッケージとタグパラメータにより
特定されるセットについて開始されているかを検査す
る。受信されたがアクセスされていないエレメントがあ
れば、ライン1303〜1306はアトミックコマンド
データベースインターフェースファンクションにおける
と同じように次のそのようなエレメントの値を出力ホス
ト変数にコピーする。そうでなければライン1307〜
1308は、“end of query”レスポンスがDBMSか
ら入った場合に適用業務に“end of query”をリポート
する。すでに受信されたエレメントのすべてがアクセス
されており、“end of query”が受信されていないと
き、ライン1309〜1314はCONTINUE−Q
UERYメッセージを送り、そのレスポンスを受けるこ
とにより、未アクセスのエレメントの供給を補充する。
付加的なエレメントが受信されると、そのはじめのもの
がライン1317〜1319により出力ホスト変数にコ
ピーされる。活性カーソルもセット型データアクセスの
開始中と同様に更新される。
【0092】セット型データアクセスの処理を終了させ
るためのデータベースインターフェースファンクション
の説明 セット型データアクセスの処理を終了(SQLの“CL
OSE…”)データベースコマンドの実行に応じて呼出
されるデータベースインターフェースファンクションは
セット型データベースコマンドが開始されているかどう
かを決定するために活性カーソルテーブル37を検査し
なければならない。開始されていなければ適用業務プロ
グラムにエラーがリポートされる。活性カーソルテーブ
ル37の状態がCLOSEDであればデータベースイン
ターフェースファンクションは適用業務プログラムに
“end of query”をもどす。そうでなければデータベー
スインターフェースファンクションはCLOSE−QU
ERYメッセージを用意して遠隔DBMSにそれを送
る。CLOSE−QUERYメッセージの一致フォーマ
ットは次のものを含む: 1. コマンドのある適用業務プログラムパッケージの
ネーム;および 2. 特定のセット型データアクセスのタグ。
るためのデータベースインターフェースファンクション
の説明 セット型データアクセスの処理を終了(SQLの“CL
OSE…”)データベースコマンドの実行に応じて呼出
されるデータベースインターフェースファンクションは
セット型データベースコマンドが開始されているかどう
かを決定するために活性カーソルテーブル37を検査し
なければならない。開始されていなければ適用業務プロ
グラムにエラーがリポートされる。活性カーソルテーブ
ル37の状態がCLOSEDであればデータベースイン
ターフェースファンクションは適用業務プログラムに
“end of query”をもどす。そうでなければデータベー
スインターフェースファンクションはCLOSE−QU
ERYメッセージを用意して遠隔DBMSにそれを送
る。CLOSE−QUERYメッセージの一致フォーマ
ットは次のものを含む: 1. コマンドのある適用業務プログラムパッケージの
ネーム;および 2. 特定のセット型データアクセスのタグ。
【0093】CLOSE−QUERYメッセージの受信
により、遠隔DBMSは、指示されたパッケージからの
指示されたデータベースコマンドが開始されており、ま
だ活性であるかどうかを決定する。もしそうであれば、
DBMSは指示されたセット型データアクセスの処理を
完了(終了)し、データベースインターフェースファン
クションに応答する。そうでなければDBMSは一致フ
ォーマットでエラーレスポンスをもどす。セット型終了
データベースインターフェースファンクションは活性カ
ーソルテーブルからセット型コマンド用のエントリーを
除去する。
により、遠隔DBMSは、指示されたパッケージからの
指示されたデータベースコマンドが開始されており、ま
だ活性であるかどうかを決定する。もしそうであれば、
DBMSは指示されたセット型データアクセスの処理を
完了(終了)し、データベースインターフェースファン
クションに応答する。そうでなければDBMSは一致フ
ォーマットでエラーレスポンスをもどす。セット型終了
データベースインターフェースファンクションは活性カ
ーソルテーブルからセット型コマンド用のエントリーを
除去する。
【0094】図15はセット型データアクセスを終了す
るための、データベースインターフェースファンクショ
ンとコマンド実行プロトコルを示す。ライン1400は
“SetDIFclose ”の呼び込みを示し、パラメータはデー
タベースコマンドの置換中に用意される。ライン140
1〜1402はパッケージおよびタグパラメータにより
特定されるセットについての処理が開始されているかど
うかを検査する。ライン1403〜1406はCLOS
E−QUERYメッセージを送り、もし“end of quer
y”指示がDBMSから入っていないならば、そのレス
ポンスを処理する。ライン1407は活性セットからの
パッケージとタグパラメータにより特定されるセットを
除去する。
るための、データベースインターフェースファンクショ
ンとコマンド実行プロトコルを示す。ライン1400は
“SetDIFclose ”の呼び込みを示し、パラメータはデー
タベースコマンドの置換中に用意される。ライン140
1〜1402はパッケージおよびタグパラメータにより
特定されるセットについての処理が開始されているかど
うかを検査する。ライン1403〜1406はCLOS
E−QUERYメッセージを送り、もし“end of quer
y”指示がDBMSから入っていないならば、そのレス
ポンスを処理する。ライン1407は活性セットからの
パッケージとタグパラメータにより特定されるセットを
除去する。
【0095】ダイナミックデータベースコマンドを処理
するためのデータベースインターフェースファンクショ
ンの説明 EXECUTE−IMMEDIATEメッセージの受信
により、遠隔DBMSはそのメッセージにより参照され
るパッケージを置き、それがEXECUTE−IMME
DIATEメッセージ内のタグと同じタグをもつ保持
(永久的に)されたコマンドを含まないことを確認す
る。次に受信したデータベースコマンドテキストが分析
され、最適化され、そして直ちに実行される。このプロ
セス中にエラーが検出されると、エラーレスポンスメッ
セージがデータベースインターフェースファンクション
にもどされる。据置き実行用の動的に特定されるデータ
ベースコマンドの仕様を処理するためのデータベースイ
ンターフェースファンクションはPREPARE−CO
MMANDメッセージをつくり遠隔DBMSにそれを送
る。PREPARE−COMMANDメッセージのエレ
メントは次の通りである: 1. 遠隔DBMSにおけるパッケージのネーム; 2. 言語プリプロセッサプログラムにより割当てられ
たデータベースコマンドタグ;および 3. 動的に限定され実行されるべきデータベースコマ
ンドのテキスト。
するためのデータベースインターフェースファンクショ
ンの説明 EXECUTE−IMMEDIATEメッセージの受信
により、遠隔DBMSはそのメッセージにより参照され
るパッケージを置き、それがEXECUTE−IMME
DIATEメッセージ内のタグと同じタグをもつ保持
(永久的に)されたコマンドを含まないことを確認す
る。次に受信したデータベースコマンドテキストが分析
され、最適化され、そして直ちに実行される。このプロ
セス中にエラーが検出されると、エラーレスポンスメッ
セージがデータベースインターフェースファンクション
にもどされる。据置き実行用の動的に特定されるデータ
ベースコマンドの仕様を処理するためのデータベースイ
ンターフェースファンクションはPREPARE−CO
MMANDメッセージをつくり遠隔DBMSにそれを送
る。PREPARE−COMMANDメッセージのエレ
メントは次の通りである: 1. 遠隔DBMSにおけるパッケージのネーム; 2. 言語プリプロセッサプログラムにより割当てられ
たデータベースコマンドタグ;および 3. 動的に限定され実行されるべきデータベースコマ
ンドのテキスト。
【0096】PREPARE−COMMANDメッセー
ジの受信により遠隔DBMSはこのメッセージで参照さ
れるパッケージを置き、それがPREPARE−COM
MANDメッセージ内のタグと同じタグを有する保持
(永久的に)されたコマンドを含まないことを確認す
る。次にPREPARE−COMMANDメッセージか
らのデータベースコマンドテキストが分析され、最適化
され、そしてPREPARE−COMMANDメッセー
ジ内に特定されるパッケージの部分として保持(永久的
に)される。エラーが検出されなければ、遠隔DBMS
は実行成功を示す応答メッセージを用意する。そうでな
ければエラーメッセージがデータベースインターフェー
スファンクションにもどされる。動的に限定されるデー
タベースコマンドは次にデータベースインターフェース
ファンクションとアトミックまたはセット型のデータベ
ースコマンドの実行用のメッセージを用いて実行しう
る。
ジの受信により遠隔DBMSはこのメッセージで参照さ
れるパッケージを置き、それがPREPARE−COM
MANDメッセージ内のタグと同じタグを有する保持
(永久的に)されたコマンドを含まないことを確認す
る。次にPREPARE−COMMANDメッセージか
らのデータベースコマンドテキストが分析され、最適化
され、そしてPREPARE−COMMANDメッセー
ジ内に特定されるパッケージの部分として保持(永久的
に)される。エラーが検出されなければ、遠隔DBMS
は実行成功を示す応答メッセージを用意する。そうでな
ければエラーメッセージがデータベースインターフェー
スファンクションにもどされる。動的に限定されるデー
タベースコマンドは次にデータベースインターフェース
ファンクションとアトミックまたはセット型のデータベ
ースコマンドの実行用のメッセージを用いて実行しう
る。
【0097】図16は動的に特定されるデータベースコ
マンドの即時実行用のデータベースインターフェースフ
ァンクションとコマンド実行プロトコルを示す。ライン
1500は“DynDIFimmed ”の呼び込みを示し、パラメ
ータはデータベースコマンドの置換中に用意される。ラ
イン1501は実行されるべきデータベースコマンドの
コピーを得る。ライン1502〜1504は遠隔DBM
SにEXECUTE−IMMEDIATEメッセージを
送り、その応答を処理する。
マンドの即時実行用のデータベースインターフェースフ
ァンクションとコマンド実行プロトコルを示す。ライン
1500は“DynDIFimmed ”の呼び込みを示し、パラメ
ータはデータベースコマンドの置換中に用意される。ラ
イン1501は実行されるべきデータベースコマンドの
コピーを得る。ライン1502〜1504は遠隔DBM
SにEXECUTE−IMMEDIATEメッセージを
送り、その応答を処理する。
【0098】図17は動的に特定されるデータベースコ
マンドの据置き実行用のデータベースインターフェース
ファンクションとコマンド実行プロトコルを示す。ライ
ン1600は“DynDIFdefer ”の呼び込みを示し、パラ
メータはデータベースコマンドの置換中に用意される。
ライン1601は据置き実行のために用意されるべきデ
ータベースコマンドのコピーを得る。ライン1602〜
1604は遠隔DBMSにPREPARE−COMMA
NDメッセージを送り、そのレスポンスを処理する。
マンドの据置き実行用のデータベースインターフェース
ファンクションとコマンド実行プロトコルを示す。ライ
ン1600は“DynDIFdefer ”の呼び込みを示し、パラ
メータはデータベースコマンドの置換中に用意される。
ライン1601は据置き実行のために用意されるべきデ
ータベースコマンドのコピーを得る。ライン1602〜
1604は遠隔DBMSにPREPARE−COMMA
NDメッセージを送り、そのレスポンスを処理する。
【0099】トランザクションデータベースコマンドを
処理するためのデータベースインターフェースファンク
ションの説明 トランザクションコミットまたはアボートデータベース
コマンドを処理するために呼び出されるデータベースイ
ンターフェースファンクションはCOMMIT−transa
ction またはABORT−transaction メッセージを発
生する。これらのメッセージは付加エレメントを含まな
い。COMMIT−transaction またはABORT−tr
ansaction メッセージの受信により遠隔DBMSは現在
のデータベーストランザクションを確約し、あるいは打
切る。遠隔DBMSはトランザクションデータベースコ
マンドの結果を示す、一致フォーマットのメッセージを
もってこのデータベースインターフェースファンクショ
ンに応答する。
処理するためのデータベースインターフェースファンク
ションの説明 トランザクションコミットまたはアボートデータベース
コマンドを処理するために呼び出されるデータベースイ
ンターフェースファンクションはCOMMIT−transa
ction またはABORT−transaction メッセージを発
生する。これらのメッセージは付加エレメントを含まな
い。COMMIT−transaction またはABORT−tr
ansaction メッセージの受信により遠隔DBMSは現在
のデータベーストランザクションを確約し、あるいは打
切る。遠隔DBMSはトランザクションデータベースコ
マンドの結果を示す、一致フォーマットのメッセージを
もってこのデータベースインターフェースファンクショ
ンに応答する。
【0100】DBMS通信エージェント 概 略 本発明はバインドとデータベースコマンドの実行用の一
致プロトコルに依存する。しかしながら、DBMSイン
プリメンテーションは一般にそれらが動作するコンピュ
ータ環境に大きく依存する。この依存性はDBMSのサ
ービスが実行のために呼び出される方法に部分的に反映
される。本発明の重要な点は通信プロトコルが、新しい
DBMS機能の実施を要求しないということである。む
しろ、本発明はすでに実施されたDBMSシステムにお
いて使用可能な機能のすべての範囲を見出すことであ
る。このため、本発明は適用業務アクセスエージェント
のプログラムと通信可能であり且つバインドとコマンド
実行プロトコルのメッセージに関連した機能の実行を行
うのに適したDBMSのサービスを呼び出すことの出来
るDBMSのエレメント(またはCBMSから分離され
ているが同一のコンピュータで走行するエレメント)に
ある。このエレメントはDBMS通信エージェント52
と呼ばれる(図1参照のこと)。
致プロトコルに依存する。しかしながら、DBMSイン
プリメンテーションは一般にそれらが動作するコンピュ
ータ環境に大きく依存する。この依存性はDBMSのサ
ービスが実行のために呼び出される方法に部分的に反映
される。本発明の重要な点は通信プロトコルが、新しい
DBMS機能の実施を要求しないということである。む
しろ、本発明はすでに実施されたDBMSシステムにお
いて使用可能な機能のすべての範囲を見出すことであ
る。このため、本発明は適用業務アクセスエージェント
のプログラムと通信可能であり且つバインドとコマンド
実行プロトコルのメッセージに関連した機能の実行を行
うのに適したDBMSのサービスを呼び出すことの出来
るDBMSのエレメント(またはCBMSから分離され
ているが同一のコンピュータで走行するエレメント)に
ある。このエレメントはDBMS通信エージェント52
と呼ばれる(図1参照のこと)。
【0101】DBMS通信エージェント52の好適なイ
ンプリメンテーションはDBMSの集積成分としてであ
る。あるいはバインドおよびコマンド実行プロトコルの
メッセージの情報内容はDBMS通信エージェントの別
のインプリメンテーションを可能にすることで充分であ
る。DBMS通信エージェントの別のインプリメンテー
ションはDBMSコンピュータの計算環境に特有のDB
MS呼び込みメカニズムを用いて必要とされるDBMS
サービスを得ることが出来る。
ンプリメンテーションはDBMSの集積成分としてであ
る。あるいはバインドおよびコマンド実行プロトコルの
メッセージの情報内容はDBMS通信エージェントの別
のインプリメンテーションを可能にすることで充分であ
る。DBMS通信エージェントの別のインプリメンテー
ションはDBMSコンピュータの計算環境に特有のDB
MS呼び込みメカニズムを用いて必要とされるDBMS
サービスを得ることが出来る。
【0102】DBMS通信エージェントの説明 DBMS通信エージェント52はバインドプログラム3
8および適用業務アクセスエージェント17のデータベ
ースインターフェースファンクション40と通信するD
BMSコンピュータのエレメントである。適用業務アク
セスエージェントのプログラムにより通信が確立される
と、それがその通信方向となるDBMS通信エージェン
トである。
8および適用業務アクセスエージェント17のデータベ
ースインターフェースファンクション40と通信するD
BMSコンピュータのエレメントである。適用業務アク
セスエージェントのプログラムにより通信が確立される
と、それがその通信方向となるDBMS通信エージェン
トである。
【0103】適用業務アクセスエージェントからのメッ
セージによりDBMS通信エージェント52は要求され
るDBMSサービスを決定するためにこのメッセージを
解釈する。次にDBMS通信エージェントはDBMSか
らの指示されたサービスを要求する。これは一般にDB
MSサービスの1以上の呼び込みを行うことを含む。例
えばEXECUTE−ATOMIC−COMMANDメ
ッセージではDBMSに単一の保持されたデータベース
コマンドの実行を要求し、OPEN−QUERYおよび
CONTINUE−QUERYメッセージはDBMS通
信エージェントが複数の結果セットエレメントを得て送
ることを要求する。バインドおよびコマンド実行プロト
コルのメッセージの夫々により引き出されるDBMSの
アクションおよびサービスはバインドプログラム18と
データベースインターフェースファンクション40の説
明において述べた。DBMS通信エージェントはDBM
Sの要求されたDBMSサービスに対するレスポンスを
適用業務プログラムコンピュータのバインドプログラム
とデータベースインターフェースファンクションへのレ
スポンスメッセージに入れさせるためにも作用する。こ
れはDBMSからの実行結果とインジケータを検査し、
適正なレスポンスメッセージをつくることを含む。DB
MSサービス要求の局所的結果とレスポンスメッセージ
の内容の間の関係もバインドプログラムおよびデータベ
ースインターフェースファンクションの説明において述
べた。
セージによりDBMS通信エージェント52は要求され
るDBMSサービスを決定するためにこのメッセージを
解釈する。次にDBMS通信エージェントはDBMSか
らの指示されたサービスを要求する。これは一般にDB
MSサービスの1以上の呼び込みを行うことを含む。例
えばEXECUTE−ATOMIC−COMMANDメ
ッセージではDBMSに単一の保持されたデータベース
コマンドの実行を要求し、OPEN−QUERYおよび
CONTINUE−QUERYメッセージはDBMS通
信エージェントが複数の結果セットエレメントを得て送
ることを要求する。バインドおよびコマンド実行プロト
コルのメッセージの夫々により引き出されるDBMSの
アクションおよびサービスはバインドプログラム18と
データベースインターフェースファンクション40の説
明において述べた。DBMS通信エージェントはDBM
Sの要求されたDBMSサービスに対するレスポンスを
適用業務プログラムコンピュータのバインドプログラム
とデータベースインターフェースファンクションへのレ
スポンスメッセージに入れさせるためにも作用する。こ
れはDBMSからの実行結果とインジケータを検査し、
適正なレスポンスメッセージをつくることを含む。DB
MSサービス要求の局所的結果とレスポンスメッセージ
の内容の間の関係もバインドプログラムおよびデータベ
ースインターフェースファンクションの説明において述
べた。
【0104】DBMS通信エージェントは適用業務アク
セスエージェントのプログラムと同様にデータベースコ
マンド言語の詳細なシンタックスと意味に対し、比較的
感性が低い。バインドプロトコルを介して受け入れら
れ、ダイナミックデータベースコマンドメッセージ内に
あるデータベースコマンドは受信したときあるいは或る
種の単純な変換後にDBMSに通しうる。
セスエージェントのプログラムと同様にデータベースコ
マンド言語の詳細なシンタックスと意味に対し、比較的
感性が低い。バインドプロトコルを介して受け入れら
れ、ダイナミックデータベースコマンドメッセージ内に
あるデータベースコマンドは受信したときあるいは或る
種の単純な変換後にDBMSに通しうる。
【0105】要約すると、DBMS通信エージェントは
適用業務アクセスエージェントとの通信を管理する。D
BMS通信エージェント52は受信メッセージの認識と
理解により適用業務ブログラムコンピュータ10の適用
業務アクセスエージェントにより要求されるデータベー
スサービスの実行のためにDBMSのサービスの取込み
を管理する。更に、DBMS通信エージェント52は適
用業務プログラムコンピュータの適用業務アクセスエー
ジェントのバインドプログラムとデータベースインター
フェースファンクションに対するレスポンスメッセージ
をつくり送るためにDBMSからの結果とインジケーシ
ョンを解釈する。
適用業務アクセスエージェントとの通信を管理する。D
BMS通信エージェント52は受信メッセージの認識と
理解により適用業務ブログラムコンピュータ10の適用
業務アクセスエージェントにより要求されるデータベー
スサービスの実行のためにDBMSのサービスの取込み
を管理する。更に、DBMS通信エージェント52は適
用業務プログラムコンピュータの適用業務アクセスエー
ジェントのバインドプログラムとデータベースインター
フェースファンクションに対するレスポンスメッセージ
をつくり送るためにDBMSからの結果とインジケーシ
ョンを解釈する。
【0106】本発明の方法の要約 本発明の方法の概略を図18〜20に示す。ステップ1
00において本発明はデータベース言語コマンドを埋込
んだ適用業務プログラムを受ける。プリプロセッサ18
はこの適用業務プログラムのステートメントを走査し、
ステップ102においてそのプログラム内のデータベー
ス言語コマンドを認識し分類する。最適モードによれ
ば、プリプロセッサ18はデータベースコマンドをホス
ト変数宣言、アトミックコマンド、セット型コマンド、
動的コマンド、およびトランザクションコマンドの5つ
のカテゴリーに分類する。ステップ104において、認
識され分類されるデータベース言語コマンドは適用業務
プログラムの言語によるステートメントによって適用業
務プログラム内で置換される。さもなければ、この分類
されたデータベース言語コマンドはデータベースインタ
ーフェースファンクション40への呼出しで置き換えら
れるのであり、呼出し参照パラメータは適用業務プログ
ラムパッケージのネーム、コマンドタグ、入力および出
力の変数、および置換されたコマンドの実行に必要な他
のパラメータを含む。変数ステップ106でプリプロセ
ッサ18はこれらのコマンドにタグを付してそれらをバ
ンイドファイル20に置く。
00において本発明はデータベース言語コマンドを埋込
んだ適用業務プログラムを受ける。プリプロセッサ18
はこの適用業務プログラムのステートメントを走査し、
ステップ102においてそのプログラム内のデータベー
ス言語コマンドを認識し分類する。最適モードによれ
ば、プリプロセッサ18はデータベースコマンドをホス
ト変数宣言、アトミックコマンド、セット型コマンド、
動的コマンド、およびトランザクションコマンドの5つ
のカテゴリーに分類する。ステップ104において、認
識され分類されるデータベース言語コマンドは適用業務
プログラムの言語によるステートメントによって適用業
務プログラム内で置換される。さもなければ、この分類
されたデータベース言語コマンドはデータベースインタ
ーフェースファンクション40への呼出しで置き換えら
れるのであり、呼出し参照パラメータは適用業務プログ
ラムパッケージのネーム、コマンドタグ、入力および出
力の変数、および置換されたコマンドの実行に必要な他
のパラメータを含む。変数ステップ106でプリプロセ
ッサ18はこれらのコマンドにタグを付してそれらをバ
ンイドファイル20に置く。
【0107】ステップ108で、プリプロセッサ18に
より変更された適用業務プログラムはコンパイルされて
データベースインターフェースファンクション40にリ
ンクされる。図18、19における手順におけるこのス
テップの位置はバインドプログラムステップの後にして
もよい。
より変更された適用業務プログラムはコンパイルされて
データベースインターフェースファンクション40にリ
ンクされる。図18、19における手順におけるこのス
テップの位置はバインドプログラムステップの後にして
もよい。
【0108】バインドプログラムステップはバインドプ
ログラムへのパラメータとしてネームを付されたDBM
Sのアドレスの決定との適用業務プログラムのコンパイ
レーション後にステップ110ではじまる。ステップ1
12において、このネームを付されたDBMSとの通信
が確立されてBEGIN−BIND処理が行われ、その
間適用業務プログラムパッケージを識別するネームがD
BMSに知らされる。ステップ114において、プリプ
ロセッサ18によりバインドファイル20に入れられた
タグ付きのデータベース言語コマンドがBIND−DA
TABASE−COMMANDプロセスを用いて1個ず
つDBMSに送られる。すべてのコマンドが送出された
とき、END−BIND処理がステップ116で行われ
てバインドプログラム処理を終了する。この時点で、適
用業務プログラムは実行可能状態となり、それから抽出
されたデータベースコマンドはDBMSに送られてお
り、そこで適用業務プログラムのパッケージ内に保持さ
れている。
ログラムへのパラメータとしてネームを付されたDBM
Sのアドレスの決定との適用業務プログラムのコンパイ
レーション後にステップ110ではじまる。ステップ1
12において、このネームを付されたDBMSとの通信
が確立されてBEGIN−BIND処理が行われ、その
間適用業務プログラムパッケージを識別するネームがD
BMSに知らされる。ステップ114において、プリプ
ロセッサ18によりバインドファイル20に入れられた
タグ付きのデータベース言語コマンドがBIND−DA
TABASE−COMMANDプロセスを用いて1個ず
つDBMSに送られる。すべてのコマンドが送出された
とき、END−BIND処理がステップ116で行われ
てバインドプログラム処理を終了する。この時点で、適
用業務プログラムは実行可能状態となり、それから抽出
されたデータベースコマンドはDBMSに送られてお
り、そこで適用業務プログラムのパッケージ内に保持さ
れている。
【0109】この時点で図18に示すようにステップ1
00〜108を含むプロセスは遠隔の接続されていない
サイトにおいて完了しうるのであり、この時点でバイン
ドファイル20とリンクされた適用業務プログラム14
aとは光学ROM、磁気テープ、フロッピーディスクま
たはハードディスクのような可搬性の記憶媒体に入れて
コンピュータシステム10に設置しうるのであり、それ
によりバインドステップ110〜116がコンピュータ
10の適用業務アクセスエージェントを用いて実行され
る。
00〜108を含むプロセスは遠隔の接続されていない
サイトにおいて完了しうるのであり、この時点でバイン
ドファイル20とリンクされた適用業務プログラム14
aとは光学ROM、磁気テープ、フロッピーディスクま
たはハードディスクのような可搬性の記憶媒体に入れて
コンピュータシステム10に設置しうるのであり、それ
によりバインドステップ110〜116がコンピュータ
10の適用業務アクセスエージェントを用いて実行され
る。
【0110】本発明の手順の説明に続き、適用業務プロ
グラムはステップ118で実行を開始する。決定のステ
ップ120はこのプログラムの実行において自明であ
り、データベースインターフェースファンクションの呼
び出しがない限り、このプログラムはステップ120か
らの否定出力で示され、ステップ121を介して決定の
ステップ120にもどされるように実行を続ける。
グラムはステップ118で実行を開始する。決定のステ
ップ120はこのプログラムの実行において自明であ
り、データベースインターフェースファンクションの呼
び出しがない限り、このプログラムはステップ120か
らの否定出力で示され、ステップ121を介して決定の
ステップ120にもどされるように実行を続ける。
【0111】データベースインターフェースファンクシ
ョン呼出しが検出されると、このプログラムはステップ
124に入り、そこで適用業務プログラムパッケージを
識別するネーム、置換されたデータベース言語コマンド
のタグ、および例えば入力および出力のホスト変数を含
む他のコマンドパラメータを用いてデータベースインタ
ーフェースファンクション40の内の適正なものが呼出
される。手順ブロック124の出力126はアトミック
コマンド呼出しに対応し、それについて対応するデータ
ベースインターフェースファンクションがステップ12
7においてEXECUTE−ATOMIC−COMMA
NDメッセージをつくり、それを、DBMSにとってそ
のコマンドの実行に必要なネーム、タグおよび他のコマ
ンドパラメータと共にそのDBMSに送る。DBMSで
のコマンドの実行が成功すれば、このDBMSは、デー
タベースインターフェースファンクションがステップ1
29において出力ホスト変数として適用業務プログラム
をもどすデータをもどす。ステップ129からこのプロ
グラムは点Bにもどる。
ョン呼出しが検出されると、このプログラムはステップ
124に入り、そこで適用業務プログラムパッケージを
識別するネーム、置換されたデータベース言語コマンド
のタグ、および例えば入力および出力のホスト変数を含
む他のコマンドパラメータを用いてデータベースインタ
ーフェースファンクション40の内の適正なものが呼出
される。手順ブロック124の出力126はアトミック
コマンド呼出しに対応し、それについて対応するデータ
ベースインターフェースファンクションがステップ12
7においてEXECUTE−ATOMIC−COMMA
NDメッセージをつくり、それを、DBMSにとってそ
のコマンドの実行に必要なネーム、タグおよび他のコマ
ンドパラメータと共にそのDBMSに送る。DBMSで
のコマンドの実行が成功すれば、このDBMSは、デー
タベースインターフェースファンクションがステップ1
29において出力ホスト変数として適用業務プログラム
をもどすデータをもどす。ステップ129からこのプロ
グラムは点Bにもどる。
【0112】プログラムブロック124の出力130は
動的コマンドに対応する呼び出しを表わし、このコマン
ドについて適正なパラメータを有するPREPARE−
COMMANDまたはEXECUTE−IMMEDIA
TEメッセージが構成されてDBMSに送られる。プロ
グラムステップ131は点Bにもどる。
動的コマンドに対応する呼び出しを表わし、このコマン
ドについて適正なパラメータを有するPREPARE−
COMMANDまたはEXECUTE−IMMEDIA
TEメッセージが構成されてDBMSに送られる。プロ
グラムステップ131は点Bにもどる。
【0113】トランザクションコマンド呼出しは出力1
35で表わされる。上述のように適正なデータベースイ
ンターフェースファンクションがCOMMITまたはA
BORTコマンドの実行を要求するメッセージをステッ
プ136においてDBMSに送る。そこから手順は点B
にもどる。
35で表わされる。上述のように適正なデータベースイ
ンターフェースファンクションがCOMMITまたはA
BORTコマンドの実行を要求するメッセージをステッ
プ136においてDBMSに送る。そこから手順は点B
にもどる。
【0114】最後に、出力138はセット型コマンドに
対応する呼出しを表わす。図20に示すように3つの考
えられるセット型データベースインターフェースファン
クションに対応する3つの分岐がある。ブランチ138
aは遠隔DBMSに送られるBEGIN−QUERYメ
ッセージの構成により質問の開始を表わす。DBMSが
このメッセージの受領を示すときには、それはバインド
されタグを付されたコマンドを回復してそれをQUER
Yプロセスを開始することにより実行する。これはステ
ップ141に示すようにデータベースインターフェース
ファンクション40へのメッセージを介して結果エレメ
ントを送る。この点から図19の点Bにもどる。ブラン
チ138bはエレメントを累積するデータベースインタ
ーフェースファンクションへの結果エレメントのフロー
を表わす。適用業務プログラムによりアクセスされてい
ないエレメントについては、ステップ124の肯定出力
がとられて、これらエレメントは適用業務プログラムに
ステップ147において出力ホスト変数としてもどされ
る。アクセスの保持変数がない場合には、否定出力が決
定のステップ142から出される。適正なデータベース
インターフェースファンクション40がCONTINU
E−QUERYメッセージを構成してそれを適正なパラ
メータと共にDBMSに送り、そしてステップ145に
おいてDBMSからの結果エレメントを保持する。次に
ステップ147において、これらエレメントを出力ホス
ト変数として適用業務プログラムにもどす。QUERY
の終了はブランチ138cで表わされ、これは“end of
query”指示がDBMSから入ったかどうかを決定する
ために決定のステップ150に入る。入っていれば、デ
ータベースインターフェースファンクション処理がその
質問について終了し図19の点Bにもどる。決定のステ
ップ150の否定出力はステップ151において適正な
パラメータを有するEND−QUERYメッセージを送
ることによるデータベースインターフェースファンクシ
ョン40の部分での質問の終了に対応する。
対応する呼出しを表わす。図20に示すように3つの考
えられるセット型データベースインターフェースファン
クションに対応する3つの分岐がある。ブランチ138
aは遠隔DBMSに送られるBEGIN−QUERYメ
ッセージの構成により質問の開始を表わす。DBMSが
このメッセージの受領を示すときには、それはバインド
されタグを付されたコマンドを回復してそれをQUER
Yプロセスを開始することにより実行する。これはステ
ップ141に示すようにデータベースインターフェース
ファンクション40へのメッセージを介して結果エレメ
ントを送る。この点から図19の点Bにもどる。ブラン
チ138bはエレメントを累積するデータベースインタ
ーフェースファンクションへの結果エレメントのフロー
を表わす。適用業務プログラムによりアクセスされてい
ないエレメントについては、ステップ124の肯定出力
がとられて、これらエレメントは適用業務プログラムに
ステップ147において出力ホスト変数としてもどされ
る。アクセスの保持変数がない場合には、否定出力が決
定のステップ142から出される。適正なデータベース
インターフェースファンクション40がCONTINU
E−QUERYメッセージを構成してそれを適正なパラ
メータと共にDBMSに送り、そしてステップ145に
おいてDBMSからの結果エレメントを保持する。次に
ステップ147において、これらエレメントを出力ホス
ト変数として適用業務プログラムにもどす。QUERY
の終了はブランチ138cで表わされ、これは“end of
query”指示がDBMSから入ったかどうかを決定する
ために決定のステップ150に入る。入っていれば、デ
ータベースインターフェースファンクション処理がその
質問について終了し図19の点Bにもどる。決定のステ
ップ150の否定出力はステップ151において適正な
パラメータを有するEND−QUERYメッセージを送
ることによるデータベースインターフェースファンクシ
ョン40の部分での質問の終了に対応する。
【0115】図21において、本発明の重要な特徴であ
るホスト変数処理を示す。この特徴は図18のプリプロ
セッサステップ102,104,106に固有のもので
ある。まずテーブル200においてすべてのホスト変数
宣言コマンドはホスト変数テーブル30(図1)に宣言
された変数のネームとタイプを入れることによりステッ
プ200において応答される。ここでコマンドがバイン
ドファイル20に入れられると、各コマンドにおけるホ
スト変数の発生は分離され(ステップ202)、それら
のタイプがステップ206でホスト変数テーブル30か
ら決定され、ステップ208において夫々のホスト変数
発生が、関連するホスト変数タイプを有するホスト変数
マーカに置換される。この一般表現はバインドファイル
20内のコマンドをそれらをバインドするDBMSに関
連づける。図1に示すように一つのホスト変数の発生す
る夫々のデータベースコマンドはその発生とタイプを示
すマーカを置換物として示す。これはカタログ63内の
パッケージ“NAME”60に記憶されるコマンド62
により示される。DBMS54はこのマーカを、ホスト
変数をDBMSに対し否定であるフォームにさせ、それ
によりバインドされたコマンドの実行をサポートするた
めに用いることである。
るホスト変数処理を示す。この特徴は図18のプリプロ
セッサステップ102,104,106に固有のもので
ある。まずテーブル200においてすべてのホスト変数
宣言コマンドはホスト変数テーブル30(図1)に宣言
された変数のネームとタイプを入れることによりステッ
プ200において応答される。ここでコマンドがバイン
ドファイル20に入れられると、各コマンドにおけるホ
スト変数の発生は分離され(ステップ202)、それら
のタイプがステップ206でホスト変数テーブル30か
ら決定され、ステップ208において夫々のホスト変数
発生が、関連するホスト変数タイプを有するホスト変数
マーカに置換される。この一般表現はバインドファイル
20内のコマンドをそれらをバインドするDBMSに関
連づける。図1に示すように一つのホスト変数の発生す
る夫々のデータベースコマンドはその発生とタイプを示
すマーカを置換物として示す。これはカタログ63内の
パッケージ“NAME”60に記憶されるコマンド62
により示される。DBMS54はこのマーカを、ホスト
変数をDBMSに対し否定であるフォームにさせ、それ
によりバインドされたコマンドの実行をサポートするた
めに用いることである。
【図1】本発明を形成するエレメントの基本構成を本発
明の実施に重要な他のエレメントと共に示すブロック
図。
明の実施に重要な他のエレメントと共に示すブロック
図。
【図2】プリプロセッサ高レベル擬似コードの一例を示
す図。
す図。
【図3】データベースコマンド分類用擬似コードの一例
を示す図。
を示す図。
【図4】データベースコマンド置換用高レベル擬似コー
ドの一例を示す図。
ドの一例を示す図。
【図5】変数宣言データベースコマンド置換用擬似コー
ドの一例を示す図。
ドの一例を示す図。
【図6】アトミックデータベースコマンド置換用擬似コ
ードの一例を示す図。
ードの一例を示す図。
【図7】セット型データベースコマンド置換用擬似コー
ドの一例を示す図。
ドの一例を示す図。
【図8】ダイナミックデータベースコマンド置換用擬似
コードの一例を示す図。
コードの一例を示す図。
【図9】トランザクションデータベースコマンド置換用
擬似コードの一例を示す図。
擬似コードの一例を示す図。
【図10】データベースコマンドをバインドファイルに
加えるための擬似コードの一例を示す図。
加えるための擬似コードの一例を示す図。
【図11】バインドプログラム用擬似コードの一例を示
す図。
す図。
【図12】アトミックコマンドデータベースインターフ
ェースファンクション用擬似コードの一例を示す図。
ェースファンクション用擬似コードの一例を示す図。
【図13】セット型データアクセスを開始するためのデ
ータベースインターフェースファンクション用擬似コー
ドの一例を示す図。
ータベースインターフェースファンクション用擬似コー
ドの一例を示す図。
【図14】セット型データアクセスのエレメントをアク
セスするデータベースインターフェースファンクション
用擬似コードの一例を示す図。
セスするデータベースインターフェースファンクション
用擬似コードの一例を示す図。
【図15】セット型データアクセスを終了するためのデ
ータベースインターフェースファンクション用擬似コー
ドの一例を示す図。
ータベースインターフェースファンクション用擬似コー
ドの一例を示す図。
【図16】ダイナミックデータベースコマンドを即時実
行するためのデータベースインターフェースファンクシ
ョン用擬似コードの一例を示す図。
行するためのデータベースインターフェースファンクシ
ョン用擬似コードの一例を示す図。
【図17】ダイナミックデータベースコマンドを遅延実
行するためのデータベースインターフェースファンクシ
ョン用擬似コードの一例を示す図。
行するためのデータベースインターフェースファンクシ
ョン用擬似コードの一例を示す図。
【図18】本発明の方法を示す流れの第1部分を示す
図。
図。
【図19】本発明の方法を示す流れの第2部分を示す
図。
図。
【図20】本発明の方法を示す流れの第3部分を示す
図。
図。
【図21】本発明によるホスト変数処理を示す流れ図。
10 コンピュータシステム 12 計算システム 14 適用業務プログラム 16 データベースコマンド 17 適用業務アクセスエージェント 18 プリプロセッサ 20 バインドファイル 30 ホスト変数テーブル 38 バインドプログラム 34 カーソルテーブル 40 データベースインターフェースファンクション 46,50 通信アダプタ 48 インターフェース 52 データベース通信エージェント 54 DBMS 56 記憶装置 60 パッケージ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード、エイム、デマーズ アメリカ合衆国ミネソタ州、ロチェスタ ー、トゥウェンティーファースト、アベニ ュ、エヌ、イー、1318 (72)発明者 ドゥサン、エシモビク アメリカ合衆国カリフォルニア州、オリン ダ、ラモナ、ドライブ、4 (72)発明者 ロバート、ディーン、ジャクソン アメリカ合衆国カリフォルニア州、サン、 ノゼ、シューバート、アベニュ、2499 (72)発明者 ブルース、ギルバート、リンゼイ アメリカ合衆国カリフォルニア州、サン、 ノゼ、セトル、アベニュ、1185 (72)発明者 マイケル、エドワード、マーフィー アメリカ合衆国ノースカロライナ州、ダー ラム、ピックフォード、プレイス、5203 (72)発明者 ロジャー、アラン、レインシュ アメリカ合衆国カリフォルニア州、キュパ ーティナ、グリーンリーフ、ドライブ、 20663 (72)発明者 ロバート、ピーター、レシュ アメリカ合衆国ミネソタ州、バイロン、ル ート、1、ボックス、118 (72)発明者 リチャード、ロランド、サンダーズ アメリカ合衆国ミネソタ州、ロチェスタ ー、サーティーフォース、ストリート、エ ヌ、ダブリュ、1846 (72)発明者 パトリシア、グリフィス、セリンジャー アメリカ合衆国カリフォルニア州、サン、 ノゼ、ゴールド、クリーク、コート、7215 (72)発明者 ロバート、レオ、サンデイ カナダ国オンタリオ州、シャロン、ウィリ アム、ストリート、31 (72)発明者 メルビン、リチャード、ツィモウスキー アメリカ合衆国カリフォルニア州、サン、 ノゼ、サリアン、コート、1079
Claims (3)
- 【請求項1】データベースコンピュータシステムから分
離され且つ遠隔しており、そのシステムとは異なる言語
を用いるアプリケーションコンピュータシステムにおけ
るアプリケーションプログラム実行による要求に応じて
データベースコンピュータシステム内のサーバデータベ
ースのアクセスを行う、下記段階を含むサーバデータベ
ースのアクセス方法: (a) アプリケーションプログラムからサーバデータベ
ースの言語で書かれたデータベースコマンドを抽出する
段階; (b) このデータベースコマンドをデータベースコンピ
ュータに送る段階; (c) 上記サーバデータベースにおいて上記データベー
スコマンドをアプリケーションプログラムに結合する段
階; (d) アプリケーションプログラムの実行中にデータベ
ースコマンドの実行要求をサーバデータベースに送る段
階;及び (e) この実行要求に応じてサーバデータベースにおい
てデータベースコマンドを実行する段階。 - 【請求項2】前記抽出する段階の後に、アプリケーショ
ンプログラム内の前記データベースコマンドをそれらの
実行要求と置き換える段階をさらに含む請求項1の方
法。 - 【請求項3】前記段階(b)の前に、前記アプリケーシ
ョンコンピュータシステムにおいて下記段階をさらに含
む請求項1の方法: (a) 前記データベースコマンド内のホスト変数を識別
する段階; (b) 上記データベースコマンドから上記ホスト変数を
抽出する段階;及び (c) 上記データベースコマンド内の上記ホスト変数を
これら変数を表わすマーカと置換える段階。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/500,032 US5257366A (en) | 1990-03-27 | 1990-03-27 | Query language execution on heterogeneous database servers using a bind-file bridge between application and database languages |
US500032 | 1990-03-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05204988A true JPH05204988A (ja) | 1993-08-13 |
JP2538719B2 JP2538719B2 (ja) | 1996-10-02 |
Family
ID=23987755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3049175A Expired - Fee Related JP2538719B2 (ja) | 1990-03-27 | 1991-02-21 | サ―バデ―タベ―スのアクセス方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5257366A (ja) |
EP (1) | EP0449449B1 (ja) |
JP (1) | JP2538719B2 (ja) |
BR (1) | BR9101195A (ja) |
DE (1) | DE69132908T2 (ja) |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5124909A (en) * | 1988-10-31 | 1992-06-23 | Hewlett-Packard Company | Software program for providing cooperative processing between personal computers and a host computer |
FR2662831B1 (fr) * | 1990-05-29 | 1992-08-07 | Cit Alcatel | Procede de gestion d'un reseau de bases de donnees. |
US5873088A (en) * | 1990-08-31 | 1999-02-16 | Fujitsu Limited | Derived data base processing system enabling one program to access a plurality of data basis |
US5742809A (en) * | 1990-08-31 | 1998-04-21 | Fujitsu Limited | Database generic composite structure processing system |
US5408652A (en) * | 1990-08-31 | 1995-04-18 | Fujitsu Limited | Method and apparatus for heterogenous database access by generating different access procedures for different database data structures |
US6192347B1 (en) | 1992-10-28 | 2001-02-20 | Graff/Ross Holdings | System and methods for computing to support decomposing property into separately valued components |
US7203661B1 (en) * | 1992-10-28 | 2007-04-10 | Graff/Ross Holdings | Computers making financial analysis output having property valuations |
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
JP3163141B2 (ja) * | 1992-01-30 | 2001-05-08 | 富士通株式会社 | リレーショナルデータベース処理装置および処理方法 |
US5522066A (en) * | 1992-04-16 | 1996-05-28 | Industrial Technology Research Institute | Interface for accessing multiple records stored in different file system formats |
US5459860A (en) * | 1992-10-05 | 1995-10-17 | International Business Machines Corporation | Computerized system and process for managing a distributed database system |
JP3370704B2 (ja) * | 1992-10-12 | 2003-01-27 | 株式会社日立製作所 | 通信制御方法 |
US5511186A (en) * | 1992-11-18 | 1996-04-23 | Mdl Information Systems, Inc. | System and methods for performing multi-source searches over heterogeneous databases |
US5596744A (en) * | 1993-05-20 | 1997-01-21 | Hughes Aircraft Company | Apparatus and method for providing users with transparent integrated access to heterogeneous database management systems |
US5504885A (en) * | 1993-06-29 | 1996-04-02 | Texas Instruments Incorporated | O-R gateway: a system for connecting object-oriented application programs and relational databases |
GB9314460D0 (en) * | 1993-07-13 | 1993-08-25 | Int Computers Ltd | Computer systems integration |
US5432930A (en) * | 1993-09-30 | 1995-07-11 | Eagle Crest Limited | System for accessing cobol data files by generating a dictionary of NF.sup.2 |
US5721904A (en) * | 1993-12-20 | 1998-02-24 | Hitachi, Ltd. | Database access system and method of controlling access management to a database access system for a plurality of heterogeneous database servers using SQL |
US5546583A (en) * | 1994-04-05 | 1996-08-13 | International Business Machines Corporation | Method and system for providing a client/server interface in a programming language |
US5588150A (en) * | 1994-09-29 | 1996-12-24 | International Business Machines Corporation | Push down optimization in a distributed, multi-database system |
US6381595B1 (en) * | 1994-09-29 | 2002-04-30 | International Business Machines Corporation | System and method for compensation of functional differences between heterogeneous database management systems |
US5768577A (en) * | 1994-09-29 | 1998-06-16 | International Business Machines Corporation | Performance optimization in a heterogeneous, distributed database environment |
US5764949A (en) * | 1994-09-29 | 1998-06-09 | International Business Machines Corporation | Query pass through in a heterogeneous, distributed database environment |
US5625818A (en) * | 1994-09-30 | 1997-04-29 | Apple Computer, Inc. | System for managing local database updates published to different online information services in different formats from a central platform |
US5701461A (en) * | 1995-01-27 | 1997-12-23 | Microsoft Corporation | Method and system for accessing a remote database using pass-through queries |
US5701471A (en) * | 1995-07-05 | 1997-12-23 | Sun Microsystems, Inc. | System and method for testing multiple database management systems |
US5860137A (en) * | 1995-07-21 | 1999-01-12 | Emc Corporation | Dynamic load balancing |
US6173306B1 (en) | 1995-07-21 | 2001-01-09 | Emc Corporation | Dynamic load balancing |
US5799305A (en) * | 1995-11-02 | 1998-08-25 | Informix Software, Inc. | Method of commitment in a distributed database transaction |
US6122642A (en) * | 1996-01-18 | 2000-09-19 | Sabre Inc. | System for propagating, retrieving and using transaction processing facility airline computerized reservation system data on a relational database processing platform |
US6714945B1 (en) | 1995-11-17 | 2004-03-30 | Sabre Inc. | System, method, and article of manufacture for propagating transaction processing facility based data and for providing the propagated data to a variety of clients |
US5778367A (en) * | 1995-12-14 | 1998-07-07 | Network Engineering Software, Inc. | Automated on-line information service and directory, particularly for the world wide web |
DE19547108A1 (de) * | 1995-12-16 | 1997-06-19 | Sel Alcatel Ag | Verfahren zum Einbinden von Zusatz-Funktions-Modulen in eine Steuereinrichtung eines Vermittlungssystems und Vermittlungssystem |
US5878419A (en) * | 1996-01-19 | 1999-03-02 | Novell, Inc. | Method for creating a relational description of a formatted transaction |
US5768589A (en) * | 1996-07-12 | 1998-06-16 | Oracle Corporation | Method and apparatus for executing stored procedures in a foreign database management system |
JP3777666B2 (ja) * | 1996-08-28 | 2006-05-24 | 株式会社日立製作所 | データベース処理方法およびシステム |
US5870739A (en) * | 1996-09-20 | 1999-02-09 | Novell, Inc. | Hybrid query apparatus and method |
US5884304A (en) * | 1996-09-20 | 1999-03-16 | Novell, Inc. | Alternate key index query apparatus and method |
US5873079A (en) * | 1996-09-20 | 1999-02-16 | Novell, Inc. | Filtered index apparatus and method |
US6009271A (en) * | 1996-10-28 | 1999-12-28 | Bmc Software, Inc. | Method of retrieving data from a relational database |
AUPO527497A0 (en) * | 1997-02-25 | 1997-03-20 | Mclaren Software Technology Pty Ltd | Application messaging system |
AU743835B2 (en) * | 1997-02-25 | 2002-02-07 | Mclaren Software Technology Pty Ltd | Application messaging system |
US5857197A (en) * | 1997-03-20 | 1999-01-05 | Thought Inc. | System and method for accessing data stores as objects |
US6253228B1 (en) * | 1997-03-31 | 2001-06-26 | Apple Computer, Inc. | Method and apparatus for updating and synchronizing information between a client and a server |
US6236997B1 (en) | 1997-06-23 | 2001-05-22 | Oracle Corporation | Apparatus and method for accessing foreign databases in a heterogeneous database system |
US5987463A (en) * | 1997-06-23 | 1999-11-16 | Oracle Corporation | Apparatus and method for calling external routines in a database system |
US6226649B1 (en) | 1997-06-23 | 2001-05-01 | Oracle Corporation | Apparatus and method for transparent access of foreign databases in a heterogeneous database system |
US6049800A (en) * | 1997-06-23 | 2000-04-11 | Oracle Corporation | Mechanism and method for performing callbacks |
US6041344A (en) * | 1997-06-23 | 2000-03-21 | Oracle Corporation | Apparatus and method for passing statements to foreign databases by using a virtual package |
US6016499A (en) * | 1997-07-21 | 2000-01-18 | Novell, Inc. | System and method for accessing a directory services respository |
US5995974A (en) * | 1997-08-27 | 1999-11-30 | Informix Software, Inc. | Database server for handling a plurality of user defined routines (UDRs) expressed in a plurality of computer languages |
US6014669A (en) * | 1997-10-01 | 2000-01-11 | Sun Microsystems, Inc. | Highly-available distributed cluster configuration database |
CN1115824C (zh) * | 1998-05-07 | 2003-07-23 | 三星电子株式会社 | 网络中的装置对装置命令与控制的方法和系统 |
US7043532B1 (en) * | 1998-05-07 | 2006-05-09 | Samsung Electronics Co., Ltd. | Method and apparatus for universally accessible command and control information in a network |
US6195533B1 (en) | 1998-05-27 | 2001-02-27 | Glenayre Electronics, Inc. | Method for storing an application's transaction data in a wireless messaging system |
US6370498B1 (en) | 1998-06-15 | 2002-04-09 | Maria Ruth Angelica Flores | Apparatus and methods for multi-lingual user access |
US6366915B1 (en) * | 1998-11-04 | 2002-04-02 | Micron Technology, Inc. | Method and system for efficiently retrieving information from multiple databases |
US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
US6922708B1 (en) | 1999-02-18 | 2005-07-26 | Oracle International Corporation | File system that supports transactions |
US6924828B1 (en) * | 1999-04-27 | 2005-08-02 | Surfnotes | Method and apparatus for improved information representation |
US6594657B1 (en) | 1999-06-08 | 2003-07-15 | Albert-Inc. Sa | System and method for enhancing online support services using natural language interface for searching database |
US6446064B1 (en) | 1999-06-08 | 2002-09-03 | Albert Holding Sa | System and method for enhancing e-commerce using natural language interface for searching database |
US6598039B1 (en) | 1999-06-08 | 2003-07-22 | Albert-Inc. S.A. | Natural language interface for searching database |
US6952741B1 (en) * | 1999-06-30 | 2005-10-04 | Computer Sciences Corporation | System and method for synchronizing copies of data in a computer system |
US7418435B1 (en) * | 1999-08-05 | 2008-08-26 | Oracle International Corporation | Multi-model access to data |
US6549916B1 (en) | 1999-08-05 | 2003-04-15 | Oracle Corporation | Event notification system tied to a file system |
US7280995B1 (en) | 1999-08-05 | 2007-10-09 | Oracle International Corporation | On-the-fly format conversion |
JP4688270B2 (ja) | 1999-10-13 | 2011-05-25 | 株式会社ビジュアルジャパン | ネットワーク型データ伝送システム、並びに同システムにおけるサーバ及び端末装置 |
US7693844B1 (en) | 1999-10-29 | 2010-04-06 | Computer Sciences Corporation | Configuring processing relationships among entities of an organization |
US7363264B1 (en) * | 1999-10-29 | 2008-04-22 | Computer Sciences Corporation | Processing business transactions using dynamic database packageset switching |
US6925468B1 (en) | 1999-10-29 | 2005-08-02 | Computer Sciences Corporation | Configuring systems for generating business transaction reports using processing relationships among entities of an organization |
US7546304B1 (en) | 1999-10-29 | 2009-06-09 | Computer Sciences Corporation | Configuring keys for use in processing business data |
US7353196B1 (en) | 1999-10-29 | 2008-04-01 | Computer Sciences Corporation | Configuring dynamic database packageset switching for use in processing business transactions |
US7571171B1 (en) | 1999-10-29 | 2009-08-04 | Computer Sciences Corporation | Smart trigger for use in processing business transactions |
US7526487B1 (en) | 1999-10-29 | 2009-04-28 | Computer Sciences Corporation | Business transaction processing systems and methods |
US7010531B1 (en) * | 1999-11-24 | 2006-03-07 | Unisys Corporation | Method and apparatus for a web application server to create an empty data set in a repository with a specified dataset ID |
US7024455B2 (en) * | 2000-03-31 | 2006-04-04 | Fujitsu Limited | Network community supporting method and system |
US6711699B1 (en) * | 2000-05-04 | 2004-03-23 | International Business Machines Corporation | Real time backup system for information based on a user's actions and gestures for computer users |
US7185005B1 (en) | 2000-05-12 | 2007-02-27 | Oracle International Corporation | Nested transactions in a file system |
US7174359B1 (en) * | 2000-11-09 | 2007-02-06 | International Business Machines Corporation | Apparatus and methods for sequentially scheduling a plurality of commands in a processing environment which executes commands concurrently |
US7058648B1 (en) | 2000-12-01 | 2006-06-06 | Oracle International Corporation | Hierarchy-based secured document repository |
US7136847B2 (en) * | 2001-08-31 | 2006-11-14 | International Business Machines Corporation | Method and system for dynamically changing cursor attributes in an embedded SQL application |
US7240114B2 (en) * | 2001-09-25 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Namespace management in a distributed file system |
US7251693B2 (en) * | 2001-10-12 | 2007-07-31 | Direct Computer Resources, Inc. | System and method for data quality management and control of heterogeneous data sources |
CA2382714A1 (en) | 2002-04-19 | 2003-10-19 | Ibm Canada Limited-Ibm Canada Limitee | Substituting parameter markers for literals in a database query language statement to promote reuse of previously generated access plans |
US7178153B1 (en) | 2002-05-10 | 2007-02-13 | Oracle International Corporation | Method and mechanism for implementing an access interface infrastructure |
US7275087B2 (en) * | 2002-06-19 | 2007-09-25 | Microsoft Corporation | System and method providing API interface between XML and SQL while interacting with a managed object environment |
US8694510B2 (en) | 2003-09-04 | 2014-04-08 | Oracle International Corporation | Indexing XML documents efficiently |
US8229932B2 (en) | 2003-09-04 | 2012-07-24 | Oracle International Corporation | Storing XML documents efficiently in an RDBMS |
US20050108063A1 (en) * | 2003-11-05 | 2005-05-19 | Madill Robert P.Jr. | Systems and methods for assessing the potential for fraud in business transactions |
US7930277B2 (en) | 2004-04-21 | 2011-04-19 | Oracle International Corporation | Cost-based optimizer for an XML data repository within a database |
US7627547B2 (en) | 2004-11-29 | 2009-12-01 | Oracle International Corporation | Processing path-based database operations |
US8131766B2 (en) | 2004-12-15 | 2012-03-06 | Oracle International Corporation | Comprehensive framework to integrate business logic into a repository |
US7921076B2 (en) | 2004-12-15 | 2011-04-05 | Oracle International Corporation | Performing an action in response to a file system event |
US8073841B2 (en) | 2005-10-07 | 2011-12-06 | Oracle International Corporation | Optimizing correlated XML extracts |
US8356053B2 (en) | 2005-10-20 | 2013-01-15 | Oracle International Corporation | Managing relationships between resources stored within a repository |
US8949455B2 (en) | 2005-11-21 | 2015-02-03 | Oracle International Corporation | Path-caching mechanism to improve performance of path-related operations in a repository |
US9122719B2 (en) * | 2006-04-28 | 2015-09-01 | Bmc Software, Inc. | Database application federation |
US9183321B2 (en) | 2006-10-16 | 2015-11-10 | Oracle International Corporation | Managing compound XML documents in a repository |
US7797310B2 (en) | 2006-10-16 | 2010-09-14 | Oracle International Corporation | Technique to estimate the cost of streaming evaluation of XPaths |
US7827177B2 (en) | 2006-10-16 | 2010-11-02 | Oracle International Corporation | Managing compound XML documents in a repository |
US8510190B1 (en) | 2006-12-05 | 2013-08-13 | Ross/Graff Holdings Llc | Securitized-real-property-related asset system |
US8285628B1 (en) | 2006-12-05 | 2012-10-09 | Ross/Graff Holdings Llc | Securitized pool of personal-small-aircraft mortgages system |
US8156134B2 (en) * | 2007-11-15 | 2012-04-10 | International Business Machines Corporation | Using different groups of query graph transform modules to generate execution plans for queries for different database types |
US7958112B2 (en) * | 2008-08-08 | 2011-06-07 | Oracle International Corporation | Interleaving query transformations for XML indexes |
EP2572299A1 (en) | 2010-05-17 | 2013-03-27 | Green SQL Ltd | Database translation system and method |
US9275121B2 (en) | 2013-01-03 | 2016-03-01 | Sap Se | Interoperable shared query based on heterogeneous data sources |
CA3092699C (en) * | 2013-12-06 | 2023-07-25 | Ab Initio Technology Llc | Source code translation |
CN111352818B (zh) * | 2020-02-28 | 2023-06-30 | 北京思特奇信息技术股份有限公司 | 应用程序性能分析方法、装置、存储介质及电子设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4205371A (en) * | 1975-11-03 | 1980-05-27 | Honeywell Information Systems Inc. | Data base conversion system |
US4714989A (en) * | 1982-02-19 | 1987-12-22 | Billings Roger E | Funtionally structured distributed data processing system |
US4734856A (en) * | 1984-03-02 | 1988-03-29 | Davis Dannie E | Autogeneric system |
CA1252905A (en) * | 1985-06-11 | 1989-04-18 | Frank D. Bartocci | Generalized algorithmic control blocks for sequential and parallel queries in distributed directory networks |
CA1260151A (en) * | 1985-06-11 | 1989-09-26 | Frank D. Bartocci | Propagation of network queries through superior- subordinate and peer-peer data distribution relationships |
US5058000A (en) * | 1987-06-30 | 1991-10-15 | Prime Computer, Inc. | System for accessing remote heterogeneous database including formatting retrieved data into applications program format |
US4961133A (en) * | 1987-11-06 | 1990-10-02 | Visystems, Inc. | Method for providing a virtual execution environment on a target computer using a virtual software machine |
US5008853A (en) * | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
US5089954A (en) * | 1988-08-08 | 1992-02-18 | Bell Communications Research, Inc. | Method for handling conversational transactions in a distributed processing environment |
US5036484A (en) * | 1988-11-23 | 1991-07-30 | International Business Machines Corporation | Personal computer/host emulation system for handling host data with personal computer application programs at personal computers |
US5179660A (en) * | 1989-05-15 | 1993-01-12 | International Business Machines Incorporated | System for reducing communications overhead in distributed database transactions by serializing in order related requests into single transmission message and receiving transmission response |
-
1990
- 1990-03-27 US US07/500,032 patent/US5257366A/en not_active Expired - Lifetime
-
1991
- 1991-02-21 JP JP3049175A patent/JP2538719B2/ja not_active Expired - Fee Related
- 1991-03-11 DE DE69132908T patent/DE69132908T2/de not_active Expired - Lifetime
- 1991-03-11 EP EP91302025A patent/EP0449449B1/en not_active Expired - Lifetime
- 1991-03-26 BR BR919101195A patent/BR9101195A/pt unknown
Non-Patent Citations (1)
Title |
---|
AN INTRODUCTION TO DATABASE SYSTEMS 3RD EDITION=1981 * |
Also Published As
Publication number | Publication date |
---|---|
DE69132908T2 (de) | 2002-09-12 |
BR9101195A (pt) | 1991-11-05 |
JP2538719B2 (ja) | 1996-10-02 |
DE69132908D1 (de) | 2002-03-14 |
EP0449449A2 (en) | 1991-10-02 |
EP0449449A3 (en) | 1993-05-12 |
EP0449449B1 (en) | 2002-01-23 |
US5257366A (en) | 1993-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2538719B2 (ja) | サ―バデ―タベ―スのアクセス方法 | |
US5940819A (en) | User specification of query access paths in a relational database management system | |
TW308676B (en) | Incremental compilation of C++ programs | |
JP2602205B2 (ja) | データベース・アクセス制御方法 | |
US7412455B2 (en) | Software framework that facilitates design and implementation of database applications | |
US6553385B2 (en) | Architecture of a framework for information extraction from natural language documents | |
US4931928A (en) | Apparatus for analyzing source code | |
US6349305B1 (en) | Method and system for database processing by invoking a function related to index type definition, generating an execution plan based on index type name | |
US5303379A (en) | Link mechanism for linking data between objects and for performing operations on the linked data in an object based system | |
US7693913B2 (en) | Method and system for remote accessing a virtual database system | |
US7676489B2 (en) | Providing natural-language interface to repository | |
US7143345B2 (en) | Method and system for multiple level parsing | |
US5432930A (en) | System for accessing cobol data files by generating a dictionary of NF.sup.2 | |
JPH10232875A (ja) | データベース管理方法および並列データベース管理システム | |
JPH08339319A (ja) | Sqlプログラムの高可用性コンパイレーションを有する方法及びリレーショナルデータベース・システム | |
KR20010109304A (ko) | Abap 코드 변환기에 대한 설계 설명서 | |
CN111488143A (zh) | 一种基于Springboot2代码自动生成装置和方法 | |
US9171036B2 (en) | Batching heterogeneous database commands | |
KR20050031872A (ko) | 라벨 시스템 - 실행 및 설계 중 텍스트 번역 및 다중 언어지원 | |
WO2004023237A2 (en) | Contextual data representation and retrieval method | |
US7174553B1 (en) | Increasing parallelism of function evaluation in a database | |
US8433729B2 (en) | Method and system for automatically generating a communication interface | |
AU612681B2 (en) | Customization by automated resource substitution | |
JP2976891B2 (ja) | リモートデータベースアクセス方法 | |
JP2778025B2 (ja) | 共起関係辞書の学習方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |