Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не могу соединиться с БД MSSQL

database
Теги: #<Tag:0x00007f7b61acede0>

(Roy Obenon) #1

Уже всё по перепробовал не могу подключиться и всё. Выдает эспшн в логе
Не удалось установить соединение TCP/IP к серверу localhost/test по порту 1433. Ошибка: “null. Проверьте свойства соединения. Убедитесь, что на сервере запущен экземпляр SQL Server и он принимает TCP/IP-соединения по порту. Убедитесь, что TCP-соединения по этому порту не блокируются брандмауэром.”.

Скачал sqljdbc4.jar и положил в папку lib Jmetera

На сколько я понимаю если я не указываю в URL порт, то он подкл автоматически т.е. к 1433, URL пробывал как jdbc:sqlserver://localhost так и jdbc:sqlserver://localhost:1433/test всё равно нет подключения

Запрос делал вот такой: insert into test.dbo.testable values (‘23’,‘dfgpoint’)

Если подкл к БД через jdbc в IDEA, то всё летит на ура
Кто знает в чем трабла ПОМОГИТЕ


(Александр Таранков) #2

Почему /test в строке подключения? Там точно не ; должна быть?

  1. Попробовать рестартануть jmeter
  2. Убедиться в правильности строки подключения

Ну и урлик в тему


(Roy Obenon) #3

/test - это база к которой идет подкл (она в принципе и не нужна)

урлик тот тоже не идет


(Максим Таран) #4

То есть Вы скопировали URL из IDEA и с ним не подключается?


(Roy Obenon) #5

Совершенно верно! я его еще видоизменял добавляя порт и имя использованной БД, так же использовал урл которые предлагали выше


(Александр Таранков) #6

Мой вопрос был не про название базы test, а про символ /, которого в connection string не должно быть в том смысле, который ты в него вкладываешь. Как имя сервера (хост/SQL-инстанс) это валидно, но как сочетание hostname/dbname - нет. И именно об этом сообщает текст исключения Не удалось установить соединение TCP/IP к серверу localhost/test по порту 1433, он рассматривает localhost/test как имя сервера.

Попробуй указать валидное значенив строки подключения в формате jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;, примеры смотри здесь


(Максим Таран) #7

Собственно поэтому я и удивился, почему скопированый url из идеи не работает


(Roy Obenon) #8

Причину нашел!
URL: jdbc:sqlserver://localhost
JDBC Driver: com.microsoft.sqlserver.jdbc.SQLServerDriver

Запрос insert into test.dbo.testable values (‘23’,‘dfgpoint’)
при первом подключение всё ОК

при втором тест не проходит - причина в том (что я затупил при создание табл и поставил в поле id тип varchar), при выполнение повторного прогона теста в логе ошибок нет, а тест не пройден. Нельзя добавлять в поле id одинаковые записи.

Еще вопрос по многопоточности?
Получается выбирая 100 пользователей за 1 сек, они по очереди будут обращаться к табл, при этом блокировок в MSSQL не будет, а есть ли возможность с Jmetera сделать чтобы обращение сразу было всех 100 потоков? или писать утилиту самому?


(Александр Таранков) #9

Jmeter как раз во много потоков запускает сэмплеры


(Roy Obenon) #10

Ну так они работают последовательно, пока не отработает 1-й не запускается 2-й, или не так?


(Максим Таран) #11

Нет. Каждый пользователь запускается параллельно.


(Roy Obenon) #12

Странно а почему тогда не вкл блокировки в mssql?


(Максим Таран) #13

Ну, смотря, что подразумевать под блокировками. Если то, что один не можёт вставлять, пока второй не вставит. Нафиг такая СУБД. :smile: