Tomcat 7 - проблема с соединением JTDS SQL Server - PullRequest
0 голосов
/ 03 октября 2019

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

Справочная информация: у нас есть 3 экземпляра EC2 в AWS. Одним из них является сервер базы данных MS SQL Server. Два являются веб-серверами, один работает на Ubuntu, другой - на CentOS. Были некоторые обновления, которые нужно было выпустить, и я смог выпустить их на сервер Ubuntu без проблем. Все сайты функционируют и получают доступ к базе данных в обычном режиме. Однако когда я отправил обновления на сервер CentOS, я обнаружил, что Tomcat больше не работает. После попытки выяснить это, в конце концов я сдался и переустановил Tomcat. Теперь у меня нормально работает tomcat, но у меня проблема с подключением к серверу базы данных. Опять же, есть еще один сервер в том же VPC, который может устанавливать соединения, и я могу подключиться по телнету с проблемного сервера к серверу базы данных через порт 1433. Это НЕ проблема с подключением.

Проблема: я не могуиспользовать драйвер Microsoft JDBC для доступа к базе данных. Когда я пытаюсь сделать это из базового Java-приложения, я получаю

com.microsoft.sqlserver.jdbc.SQLServerException: драйвер не может установить безопасное соединение с SQL Server с помощью Secure Sockets Layer (SSL) шифрование. Ошибка: «Секретная ошибка администратора RSA». ClientConnectionId: 6937523b-5b55-400a-8189-defa007049f7

Однако, когда я использую JTDS для доступа к базе данных, это указывает на успешное соединение. В Tomcat я вижу другую ошибку при использовании драйвера JDBC Microsoft:

com.microsoft.sqlserver.jdbc.SQLServerException: TCP / IP-соединение с хостом 10.205.164.153, порт 1433, не удалось. Ошибка: «В доступе отказано (подключение не удалось). Проверьте свойства подключения. Убедитесь, что экземпляр SQL Server запущен на хосте и принимает подключения TCP / IP к порту. Убедитесь, что подключения TCP к порту не заблокированыбрандмауэр ".

Итак, я попытался использовать JTDS в Tomcat. Тем не менее я все еще не могу подключиться, получая эту ошибку:

java.sql.SQLException: Сетевая ошибка IOException: Отказано в доступе (ошибка подключения)

Устранение неполадок: как ранеезаявил, что я проверил подключение к экземпляру SQL Server. Я также проверил, что Java может подключаться с использованием JTDS. Я изменил файл Catalina.policy, чтобы явно разрешить подключение к серверу базы данных через порт 1433. Есть ли какая-либо другая причина, по которой он выдает эту ошибку? Это связано с SSL? Требуется ли для недавнего обновления Java сертификат SSL на моем сервере базы данных? Все наши взаимодействия с базой данных являются внутренними только для VPC, поэтому сертификат пока еще не кажется необходимым. Есть ли способ получить больше результатов отладки? Любая помощь будет принята с благодарностью, так как это действительно приводит нас в беду.

...