MATLAB: Убедитесь, что туннель SSH к AWS открыт. - PullRequest
1 голос
/ 11 октября 2011

Я использую MATLAB для подключения к базе данных, размещенной в AWS (используя набор инструментов базы данных). Для этого я предоставляю URL базы данных в качестве локального порта и создаю туннель SSH для хоста AWS.

Проблема в том, что этот туннель должен быть создан для запуска кода. Если это не так, сообщение об ошибке не генерируется, но MATLAB зависает и его необходимо уничтожить. Я хотел бы развернуть этот код для пользователей, которые не смогут устранить неполадки, если этот туннель отсутствует.

У меня вопрос: есть ли способ проверить открытие локального порта в MATLAB? Как мне проверить, настроен ли туннель?

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Поскольку вы используете Database Toolbox, вы можете использовать функцию logintimeout .Как сказано в документации:

Примечание Если вы не укажете значение для logintimeout и сеанс MATLAB не сможет установить соединение с базой данных, ваш сеанс MATLAB может зависнуть.1009 *

И вы бы поместили свой код в блок try / catch

0 голосов
/ 17 октября 2011

Я не знаком с объектами TCP Matlab, но есть команда system, которая выполняет программу, возвращая код завершения (см. Документацию) . Поэтому, вероятно, эту работу выполняет небольшая программа или скрипт (настолько переносимый, насколько это необходимо), который пытается подключиться к локальному порту.

В качестве альтернативы, небольшая программа / скрипт может на самом деле открыть (или заново открыть) туннель и вернуть 0 в случае успеха. (Возможно, это добавляет проблему того, как Matlab обрабатывает процессы разветвления, я не знаю, как он это обрабатывает.)

Вероятно, есть какой-то способ сделать проверку , если открыт, и заново открыть, если не - ведение хозяйства через Matlab, но я понятия не имею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...