안녕하세요.
이곳에서 많은 정보를 얻어가고 있는 개발자입니다.
이번에 제가 데몬 프로그램을 하나 만들었는데 예기치 못한 오류가 발생해서 이렇게 글을 올립니다.
데몬의 기능 중 바코드프린터기로 데이터를 날려서 인쇄를 하는 기능이 있는데, 현재 데몬이 설치되어 있는 PC에 프린터가 약 8개 정도 물려있으며(네트워크로 연결되어 있습니다.) 클라이언트 프로그램에서 데몬에 연결한 후 미리 할당된 프린터기로 계속 데이터를 날려서 출력을 하게 되어 있습니다.
근데 잘 출력이 되다가 갑자기 출력이 안돼서 확인을 해보니 SPOOL 오류가 나있으면서 프린터 정보는 다 날라가고 Print Spooler 서비스가 죽어있더군요.
그래서 Print Spooler 서비스를 살렸더니 프린터 정보는 다시 살아났습니다. 그 다음에 출력하는데 아무 문제 없고요... 그렇다고 꾸준히 나오는것도 아니고...잊을만 하면 나오고 하는거 같습니다...ㅠㅠ
처음에는 PC의 문제인가..해서 찾아봤지만...그것도 아닌거 같고요...
찾다찾다 도저히 알 방법이 없어서 이렇게 질문을 올리네요...
혹시 저와 같은 경우를 경험하시거나 해결안을 아시고 계신분 없으신가여...ㅠㅠ
도움을 주시는 분께는 제가 밤마다 성공하시라고...기도하겠습니다...
부탁드리겠습니다.
PS. 참고로 출력을 날리는 코딩은 다음과 같습니다.
<!--CodeS-->
// lsFileName = 프린터 공유명칭
// APrtMsg = 출력할 내용
try
AssignFile(PrintFile, lsFileName);
Rewrite(PrintFile);
Writeln(PrintFile, APrtMsg );
finally
CloseFile(PrintFile);
<!--CodeE-->
별다른거 없이 기존에 쓰던 방식을 사용했습니다.
여기서 프린터 공유명칭이 계속 바뀌는거죠...
데몬이기 때문에 쓰레드를 사용했고여...