000032681 - How to fix Account Collector for Active Directory when it fails with java.lang.NoClassDefFoundError in RSA Via Lifcycle and Governance (L&G) MyAccessLive

Document created by RSA Customer Support Employee on Jun 14, 2016Last modified by RSA Customer Support Employee on Apr 21, 2017
Version 4Show Document
  • View in full screen mode

Article Content

Article Number000032681
Applies ToRSA Product Set: Identity Management and Governance
RSA Product/Service Type: Enterprise Software
RSA Version/Condition: 6.9.1
Platform: UNIX
Hosted by: MyAccessLive
IssueAccount Collectors with the Data Source Type of Active Directory are no longer testing or collecting in the production environment under MyAccessLive (MAL), but other Account Collectors for Database are working perfectly fine. It only happens to Account Data Collectors for Active Directory, as in the screenshot below:
User-added image
Also found the following details of errors from the aveksaServer.log:
 

02/09/2016 10:40:18.179 ERROR (JMS SessionPool Worker-92) [com.aveksa.server.utils.NodeMessageBroker] 
Exception while getting test data from collector
com.aveksa.server.runtime.ServerException: java.lang.NoClassDefFoundError:
com/aveksa/client/datacollector/collectors/utils/CustomSSLSocketFactory.
Caused by java.lang.ClassNotFoundException:
com.aveksa.client.datacollector.collectors.utils.CustomSSLSocketFactory Caused By
Stack
java.lang.NoClassDefFoundError: com/aveksa/client/datacollector/collectors/utils/CustomSSLSocketFactory
    at com.aveksa.collector.accountdata.LdapAccountDataReaderConfig.configureConnection(LdapAccountDataReaderConfig.java:286)
    at com.aveksa.collector.accountdata.LdapAccountDataReaderConfig.connect(LdapAccountDataReaderConfig.java:346)
    at com.aveksa.collector.accountdata.LdapAccountDataReader$AccountDataDirectoryIterator.<init>(LdapAccountDataReader.java:944)
    at com.aveksa.collector.accountdata.LdapAccountDataReader$TestAccountDataIterator.<init>(LdapAccountDataReader.java:1163)
    at com.aveksa.collector.accountdata.ADAccountDataReader$ADTestAccountDataIterator.<init>(ADAccountDataReader.java:1028)
    at com.aveksa.collector.accountdata.ADAccountDataReader.createTestAccountDataIterator(ADAccountDataReader.java:707)
    at com.aveksa.collector.accountdata.ADAccountDataReader.createTestAccountDataIterator(ADAccountDataReader.java:61)
    at com.aveksa.collector.accountdata.LdapAccountDataReader.getAccountIteratorForTestData(LdapAccountDataReader.java:201)
    at com.aveksa.client.datacollector.collectors.accountdatacollectors.AccountDataCollector.collectData(AccountDataCollector.java:390)
    at com.aveksa.client.datacollector.collectors.accountdatacollectors.AccountDataCollector.collect(AccountDataCollector.java:302)
    at com.aveksa.client.datacollector.collectors.accountdatacollectors.AccountDataCollector.collectTestData(AccountDataCollector.java:277)
    at com.aveksa.client.datacollector.framework.DataCollectorManager.collect(DataCollectorManager.java:533)
    at com.aveksa.client.component.collector.DefaultCollectorManager.actUpon(DefaultCollectorManager.java:203)
    at com.aveksa.client.component.collector.DefaultCollectorManager.handle(DefaultCollectorManager.java:102)
    at com.aveksa.client.component.event.DefaultEventManager.handle(DefaultEventManager.java:60)
    at com.aveksa.client.datacollector.framework.SimpleEventSource.notifyListeners(SimpleEventSource.java:67)
    at com.aveksa.client.component.communication.DefaultCommunicationManager.notifyEvent(DefaultCommunicationManager.java:377)
    at com.aveksa.client.component.communication.ChangeListHandler.applyChanges(ChangeListHandler.java:364)
    at com.aveksa.client.component.communication.ChangeListHandler.access$300(ChangeListHandler.java:58)
    at com.aveksa.client.component.communication.ChangeListHandler$ChangeApplyingRunnable.run(ChangeListHandler.java:275)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.aveksa.client.datacollector.collectors.utils.CustomSSLSocketFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 21 more
End Stack
    at com.aveksa.server.core.DataCollector$TestDataCollectionResult.getBinaryData(DataCollector.java:853)
    at com.aveksa.server.core.DataCollector.getTestData(DataCollector.java:654)
    at com.aveksa.server.core.DataCollector.getTestDataString(DataCollector.java:659)
    at com.aveksa.server.utils.SONDataRequestHandler.handleCollectorTest(SONDataRequestHandler.java:99)
    at com.aveksa.server.utils.SONDataRequestHandler.notifyMessage(SONDataRequestHandler.java:49)
    at com.aveksa.server.message.MessageSubscriberProvider.distributeMessage(MessageSubscriberProvider.java:78)
    at com.aveksa.server.message.SubscriberMDB.onMessage(SubscriberMDB.java:78)
    at sun.reflect.GeneratedMethodAccessor168.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:622)
    at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
    at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:495)
    at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
    at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:116)
    at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
    at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
    at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
    at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:109)
    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
    at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
    at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:402)
    at org.jboss.ejb.Container.invoke(Container.java:960)
    at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:987)
    at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1287)
    at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:266)
    at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:891)
    at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
    at org.jboss.mq.SpySession.run(SpySession.java:323)
    at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:756)
    at java.lang.Thread.run(Thread.java:701)




 
ResolutionThe solution is try to reinstall the remote agent on-premises for the production environment.  To reinstall the remote agent follow the steps below:
Downloading the collection agent
1. Login to the RSA Via L&G SaaS application at https://<your_instance_name>.myaccesslive.com/aveksa/main.
2. Click on Collector > Agent.
3. Select Remote Agent then click on Download Agent.
Deploying the collection service
  • For Windows
1.  Copy the AveksaAgent.zip to your Windows server.

2.  Extract to create an AveksaAgent folder.

3.  Verify that JAVA_HOME is set as a system variable and points to Java Runtime installed on your Windows server.

4.  Navigate to the AveksaAgent/bin sub folder.

5.  Right-click on the installAvAgent-NT.bat and select Run as Administrator to set up the service.

6.  Navigate to Administrative Tools > Services.

7.  Select AveksaAgent and invoke Start.

  • For Linux
1. Create an unprivileged account for the agent to run in (the agent account).

2. For the agent account, export JAVA_HOME and put $JAVA_HOME/bin on the path.

3. Copy AveksaAgent.zip to the agent account and extract to create an AveksaAgent directory.  Note:  The readme.txt in the AveksaAgent directory contains instructions to start/stop the agent.

4. Change permissions of all files to the agent account.

5. Make all files in the AvekasaAgent/bin directory executable

cd <path-to-AveksaAgent>
chmod 755 bin/*

6. As root create a link to the startup script:

ln -s path-to-AveksaAgent/bin/aveksa_agent /etc/init.d/aveksa_agent

7. Add the service and enable it:

chkconfig --add aveksa_agent
chkconfig aveksa_agent on
chkconfig --list aveksa_agent

8. Start the service:   

service aveksa_agent start

9. Stop the service:

service aveksa_agent stop

Verifying the Collection Service
1. Login to the RSA Via L&G SaaS application.
2. Go to Collector > Agents.
3. The RemoteAgent will show Yes as its running status.
 
NotesPlease review the article on accessing the aveksaServer.log file for RSA Lifecycle and Governance (L&G) for information on gathering the aveksaServer.log file in your environment.

Attachments

    Outcomes