# Logstash-input-jms and solace issue

**URL:** <https://discuss.elastic.co/t/logstash-input-jms-and-solace-issue/133899>\
**Category:** Logstash\
**Created:** [May 30, 2018, 3:03pm UTC](https://discuss.elastic.co/t/logstash-input-jms-and-solace-issue/133899 "2018-05-30T15:03:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sachin\_frayne](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sachin_frayne/32/47922_2.png) [@sachin\_frayne](https://discuss.elastic.co/u/sachin_frayne)\
**Post date:** [May 30, 2018, 3:03pm UTC](https://discuss.elastic.co/t/logstash-input-jms-and-solace-issue/133899/1 "2018-05-30T15:03:41Z")

</div>

I am trying to connect the logstash jms input plugin to a Solace PubSub topic with no luck.

The resources I have used:

- Solace PubSub Docker in amazon linux: [https://docs.solace.com/Solace-SW-Broker-Set-Up/Docker-Containers/Set-Up-Docker-Container-AMI-EC2.htm](https://docs.solace.com/Solace-SW-Broker-Set-Up/Docker-Containers/Set-Up-Docker-Container-AMI-EC2.htm)
- solace-pubsub-standard-8.10.0.1092-docker.tar.gz: [http://dev.solace.com/downloads/](http://dev.solace.com/downloads/)
- jms-api: [http://dev.solace.com/tech/jms-api/](http://dev.solace.com/tech/jms-api/)

To test the solace instance I used the java-api:

- [http://dev.solace.com/samples/solace-samples-jms/publish-subscribe/](http://dev.solace.com/samples/solace-samples-jms/publish-subscribe/)

My configuration files for logstash:

logstash-jms.conf

```
input {
  jms {
    yaml_section => "solace"
    include_header => true
    include_properties => true
    include_body => true
    use_jms_timestamp => false
    yaml_file => "/path/to/jms.yml"
    destination => "tutorial/topic"
    pub_sub => true
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "test_jms"
  }
  stdout {
    codec => rubydebug
  }
}

```

jms.yml

```
# Solace
solace:
  :jndi_name: jms/defaultConnectionFactory
  :factory: com.solacesystems.jndi.SolJNDIInitialContextFactory
  :host_name: <IP>
  :channel: LOGSTASH.CHL
  :port: 55555
  :transport_type: 1
  :username: ****
  :jndi_context:
    java.naming.factory.initial: com.solacesystems.jndi.SolJNDIInitialContextFactory
    java.naming.provider.url: smf://<IP>:55555
    java.naming.security.principal: ****
    java.naming.security.credentials: ****
  :require_jars:
    - /path/to/commons-lang-2.6.jar
    - /path/to/commons-logging-1.1.3.jar
    - /path/to/geronimo-jms_1.1_spec-1.1.1.jar
    - /path/to/sol-common-10.3.0.jar
    - /path/to/sol-jcsmp-10.3.0.jar
    - /path/to/sol-jms-10.3.0.jar

```

The error message

```
$ ./bin/logstash -f logstash-jms.conf 
Sending Logstash's logs to /path/to/logs which is now configured via log4j2.properties
[2018-05-30T15:35:23,418][INFO][logstash.modules.scaffold] Initializing module {:module_name=>"netflow", :directory=>"/path/to/modules/netflow/configuration"}
[2018-05-30T15:35:23,442][INFO][logstash.modules.scaffold] Initializing module {:module_name=>"fb_apache", :directory=>"/path/to/modules/fb_apache/configuration"}
[2018-05-30T15:35:23,671][WARN][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-05-30T15:35:24,228][INFO][logstash.runner] Starting Logstash {"logstash.version"=>"6.2.3"}
[2018-05-30T15:35:24,681][INFO][logstash.agent] Successfully started Logstash API endpoint {:port=>9600}
[2018-05-30T15:35:28,247][INFO][logstash.pipeline] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50}
[2018-05-30T15:35:28,715][INFO][logstash.outputs.elasticsearch] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[http://localhost:9200/]}}
[2018-05-30T15:35:28,727][INFO][logstash.outputs.elasticsearch] Running health check to see if an Elasticsearch connection is working {:healthcheck_url=>http://localhost:9200/, :path=>"/"}
[2018-05-30T15:35:28,947][WARN][logstash.outputs.elasticsearch] Restored connection to ES instance {:url=>"http://localhost:9200/"}
[2018-05-30T15:35:29,035][INFO][logstash.outputs.elasticsearch] ES Output version determined {:es_version=>6}
[2018-05-30T15:35:29,040][WARN][logstash.outputs.elasticsearch] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>6}
[2018-05-30T15:35:29,062][INFO][logstash.outputs.elasticsearch] Using mapping template from {:path=>nil}
[2018-05-30T15:35:29,103][INFO][logstash.outputs.elasticsearch] Attempting to install template {:manage_template=>{"template"=>"logstash-*", "version"=>60001, "settings"=>{"index.refresh_interval"=>"5s"}, "mappings"=>{"_default_"=>{"dynamic_templates"=>[{"message_field"=>{"path_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false}}}, {"string_fields"=>{"match"=>"*", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"=>"keyword", "ignore_above"=>256}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date"}, "@version"=>{"type"=>"keyword"}, "geoip"=>{"dynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_point"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}}}}}}}
[2018-05-30T15:35:29,153][INFO][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["//localhost:9200"]}
[2018-05-30T15:35:29,470][INFO][logstash.pipeline] Pipeline started succesfully {:pipeline_id=>"main", :thread=>"#<Thread:0x68ede160 run>"}
[2018-05-30T15:35:29,571][INFO][logstash.agent] Pipelines running {:count=>1, :pipelines=>["main"]}
[2018-05-30T15:35:29,738][WARN][logstash.inputs.jms] JMS Consumer died {:exception=>#<NoMethodError: undefined method `create_connection' for #<Java::ComSolacesystemsJndi::SolJNDIInitialContextFactory:0x13a17dd3>>, :backtrace=>["/path/to/vendor/bundle/jruby/2.3.0/gems/jruby-jms-1.2.0-java/lib/jms/connection.rb:202:in `initialize'", "/path/to/vendor/bundle/jruby/2.3.0/gems/jruby-jms-1.2.0-java/lib/jms/connection.rb:50:in `start'", "/path/to/vendor/bundle/jruby/2.3.0/gems/jruby-jms-1.2.0-java/lib/jms/connection.rb:70:in `session'", "/path/to/vendor/bundle/jruby/2.3.0/gems/logstash-input-jms-3.0.5-java/lib/logstash/inputs/jms.rb:186:in `run_consumer'", "/path/to/vendor/bundle/jruby/2.3.0/gems/logstash-input-jms-3.0.5-java/lib/logstash/inputs/jms.rb:257:in `run'", "/path/to/logstash-core/lib/logstash/pipeline.rb:516:in `inputworker'", "/path/to/logstash-core/lib/logstash/pipeline.rb:509:in `block in start_input'"]}

```

The exception

```
undefined method `create_connection'

```

Thanks

---

<div class="post-metadata">

**Author:** ![sachin\_frayne](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sachin_frayne/32/47922_2.png) [@sachin\_frayne](https://discuss.elastic.co/u/sachin_frayne)\
**Post date:** [June 4, 2018, 8:58pm UTC](https://discuss.elastic.co/t/logstash-input-jms-and-solace-issue/133899/3 "2018-06-04T20:58:07Z")

</div>

I have a fix for the problem above:

Change logstash-jms.yml to

```
input {
  jms {
    yaml_section => "solace"
    include_header => true
    include_properties => true
    include_body => true
    use_jms_timestamp => false
    yaml_file => "/path/to/jms.yml"
    destination => "tutorial/topic"
    pub_sub => true
    runner => "async"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "test_jms"
  }
  stdout {
    codec => rubydebug
  }
}

```

And change jms.yml to

```
# Solace
solace:
  :factory: com.solacesystems.jms.SolConnectionFactoryImpl
  :port: 55555
  :host: <IP>
  :transport_type: 1
  :username: ****
  :password: ****
  :require_jars:
    - /path/to/commons-lang-2.6.jar
    - /path/to/commons-logging-1.1.3.jar
    - /path/to/geronimo-jms_1.1_spec-1.1.1.jar
    - /path/to/sol-common-10.3.0.jar
    - /path/to/sol-jcsmp-10.3.0.jar
    - /path/to/sol-jms-10.3.0.jar

```

I could not however get it to work with the JNDI lookup technique.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 2, 2018, 8:58pm UTC](https://discuss.elastic.co/t/logstash-input-jms-and-solace-issue/133899/4 "2018-07-02T20:58:08Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
