이름이 "로컬"인 서버에 연결할 수 없습니다.
SAS 서버 초기화에 실패했습니다.
Transcoding failure.
같은 PC 에 SAS 9.4 가 설치돼 있고 단독 실행은 잘 되는데, Enterprise Guide 에서 서버 목록의 "로컬" 을 누르면 이 오류가 난다. EG 가 로컬 SAS 를 실행하면서 쓰는 인코딩이 SAS 설치 인코딩과 맞지 않아 세션이 시작되지 못한 것이다.
먼저 SAS 를 단독으로 띄워 실제 인코딩을 확인한다.
proc options encoding;
run;
EG 의 기본 "로컬" 항목은 Local SAS V9 via COM 프로토콜로 자동 구성되며, 속성 창은 읽기 전용이다. 여기에 -encoding 같은 시작 옵션을 넣을 방법이 없다.
EGOptions.xml 은 EG 자체 UI 환경 설정 파일이라 SAS 실행 명령줄 옵션과 무관하다. 여기에 옵션을 넣어도 반영되지 않는다.
EG 를 재설치해도 증상은 같다. 구조적인 제약이라서 재설치로는 풀리지 않는다.
로컬 SAS 를 서버처럼 등록하면 실행 옵션을 지정할 수 있다. SAS Integration Technologies Client 가 설치돼 있어야 한다.
제어판 -> 프로그램 및 기능 -> "SAS Integration Technologies" 항목 확인
EG 에서 서버 프로파일 관리자를 열어 새 프로파일을 만들고, 연결 방식과 컴퓨터 이름을 지정한 뒤 시작 옵션에 인코딩을 넣는다.
-encoding euckr
컴퓨터 이름은 다음으로 확인한다.
hostname
whoami
서버처럼 연결하면 Windows 계정 인증을 요구한다. 비밀번호 없이 로그인하는 계정이면 다음 오류가 난다.
값은 null일 수 없습니다. 매개 변수 이름: s
System.ArgumentNullException
내부적으로 비밀번호를 SecureString 으로 다루는데 값이 없어서 생기는 오류다. 빈 비밀번호는 지원되지 않으므로 계정에 비밀번호를 설정해야 한다.
EG 를 거치지 않고 SAS 를 직접 실행해 .sas 를 돌리는 방법도 있다. 다만 EG 의 프로젝트 관리와 로그 연동 기능은 쓸 수 없다.