Skip to main content

System log messages about SQL/MP automatic recompilation

When Striim is used to work with change data from SQL/MP tables, embedded SQL code in SQMPCDCP is used to read the description of each of those tables from the SQL/MP catalog in which it is registered. Since similarity checking is not available for SQL/MP catalog tables, each of those embedded queries is automatically recompiled when it is run. There are two automatic recompilations done each time a different catalog is referenced. These automatic recompilations do not affect the performance of capturing the change data from the TMF audit trail and sending it to the Striim server. They occur only at the time the Striim application is started on the Striim server, when it sends the request to start capture of change data from particular tables on the NonStop system.

The SQL/MP compiler reports each automatic recompilation in a message to the system log, and there is no way to turn off or redirect those messages, so at least two automatic recompilation messages will appear each time a Striim application is started. There could be more than two automatic recompilation messages if the Striim application requests change data from tables in more than one catalog. These messages can be ignored safely. They are expected during normal operation and do not indicate anything wrong in the SQL/MP change data capture process. However, if these messages interfere with your regular monitoring of the system log, you can reduce or eliminate them by SQL compiling the SQMPCDCP program to reference the tables in the SQL/MP catalog on your system used most frequently for tables that the Striim applications reference.

If you decide to SQL compile the SQMPCDCP program, run the following commands while logged on as SUPER.SUPER:

VOLUME <Striim vol-subvol>
ADD DEFINE =WEBACT_COLUMNS, CLASS MAP, FILE <your catalog vol-subvol>.COLUMNS
ADD DEFINE =WEBACT_KEYS,    CLASS MAP, FILE <your catalog vol-subvol>.KEYS
ADD DEFINE =WEBACT_PARTNS,  CLASS MAP, FILE <your catalog vol-subvol>.PARTNS
SQLCOMP / IN SQMPCDCP / CATALOG <your catalog vol-subvol>, &
  COMPILE PROGRAM STORE SIMILARITY INFO
FUP LICENSE SQMPCDCP

Where:

<Striim vol-subvol> is the volume and subvolume in which you installed the Striim files

<your catalog vol-subvol> is the volume and subvolume of the SQL/MP catalog most frequently used by the SQL/MP tables referenced by Striim applications. This is not necessarily the volume and subvolume in which the tables themselves reside. Use FUP INFO with the DETAIL option on a SQL/MP table to determine in which catalog it is registered.

The system log messages that report the automatic recompilations do not give the name of the table referenced by the query that caused the recompilation. You will have to determine by other means which SQL/MP tables are being used by Striim applications, then check them to see which SQL/MP catalog is used most frequently. If you register all of your SQL/MP tables in the same catalog, you would not have to do any checking to see which catalog to use in the above commands.

The above method will not eliminate all system log messages about automatic SQL compilations of the SQMPCDCP program unless all the SQL/MP tables used from your Striim applications are registered in the one SQL/MP catalog. However, if it is the case that every HpNonStopSQLMPReader Adapter in every Striim application references tables only from a single SQL/MP catalog, with some additional effort, you could eliminate all the system log messages.

To do this, you would install and run the Striim Agent in multiple subvolumes on the NonStop system and use the above method to SQL compile SQMPCDCP in each of them to use a different SQL catalog on your system. Then, if you are careful to configure each HpNonStopSQLMPReader Adapter with the IP address of the Agent whose copy of SQMPCDCP was SQL compiled with the catalog used by the tables referenced in that HpNonStopSQLMPReader Adapter, this would eliminate all of the system log messages about automatic SQL compilations. This method would require that you have several Agents running rather than just one, but the number of processes running SQMPCDCP would be the same, since each HpNonStopSQLMPReader Adapter instance uses its own process running SQMPCDCP, whether they all use the same Agent or different Agents. It also requires extra effort when configuring Striim applications to use the correct IP address for the tables referenced in the HpNonStopSQLMPReader Adapters. You will have to decide whether eliminating the system log messages about automatic SQL compilation is worth the extra effort.

Even if you install the Agent in multiple subvolumes and SQL compile the multiple copies of SQMPCDCP with different catalog tables, if any of the HpNonStopSQLMPReader Adapters contains a list of tables that are not all in the same SQL/MP catalog, you would still see some system log messages about automatic SQL compilation. This would not cause any malfunction of the Striim applications. It just would not eliminate all of the system log messages that you tried to eliminate.