Ошибка подключения сервера jdbc sql на сервере dev

Я использую tomee, JPA и нахожу ниже конфигурации:

tomee.xml:

<!--?xml version="1.0" encoding="UTF-8"?-->
<tomee> <resource id="dataSource" type="DataSource"> JdbcDriver com.microsoft.sqlserver.jdbc.SQLServerDriver JdbcUrl jdbc:sqlserver://******:1433;databaseName=****** UserName ****** Password ****** JtaManaged true </resource>
</tomee>

persistence.xml:

<!--?xml version="1.0" encoding="UTF-8"?-->
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="app"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>dataSource</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"> <property name="hibernate.show_sql" value="false"> <property name="hibernate.format_sql" value="false"> </property></property></property></properties> </persistence-unit>
</persistence>

Это хорошо работает на моем местном. Но когда я попытался развернуть свое приложение на Dev Linux-сервере, я получаю это исключение WARN: HHH000342: Could not obtain connection to query metadata: The TCP/IP connection to the host ******, port 1433 has failed. Error: "null. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.". WARN: HHH000342: Could not obtain connection to query metadata: The TCP/IP connection to the host ******, port 1433 has failed. Error: "null. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".

Единственное различие заключается в том, что localhost - это Windows-машина, а dev-сервер - Linux-машина. Насколько мне известно, для строки подключения, кроме имени хоста, изменений не требуется.

Я также пытался использовать IP-адрес сервера БД вместо имени хоста. Теперь сервер застрял на этом этапе: INFO: HHH000130: Instantiating explicit connection provider:org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider

Пожалуйста, дайте свои предложения.

2 ответа

Я пытался использовать jtds, и это сработало. Поэтому я думаю, что могут возникнуть некоторые проблемы, если мы будем использовать драйвер sql jdbc в linux.

Еще одна проблема. Когда я попытался с jtds, я получил это исключение: java.lang.UnsupportedClassVersionError: net/sourceforge/jtds/jdbc/Driver: Unsupported major.minor version 51.0. Мой локальный JDK был 1,7, а Dev-сервер JDK - 1,6. И я попытался развернуть войну, созданную с моего локального сервера Dev. Как только я сменил сервер JDK на 1.7, эта проблема также была решена.


Это служба Windows, которая запускается на сервере базы данных под названием "SQL Server Browser", который необходимо перезапустить. Служба была указана как запущенная, но она не отвечала на запросы. Как только мы перезапустили эту службу, все снова заработало. Вот еще информация об этой услуге.

http://msdn.microsoft.com/en-us/library/hh510203.aspx

licensed under cc by-sa 3.0 with attribution.