我制作了一个小应用程序,它应该连接到在虚拟机(W8.1)中运行的远程 Oracle 数据库。
在成功的连接上,应该会弹出一个显示消息。
我按照这些步骤确保我的应用程序能够连接: 在 Mac OS/X 上安装 Oracle Instantclient 而不设置环境变量?
该应用程序使用 FireDac 的 OracleFireDAC.Phys.Oracle
驱动程序进行连接和TFDGUIxLoginDialog
登录。
确实没有什么特别的:
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;
这在 Windows 8.1 和 10 中运行良好且快速。
但是在小牛队中,我得到了OID generation failed
如图所示的错误。
如果我使用虚拟机 IP 或 DNS 名称进行连接并不重要。它根本不会连接。
Oracle 的 SQL Developer 能够连接。
Oralce SQL Developer 大约需要 15 到 20 秒才能建立到数据库的连接。
我的应用程序甚至没有尝试那么长时间来连接。约 7 秒后失败。
也许在稳定的连接可用之前它会超时?
如果是这样,有没有办法在抛出错误之前延长登录过程时间?
或者这可能是一个完整的其他问题?
请注意,我花了大约 5 个小时来解决这个问题,但没有成功。
任何帮助是极大的赞赏。