Lookup Manager is not reading shared memory segments

If the Lookup Manager is not reading shared memory segments, there are several situations that might have caused this error and that can be resolved to eliminate it.

Symptoms

You see an error message similar to the following:

cd <project root>/output/LookupRepositoryReaderMain
./bin/standalone
Processing started on 'r901h2kc' started atThu Jun 26 15:03:27 2014
26 Jun 2014 15:03:27.117 [31391] ERROR #splapptrc,J[0],P[0],ReadSegement_segMaster1_MapName1,shmStore M	[shmSegment.cpp:shmSegmentOpen:116]  - shmSegmentOpen can not open segment with name="1001.697b9ef92bf044db0ebca8523374e6ae27dff8c0af41fab7244ddfc170ff9687_segMaster1" reason=No such file or directory
26 Jun 2014 15:03:27.118 [31391] ERROR #splapptrc,J[0],P	[0],ReadSegement_segMaster2_MapName2,shmStore M	[shmSegment.cpp:shmSegmentOpen:116]  - shmSegmentOpen can not open segment with name="1001.697b9ef92bf044db0ebca8523374e6ae27dff8c0af41fab7244ddfc170ff9687_segMaster2" reason=No such file or directory
Processing finished successful.

Diagnosing the problem

Sometimes you need to check the content of the shared memory segments. Each build of the Lookup Memory application creates a standalone lookup repository reader that can read the shared memory segments created by the Lookup Manager job.

The No such file or directory output from a Linux operating system is typical for a missing shared memory segment.

Resolving the problem

Several situations may have caused this error:
  • Either the Lookup Manager job was not submitted or the write processing failed. If the job was not submitted, submit the Lookup Manager job again and process the initialization command.
  • The host was rebooted, and the shared memory segments are not present. Start the initialization command for the Lookup Manager.
  • If the init command processed successfully, but the shared memory segments are not present, check the Lookup Manager statistics for processed records in writer.
  • If there are no processed entries, ensure the configuration of your use case is not in simulation mode.
  • If you use input CSV files, check that they are not empty and the records are valid.
  • If you use a database, check that the database is connected. The DBStatusChecker operator writes an error log when encountering a missing connection.
  • If you use a database for input, use database tooling to check the syntax, the contents of database queries, and whether requests have processed any output.