1

我正在使用 MATLAB 连接到托管在 AWS 中的数据库(使用数据库工具箱)。为此,我将数据库的 URL 作为本地端口提供,并创建到 AWS 主机的 SSH 隧道。

问题是需要创建此隧道才能运行代码。如果不是,则不会生成错误消息,但 MATLAB 会挂起并需要终止。我想将此代码部署给如果此隧道丢失将无法进行故障排除的用户。

我的问题是:有没有办法检查在 MATLAB 中打开的本地端口?如何检查隧道是否已设置?

4

2 回答 2

1

由于您使用的是数据库工具箱,因此您可能需要使用logintimeout函数。正如文档所说:

注意 如果您没有为 logintimeout 指定值并且 MATLAB 会话无法建立数据库连接,您的 MATLAB 会话可能会冻结。

你会将你的代码包装在一个 try/catch 块中

于 2011-10-17T14:28:00.610 回答
0

我不熟悉 Matlab 的 TCP 对象,但是有一个system执行程序的命令,返回它的退出代码(参见它的文档)。所以可能做这项工作的是一个小程序或脚本(根据需要可移植),它试图连接到本地端口。

或者,小程序/脚本实际上可以打开(或重新打开)隧道并返回0成功。(这可能会增加 Matlab 如何处理分叉进程的问题,我不知道它是如何处理的。)

可能有一些方法可以通过Matlab检查是否打开并重新打开 -内务管理,但我不知道。

于 2011-10-17T07:44:37.540 回答