6.4. CAE Feeder JMX Managed Beans

The CAE Feeder exports multiple JMX MBeans. The following overview describes attributes of the MBeans Feeder and ProactiveEngine. The MBean SolrIndexer is described in Section 6.5, “Solr Indexer JMX Managed Beans”. The CAE Feeder exports more MBeans and attributes, which aren't documented in detail here.

Feeder MBean

Attribute Type Unit Description

BatchAverageCreationTime

read-only milliseconds

The average creation time of persisted batches for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the average time since the start of the Feeder.

The creation time is the time span between the time the first entry was put into a batch and the time the batch was ready for sending to the CoreMedia Search Engine.

BatchAverageSendingTime

read-only milliseconds

The average sending time of persisted batches for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the average time since the start of the Feeder.

The sending time indicates how long it took to actually send the batch to the CoreMedia Search Engine, that is, the time it took to invoke the index method on the AsyncIndexer or DirectIndexer interfaces.

BatchAverageProcessingTime

read-only milliseconds

The average processing time of persisted batches for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the average time since the start of the Feeder.

The processing time is the time span between the time a batch was successfully sent to the CoreMedia Search Engine and the time when the Feeder received a callback from the Search Engine which indicates that the batch has been processed. Callbacks are only used with custom AsyncIndexer implementations. For Apache Solr, this attribute is always 0.

BatchAveragePersistingTime

read-only milliseconds

The average persisting time of batches for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the average time since the start of the Feeder.

The persisting time is the time span between the time a batch was processed by the CoreMedia Search Engine and the time when the Feeder received a callback from the Search Engine which indicates that the batch has been persisted. Callbacks are only used with custom AsyncIndexer implementations. For Apache Solr, this attribute is always 0.

BatchBytes

read-only byte

The sum of the byte size of persisted batches for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the value since the start of the Feeder.

Note that byte computation is a rough estimate only.

BatchCount

read-only batches The number of persisted batches for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the value since the start of the Feeder.

BatchEntriesPerSecond

read-only batch entries / second

The number of persisted batch entries per second in the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the value since the start of the Feeder.

Batch entries are basically creations, updates or removals of documents. Note that this value decreases if the Feeder is idle.

BatchEntryCount

read-only batch entries

The number of persisted batch entries for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the value since the start of the Feeder.

Batch entries are basically creations, updates or removals of documents.

BatchStatisticsIntervalSeconds

read/write seconds The time in seconds used to compute statistic values for other attributes. If the value is 0 or greater than BatchStatisticsMaxIntervalSeconds, the time since the start of the Feeder is used.

BatchStatisticsMaxIntervalSeconds

read/write seconds The maximum value that can be used for BatchStatisticsIntervalSeconds. It defines how long statistic data will be kept by the Feeder. You cannot recover statistics for the past by increasing the value.

BatchStatisticsLogIntervalSeconds

read/write seconds The time interval in seconds in which the Feeder writes statistics to its log file (log level INFO).

CallbackQueueSize

read-only callback objects

The number of pending com.coremedia.cap.feeder.FeederCallback objects in the internal callback queue.

DeferredEntryCount

read-only batch entries

The number of batch entries that are currently deferred. New batch entries will be deferred as long as a batch with an entry that affects the same document is currently being sent to the Search Engine or was not yet persisted by the Search Engine.

Batch entries are basically creations, updates or removals of documents.

ExecutorQueueCapacity

read/write objects

The number of java.lang.Runnable objects that fit into the internal executor queue. This is an internal setting and does not need to be changed.

ExecutorQueueSize

read-only objects

The number of pending java.lang.Runnable objects in the internal executor queue.

ExecutorRetryDelay

read/write milliseconds The time to wait before the CAE Feeder retries to access the source data after errors. This is used if custom code calls method execute of com.coremedia.cap.feeder.Feeder.

IndexAverageLagTime

read-only seconds

The average delay in seconds of last indexed documents for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the value since the start of the Feeder. The difference of the time when a batch was successfully sent and the feedable field freshness are used for each feedable object where feederstate is SUCCESS.

The set of feedables used to compute the delay can be restricted by introducing a com.coremedia.common.util.Predicate. This predicate can be injected into Spring bean feeder. The include method accepts an object of type com.coremedia.cap.feeder.Feedable. The custom implementation decides to include this feedable into these statistics.

To inject a custom predicate use the bean customizer and replace the BatchStatisticsFeedablePredicate of the feeder bean:

<customize:replace id="batchStatisticsFeedablePredicateCustomizer" bean="feeder" custom-ref="myPredicate" property="batchStatisticsFeedablePredicate" />

IndexContentDocuments

read-only documents

The number of last indexed documents for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the value since the start of the Feeder.

The set of feedables used to compute the number of content documents can be restricted by introducing a com.coremedia.common.util.Predicate. This predicate can be injected into Spring bean feeder. The include method accepts an object of type com.coremedia.cap.feeder.Feedable. The custom implementation decides to include this feedable into these statistics.

To inject a custom predicate use the bean customizer and replace the BatchStatisticsFeedablePredicate of the feeder bean:

<customize:replace id="batchStatisticsFeedablePredicateCustomizer" bean="feeder" custom-ref="myPredicate" property="batchStatisticsFeedablePredicate" />

IndexMaxLagTime

read-only seconds

The longest delay in seconds of last indexed documents for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the value since the start of the Feeder. The difference of the time when a batch was successfully sent and the feedable field freshness are used for each feedable object where feederstate is SUCCESS.

The set of feedables used to compute the delay can be restricted by introducing a com.coremedia.common.util.Predicate. This predicate can be injected into Spring bean feeder. The include method accepts an object of type com.coremedia.cap.feeder.Feedable. The custom implementation decides to include this feedable into these statistics.

To inject a custom predicate use the bean customizer and replace the BatchStatisticsFeedablePredicate of the feeder bean:

<customize:replace id="batchStatisticsFeedablePredicateCustomizer" bean="feeder" custom-ref="myPredicate" property="batchStatisticsFeedablePredicate" />

IndexMinLagTime

read-only seconds

The shortest delay in seconds of last indexed documents for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds. If <n> is 0, this attribute will contain the value since the start of the Feeder. The difference of the time when a batch was successfully sent and the feedable field freshness are used for each feedable object where feederstate is SUCCESS.

The set of feedables used to compute the delay can be restricted by introducing a com.coremedia.common.util.Predicate. This predicate can be injected into Spring bean feeder. The include method accepts an object of type com.coremedia.cap.feeder.Feedable. The custom implementation decides to include this feedable into these statistics.

To inject a custom predicate use the bean customizer and replace the BatchStatisticsFeedablePredicate of the feeder bean:

<customize:replace id="batchStatisticsFeedablePredicateCustomizer" bean="feeder" custom-ref="myPredicate" property="batchStatisticsFeedablePredicate" />

LatestIndexing

read-only date and time

The time when last indexing happened for the last <n> seconds, where <n> is the value of the attribute BatchStatisticsIntervalSeconds.

The set of feedables used to compute the latest index time can be restricted by introducing a com.coremedia.common.util.Predicate. This predicate can be injected into Spring bean feeder. The include method accepts an object of type com.coremedia.cap.feeder.Feedable. The custom implementation decides to include this feedable into these statistics.

To inject a custom predicate use the bean customizer and replace the BatchStatisticsFeedablePredicate of the feeder bean:

<customize:replace id="batchStatisticsFeedablePredicate" bean="feeder" custom-ref="myPredicate" property="batchStatisticsFeedablePredicate" />

MaxBatchSize

read/write batch entries

The maximum number of entries in a batch. It is sent to the Search Engine when the maximum number is reached.

It defaults to the configured property feeder.maxBatchSize.

MaxBatchBytes

read/write byte

The maximum size of a batch in bytes. The CAE Feeder sends a batch to the Search Engine if its maximum size would be exceeded when adding more entries.

It defaults to the configured property feeder.maxBatchBytes.

Note that byte computation is a rough estimate only.

MaxOpenBatches

read/write batches

The maximum number of batches indexed in parallel. This setting is not used with the default integration of Apache Solr but only with custom implementations of the com.coremedia.cap.feeder.index.async.AsyncIndexer interface. The CAE Feeder does not call the index method of the AsyncIndexer interface to index another batch if the maximum number of parallel batches has been reached. The method will not be called until a callback about the persistence of one of these batches has been received.

It defaults to the configured property feeder.maxOpenBatches.

MaxProcessedBatches

read/write batches

The maximum number of batches processed by the Indexer in parallel. This setting is not used with the default integration of Apache Solr but only with custom implementations of the com.coremedia.cap.feeder.index.async.AsyncIndexer interface. The CAE Feeder does not call the index method of the AsyncIndexer interface to index another batch if the configured number of currently processed batches has been reached. The method will not be called until a callback about completed processing or persistence of one of these batches has been received.

It defaults to the configured property feeder.maxOpenBatches.

OpenBatches

read-only batches The number of currently open batches which have been passed to a custom implementation of the com.coremedia.cap.feeder.index.async.AsyncIndexer interface but for which the CAE Feeder has not received a persisted callback yet.

ProcessedBatches

read-only batches The number of currently processed batches which have been passed to a custom implementation of the com.coremedia.cap.feeder.index.async.AsyncIndexer interface but for which the CAE Feeder has not received a processed callback yet.

RetrySendIdleDelay

read/write milliseconds

The CAE Feeder sends a batch which only contains retried entries and is not full with regard to the MaxBatchSize attribute after the CAE Feeder was idle for the time configured in this property. A retried entry is an entry which was sent to the Search Engine before but could not be indexed successfully. If the batch contains entries which are not retried, the value of attribute SendIdleDelay is used instead.

It defaults to the configured property feeder.retrySendIdleDelay.

RetrySendMaxDelay

read/write milliseconds

The maximum time in milliseconds between the time the CAE Feeder received an error from the Search Engine and the time, the CAE Feeder tries to send the failed entry as part of a batch to the Search Engine again. The time is exceeded if MaxOpenBatches or MaxProcessedBatches are reached or an error occurs while contacting the Search Engine. If the batch contains entries which are not retried, the value of attribute SendMaxDelay is used instead.

It defaults to the configured property feeder.retrySendMaxDelay.

SendIdleDelay

read/write milliseconds

The CAE Feeder sends a batch which is not full with regard to the MaxBatchBytes attribute after the CAE Feeder was idle for the configured time in milliseconds. A CAE Feeder is idle when it is not processing a request from clients such as the Proactive Engine.

It defaults to the configured property feeder.sendIdleDelay.

SendMaxDelay

read/write milliseconds

The maximum time in milliseconds between the points in time where the CAE Feeder receives a request from a client and sends this request as part of a batch to the Search Engine. The time is exceeded if MaxOpenBatches or MaxProcessedBatches are reached or an error occurs while contacting the Search Engine.

It defaults to the configured property feeder.sendMaxDelay.

StartTime

read-only date and time The time when the CAE Feeder was started.

Table 6.16. Attributes of the Feeder MBean


ProactiveEngine MBean

Attribute Type Unit Description

KeysCount

read-only number

The total number of "keys" that need to be kept up-to-date by the CAE Feeder. This is the sum of the number of Content Beans selected for feeding (that is, beans that have been sent or need to be sent to the search engine) plus the number of used fragment keys as described in Section 5.4.5, “Using Revalidating Fragments”.

The value is initialized when the CAE Feeder is started. It increases if new content is created that needs to be indexed.

ValuesCount

read-only number

The number of "keys" whose latest evaluation is still up-to-date. This is a subset of the total number of keys returned by attribute KeysCount.

The value decreases after content has changed and when the CAE Feeder needs to recompute data that is then sent to the search engine.

The difference of KeysCount and ValuesCount is a good indicator for the remaining work until the CAE Feeder has processed changes or completed initial feeding. When the CAE Feeder is idle, then ValuesCount is equal to KeysCount.

Table 6.17. Attributes of the ProactiveEngine MBean