#jmeter #sybase #jtds
#jmeter #sybase #jtds
Вопрос:
Я пытаюсь подключить Apache Jmeter (5.2.1) к базе данных Sybase 15.7, драйвер, который я использую для установления этого соединения, jtds-1.3.1.jar расположенный в (c:/jmeter/lib/jtds-1.3 . 1.jar ) и при выполнении плана тестирования у меня возникает следующая ошибка:
2020-12-01 23: 38: 15,100 ERROR o.a.j.JMeter: Uncaught exception in thread Thread [Thread Group 1-1,6, main]
java.lang.AbstractMethodError: null
at net.sourceforge.jtds.jdbc.JtdsConnection.isValid (JtdsConnection.java:2833) ~ [jtds-1.3.1.jar: 1.3.1]
at org.apache.commons.dbcp2.DelegatingConnection.isValid (DelegatingConnection.java:874) ~ [commons-dbcp2-2.5.0.jar: 2.5.0]
at org.apache.commons.dbcp2.PoolableConnection.validate (PoolableConnection.java:270) ~ [commons-dbcp2-2.5.0.jar: 2.5.0]
at org.apache.commons.dbcp2.PoolableConnectionFactory.validateConnection (PoolableConnectionFactory.java:389) ~ [commons-dbcp2-2.5.0.jar: 2.5.0]
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory (BasicDataSource.java:2398) ~ [commons-dbcp2-2.5.0.jar: 2.5.0]
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory (BasicDataSource.java:2381) ~ [commons-dbcp2-2.5.0.jar: 2.5.0]
at org.apache.commons.dbcp2.BasicDataSource.createDataSource (BasicDataSource.java:2110) ~ [commons-dbcp2-2.5.0.jar: 2.5.0]
at org.apache.commons.dbcp2.BasicDataSource.getConnection (BasicDataSource.java:1563) ~ [commons-dbcp2-2.5.0.jar: 2.5.0]
at org.apache.jmeter.protocol.jdbc.config.DataSourceElement $ DataSourceComponentImpl.getConnection (DataSourceElement.java:361) ~ [ApacheJMeter_jdbc.jar: 5.2.1]
at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.getConnection (DataSourceElement.java:197) ~ [ApacheJMeter_jdbc.jar: 5.2.1]
at org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler.sample (JDBCSampler.java:79) ~ [ApacheJMeter_jdbc.jar: 5.2.1]
at org.apache.jmeter.threads.JMeterThread.doSampling (JMeterThread.java:627) ~ [ApacheJMeter_core.jar: 5.2.1]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage (JMeterThread.java:551) ~ [ApacheJMeter_core.jar: 5.2.1]
at org.apache.jmeter.threads.JMeterThread.processSampler (JMeterThread.java:490) ~ [ApacheJMeter_core.jar: 5.2.1]
at org.apache.jmeter.threads.JMeterThread.run (JMeterThread.java:257) ~ [ApacheJMeter_core.jar: 5.2.1]
at java.lang.Thread.run (Thread.java:834) [?:?]
2020-12-01 23: 38: 15,104 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2020-12-01 23: 38: 15,105 INFO o.a.j.g.u.JMeterMenuBar: setRunning (false, * local *)
- URL БАЗЫ ДАННЫХ: jdbc: jtds: sybase: // XX.XXX: XXX.XX: XXXX / portal
- Класс драйвера JDBC: net.sourceforge.jtds.jdbc.Driver
- Я исключаю, что это проблема связи, поскольку на том же сервере у меня настроен источник данных, с помощью которого я могу выполнять запросы к базе данных Sybase из приложения
Ответ №1:
Похоже, вы забыли добавить запрос проверки
(Строка) SQL-запрос, который будет использоваться для проверки подключений из этого пула, прежде чем возвращать их вызывающему. Если указано, этот запрос не должен возвращать какие-либо данные, он просто не может вызвать исключение SQLException. Значение по умолчанию равно null. Если не указано, соединения будут проверяться методом isValid(). Примерами значений являются SELECT 1 (mysql), select 1 из dual (oracle), SELECT 1 (MS Sql Server)
Учитывая, что вы используете драйвер JDBC, подходящий как для MSSQL, так и для Sybase, вы можете попробовать SELECT 1
его в качестве запроса проверки:
учитывая, что другие параметры верны, это должно решить вашу проблему:
Дополнительная информация: настоящий секрет построения плана тестирования базы данных с помощью JMeter