jmslogstashweblogic

Problem with Logstash-Plug in-JMS and Weblogic 12.2.1


I have installed Weblogic 12.2.1 and the latest Logstash 7.5.2 version as well as the JMS plugin v3.1.2. I am struggling with the JMS plugin, and I have already set the .conf and .yml, but it doesn't work!

In the destination field the documentation and the examples suggest no JNDI name, just the queue or topic name!

The input of the jms.conf:

input {
   jms {
      pub_sub => false
      include_header => false
      include_properties => false
      include_body => true
      use_jms_timestamp => false
      yaml_file => "/home/chris/Downloads/logstash-7.5.2/config/jms.yml"
      yaml_section => "weblogic"
      destination => "DemoQ"
   }
}

The jms.yml:

weblogic:
  :jndi_name: jms/DemoCF
  :jndi_context:
    java.naming.factory.initial: weblogic.jndi.WLInitialContextFactory
    java.naming.provider.url: t3://localhost:7001
    java.naming.factory.url.pkgs: javax.naming:javax.jms
    java.naming.security.principal: weblogic
    java.naming.security.credentials: *****!
  :require_jars:
    - /home/chris/Downloads/wlogic/fmw_12.2.1.0.0_wls_quick_Disk1_1of1/wls12210/wlserver/server/lib/wlthint3client.jar
    - /home/chris/Downloads/wlogic/fmw_12.2.1.0.0_wls_quick_Disk1_1of1/wls12210/wlserver/server/lib/wljmsclient.jar
    - /home/chris/Downloads/wlogic/fmw_12.2.1.0.0_wls_quick_Disk1_1of1/wls12210/wlserver/server/lib/wlclient.jar

and the ouput of the Logstash:

[2020-01-31T14:50:10,284][WARN ][logstash.inputs.jms ][main] JMS Consumer Died {:exception=>"Java::WeblogicJmsCommon::JMSException", :exception_message=>"[JMSExceptions:045101]The destination name passed to the createTopic or createQueue "DemoQ" is invalid. If the destination name does not contain a "/" character, then it must be the name of a distributed destination that is available in the cluster to which the client is attached. If it does contain a "/" character, then the string before the "/" must be the name of a JMS server or a ".". The string after the "/" is the name of a the desired destination. If the "./" version of the string is used then any destination with the given name on the local WebLogic Server instance

Solution

  • After days I figured this out! In the field of destination use: jmsmodulename!destinationname (from docs of Oracle ) , for a clustered environment!! Neither "/" nor "./"