Troubleshooting Activity Engine and activity streams

Here you find the common problems with the Activity Engine and activity streams and ways to resolve them.

Fastpath: Admin Console: System > Settings > Activity Engine

File handle limits exceeded

If your Activity Engine has exceeded its open file handle limits, you may see output like the following:
2013-06-27 04:10:25,894 [pool-7-thread-9] INFO [67073a51-1525-4ca9-80d0-382b2ae58899] com.jivesoftware.eae.service.dao.impl.StreamConfigurationDAOImpl - Added missing stream source connections for user User{userId=43415}
java.io.IOException: Map failed
        at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748)
        at com.jivesoftware.eae.stream.kvindex.KeyIndexer.mmap(KeyIndexer.java:238)
        at com.jivesoftware.eae.stream.kvindex.KeyIndexer.index(KeyIndexer.java:216)
        at com.jivesoftware.eae.stream.kvindex.KeyIndexer.get(KeyIndexer.java:165)
        at com.jivesoftware.eae.stream.kvindex.RevolvingKeyIndexer$Door.get(RevolvingKeyIndexer.java:228)
        at com.jivesoftware.eae.stream.kvindex.RevolvingKeyIndexer.get(RevolvingKeyIndexer.java:147)
        at com.jivesoftware.eae.stream.lucene.LuceneFilteredStreamService.handle(LuceneFilteredStreamService.java:254)
        at com.jivesoftware.eae.service.dao.impl.StreamsServiceDAOImpl.dispatch(StreamsServiceDAOImpl.java:115)
        at com.jivesoftware.eae.service.impl.ExclusionManager.trackObject(ExclusionManager.java:218)
        at com.jivesoftware.eae.service.processing.activity.ExclusionHandler.handleActivity(ExclusionHandler.java:102)
        at com.jivesoftware.eae.service.processing.activity.ExclusionHandler.handleActivity(ExclusionHandler.java:20)
        at com.jivesoftware.eae.service.queue.AbstractPipelineProcessor.handlePipeline(AbstractPipelineProcessor.java:160)
        at com.jivesoftware.eae.service.queue.AbstractPipelineProcessor.process(AbstractPipelineProcessor.java:63)
        at com.jivesoftware.eae.service.queue.PhasedQueueConsumerRunnable.run(PhasedQueueConsumerRunnable.java:62)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.OutOfMemoryError: Map failed
        at sun.nio.ch.FileChannelImpl.map0(Native Method)
        at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:745)
        ... 14 more

In this case, you need to increase the soft and hard file handle limits as follows:

  1. Edit /etc/security/limits.conf as follows (note that your file may use the "*" wildcard to specify all users instead of the "jive" user as shown here — either way, the fix is the same):
    jive    soft    nofile      200000
    jive    hard    nofile      200000
  2. Verify that the new settings have taken effect:
    $ su jive -c "ulimit -n"
  3. Edit /etc/sysctl.conf to increase the vm.max_map_count. It should look like this:
    vm.max_map_count = 500000

    For most large implementations 500,000 is a good value, but some installations require a higher value depending on usage patterns or overall usage.

  4. Reload:
    $ sysctl -p
  5. Verify that the new settings have taken effect:
    $ sysctl vm.max_map_count

What matters streams not working properly

If a stream is not working properly, it may be due to one of the following. Note that on the Activity Engine page, servers shown in yellow are down.

Fastpath: Admin Console: System > Settings > Activity Engine
  • The Jive web application node may not be able to connect to the Activity Engine server. Test the connection by clicking Test Connection. If this test is successful, the Activity Engine server can properly process activity. If this test fails, you'll see a failure message describing the problem. Typically, test failures are caused by the Activity Engine database being down or unavailable. Note that your instance of Jive may not allow you access to the Activity Engine's core server. You need to troubleshoot to bring the Activity Engine back online before running another test.
  • The Activity Engine server may not be able to connect to its database. Verify that the Activity Engine database has been created and you can connect to it.
  • The Activity Engine server may not be able to connect to the Jive Genius Recommender. Try pinging the Recommender from the Activity Engine.

If you have fixed and verified these connections but continue to experience problems, you should make sure that all of the configuration settings are correct.

Long delays Between post and stream publication times

Fastpath: Admin Console: System > Settings > Activity Engine
If there are long delays between post and stream publication times:
  • Try sending a trace through the Activity Engine by clicking Send Connectivity Trace on the Activity Engine page. This sends a blank activity through the Activity Engine processing pipelines and then reports the length of time it took to complete the trip. If you send the trace and get back a valid time measurement, the Activity Engine node is up and functioning properly. Typical return times on an idle system would be a few seconds.
  • Make sure that the web nodes and the Activity Engine nodes are configured to use NTP and share very similar, if not identical, times. If they are out of sync, you may see delays.

Log files related to the Activity Engine

Fastpath: Admin Console: System > Management > Logging Management

For further troubleshooting, look at the error messages in the application logs under Logging Management > Log Viewer, or view the application log directly in /usr/local/jive/services/eae-service/var/logs on the Activity Engine node.

  • eae-service.log: This is the output of all log statements in the Activity Engine server. Server errors are logged here.
  • eae-service.out: This holds anything written to the standard output stream from the Activity Engine server. Initialization and out-of-memory errors are likely logged here.
  • eae-service-gc.log: Analyze this log to determine garbage collection effectiveness and performance.