Unable to consume messages through JMS Queues

Hi,

We have a requirement to poll for Update Notification from Database and use JMS messaging for the published documents. So I have configured the JMS as per the below steps and it is working fine with Topics.

However, I need to use JMS Queues for my Requirement and I am getting below error message:

Created the following for the above scenario with Topic:

My webMethods Server:

  1. Created JMS Provider through "Administration → Messaging → Naming Directories → Providers–> Add"

  2. Created Connection Factory through "Administration → Messaging → Naming Directories → Connection Factory → Add Connection Factory"

  3. Created Destination of type "Topic" and specified the JMS Provider created in Step 1 ("Administration → Messaging → Naming Directories → Destinations → Add"

  4. Added the Topic name in Document Types ("Administration → Messaging → Broker Servers → Document Types → Add Topic")

  5. Added the Topic name in "Can Publish & Can Subscribe" tabs in "Administration → Messaging → Client Groups → IS-JMS(CG Name) and admin(CG Name)".

Integration Server Admin:

  1. Created JNDI Provider Alias through "Settings → Messaging → JNDI Settings → Create JNDI Provider Alias" and used the same Provider name as MWS

  2. Created JMS Connection Alias through "Settings → Messaging → JMS Settings → Create JMS Connection Alias" and specified the CF and Provider names created in Step 2 and 6.

  1. Created the Update Adapter Notification in Developer and specified the JMS Connection alias (Created in Step 7) and Destination Lookup name from Step 3 and Destination type as "Topic".

  2. Created a JMS trigger and gave the Adapter Notification document and Flow service.

The service is getting invoked whenever a row is updated in DB Table. The above scenario is working fine with Topics. I am unable to find and add the Queue Document type in "Can Publish and Can Subscribe" for Client Groups (IS-JMS and admin) so not able to perform Steps 4 and 5.
Could anyone of you tell me the process to use JMS Queue for the above requirement?

I am getting the below error message while using JMS Queues:
Unable to send message to JMS provider "JMS_Provider": com.wm.app.b2b.server.jms.JMSSubsystemException: javax.jms.JMSSecurityException: [BRM.10.5001] JMS: No send permissions for event type "JMS::Queues::RequestInfo_Queue_Dest_Nm" in client group "IS-JMS"

Thanks & Regards,
Pradeep

Today,i faced same issue in Nirvana

Reason for this created queue is not having permissions.Please try to check in that way

Hi Pradeep,
Create Destination followed by Create Document Type is for creating TOPICS.

Create Destination followed by Add Queues (Administration > Messaging > Broker Server > Clients) is for creating QUEUES.

If you add the queues like above, you should be able to see Queue name in IS-JMS client group can-publish can-subscribe list.

-Senthil

Hi Pradeep,

it’s a very old topic, you might have got the answer for this issue. but interest of other people responding to this post.

Probably following these steps will resolve that issue

Create the document type"“JMS::Queues::RequestInfo_Queue_Dest_Nm” in MWS
Navigate to IS-JMS client group and select can publish and subscribe then that exception will not be thrown

Regards
Siva

On MWS go to the client group “IS-JMS” in can publish and can subscribe add the documentType “JMS::Queues::RequestInfo_Queue_Dest_Nm”

Let me know if you still have issues.

Hi,

I am getting the below exception, while creating the provider through MWS.

java.lang.Exception: Error: Encountered an exception when adding the JNDI provider.
at com.webMethods.caf.msg.msgutil.ProviderAPI.addProviderAction(ProviderAPI.java:471)
at com.webMethods.caf.msg.addproviders.AddProvidersDefaultviewView.addProvider(AddProvidersDefaultviewView.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
at com.webMethods.caf.faces.application.CAFMethodBinding.invoke(CAFMethodBinding.java:67)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
at javax.faces.component.UICommand.broadcast(UICommand.java:312)
at com.webMethods.caf.faces.component.ViewRoot.broadcastEvents(ViewRoot.java:202)
at com.webMethods.caf.faces.component.ViewRoot.processApplication(ViewRoot.java:116)
at com.webMethods.caf.faces.portlet.PortletLifecycle$InvokeApplicationPhase.execute(PortletLifecycle.java:670)
at com.webMethods.caf.faces.portlet.PortletLifecycle.phase(PortletLifecycle.java:250)
at com.webMethods.caf.faces.portlet.PortletLifecycle.execute(PortletLifecycle.java:145)
at com.webMethods.caf.faces.portlet.FacesPortlet.processAction(FacesPortlet.java:327)
at com.webMethods.portal.framework.portletcontainer.impl.PortletApplicationHandler.process(PortletApplicationHandler.java:477)
at com.webMethods.portal.framework.portletcontainer.servlet.PortletServlet.service(PortletServlet.java:58)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:286)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
at com.webMethods.portal.framework.portletcontainer.PortletContainer.dispatch(PortletContainer.java:218)
at com.webMethods.portal.framework.portletcontainer.PortletContainer.process(PortletContainer.java:129)
at com.webMethods.portal.framework.portletcontainer.PortletContainer.processPortletAction(PortletContainer.java:107)
at com.webMethods.portal.framework.portlet.beans.rest.RestfulPCAHandler.handle(RestfulPCAHandler.java:182)
at com.webMethods.portal.framework.dispatch.DispatchManager.handle(DispatchManager.java:438)
at com.webMethods.portal.framework.dispatch.DispatchManager.handleDispatch(DispatchManager.java:371)
at com.webMethods.portal.framework.impl.PortalServlet.service(PortalServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
at com.webMethods.portal.framework.impl.NTLMFilter.doFilter(NTLMFilter.java:66)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at com.webMethods.caf.faces.servlet.GZIPFilter.doFilter(GZIPFilter.java:32)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at com.webMethods.portal.framework.impl.RequestFilter.doFilter(RequestFilter.java:56)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at com.webMethods.caf.faces.servlet.XSSFilter.doFilter(XSSFilter.java:22)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
at com.webMethods.portal.webApplication.WmWebAppContext.handle(WmWebAppContext.java:161)
at org.mortbay.http.HttpServer.service(HttpServer.java:909)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)

Thanks.

webMethods version?

Can you check whether you can create JNDI provider on IS?

Hi Mahesh,

We are unable to create the JMS even from Integration server also.

Thanks

Can you share the error log when you try to create the same on IS. What is your “Predefined JNDI Templates”

Make sure you have all the required jars in the lib folder under your IS directory.

This is the error, we are getting !!

Test lookup failed for primary JNDI provider URL “remote://ased8031a-1.tsg.ge.com:4447”: Cannot instantiate class: org.jboss.naming.remote.client.InitialContextFactory

yes, we have all the jars in place.

Thanks

Hi,

The issue is fixed now,

Solution: I have created a folder “lib” under server/default path and placed the wmjmsnaming.jar file.
after restarting the MWS and Integration server we are able to create the JMS Provider.

Thanks

Thanks for updating the resolution. Good day :slight_smile: