2010-02-09 1 views
1

Возможно, это был основной вопрос, но я попытался найти его и не смог найти ответа.Как выполнить запрос службы SQL Browser на Java?

Мне нужно составить список всех SQL-серверов в сети. Это очень легко сделать с использованием .NET framework (System.Data.Sql.SqlDataSourceEnumerator), но есть ли относительно простой способ сделать это и в java? Пока я занимался своими исследованиями, я столкнулся с возможностью прослушивания в разных портах, но это казалось неприемлемым.

Мне сказали, что я использую службу SQL Browser Service, но a) Я не смог найти какую-либо информацию о том, как вызывать это из java, и б) автоматически ли загружается эта служба при загрузке SQL Server? Могу ли я предположить, что каждый компьютер в сети, которую я ищу, имеет доступ к этой службе браузера? А если нет, это имеет значение для моего кода?

Спасибо вам большое.

ответ

1

Вы можете позвонить COM компонентов из Java (с соответствующим созданного IDL), так что вы можете использовать DMO или SMO (в зависимости от версии SQL Server)

0

Я нашел довольно легко найти все службы SQL (при условии соответствующего уровня perms), перечислив службы Windows на серверах с использованием WMI. Это «улавливает» различные службы SQL Server, такие как службы Reporting Services и Analysis Services, которые не являются реляционным движком, плюс сервисы, которые в настоящий момент не выполняются. Я использую это для аудита лицензии через PowerShell. Итак, если это кажется полезным, речь идет о вызове WMI с Java. Этот чувак: http://www.vijaykandy.com/archives/121 составил список некоторых вариантов.

1

Я закончил с помощью команды osql -L командной строки, чтобы перечислить все серверы в сети.