Проблема с Logsta sh -Plug in-JMS и Weblogi c 12.2.1 - PullRequest
2 голосов
/ 31 января 2020

Я установил Weblogi c 12.2.1 и последнюю версию Logsta sh 7.5.2, а также плагин JMS v3.1.2. Я борюсь с плагином JMS, и я уже установил .conf и .yml, но он не работает!

В поле destination документация и примеры не предлагают имени JNDI, просто имя очереди или топи c!

Ввод 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"
   }
}

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

и вывод Логста sh:

[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

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Через несколько дней я понял это! В поле назначения используйте: jmsmodulename! Destinationname (из документов Oracle) для кластерной среды !! Ни "/", ни "./"

0 голосов
/ 31 января 2020

Logsta sh не использует JNDI для поиска пункта назначения, а просто использует JMS API для вызова javax.jms.Session.createQueue () (если pubsub равно false) или javax.jms.Session.createTopi c () (если pubsub равно true).

Хотя я не очень знаком с WebLogi c, кажется возвращаемое сообщение об ошибке довольно ясно:

Имя назначения, переданное в createTopi c или createQueue "DemoQ", недопустимо. Если имя назначения не содержит символа «/», оно должно быть именем распределенного назначения, доступного в кластере, к которому подключен клиент. Если он содержит символ «/», то строка перед «/» должна быть именем сервера JMS или «.». Строка после "/" является именем желаемого пункта назначения. Если используется версия строки "./", то любое место назначения с заданным именем в локальном экземпляре сервера WebLogi c

Указывает, что ваша конфигурация недействительна, особенно этот бит:

destination => "DemoQ"

Также рекомендуется использовать это вместо:

destination => "./DemoQ"
...