Missing instrumented class in my tc-config.xml

Wessel, Keith William kwessel at illinois.edu
Tue Aug 7 15:54:32 EDT 2012


We've just had our first SP hit our IDP cluster that has forced authentication enabled, and it looks like they found a missing instrumented class in our tc-config.xml. As this isn't in the tc-config.xml on the wiki either, I thought I should ask before adding it to make sure Terracotta's coaching me right.

Below is the block from the idp-process.log spit out by Terracotta telling me what to do.

1. Is it safe to add this instrumented-class to tc-config.xml?
2. Do I need to add any honor-transient tag to the block and mark it as true as is seen in many of the others?
3. Is there a reason this sin't in tc-config.xml on the wiki?

Thanks. Block frm thelog is:

Attempt to set the field of a shared object to an instance of a non-portable class. This
unshareable class has not been included for sharing in the configuration.

For more information on this issue, please visit our Troubleshooting Guide at:

Thread                 : TP-Processor144
JVM ID                 : VM(35)
Non-portable field name: edu.internet2.middleware.shibboleth.idp.authn.LoginContext.authnException
Non-included class     : edu.internet2.middleware.shibboleth.idp.authn.ForceAuthenticationException

Under most circumstances, you should only be adding classes for your
application. If you are adding classes for frameworks or code not written by
you, then you should consider finding a Terracotta Integration Module (TIM)
that matches the framework you are using.

As an example, if the non-portable class listed below is
net.sf.ehcache.CacheManager, you should consider using the ehcache TIM.

It is also possible that some or all of the classes above are truly
non-portable, the solution is then to mark the referring field as transient.
For more information on non-portable classes see the Troubleshooting Guide.

Action to take:

1) Reconfigure to include the unshareable classes
   * edit your tc-config.xml file
   * locate the <dso> element
   * add this snippet inside the <dso> element


   * if there is already an <instrumented-classes> element present, simply add
     the new includes inside it


PS: Scott, I'm starting to think you're right that life would be easier without Terracotta. No, I'm past starting, actually.

More information about the users mailing list