Preguntas frecuentes de InterSystems
Este error ocurre cuando una instancia de la clase ya está abierta en el momento de la compilación.
Hay dos formas de abordar este problema:
- Terminar el proceso o aplicación que tiene la instancia abierta
- Opciones de compilación en el menú de compilación de Studio: marque el indicador de compilación "Compilar clases en uso" y compile.
Si desea determinar qué proceso está utilizando la clase, pruebe la rutina de ejemplo siguiente.
/// 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
}
ObjectScriptObjectScript
Esta rutina de muestra busca las variables locales en los procesos del usuario para ver si usan la clase especificada.
≪Ejemplo de ejecución≫
USER>do search^Test("Test.Person")
2352:p1 = 1@Test.Person
6324:p2 = 2@Test.Person
*En este caso, los procesos con Pid=2352 y Pid=6324 están usando Test.Person.