スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(UNIX(R)用)

[目次][索引][前へ][次へ]

8.10.3 UOCの処理概要

UOCの処理概要を図8-26に,pdrorg,UOC間の呼び出しシーケンスを図8-27に示します。

図8-26 UOCの処理概要

[図データ]

[説明]

pdrorgからUOCに制御が渡り,処理を開始します。処理が終了したら,pdrorgに制御を返します。

  1. UOCインタフェース領域の,pdrorgが設定した呼び出し種別を判定します。
  2. 初期化処理,UOCデータファイルのオープンなど,開始処理をします。
  3. UOCインタフェース領域の,pdrorgが設定したデータを更新又は編集します。
  4. データがすべてなくなった場合に,UOCデータファイルのクローズなどの終了処理をします。
  5. pdrorgの処理でエラーとなった場合,又はUOC内でエラーとなった場合に,UOCデータファイルのクローズ,不要なUOCデータファイルの削除など,終了処理をします。
  6. 行データをチェックして,必要なデータかどうかを判定します。必要な場合は,データの更新又は編集をして,UOCインタフェース領域の格納フラグにYを設定します。必要でない場合は,UOCインタフェース領域の格納フラグにNを設定します。また,UOCでUOCデータファイルを作成する場合は,データを更新又は編集した行データをUOCデータファイルへ出力します。
  7. UOCインタフェース領域のリターンコードを設定します。

    図8-27 pdrorg,UOC間の呼び出しシーケンス

    [図データ]

[説明]

スキーマ単位の再編成,又はスキーマ単位のアンロードの場合は,スキーマ内の表数分1〜11を繰り返します。なお,該当する表の処理中にエラーが発生した場合は,直ちにpdrorgの処理を中断します。

  1. pdrorgは,呼び出し種別に開始要求を設定してUOCを呼び出します。
  2. pdrorgからの呼び出し種別が開始要求の場合,UOCは次の処理をします。
    • UOCでUOCデータファイルを出力する場合は,UOCデータファイルを作成(オープン)します。
    • 各種領域の確保など,開始準備をします。
    • 開始準備が正常に終了した場合はUOCインタフェース領域のリターンコードに0を設定し,正常に終了しなかった場合は8を設定してリターンします。
    リターンコードに8を設定した場合,この呼び出し以降はUOCを呼び出せない(停止要求をしない)ため,ここでUOCデータファイルのクローズなどの後処理をする必要があります。
  3. pdrorgは,UOCから返却されたUOCインタフェース領域のリターンコードを判定し,0又は4以外の場合は直ちにpdrorgの処理を中断します。
  4. pdrorgは,データベースからデータを検索します。
  5. pdrorgは,表のデータが検索できた場合は,データアドレスリストに検索したデータを設定し,呼び出し種別にデータ更新要求を設定してUOCを呼び出します。検索するデータがなくなった場合は10の処理(終了処理)をします。
    なお,データ更新要求は,次の条件のどれかに該当するまで処理を繰り返します。
    • 表のデータがなくなる。
    • UOCがUOCインタフェース領域のリターンコードに0又は4以外を設定する。
    • pdrorg内で処理エラーが発生する。
  6. pdrorgからの呼び出し種別がデータ更新要求の場合,UOCは次の処理をします。
    各処理が正常終了した場合はUOCインタフェース領域のリターンコードに0を設定し,異常終了した場合は8を設定してリターンします。
    (a) 表の再編成,表のアンロードでの不要データの削除の場合
    pdrorgがUOCインタフェース領域のデータアドレスリストに渡したデータを参照し,データが必要であればUOCインタフェース領域の格納フラグにYを設定します。データが不要な場合はNを設定します。
    (b) アプリケーション向けデータ更新の場合
    データの更新などの処理をします。
    データを更新した場合は,UOCインタフェース領域に更新後データアドレスリストを設定し,格納フラグにYを設定します。
    不要なデータの場合は,UOCインタフェース領域の格納フラグにNを設定します。
    UOCデータファイルを出力する場合は,UOCデータファイルに必要なデータを出力します。
  7. UOCから返却されたUOCインタフェース領域のリターンコードが8の場合,pdrorgは呼び出し種別に停止要求を設定してUOCを呼び出します。
  8. pdrorgからの呼び出し種別が停止要求の場合,UOCは終了処理をします。なお,この呼び出し以降はUOCを呼び出せません。
    • UOCデータファイルを作成した場合は,UOCデータファイルをクローズしてください。なお,作成したUOCデータファイルが不要な場合は,ここで削除してください。
    • 確保したメモリの解放などをしてください。
  9. pdrorgがアンロードデータファイルを出力する場合,UOCインタフェース領域の格納フラグがYのときは,データをアンロードデータファイルに出力します。Nのときは出力しません。なお,データ更新(-Wオプション指定)では,UOCインタフェース領域の更新後データアドレスリストを参照して,UOCが更新したデータを-Wオプション指定のフォーマットでアンロードデータファイルに出力します。
  10. 次の条件をすべて満たす場合,pdrorgは呼び出し種別に終了要求を設定してUOCを呼び出します。
    • 該当する表のデータをすべて検索した場合
    • pdrorg内でエラーが発生しなかった場合
    • UOCから返却されたUOCインタフェース領域のリターンコードがすべて正常(0又は4)の場合
  11. pdrorgからの呼び出し種別が終了要求の場合,UOCは終了処理をします。
    • UOCデータファイルを作成した場合は,UOCデータファイルをクローズしてください。
    • 確保したメモリの解放などをしてください。