Tuesday, July 6, 2010

OSB: Changing the JNDIProvider for EJB

This is what happens if you change target to a EJB, then upgrade the JNDIProvider to point to the new target.... it looks like OSB is caching the remote reference to the EJB, and doesn't clear the cache when you change the JNDIProvider... this doesn't happen so often, but still it's an operational issue and the only workaround I could figure out is restarting the Admin and the MS!
The other solution is to disable JNDI Cache on the JNDIProvider.



 
  env:Server
  Failed to invoke end component com.bea.wli.sb.transports.ejb.Jws (POJO), operation=getLocationsByName
 -> Failed to invoke method
 -> The object identified by: '324' could not be found.  Either it was has not been exported or it has been collected by
 the distributed garbage collector.; nested exception is: java.rmi.NoSuchObjectException: The object identified by: '324
' could not be found.  Either it was has not been exported or it has been collected by the distributed garbage collector
.
  
   javax.ejb.EJBException: The object identified by: '324' could not be found.  Eit
her it was has not been exported or it has been collected by the distributed garbage collector.; nested exception is: ja
va.rmi.NoSuchObjectException: The object identified by: '324' could not be found.  Either it was has not been exported o
r it has been collected by the distributed garbage collector.
java.rmi.NoSuchObjectException: The object identified by: '324' could not be found.  Either it was has not been exported
 or it has been collected by the distributed garbage collector.
  
 




2 comments:

Alejandro Vidal Quiroga said...

Hi, in some cases you can deactivate the BS pointing to the EJB, using the Operative Configuration tab, and activate it again to reset the object cache.

grepstar said...

Thanks, Alejandro. Your solution worked for me.