[英]Can I use Delphi 10.3 or 10.4 Professional to connect to a remote Firebird database using FireDAC?
[英]How can I prevent Delphi from throwing exception when 2 transactions are open (using FireDac component and FireBird dbms)?
我使用FireDac和HTTPServer组件通过Delphi构建了一个Web API:该应用程序使用了由firebird驱动的dbms。
一切运行良好,直到我开始模拟对同一API端点的多个请求。 这导致内部服务器异常报告已打开事务时正在打开第二个事务。
我知道所有连接在使用后都会关闭,并且为了防止内存泄漏也要销毁对象,但是我不明白为什么应用程序会触发异常。
有什么帮助或挑战可以促使我寻求解决方案吗?
HTTP服务器将同时处理多个请求。
因此,如果两个客户端尝试同时访问相同的资源(URL),则服务器将需要两组数据库连接和数据访问组件。
如果您的应用程序使用不同的对象(每个客户端一组),并且以线程安全的方式执行此操作,则两个连接均应正常工作。
但是,如果仅使用一个数据模块来满足所有传入的HTTP请求,则需要正确的序列化。 使用后关闭连接无济于事,一次只能在一个线程中使用连接。
因此,要了解错误的潜在原因,需要有关服务器实际设计的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.