これは InterSystems FAQ サイトの記事です。
こちらは、コンパイル時に既にそのクラスのインスタンスを開いている場合に起こるエラーです。
対処方としては以下の2つの方法があります。
- インスタンスを開いているプロセスまたはアプリケーションを終了する
- スタジオのビルドメニュのコンパイルオプション:コンパイルフラグ “使用中のクラスをコンパイル” をチェックしコンパイルを行う
インスタンス化しているプロセスを特定したい場合は、以下のサンプルルーチンをお試しください。
/// Test.mac
search(classname) public {
Set pid=""
Set pid=$order(^$Job(pid))
While pid'="" {
Do checkVars(pid,classname)
Set pid=$Order(^$Job(pid))
}
} checkVars(pid,string) {
Set $ztrap="err"
Set var=""
For {
Set var=$zu(88,1,pid,var) q:var=""
Set val=$zu(88,2,pid,var)
If val[string {
Write !,pid,":",var," = ",val,!
}
}
Quit
err
Set $ztrap=""
Quit
}

PHP はその公開当初から、多くのライブラリや市場に出回っているほぼすべてのデータベースとの統合をサポートしていることでよく知られています(またそのことで批判を受けてもいます)。 にもかかわらず、何らかの不可解な理由により、グローバル変数については階層型データベースをサポートしませんでした。







