Подключение к удаленному экземпляру SQL Server Express 2008 в Windows 7 из Java с использованием JDBC (в Mac OS X) - PullRequest
0 голосов
/ 16 января 2012

Я сталкиваюсь с некоторыми проблемами при попытке подключиться к удаленному экземпляру SQL Server 2008 Express из Java.Вот особенности:

  • Сервер БД: Windows 7 под управлением SQL Server 2008 Express
  • Клиент: Mac OS X (10.6.8) под управлением Java (1.6.0) с использованием JDBC4драйверы

Вот код:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    public abstract class SQLDatabase {

        protected Connection c;

        protected void establishConnection() {
            try {
                String url = "jdbc:sqlserver://MYSERVERNAME\\SQLEXPRESS;DatabaseName=MyDatabase;user=sa;password=pwd";
                c = DriverManager.getConnection(url);
            } catch (SQLException e) {
                System.err.println("SQLException: " + e.getMessage());
            }
        }
    }

Когда он попадает в строку "DriverManager.getConnection", он генерирует исключение:

Соединениедля хоста MYSERVERNAME произошел сбой именованного экземпляра sqlexpress.Ошибка: "java.net.UnknownHostException: MYSERVERNAME".Проверьте имена серверов и экземпляров, убедитесь, что ни один брандмауэр не блокирует трафик UDP на порт 1434, а для SQL Server 2005 или более поздней версии убедитесь, что на хосте запущена служба браузера SQL.

Послерасширенный поиск в Google, вот все связанные с этим проблемы, которые я решил, и вещи, которые я пробовал:

SQL Server (на сервере БД Windows 7)

Настройки брандмауэра (на сервере БД Windows 7)

  • Добавлены входящие и исходящие исключения для TCP на порту 1433 (http://www.sevenforums.com/system-security/58817-remote-access-sql-server-express-2008-windows-7-a.html)
  • Добавлены входящие и исходящие исключения для UDP на порту 1434
  • Добавлены исключения для входящих и исходящих сообщений для sqlservr.exe
  • Добавлены исключения для входящего и исходящего трафика для sqlbrowser.exe

версий JRE (на сервере OS X Java)

  • Пробные версии 1.4, 1.5 и 1.6.0, все стот же результат (/5884113/driver-getconnection-zavisaet-s-ispolzovaniem-draivera-sqlserver-i-java-1-6-029)

URL-адрес соединения (в коде Java)

  • Пробовал jdbc: sqlserver: // MYSERVERNAME / SQLEXPRESS; DatabaseName = MyDatabase; user = sa; пароль =pwd
  • Пробовал jdbc: sqlserver: // MYSERVERNAME: 1433; DatabaseName = MyDatabase; user = sa; пароль = pwd
  • Пробовал jdbc: sqlserver: // MYSERVERNAME: 1434; DatabaseName = MyDatabase;user = sa; пароль = pwd
  • Пробовал jdbc: sqlserver: // MYSERVERNAME; DatabaseName = MyDatabase; user = sa; пароль = pwd

На данный момент я просто озадачен,Я что-то упускаю, возможно, связано с запуском JVM на Mac?Буду вечно благодарен за любые идеи!

...