我遇到了Odbc connection.Open()的问题,下面的代码一切正常,直到它开始冻结高延迟 - 糟糕的连接。
我使用TMnetsim作为模拟不良网络连接的工具。代码在高延迟情况下工作正常,但如果有任何数据包丢失,它就会冻结。即使只有一个数据包就足以打破程序。 (它在%3丢失率后开始丢失数据包)
我的问题是,为什么不连接.Open()没有超时并终止?事件我明确地将ConnectionTimeout设置为5,它永远不会超时并永远保持在那里。
//connectionString: "DRIVER={PostgreSQL Unicode};SERVER=127.0.0.1;UID=master;PWD=pass;DATABASE=global;PORT=5432;"
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
try
{
connection.ConnectionTimeout = 5;
connection.Open(); // It hangs here forever... ? why?
}
catch (Exception ex)
{
MessageBox.Show("...");
}
// code continues...
}
嗯,我对数据库编程很陌生,你的答案或建议对我来说非常值得,谢谢。
修改
connectionString:“DRIVER = {PostgreSQL Unicode}; SERVER = 127.0.0.1; UID = master; PWD = pass; DATABASE = global; PORT = 5432;”
数据库是Postgresql 8.x