On a freshly installed WebSphere Service Registry and Repository (WSRR) server, when a WSRR trace is enabled, CWSAA0037W warnings about duplicate JNDI names may be seen even though there are no abnormal bindings or behaviours. These warnings can be ignored.
When WSRR is started with the trace string set to *=info:com.ibm.sr.*=all:com.ibm.serviceregistry.*=all
SystemOut.log might contain CWSAA0037W warning messages as shown below:
ServiceRegist W CWSAA0037W: Duplicate JNDI name jms/wsrrexq。
ServiceRegist W CWSAA0037W: Duplicate JNDI name jms/ALEConnectionQueue。
ServiceRegist W CWSAA0037W: Duplicate JNDI name jms/SubscriptionNotificationQueue。
ServiceRegist W CWSAA0037W: Duplicate JNDI namejms/SubscriptionNotificationStagingQueue。
ServiceRegist W CWSAA0037W: Duplicate JNDI name jms/SRTextSearchQueue。
ServiceRegist W CWSAA0037W: Duplicate JNDI name jms/SRTopic。
ServiceRegist W CWSAA0037W: Duplicate JNDI name jms/SuccessTopic。
ServiceRegist W CWSAA0037W: Duplicate JNDI name jms/PolicyTargetTopic。
ServiceRegist W CWSAA0037W: Duplicate JNDI name jms/SubscriptionTopic。
These warnings are not shown if the default trace option of ( *=info) is set.
There might be several reasons for this issue:
1) The JNDI warning of CWSAA0037W most likely means two ears have been installed and started. This may happen when the old profile has not been successfully deleted before a new profile is created with the same profile name or when a new profile is created with the same name as an old corrupted profile.
2) This may happen when the Service Intergration Bus tables are not up-to-date and needs to be cleaned.
Diagnosing the problem
Below are the JNDI names used when WSRR application is deployed:
All of the JNDI names are related to Service Integration Bus. The binding is done when the WSRR profile is created and WSRR is deployed. Since WSRR does not create the JNDI bindings and uses the above for only lookup, and no error messages are seen in the deploy log these messages can be safely ignored..
Resolving the problem
If you do not want to see the warning with the trace enabled, the following options can be used:
1) Create a new empty profile with a different name and deploy WSRR.
2) Try without any configuration profiles and data in the WSRR database. To do this, stop the WebSphere Application Server and log on to the DB2 server. Issue the following DB2 commands to empty the WSRR tables and remove the existing configuration profile:
connect to <wsrr_SIB_database_name>
set current schema = <wsrr_SIB_schema_name>
delete from statement
delete from subject
delete from predicate
delete from object
Substitute WSRR Service Integration Bus DB Name for wsrr_SIB_database_name and the schema name of WSRR Service Integration Bus DB Schema for wsrr_SIB_schema_name in the above commands.
As these warnings are shown only when the trace is turned on and they are non-intrusive, these can safely be ignored.