JMS error

For a new JMS connection, I created new JNDI provider alias with the existing broker, JMS topic and trigger. Getting below error while doing a test lookup.

Test lookup failed for primary JNDI provider URL “wmjmsnaming://Broker@host:port”: Cannot instantiate class: com.webMethods.jms.naming.WmJmsNamingCtxFactory

Kindly suggest on how this can be fixed.

Note: There are 2 more JNDI, JMS topic, triggers exist in the same server.

Hi Venkat,

can you do a test lookup on the other existing JNDI successfully or not?

Which version of wM are you using?

Any differences between the three JNDIs that might be responsible for the error?

Regards,
Holger

Do you have access jmsadmin.properties

There are other existing JMS connections and their test lookup works just fine. wM version is 7.1.2.

I’m not sure, where is “jmsadmin.properties” located?

Just to add, the new JNDI provider alias is same(InitialContextFactory, Provider URL) as other two except name and description.

Hi Venkat,

sounds strange.

Can you share some more details how the JNDI-Providers and JNDI-Aliases are configured?

Can you share some more Fix level details (Broker, Java API, JMS API)?

Regards,
Holger

Hi Holger,

Existing JMS Jar files:

/common/lib/wm-jmsclient.jar
/common/lib/ext/jms.jar
/IntegrationServer/lib/jars/wmjmsnaming.jar

While creating the JNDI alias, I used the predefined JNDI templates. In that dropdown I chose webMethods. Provider URL and Other Properties got auto populated(made URL details similar to those existing) just like the other existing JNDI aliases.

Do I need to configure anything in the broker through MWS or any config file changes in config directory?

Aside to this, I tried enabling the JMS connection with one of the existing JNDI alias and the new connection factory, below error is thrown.

com.wm.app.b2b.server.jms.JMSSubsystemException: [ISS.0134.9016] Error creating connection factory: [BRN.101.1002] Lookup Error: Lookup failed: Name not found.

Hi Venkat,

please provide Fix-Levels for Broker, Java-API, JMS-API.

Latest Fixes I know of:

  • BR_7.1.2_Core_Fix17 (“Version 7.1.2.17.290 110712” as output of “Broker/bin/awbroker -version”)
  • BR_7.1.2_Java_API_Fix5
  • BR_7.1.2_JMS_API_Fix11

Is there a wm-brokerclient.jar, wm-jmsadmin.jar, wm-brokeradmin.jar in either Broker/lib/, common/lib, IntegrationServer/lib/jars or MWS/lib/?

Please note, that they might be spelled different at different locations (with or without the dash).
Make sure that all occurences of these jars-files across your installations have the same versions.

Beside configuring the JNDI-Provider in the MWS, you will have to configure the connection factories and destinations and create the QueueClients (for Queue Destinations) or the DocumentTypes (for Topic Destinations) before the connection will work.
As of your error message the IS (?) is unable to lookup the connection factory in the JNDI-Provider.

Can you share the configuration details of JNDI-Alias in IS, JNDI-Config and ConnectionFactory in MWS/Broker?
You can anoymize broker address and port if you wish to.

Regards,
Holger

JNDI Provider Alias Configuration:
JNDI Alias Name wMTopicProvider
Description wMTopicProvider
Initial Context Factory com.webMethods.jms.naming.WmJmsNamingCtxFactory
Provider URL wmjmsnaming://@:6849
Provider URL Failover List
Security Principal
Security Credentials
Other Properties com.webMethods.jms.naming.clientgroup=admin

Jar files are present in the respective directories. If issue is with any of the jar files or fixes, all JNDI alias lookup should throw the same error but it isn’t, lookup is successful for the already existing JNDI aliases.

Cannot instantiate class: com.webMethods.jms.naming.WmJmsNamingCtxFactory

Looks like this error is thrown only for the new alias. Kindly check and suggest.

Hi Venkat,

this is getting more and more difficult now.

When there are 2 existing Aliases for which this works and 1 new one which does not work,
there must be some differences not yet described here.

Either there is a typo in the new configuration or some other servere configuration mismatch.
Please check the editable Fields of the alias which is not working for any unwanted characters like trailing spaces (an usual copy&paste error) and try again.

Regards,
Holger

Thank you for the suggestions and advice. I will recreate the whole thing again and update the results.

JNDI alias is working now, I recreated the JNDI alias and restarted the server.

Now I’m facing error with the Connection factory and Destination Name.

New JMS alias is not getting enabled with the given new Connection Factory value with below error.

com.wm.app.b2b.server.jms.JMSSubsystemException: [ISS.0134.9016] Error creating connection factory: [BRN.101.1002] Lookup Error: Lookup failed: Name xxxxx not found.

Below error is thrown if I try the Destination name(Topic name) in the corresponding JMS trigger with the other existing successful JMS alias.

javax.naming.NameNotFoundException: [BRN.101.1002] Lookup Error: Lookup failed: Name xxxx not found.; remaining name ‘xxxx’

Kindly suggest on whether this is an issue in webMethods or from the JMS provider itself.

Can I have a look at the JNDI provider URL? It should be like wmjmsnaming://Broker #1@localhost:6849

Yes, It is the same: wmjmsnaming://Broker_1@:

Its not Broker_1 it is Broker #1

That was a typo. Provider URL is fine, verified it.

Am I missing any configuration causing this lookup error in Connection Factory Lookup Name?

Hi Venkat,

did you test the JNDI alias?
This will show you the available lookups for this JMS Provider.

Check the JMS provider for additional characters in the lookup field.

Regards,
Holger