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

Most upvoted comments

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