logstash-input-jdbc: Logstash 6.2.1 and jdbc 4.3.3 Java::JavaSql::SQLException: No suitable driver found for jdbc:sybase:Tds:server:port
Hello, I’m experiencing issue with input jdbc plugin after upgrade to logstash 6.2.1 or 6.2.0 from 6.1.3. Same config, same setting, only different logstash package. If I downgrade the logstash everything works fine again.
Thank you for your help
- Version: Logstash 6.2.1 and jdbc 4.3.3
- Operating System: CentOS 7
- Config File:
input {
jdbc {
id => "xxx"
jdbc_driver_library => "/etc/logstash/syb-jconn.jar"
jdbc_driver_class => "com.sybase.jdbc4.jdbc.SybDriver"
jdbc_default_timezone => "Europe/Prague"
jdbc_connection_string => "jdbc:sybase:Tds:server:port"
jdbc_user => "xxx"
jdbc_password => "xxx"
add_field => { "server" => "xxx" }
last_run_metadata_path => "/var/lib/logstash/metadata/xxx"
schedule => "3-59/5 * * * *"
tracking_column => "eventtime"
use_column_value => "true"
tracking_column_type => "timestamp"
statement => "xxx"
}
- Sample Data:
/var/log/logstash/:
[ERROR][logstash.inputs.jdbc ] Unable to connect to database. Tried 1 times {:error_message=>"Java::JavaSql::SQLException: No suitable driver found for jdbc:sybase:Tds:server:port"}
journalctl:
rufus-scheduler intercepted an error:
job:
Rufus::Scheduler::CronJob "0-59/3 * * * *" {}
error:
2030
Sequel::DatabaseConnectionError
Java::JavaSql::SQLException: No suitable driver found for jdbc:sybase:Tds:server:port
java.sql.DriverManager.getConnection(java/sql/DriverManager.java:689)
java.sql.DriverManager.getConnection(java/sql/DriverManager.java:247)
java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:498)
org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(org/jruby/javasupport/JavaMethod.java:423)
org.jruby.javasupport.JavaMethod.invokeStaticDirect(org/jruby/javasupport/JavaMethod.java:355)
RUBY.connect(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/adapters/jdbc.rb:191)
RUBY.make_new(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/connection_pool.rb:126)
RUBY.assign_connection(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/connection_pool/threaded.rb:192)
RUBY.acquire(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/connection_pool/threaded.rb:133)
RUBY.hold(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/connection_pool/threaded.rb:90)
RUBY.synchronize(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/database/connecting.rb:269)
RUBY.test_connection(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/database/connecting.rb:279)
RUBY.connect(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/database/connecting.rb:58)
RUBY.connect(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/sequel-5.4.0/lib/sequel/core.rb:116)
RUBY.block in jdbc_connect(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-jdbc-4.3.3/lib/logstash/plugin_mixins/jdbc.rb:112)
org.jruby.RubyKernel.loop(org/jruby/RubyKernel.java:1292)
RUBY.open_jdbc_connection(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-jdbc-4.3.3/lib/logstash/plugin_mixins/jdbc.rb:161)
RUBY.execute_statement(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-jdbc-4.3.3/lib/logstash/plugin_mixins/jdbc.rb:227)
RUBY.execute_query(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-jdbc-4.3.3/lib/logstash/inputs/jdbc.rb:271)
RUBY.block in run(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-jdbc-4.3.3/lib/logstash/inputs/jdbc.rb:250)
org.jruby.RubyProc.call(org/jruby/RubyProc.java:289)
org.jruby.RubyProc.call19(org/jruby/RubyProc.java:273)
org.jruby.RubyProc$INVOKER$i$0$0$call19.call(org/jruby/RubyProc$INVOKER$i$0$0$call19.gen)
RUBY.do_call(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:234)
RUBY.do_trigger(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:258)
RUBY.block in start_work_thread(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:300)
org.jruby.RubyProc.call(org/jruby/RubyProc.java:289)
org.jruby.RubyProc.call19(org/jruby/RubyProc.java:273)
org.jruby.RubyProc$INVOKER$i$0$0$call19.call(org/jruby/RubyProc$INVOKER$i$0$0$call19.gen)
RUBY.block in start_work_thread(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:299)
org.jruby.RubyKernel.loop(org/jruby/RubyKernel.java:1292)
org.jruby.RubyKernel$INVOKER$s$0$0$loop.call(org/jruby/RubyKernel$INVOKER$s$0$0$loop.gen)
RUBY.block in start_work_thread(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:289)
org.jruby.RubyProc.call(org/jruby/RubyProc.java:289)
org.jruby.RubyProc.call(org/jruby/RubyProc.java:246)
java.lang.Thread.run(java/lang/Thread.java:748)
tz:
ENV['TZ']:
Time.now: 2018-02-08 17:20:00 +0100
scheduler:
object_id: 2014
opts:
{:max_work_threads=>1}
frequency: 0.3
scheduler_lock: #<Rufus::Scheduler::NullLock:0x2ed725aa>
trigger_lock: #<Rufus::Scheduler::NullLock:0xae4f313>
uptime: 308.93567199999995 (5m8s935)
down?: false
threads: 2
thread: #<Thread:0x25b84145>
thread_key: rufus_scheduler_2014
work_threads: 1
active: 1
vacant: 0
max_work_threads: 1
mutexes: {}
jobs: 1
at_jobs: 0
in_jobs: 0
every_jobs: 0
interval_jobs: 0
cron_jobs: 1
running_jobs: 1
work_queue: 0
- Steps to Reproduce: Nothing special, just start logstash.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 24 (8 by maintainers)
Commits related to this issue
- Load the driver with the system class loader. Fixes issue loading some JDBC drivers in Logstash 6.2+ Fixes #263 — committed to jakelandis/logstash-input-jdbc by jakelandis 6 years ago
- Load the driver with the system class loader. Fixes issue loading some JDBC drivers in Logstash 6.2+ Related to: [JDBC input - #263](https://github.com/logstash-plugins/logstash-input-jdbc/issues/263... — committed to jakelandis/logstash-filter-jdbc_streaming by jakelandis 6 years ago
- Load the driver with the system class loader. Fixes issue loading some JDBC drivers in Logstash 6.2+ Related to: [JDBC input - #263](https://github.com/logstash-plugins/logstash-input-jdbc/issues/263... — committed to logstash-plugins/logstash-filter-jdbc_streaming by jakelandis 6 years ago
Hello,
I had the similar issue with Logstash 6.2.2. I tried to connect to Redshift database using jdbc driver and got the same error as above.
Logstash is trying to locate the driver library (i.e. redshift.jar file) in it’s classpath - “/logstash-home-dir/logstash-core/lib/jars/”. Hence when I copied my redshift.jar file to the classpath, it worked fine.
Thanks, Sneha