솔루션 오브젝트 기능에 문제가 있습니다.



  • ※ 이 글은 기존에 있었던 문의 사항을 재구성하여 정리한 것입니다.

    Obj2WebSelect 기능이 정상 동작하지 않고, 검색 제한 시간을 초과하여도 반응이 없는 상태입니다.

    이러한 문제가 간헐적으로 발생하고 있어 업무 수행에 어려움을 느끼고 있습니다. 해결방법이 있을까요?



  • 인터넷 익스플로러 상에서 업무를 반복적으로 수행하면서 발생하는 시스템적 측면의 문제
    Obj2 기능이 정상 동작하지 못하는 원인은 여러 가지가 있을 수 있겠으나, 가장 가능성이 높은 원인은 인터넷 익스플로러 상에서 업무를 반복적으로 수행하면서 발생하는 시스템적 측면의 문제로 보여집니다.

    조금 더 구체적으로 설명 드리면 인터넷 익스플로러가 반복적으로 기능을 수행하면서 적절하게 시스템에 자원을 반환하지 않아 자원 할당량이 일정 이상 증가하면 더 이상 웹 엘리먼트에 접근할 수 없게 되거나 이상 동작을 유발하게 됩니다.

    아래 예제는 이런 문제를 해결하는데 도움이 될 스크립트 제작 가이드입니다.
    인터넷 익스플로러에서 반복적으로 수행되는 업무 프로세스를 스크립트 화 할 때에는 일정 단위 업무처리 회수 마다 브라우저를 초기화하는 것으로 브라우저를 초기화 할 때에는 “ProcessKillByName”등의 프로세스 제거 명령을 사용하지 않고, Obj2Application 명령을 다시 수행하는 방식으로 처리하는 방식입니다.

    [예제를 통한 상세 가이드]

    솔루션 오브젝트 기능에 문제가 있습니다.png

    위 예제는 웹 브라우저에서 동작하는 일반적인 업무 프로세스를 처리하는 간단한 스크립트입니다.
    예제에서 중요한 부분은 세 가지 정도로 요약할 수 있습니다.

    반복 실행 처리 말단에 반복 횟수(LoopCount)를 확인하여 100회마다 초기화를 수행하는 부분입니다.
    물론 처리 기법에 따라 위 예제와는 다르게 초기화 수행 시점을 확인하는 방법이 여러가지 존재할 수 있으나, 중요한 것은 일정 횟수 마다 브라우저 초기화를 수행해야 한다는 것입니다. 예제에서는 100회로 하였으나 실제 업무 프로세스에서는 1회 업무 처리 복잡도에 따라 최소 100회 ~ 최대 300회 내에서 지정을 해주시는 것이 좋습니다. 만약 반복 수행 도중 오류가 발생하면 횟수를 줄여서 테스트해 보실 것을 권장 드립니다.

    브라우저 초기화 수행 시 “브라우저 실행” 노드를 호출하는데 실제 처리부에서는 “Obj2Application” 명령이 수행되는 부분입니다.
    즉, 브라우저를 초기화하고자 할 때에는 단순히 브라우저를 실행시켜주는 명령어를 재실행 하는 것으로서 충분하다는 것입니다.
    “Obj2Application” 명령이 실행될 때 기존에 이미 동일한 “오브젝트ID”에 해당하는 브라우저가 실행 중이라면, 해당 브라우저를 자동적으로 초기화를 수행한 후 새로운 브라우저를 실행시켜주는 구조로 되어 있기 때문입니다.

    브라우저 초기화를 수행할 때 위에서 언급한 데로 “Obj2Application”을 실행하면 되는데, 이 때 주의할 사항은 “Obj2Applcation”을 실행하기 전에 프로세스를 강제로 종료하는 명령 등을 실행하지 말라는 것입니다.
    예를 들어, “iexplorer.exe” 또는 “IEDriverServer.exe”등을 강제로 종로 시키는 코드를 수행하지 않도록 합니다. 만약 강제로 해당 프로세스(들)을 종료하게 되면 정상적인 자원 반환이 이루어지지 않아서 이후 시스템 불안정을 야기시킬 수 있습니다.

    브라우저 초기화 기법을 적용하여 업무 프로세스 스크립트를 작성하게 되면 반복적으로 인터넷 익스플로러 상에서 업무를 처리해야 하는 경우 안정적으로 수행시킬 수 있습니다.
    만약 위와 같은 방법을 적용하였음에도 불구하고 비슷한 이슈가 발생한다면 좀 더 특수한 환경적 요인이 작용하고 있을 가능성이 있으므로 다른 각도에서 확인해 볼 필요가 있습니다.


Log in to reply