FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[4533] 파이어버드가 로컬 연결은 안되고 TCP/IP 연결만 된다면
박지훈.임프 [cbuilder] 3791 읽음    2012-11-19 11:13
어차피 로컬 한 머신에서 파이어버드와 호출하는 애플리케이션을 모두 설치해서 쓰실 거라면, 아무래도 로컬 연결이 더 낫습니다. 파이어버드의 로컬 연결은 XNET라는 전용 프로토콜을 사용하는데, 당연히 TCP/IP보다 속도가 훨씬 빠르거든요.

간단한 몇 레코드의 경우엔 너무 미미해서 무시할 수 있는 문제지만, 아주 많은 레코드(예를 들면 수천 레코드 이상)를 쿼리하거나 대량으로 인서트하거나 하는 경우에 속도 차이가 확 벌어집니다. 그래서, 로컬 연결이 안되는 문제의 원인을 파악하고 해결하신 후 로컬 연결을 사용하시는 것을 더 권하고 싶습니다.

로컬 연결이 안되고 TCP/IP 연결만 된다면, 아무래도 데이터베이스 파일(.fdb)이나 그 경로의 권한 문제일 가능성이 먼저 생각나는데요. 로컬 연결은 안되는데 TCP/IP 연결이 되는 이유는, TCP/IP 연결을 하는 주체가 사용자 애플리케이션이 아니라 파이어버드 서버 프로세스인 fbserver.exe이기 때문입니다.

윈도우98/ME 이하가 아닌 한 fbserver.exe는 일반 애플리케이션이 아닌 서비스로 동작하는데요. 서비스를 돌리는 사용자 계정이 LOCAL SYSTEM 계정입니다. 권한 상승조차 필요하지 않은 최고 권한 계정이고, 따지자면 administrator보다 더 높죠. 그래서 당연히 로컬 머신 내의 모든 경로나 동작에 대해 권한이 허용되어 있고, 그래서 로컬 디스크의 어떤 경로에 있든 모든 파일에 다 접근할 수 있습니다.

그에 반해 사용자 애플리케이션이 동작되는 권한은 높아봐야 administrator 권한으로, 로컬 디스크의 몇몇 경로에 대해서는 권한 상승을 해야 접근할 수 있습니다. 그래서, 동일 경로의 동일 fdb 파일에 대해 로컬 연결은 실패하고 TCP/IP 연결은 된다면, 해당 경로가 유저의 권한으로 접근할 수 없는 경로일 가능성이 가장 높습니다.

이런 경우 로컬 연결을 써서 연결하려면 해당 fdb 파일을 애플리케이션 사용자 권한으로 접근할 수 있는 경로로 옮겨주면 간단히 해결되겠지요.

설치 프로그램을 만들어서 배포할 경우 이런 문제가 종종 발생하는 것을 봤는데, Program Files 디렉토리 아래에 프로그램을 설치하면서 동일 디렉토리나 하위 디렉토리에 fdb 파일을 위치시킨 경우입니다. 이게 XP까지는 아무 문제가 없지만, 윈도우7이나 비스타의 경우엔 권한이 부족하게 됩니다. 이럴 때 가장 간단한 해결책은 fdb 파일을 AppData 경로로 위치시키는 것입니다.

그럼...



불새초보 님이 쓰신 글 :
: 박지훈.임프 님이 쓰신 글 :
: : 클라이언트라이브러리 지정의 문제였군요.
: :
: : 그런데 FDS32.dll가 아닌 GDS32.dll인데, 혹시 단순 오타이신 건지 실제로 그렇게 FDS32.dll라고 넣으신 건지...?
: : BDE에서 연결하려면 인터베이스인 척 해야 하기 때문에 GDS32.dll로 바꾸셔야 하는 게 맞습니다.
: :
: : 그럼...
: :
: :
: :
: : 불새초보 님이 쓰신 글 :
: : : 박지훈.임프 님이 쓰신 글 :
: : : : 관리도구 서비스에서 나타나지 않는다면 파이어버드가 서비스로 제대로 설치되지 않은 상태일 것 같은데요.
: : : : 그런데 작업관리자에 fbserver.exe가 나타난다니 좀 이상하네요.
: : : : 재설치를 해보시는 게 어떠실지...?
: : : :
: : : :
: : : : 불새초보 님이 쓰신 글 :
: : : : : 안녕하세요~
: : : : :
: : : : : Windows7 32Bit에서 FireBird(Ver 2.5)를 실행하여도 로컬로만 사용하는DB(GDB)에 접속이 안되고 있습니다.
: : : : : IBExpert및 프로그램(Delphi 7)상에서도 에러(unavailable database)만 뜨네요..
: : : : : 작업관리자에는 fbguard.exe와 fbserver.exe가 떠있는데
: : : : : 관리도구의 서비스에서 보면 항목이 보이지를 않습니다.
: : : : : 혹 이것과 관련이 있을까요...?
: : : : : 이번에 FireBird를 처음사용하는데 도움 부탁드립니다.
: : :
: : : 우선 빠른답변에 감사드립니다.
: : :
: : : IBExpert에서 접속이 안되는 문제는 Client Library File을 FBClient.dll로 바꾸어 주니 접속이 정상적으로 되고 있습니다.
: : : 프로그램이나 BDE등은 FBClient.dll을 FDS32.dll로 이름을 바꾸어 System32폴더에도 넣어 보았는데도 여전히
: : : 안되고 혹시나 해서 파이어버드도 인스톨시의 옵션을 경우의 수를 따져가며 바꿔서 설치를 해보았으나 접속이 안되네요.
: : : win XP에서는 잘되는데 win 7만 이러네요.
: : :
: : : 다시 한번 도움 부탁드립니다.
: : : 즐거운 하루 되세요~
: FDS32.dll은 오타구요^^
: DB경로상에 IP주소(127.0.0.1)를 넣어주니 정상적으로 작동하고 있습니다.
: XP에서는 문제가 없었는데 win7에서는 DB를 찾지를 못한것 같습니다.
: 임프님의 빠른답변에 감사드립니다. 즐거운 한 주 되세요~

+ -

관련 글 리스트
4525 Windows7 32Bit 에서 DB(GDB)접속이 안됩니다. 불새초보 2243 2012/11/12
4526     Re:Windows7 32Bit 에서 DB(GDB)접속이 안됩니다. 박지훈.임프 2278 2012/11/13
4527         Re:Re:Windows7 32Bit 에서 DB(GDB)접속이 안됩니다. 불새초보 2184 2012/11/13
4528             Re:Re:Re:Windows7 32Bit 에서 DB(GDB)접속이 안됩니다. 박지훈.임프 2394 2012/11/13
4532                 답변감사드립니다. 불새초보 2152 2012/11/19
4533                     파이어버드가 로컬 연결은 안되고 TCP/IP 연결만 된다면 박지훈.임프 3791 2012/11/19
4534                         정말 감사합니다. 이번에 많이 배우게 되었습니다. 불새초보 2064 2012/11/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.