2014-11-15 2 views
4

virutal 시스템 (W8.1) 내에서 실행중인 원격 Oracle 데이터베이스에 연결해야하는 작은 응용 프로그램을 만들었습니다.FireDac 및 OSX Mavericks를 사용하여 원격 Oracle XE11 데이터베이스에 연결

sucessfull 연결에서 showmessage가 팝업되어야합니다. installing Oracle Instantclient on Mac OS/X without setting environment variables?

응용 프로그램이 연결 FireDac의 오라클 FireDAC.Phys.Oracle 드라이버를 사용하고 TFDGUIxLoginDialog가 로그인 :

나는 연결할 수 내 응용 프로그램을 보장하기 위해 그 단계를 folled. 실제로

guianderror

아무것도 정말 특별한 : 이것은 윈도우 8.1에서 잘하고 신속하게 작동하고 그림과 같이 매버릭스에서 그러나 10

내가는 OID generation failed 오류가

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    FDConnection1.Connected := True; 
end; 

procedure TForm1.FDConnection1AfterConnect(Sender: TObject); 
begin 
    ShowMessage('Connected'); 
end; 

procedure TForm1.FDConnection1Error(ASender: TObject; 
    const AInitiator: IFDStanObject; var AException: Exception); 
begin 
    ShowMessage(AException.ToString); 
end; 

.

VM의 IP 또는 DNS 이름을 사용하여 연결하면 문제가되지 않습니다. 그것은 전혀 연결되지 않습니다.

오라클의 SQL Developer는 연결할 수 있습니다.

Oralce SQL Developer는 데이터베이스에 연결할 때까지 약 15-20 초가 소요됩니다.

내 응용 프로그램은 연결하는 데 오랜 시간이 걸리지 않습니다. ~ 7 초 후에 실패합니다.

안정적인 연결이 가능하기 전에 시간이 초과 되었습니까?

그렇다면 오류를 throw하기 전에 로그인 프로세스 시간을 연장 할 수있는 방법이 있습니까?

아니면 다른 문제입니까?

약 5 시간 동안 이미이 문제를 파악해 봤다는 점에 유의하십시오.

도움을 주시면 대단히 감사하겠습니다.

+0

[호스트] (http://chaos667.tumblr.com/post/20006357466/ora-21561-and-oracle-instant-client-11-2) 파일을 편집 했습니까? – whosrdaddy

+0

@whosrdaddy 내가 한 첫 번째 작업 중 하나였습니다. 하지만 잘못된 호스트 이름을 입력했습니다. 귀하의 의견에 여러 번 설정을 다시 확인하게하고 올바른 것을 찾았습니다. 다시 한번 감사드립니다. 저장된 내 하루 :) 곧 잘못 된 것에 대한 답변을 게시합니다! – ChrisB

+0

당신이 당신의 문제를 발견했기 때문에 기쁩니다 :) – whosrdaddy

답변

3

여기가 잘못되었습니다.

OSX Mavericks 게스트 시스템의 호스트 파일이 잘못되었습니다. @whosrdaddy처럼

은이 링크에서 설명처럼 호스트 파일을 변경해야 게시 : http://chaos667.tumblr.com/post/20006357466/ora-21561-and-oracle-instant-client-11-2

내가 하나가 공유에서 찾을 수있는 장치 이름을 입력했다 ->을 OSX 제어판의 장치 이름.

osx control panel devicename

그래서 내가 호스트 파일에서이 이름을 입력 한 짓을.

osx hostfile

그러나 나는 잘못된 이름를 사용했다.

올바른 이름 인 127.0.0.1 LionVM.local을 인쇄 한 echo "127.0.0.1 $(hostname)을 사용하여 올바른 이름을 얻었습니다.

나는이 VM을 오랫동안 사용하지 않았고, 얼마 전에 Mavericks로 업그레이드 한 후 devicename의 이름을 변경했다는 것을 잊어 버렸을 것입니다.

이제 내 응용 프로그램에 연결할 수 있습니다.