How to resolve when artifactory.log is showing “Refusing to queue replication event”?

JFrog Support
2016-10-06 13:38

**This solution assumes the usage of Tomcat**

When replicating from server A to server B, sometimes when server B is under a high load, individual replication requests such as PUT requests may hang and remain unhandled for a while. When this scenario occurs, the logs on server A (the replicating server) may show "Refusing the queue replication event for…. queue is full".

This error refers to the replication queue, which is dynamically built during the replication. The recommended way to minimize the occurrence of this error is by increasing the "maxThreads" parameter on the Tomcat HTTP connector, located at $TOMCAT_HOME/conf/server.xml:

 <Connector port="8081" maxThreads="x"/>

When the parameter is not specified, it defaults to 200.

This parameter determines the maximal number of request handling threads. In the above mentioned scenario, server B is under a high load caused by the incoming PUT requests from server A, which results in the replication queue on server A filling up with with requests that are waiting to be handled.

Active thread-monitoring can be achieved with JConsole.  There is more information here.

The replication queue size can also be increased with the "artifactory.replication.event.queue.size" system property. By default, this property is not specified in the file ($ARTIFACTORY_HOME/etc/, so its necessary to add it. The default value is 50,000, it can multiplied by a number of times if required.  Although we stop short of recommending this next approach, it is an option.