1

私はMATLABを使用して、AWSでホストされているデータベースに接続しています(データベースツールボックスを使用)。そのために、データベースのURLをローカルポートとして提供し、AWSホストへのSSHトンネルを作成します。

問題は、コードを実行するためにこのトンネルを作成する必要があることです。そうでない場合、エラーメッセージは生成されませんが、MATLABがハングし、強制終了する必要があります。このトンネルが欠落している場合にトラブルシューティングできないユーザーにこのコードをデプロイしたいと思います。

私の質問は、MATLABでローカルポートが開いているかどうかを確認する方法はありますか?トンネルが設定されているかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

1

Database Toolbox を使用しているため、logintimeout関数を使用することをお勧めします。ドキュメントが言うように:

注意 logintimeout の値を指定せず、MATLAB セッションがデータベース接続を確立できない場合、MATLAB セッションがフリーズすることがあります。

そして、コードを try/catch ブロック内にラップします

于 2011-10-17T14:28:00.610 に答える
0

私は Matlab の TCP オブジェクトに精通していませんがsystem、プログラムを実行して終了コードを返すコマンドがあります(ドキュメントを参照)。したがって、おそらくその仕事をするのは、ローカルポートに接続しようとする小さなプログラムまたはスクリプト (必要に応じて移植可能) です。

あるいは、小さなプログラム/スクリプトが実際にトンネルを開き(または再度開き)、0成功時に戻ることもできます。(これにより、Matlab が fork プロセスを処理する方法の問題が追加される可能性があります。それをどのように処理するかはわかりません。)

おそらく、開いているかどうかを確認し、そうでない場合は再度開く方法があります-Matlabを介したハウスキーピングですが、手がかりがありません。

于 2011-10-17T07:44:37.540 に答える