OI 10.2 Indexer (OpenInsight 64-bit)
At 03 APR 2023 03:26:11PM John Bowen wrote:
What is the preferred method of running an indexer?
In OI 9.4 I had a Windows scheduled task that would call OeRun.
In OI 10.2, I noticed a section of the eServer Configuration for Background Processes. If I set up RTI_OeMonitor_Index does that automatically update the indexes? If so, how can I tell if it's working?
At 04 APR 2023 08:32AM bshumsky wrote:
What is the preferred method of running an indexer?
In OI 9.4 I had a Windows scheduled task that would call OeRun.
In OI 10.2, I noticed a section of the eServer Configuration for Background Processes. If I set up RTI_OeMonitor_Index does that automatically update the indexes? If so, how can I tell if it's working?
Hi, John. If you're running an engine server, then yes, it's best to let the engine server take care of it for you. If you specify RTI_OEMONITOR_INDEX as one of the "system monitor" tasks, it will update the indices in the specified app.
The engine server produces log files of the most recent run - you can look for eserver_SystemMonitor_x.log, where <x> is the number of the system monitor command - so if you have 3 different system monitor commands to run (semicolon delimited) in your eserver.cfg, you'll find eserver_SystemMonitor_1.log, eserver_SystemMonitor_2.log, and eserver_SystemMonitor_3.log. Similarly, if there are any errors encountered, you will find files with the same name but with a ".err" extension. You can examine these files at any time to see when they ran, and if they had any problems.
Note that the ".log" files are cleared before each new run, so they will normally show just the most recent results. The ".err" files, however, are cumulative, and keep the results until you clear them out.
Hope that helps,
- Bryan Shumsky
At 04 APR 2023 09:09AM John Bowen wrote:
Bryan,
Thanks for the response. That clears up my questions.
I found the ".err " for the indexer and about 5 times a day it has the error below. Is this something that I need to be worried about?
Error during command 'RTI_OEMONITOR_INDEX' at 2023-01-24 20:00:20: 03Invalid request for input during phantom processing (1): *5*
Also, every minute there is a new file generated with a filename starting with "eserver_phantom_dbg_". It is for the Rti_Oemonitor_Cleanup job. The top of the error file has the text below.
An error has occurred in program RTP1023 on line 289 at 08:06:52 04 APR 2023Error code: ENG0711Call stack: Program RTP1023 line 289Program RTI_OEMONITOR_CLEANUP line 1Program DO_EXECUTE line 1Program REVCMD_LISTENER line 1
At 04 APR 2023 10:34AM John Bowen wrote:
Bryan,
I noticed something else in the settings for the Indexer. Our main application is called Relo. Our Oengine is running under a different application called Arev2Sql. This application attaches a subset of the tables and we have processes running that pushes records to Sql. Do I need to have an engine running specifically for the Relo application? Or, can I set up a background process in the Relo application and have it use the engine from the Arev2Sql application?
At 04 APR 2023 12:19PM bshumsky wrote:
Bryan,
I noticed something else in the settings for the Indexer. Our main application is called Relo. Our Oengine is running under a different application called Arev2Sql. This application attaches a subset of the tables and we have processes running that pushes records to Sql. Do I need to have an engine running specifically for the Relo application? Or, can I set up a background process in the Relo application and have it use the engine from the Arev2Sql application?
Hi, John. When you specify a command for SystemMonitor, you tell it the app/user/password to use, so if you want to build the indices for RELO, then that's what you'd specify on the SystemMonitor line. The EngineServer will spin up a "phantom" engine to run the command, and then that oengine will shut down until the next time it's needed (every minute, by default).
- Bryan Shumsky
At 04 APR 2023 12:35PM bshumsky wrote:
Bryan,
Thanks for the response. That clears up my questions.
I found the ".err " for the indexer and about 5 times a day it has the error below. Is this something that I need to be worried about?
Error during command 'RTI_OEMONITOR_INDEX' at 2023-01-24 20:00:20: 03Invalid request for input during phantom processing (1): *5*
Also, every minute there is a new file generated with a filename starting with "eserver_phantom_dbg_". It is for the Rti_Oemonitor_Cleanup job. The top of the error file has the text below.
An error has occurred in program RTP1023 on line 289 at 08:06:52 04 APR 2023Error code: ENG0711Call stack: Program RTP1023 line 289Program RTI_OEMONITOR_CLEANUP line 1Program DO_EXECUTE line 1Program REVCMD_LISTENER line 1Hi, John. The err message is telling us that, when RTI_OEMONITOR_INDEX was run the output requested some kind of input (maybe like a message box or something), which is not supported when a "phantom" oengine runs a command. I notice that the message you're showing is from back in January - as I mentioned, these don't get cleared out, so if you wanted to have a 'fresh start' you should delete these.
If you manually ran (from System Monitor in the IDE in your application) type in the following:
update_index "","","","1"
Do you get any error messages, message boxes, etc.? It might be telling us that you've got something bad in one of your index files…
The _dbg record is telling us that the RTI_OEMONITOR_CLEANUP routine is dropping to the debugger - or would, if we didn't have that turned off for phantom oengines - because of a "bad number of parameters" issue in RTP1023, the cleanup routine. We'll have to look at that in more detail to see if we can figure out where the actual error is occuring…
Thanks,
- Bryan Shumsky
At 04 APR 2023 02:29PM John Bowen wrote:
I was able to run update_index from System Monitor without any errors.
I removed the RTI_Oemonitor_Cleanup from the background processes and restarted the engine. No new phantom dbg files have been created. Do I need to leave the cleanup job running?
I cleared out the .err file for the indexer and I haven't seen any new errors come thru. The Indexer background job looks like it is running properly.
At 04 APR 2023 02:44PM bshumsky wrote:
I was able to run update_index from System Monitor without any errors.
I removed the RTI_Oemonitor_Cleanup from the background processes and restarted the engine. No new phantom dbg files have been created. Do I need to leave the cleanup job running?
I cleared out the .err file for the indexer and I haven't seen any new errors come thru. The Indexer background job looks like it is running properly.
The RTI_OEMONITOR_CLEANUP routine cleans out the O4WTEMP table, which is used by O4W, as well as periodically "helping" to clean out the SYSAUTHLOG table. I think you've got the SYSAUTHLOG table under control. Do you use O4W? If not, you can probably get away with leaving the RTI_OEMONITOR_CLEANUP routine turned off in SystemMonitor…
Hope that helps,
- Bryan Shumsky
At 04 APR 2023 02:49PM John Bowen wrote:
We don't currently use O4W. I'll reach out if/when we start using it.
Thanks again for the help.
At 09 FEB 2024 02:49PM Donald Bakke wrote:
Hi, John. If you're running an engine server, then yes, it's best to let the engine server take care of it for you. If you specify RTI_OEMONITOR_INDEX as one of the "system monitor" tasks, it will update the indices in the specified app.
Hi Bryan - We are investigating the different ways that an OI 10 based indexer can be run. John's original question was "what is the preferred method", but the conversation quickly focused on running RTI_OEMONITOR_INDEX because he also noted the reference in the eServer configuration. I'm not sure the original question was answered.
We are more interested in all viable methods since the "preferred" method will likely depend on other issues.
We tried launching the engine (RevHostEngine.exe) using the "/I <databaseName>" method. It does launch the engine with the indexer UI, but it does nothing. It doesn't even load the name of the database in the UI. Is this expected to work or is this a known problem?
Also, when we run RTI_OEMONITOR_INDEX with the CFG_RTI_UPDATE_INDEX record containing the RTI_UPDATE_INDEX_90 value, we encounter odd issues such as OI 10 crashing hard or RTI_F_DISTRIBUTOR_90 errors. (BTW, this is when run from the System Monitor, not the OengineServer).
I did not find any new documentation on dedicated indexers. Hopefully you can give us an update on what methods are supported.
At 09 FEB 2024 03:10PM Brad Bishop wrote:
I run mine as a Windows scheduled task on the host server scheduled every 30 seconds as a batch file called indexer.cmd. The contents of the cmd file is:
set listener=RTI_INDEXER
set user=USER
set passw=PASSWORD
set app=APP1
set rPath=C:\Revsoft\OInsight10
set param=CFG_INDEXER_APP1
REM the desired listener procedure and pass in the correct commands
%rPath%\REVRUN.EXE -a %app% -u %user% -p %passw% -r %listener% -c %param%
Each application its own scheduled task. The online indexer log shows each execution so it can be verified as running and completing.
At 19 FEB 2024 01:06PM Donald Bakke wrote:
Hi, John. If you're running an engine server, then yes, it's best to let the engine server take care of it for you. If you specify RTI_OEMONITOR_INDEX as one of the "system monitor" tasks, it will update the indices in the specified app.
…I did not find any new documentation on dedicated indexers. Hopefully you can give us an update on what methods are supported.
Bump. We are still looking for some guidance on this issue. Specifically:
What are the acceptable and viable methods for creating dedicated index processes? Is there documentation available? Is the /I command line still expected to work?
At 19 FEB 2024 03:40PM bob carten wrote:
Hi Don,
revEngineHost.exe /I MYAPP is expected to work in Oi 10.2.1, using OI10 indexing, provided that your background indexing time is greater than zero.
I realize that many sites use OI9Indexing mode for compatibility, so we need an answer for that case. I recommend the engineserver with a repeating task, but I see that the thread mentions hard crashes calling that from the system monitor.
In general, the preferred approaches are
1) the engineserver with a repeating task
2) calling revRun.exe from a windows scheduled task
3) an application window with a timer event that calls update_index("","","")
4) revenginehost.exe /I
We will put together a white paper with details on the various approaches and a more formal recommendation on the best approach. We're working on 10.2.2, will add any quick fixes, like showing the database in the indexing window.
At 19 FEB 2024 04:31PM Donald Bakke wrote:
Hi Don,
revEngineHost.exe /I MYAPP is expected to work in Oi 10.2.1, using OI10 indexing, provided that your background indexing time is greater than zero.
Hi Bob - Thank you very much for this list. This will help guide us to toward an implementation that best fits the application.
With regard to the RevEngineHost.exe /I option, I don't recall OI 9 requiring background indexing time to be greater than zero. Can you double check that?
Also, regardless if it is set or not, the name of the Database is empty unless it is actually updating an index. In OI 9 the name of the Database was always displayed. This empty field creates confusion as to what database this indexer is configured for or whether it is running at all. Below is what an OI 10 and an OI 9 indexer configured for EXAMPLES looks like:
OEngineIndexers.jpg?rlkey=luyybmbv4eym60m439sc522wq&dl=1
It also seems odd that the labels themselves do not format nicely in the OI 10 indexer.