How to clear JMS Producer Cache

Hi Forum,

i am facing a problem regarding caching. We are using the pub.jms:send to send messages to a destination.
Because of a configuration error, the configured jndi entry for one particular queue was wrong so the pub.jms:send failed.

We corrected the jndi configuration but the pub.jms:send still fails (com.pcbsys.nirvana.client.nChannelNotFoundException).

I tried to reset the cache by “Server → Service Usage → Reset Server Cache” but this did not clear the jms provider cache.
The only way to clear the cache is a restarting the IS, which is not applicable for the productive environment.

IS Version: 9.7

Thank you in advance.

Kind regards,
Martin

Hi Martin,

what about reloading the JNDI Setiings under Settings → Messaging?

Eventually you will have to stop and restart the JMS Alias for your connection to get the JMS cache cleared.

Regards,
Holger

Hi Holger,

i do not see a possibilty to reload the jndi settings. It is only possible to do a “Test Lookup”. Unfortunately that does not help.
As all of our asynchcronous services are using that JNDI Alias, stopping and starting of the JNDI alias is also not an option.

Kind regards,
Martin

Hi Martin,

After performing the “Test Lookup” go to “Settings → Messaging → JMS Settings” and disable and then enable the JMS Connection Alias for the affected JNDI Alias.

Restarting the JMS Connection Alias is faster than restarting the complete IntegrationServer.

Another optiion (not sure if this works for this case) might be to restart UM.

Regards,
Holger

I agree with Holger, the only option to reset JMS producer cache is disabling and enabling the affected JMS connection which is less time consuming than restarting the IS.

Consult SAG support if there is any API to reset the cache for JMS Producer, kindly share the details.

1 Like

Here is what the support said:

[i]Unfortunately there is no option present in IS admin to delete the JMS producer cache .
I checked the source code as well and there also no public API exist which can clear the cache. Cache is cleared ONLY when the JMS connection is stopped .

So to answer your question , The only way to clear the JMS producer cache is to stop and restart the JMS connection alias . There is absolutely so other way by which it can be done .
[/i]

Thanks for your time, Really appreciated!

Good morning forum,

i have created a change request in brainstorm (Feature Request: 04515).
So if you think it would be helpful to clear the JMS Producer Cache manually without restarting a connection alias, please like that change request ;-).

Kind regards,
Martin

1 Like