Lukke COM-objekter
Hejsa alleVi har et Progress program hvor vi åbner nogle Access Com-objekter. Desværre er det sådan at hos nogle kunder bliver processerne ikke lukket ned efter endt (succesfuld) programkørsel. Da programmet typisk kører hver nat går der ikke mange dage før serveren bliver tvunget i knæ.
Findes der forskellige versioner af com-styringen eller hvad kan det mon være der er galt. Rettighederne er sat på samme måde i dcomcnfg på maskiner som virker, og maskiner som ikke virker. Problemmet opstår både med Access '97 og 2000 samt på både Windows 2000 og XP servere. Koden som lukker objekterne ser således ud:
DO iLoop = 1 TO iOpenBases:
iChAccess[iLoop]:CloseCurrentDatabase().
END.
DO iInx = 1 TO {&cMaxBases}:
IF VALID-HANDLE(iChDoCmd[iInx]) THEN
DO:
RELEASE OBJECT iChDoCmd[iInx] NO-ERROR.
iChDoCmd[iInx] = ?.
END.
IF VALID-HANDLE(iChAccess[iInx]) THEN
DO:
RELEASE OBJECT iChAccess[iInx] NO-ERROR.
iChAccess[iInx] = ?.
END.
END.