Historical: This issue moved from https://issues.sonatype.org/browse/NEXUS-16977
Start a new NXRM 3.10.0-04.
Start a new IQ server 1.46 install.
Click Analyze button in NXRM repo list for maven-central, choose Yes to All to enable healthcheck for all repos. ( by default this means maven-central and nuget.org-proxy )
Click away from repo list. Click back to repo list.
Eventually the Healthcheck column states "insufficient trend data" for nuget.org-proxy and maven-central. The IQ Policy Violation column shows a circle with a line through it icon.
Configure IQ server connection to the running IQ server. Verify it is working.
Add a IQ: Audit and Quarantine capability for maven-central.
Click back to repositories list several times. Eventually the IQ Policy Violations column will show "No Violations" and a link to the report.
Make a request for an artifact in maven-central.
curl -v -u admin:admin123 http://localhost:8081/repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.jar -o /dev/null
Click away and back to the repo list. IQ Policy Violations still shows No Violations.
Login to IQ server and verify that maven-central is registered correctly.
In NXRM click the maven-central report link. The report should show 1 component identified.
Stop IQ server
Request a different component from maven-central repo. This one takes 15 seconds to fail because Nexus can't reach IQ server.
Click away and then back to the repo list in NXRM. IQ Policy Violation column shows Error communicating with IQ Server Connection refused.
Start IQ Server.
Click away from then back into the repositories list. The IQ policy Violations column now shows No Violations + link again as it is able to detect that IQ server is available.
Stop IQ Server.
Click away and then back to the repo list in NXRM. IQ Policy Violation column shows Error communicating with IQ Server.
Start IQ Server.
Click away and then back to the repo list in NXRM. IQ Policy Violation column still shows Error communicating with IQ Server.
*From this point on there is no non-destructive way to clear the Error Communicating with IQ server message except to restart NXRM*
Other non-destructive things tried that do not work:
1) request a component through maven-central while IQ server is offline
2) signin and signout of NXRM UI
3) Click Verify Connection again successfully in NXRM IQ Server configuration screen
To reset the UI connection state:
First wait until or at least verify the IQ server has become available again - you can test this with the Verify Connection button in the IQ Server configuration screen. Even though the verification of connection succeeds, this will not make the UI error message go away.
Make a request for a jar artifact that exists at the remote but is not yet cached in the proxy repository local cache OR has never been requested while IQ server was disconnected. This should trigger a new evaluation for that artifact. If you do not know of an artifact that is at the remote that is not yet cached, use the Nexus UI to find jar asset, delete it, then make a request for it again through your proxy repository. This re-requesting of a non-cached asset that needs auditing will reset the audit task error state, if the IQ server can be reached.
Then click away from and click back to the repositories list view. The IQ Policy Evaluation column should then remove the error state.
Brief interruptions to IQ server communication ( like restarts) should not persist indefinitely. If they do persist, there should be a well travelled trivial method to reset the connection state.
The stated workaround is not adequate:
- it is confusing and a manual process - it should be automatic
- it may be impossible to know the path of an artifact that exists at the remote that has never been requested through the proxy repository
- the manual process may need repeating for 10s to 100s of repos
- the log messages in the application log are not informative to solve or diagnose the problem
- Verify Connection on the IQ Server configuration verifies that the connection works, yet the UI state never resolves itself despite this