I use dockerized version of logstash and would like to use Oracle AQ as an input.
This is my ./pipeline/logstash.conf file:
input {
jms {
broker_url => 'jdbc:oracle:thin:@server:1521:sid'
destination => 'MYQUEUE'
factory => 'oracle.jms.AQjmsInitialContextFactory'
pub_sub => false
use_jms_timestamp => false
username => 'usr'
password => 'pwd'
keystore => ''
keystore_password => ''
truststore => ''
truststore_password => ''
include_headers => false
include_properties => false
include_body => true
selector => ''
factory_settings => {
exclusive_consumer => true
}
require_jars => [
'/usr/share/logstash/jars/aqapi-19.3.0.0.jar',
'/usr/share/logstash/jars/javax.jms-api-2.0.1.jar',
'/usr/share/logstash/jars/jta-1.1.jar',
'/usr/share/logstash/jars/ojdbc8-21.5.0.0.jar',
'/usr/share/logstash/jars/xdb-19.3.0.0.jar',
'/usr/share/logstash/jars/xmlparserv2-19.3.0.0.jar'
]
}
}
output {
stdout {
codec => rubydebug
}
}
When I run the container or execute: $bin> . ./logstash, I receive this error:
[ERROR][logstash.agent ] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of [ \\t\\r\\n], \"#\", \"{\", \"}\" at line 3, column 58 (byte 74) after input {\n jms {\n broker_url => 'jdbc:oracle:thin:@devana:1521:stenar1'", :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:32:in `compile_imperative'", "org/logstash/execution/AbstractPipelineExt.java:210:in `initialize'", "org/logstash/execution/JavaBasePipelineExt.java:72:in `initialize'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:48:in `initialize'", "org/jruby/RubyClass.java:909:in `new'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:50:in `execute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:381:in `block in converge_state'"]}
What am I doing wrong? Is this the proper way to connect to Oracle queue? Thank you.