12.07.2015 Aufrufe

Caché 専用のシステム/ツールおよびユーティリティ - InterSystems ...

Caché 専用のシステム/ツールおよびユーティリティ - InterSystems ...

Caché 専用のシステム/ツールおよびユーティリティ - InterSystems ...

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Caché</strong> システムのカスタマイズ注 釈注 釈これらのサブルーチンは、 通 常 の <strong>Caché</strong> 操 作 の 一 部 として 呼 び 出 されます。つまり、 電 源 障 害 など、<strong>Caché</strong> を異 常 終 了 させる 外 部 イベントでは、^%ZSTOP への 呼 び 出 しが 生 成 されません。システムに ^%ZSTOP が 実 装 され、アプリケーションに 1つ 以 上 の $HALT ルーチンが 実 装 されている 場 合 、 最後 の $HALT が HALT コマンドで 停 止 するまで、^%ZSTOP コードは 実 行 されません。$HALT ルーチンが 自 身の HALT コマンドの 発 行 に 失 敗 すると、^%ZSTOP コードは 実 行 されない 可 能 性 があります。2.2.1 設 計 に 関 する 考 慮 事 項^%ZSTART および ^%ZSTOP の 実 行 環 境 には、ある 程 度 制 約 があります。 設 計 者 は 以 下 のような 点 に 注 意 してください。• ルーチンは <strong>Caché</strong> ObjectScript で 記 述 しなければなりません。• 任 意 のルーチン・エントリ・ポイントが 呼 び 出 されたときに、 引 数 として 渡 される 値 はありません。さまざまな 状 況 で 異なるアルゴリズムが 適 用 できる 場 合 は、 呼 び 出 されたエントリ・ポイントはルーチンの 外 部 、つまりグローバルやシステム 変 数 などのデータを 調 査 して、 何 を 実 行 するかを 決 定 する 必 要 があります。• あらゆる 条 件 下 で、ルーチンがうまく 動 作 することを 確 認 してください。ルーチンは 防 御 的 に 記 述 します。つまり、タスクの 完 了 に 必 要 なすべてのリソースがすぐ 使 用 できる 場 所 にあり、 可 能 であれば 演 算 処 理 が 始 まる 前 に 予 約 されることがこれらのルーチンで 確 認 されるようにします。 発 生 したエラーはそのシステム 関 数 の 失 敗 として 報 告 されるので、エラー 抑 制 と 処 理 の 観 点 から 設 計 を 考 えることが 重 要 です。リソースが 見 つからない、あるいはエラーが 起 こる際 に 適 切 に 回 復 できない 場 合 、さまざまな 結 果 がもたらされます。これには、<strong>Caché</strong> の 開 始 の 失 敗 、スタジオなどの主 要 な 機 能 の 動 作 の 不 具 合 やすぐには 検 知 されないようなわずかな 影 響 などが 含 まれます。これらのルーチンは、細 心 の 注 意 を 払 って 記 述 し、シミュレート 条 件 下 でデバッグし、プロダクション・システムで 使 用 する 前 にシミュレート環 境 下 でテストすることを 推 奨 します。• 以 前 の 呼 び 出 しの 間 に 見 つかった 条 件 や、 異 なるエントリ・ポイントが 有 効 であると 想 定 しないでください。 例 えば、JOB^%ZSTART への 連 続 呼 び 出 し 間 に、 次 の 呼 び 出 しが 発 生 する 前 に 前 回 使 用 したファイルが 削 除 される 可 能 性もあります。• 各 エントリ・ポイントはタスクを 効 率 的 に 実 行 します。タスクの 一 部 が、 潜 在 的 に 長 時 間 実 行 するものであれば、ユーザのアプリケーションの 別 の 部 分 によって 後 から 処 理 するように、 完 了 に 十 分 な 情 報 をキューに 格 納 することをお 勧めします。• 統 計 的 に 使 用 する 目 的 で、エントリ・ポイントでデータを 永 続 的 に 保 持 させる 場 合 、データの 保 持 にはグローバルや外 部 ファイルなどを 使 用 する 必 要 があります。• ルーチンを 実 行 する 環 境 についての 条 件 は、 最 小 限 にしてください。 例 えば、このようなルーチンの 開 発 者 は、プログラムが 常 に 特 定 のジョブ 番 号 で 実 行 されるとは 予 測 できません。 設 計 者 は、さまざまなエントリ・ポイントが 特 定 の順 序 で 呼 び 出 されることを 想 定 できません。<strong>Caché</strong> を 実 装 する 複 数 のプロセスを 呼 び 出 す 順 序 が、 確 定 的 であることはほとんどありません。• ルーチンは、システムの 開 始 中 の 特 定 の 時 点 で 呼 び 出 されるとは 限 りません。 開 始 中 のイベントの 配 列 は、リリースのたびに、または 再 開 のたびに 変 更 する 可 能 性 があります。• いくつかの 例 外 を 除 き、ルーチンでは 見 つけた 情 報 をそのままにしておく 必 要 があります。 例 えば、サブルーチン 内で、エントリ 時 と 終 了 時 に $IO の 値 を 保 存 してリストアせずに 再 代 入 すると、ほとんど 確 実 にエラーの 原 因 になります。 呼 び 出 し 元 のルーチンは、このような 変 更 があったことを 知 る 方 法 がありません。また、 呼 び 出 し 側 で 実 行 環 境に 対 する 変 更 を 防 ぐのは 非 常 に 困 難 です。したがって、 呼 び 出 される 側 のサブルーチンで、システム 処 理 のコンテキストを 妨 害 しなような 対 策 を 講 じる 必 要 があります。この 変 更 不 可 規 則 の 一 般 的 な 例 外 として、アプリケーション・プログラムやインストール・プログラムに 固 有 の、プロセス・ローカル 値 は 変 更 できます。 例 えば、SYSTEM^%ZSTART エントリ・ポイントで、システム 全 体 の 既 定 値 を 設 定 します。 同 様 に、アプリケーションのテストのために 日 付 を 設 定 し、 月 末 処 理 の 妥 当 性 を 検 証 することもできます。• ^%ZSTOP には、リモート・データベース 内 のグローバルへの 参 照 を 含 めることができません。^%ZSTOP の 呼 び 出 し時 に、これらの 参 照 の 一 部 がアクセスできなくなります。18 <strong>Caché</strong> 専 用 のシステム/<strong>ツールおよびユーティリティ</strong>

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!