SteelCentral AppInternals JIDA logs and Application logs are filled with 'java.lang.NoSuchMethodError: com/riverbed/instrumentation/da/jida/AwNetManager.getClassWeAreInjectedInto()'

Categories:
Solution Number:
S32226
Last Modified:
2018-04-25
Issue
We have instrumented our Websphere application with SteelCentral AppInternals and upon instrumentation, Websphere application logs are filled with messages like below

[3/2/18 11:17:31:707 CST] 00000001 CSIServerRI   A   JSAS0008I: Server request interceptor registered.
[3/2/18 11:17:31:727 CST] 00000001 SecurityCompo A   JSAS0009I: IOR interceptor registered.
[3/2/18 11:17:31:745 CST] 00000041 SystemOut     O ***** exception: java.lang.NoSuchMethodError: com/riverbed/instrumentation/da/jida/AwNetManager.getClassWeAreInjectedInto()Ljava/lang/Class;
[3/2/18 11:17:31:775 CST] 00000001 SystemOut     O ***** exception: java.lang.NoSuchMethodError: com/riverbed/instrumentation/da/jida/AwNetManager.getClassWeAreInjectedInto()Ljava/lang/Class;
[3/2/18 11:17:31:788 CST] 00000001 SystemOut     O ***** exception: java.lang.NoSuchMethodError: com/riverbed/instrumentation/da/jida/AwNetManager.getClassWeAreInjectedInto()Ljava/lang/Class;
[3/2/18 11:17:31:799 CST] 00000001 SystemOut     O ***** exception: java.lang.NoSuchMethodError: com/riverbed/instrumentation/da/jida/AwNetManager.getClassWeAreInjectedInto()Ljava/lang/Class;
[3/2/18 11:17:31:811 CST] 00000001 SystemOut     O ***** exception: java.lang.NoSuchMethodError: com/riverbed/instrumentation/da/jida/AwNetManager.getClassWeAreInjectedInto()Ljava/lang/Class;


We also see the same kind of exceptions being reported in Java Instrumentation Data Adapter (JIDA) logs too.

Sample snippet from JIDA logs:
 
03/08/2018 09:21:38 PM, JIDA                    , 368412416       , ERROR, java.lang.NoSuchMethodError: com/riverbed/instrumentation/da/jida/AwNetManager.getClassWeAreInjectedInto()Ljava/lang/Class;
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java)
at java.net.Socket.connect(Socket.java:643)
at java.net.Socket.connect(Socket.java:590)
at java.net.Socket.<init>(Socket.java:454)
at java.net.Socket.<init>(Socket.java:234)
at com.riverbed.instrumentation.da.DsaPortRequestor.getPortUsingSocket(DsaPortRequestor.java:165)
at com.riverbed.instrumentation.da.DsaPortRequestor.<init>(DsaPortRequestor.java:67)
at com.riverbed.instrumentation.da.AwDaInstance.getPort(AwDaInstance.java:476)
at com.riverbed.instrumentation.da.AwDaInstance.connect(AwDaInstance.java:425)
at com.riverbed.instrumentation.da.AwDaInstance.startDA(AwDaInstance.java:208)
at com.riverbed.instrumentation.da.jida.AwJida.run(AwJida.java:107)
at java.lang.Thread.run(Thread.java:809)

What is causing this errors and how can we stop them from happening?
 
Solution
The method in the error should be available JIDAcore.jar for Agent version greater than 10.6.5.
If you are running version greater than 10.6.5 and running into the issue, that means it is pretty much an caching issue on Websphere front.

IBM jvm can cache class files with “-Xshareclasses” JVM argument. if it caches our old class bytes of AwNetManager and after the upgrade our new copy-from logic calls into a method that’s only available in new AwNetManager, NoSuchMethod exception is thrown.

The workaround is to add one the below command to Websphere startup arguments.
-Xshareclasses:none or -Xshareclasses:reset

First one tells JVM to not use shared class cache.
Second tells JVM to always rebuild the cache. Either way, JVM should pick up the latest AwNetManager.

More details and instructions on the above commands and how to use them can be found below

To disable shared class cache for WebSphere Application Server, add -Xshareclasses:none as a generic JVM argument through the admin console.  See more information about this in the information center on Tuning the IBM virtual machine for Java.

To destroy the cache, use the following command
C:\.....\sdk\jre\bin>java -Xshareclasses:name=<cachename>,destroy
JVMSHRC010I Shared Cache "cache1" is destroyed

The JVM needs to be restarted once the above changes have been done.

**If you still run into issue, please open a technical support case
Environment
SteelCentral AppInternals, Websphere
Attachments
NOTICE: Riverbed® product names have changed. Please refer to the Product List for a complete list of product names.
Can't find an answer? Create a case