06. marts 2003 - 09:27Der er
3 kommentarer og 1 løsning
Lukke COM-objekter
Hejsa alle
Vi 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.
Det viste sig at de ikke kunne lukkes fordi den bruger som startede servicen aldrig havde kørt access og derfor blev præsenteret for et (skjult) billede hvor der skulle udfyldes navn og initialer. Dette billede kan ikke lukkes, men Access kan i øvrigt godt køre. Derfor den lidt underlige situation.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.