Geen Exact Online data zichtbaar in Data Replicator views

Bij het laden van Exact Online data in SQL Server zijn na een succesvolle afloop van de run geen data zichtbaar in de views.

Ik heb gekeken in de SQL Server view dc_table_partition_versions_r met:

select * 
from   dc_table_partition_versions_r
where  ptn_name = '1221788' 
and    tpn_active_flag = 'Y'

met als resultaat:

In de kolom tpn_stored_in_database_flag staat overal een “N”. Dit zou betekenen dat de data alleen op schijf opgeslagen wordt en niet in de SQL Server database.

Hoe kan ik de data beschikbaar krijgen in de database?

Of een tabelpartitieversie wel of niet opgeslagen is in de SQL Server database is vastgelegd in de view dc_table_partition_versions_r. In dit geval zijn geen rijen opgeslagen, waardoor er ook geen of steeds minder data zichtbaar zal zijn via de views.

De waarde van het veld wordt doorlopend afgeleid van de driverattribuut beta-store-facts-in-database met de standaardwaarde “True” (documentatie).

Door te kijken in de tracelogs is te zien of de data gerepliceerd is in de database. Het voorkomen van traceberichten met code “itgendci136” geeft aan dat de data niet vastgelegd is in de database. In toekomstige releases zal dit ook te achterhalen zijn door een query uit te voeren op de Data Replicator eventlog; zoek hierbij op de melding “itgendci265”.

Het wel of niet vastleggen in het toekomstige diskformaat is vast te stellen door de aan- of afwezigheid in trace van berichten met de code “itgendci137”.

Geadviseerde stappen zijn daarom:

  • Controleer in SystemProviderAttributes@DataDictionary dat de instelling op “True” staat.
  • Controleer de tracelogs op aanwezigheid van “itgendci136”. Indien deze voorkomt, dan is het vastleggen in de database uitgeschakeld.
  • Controleer de waarde van beta-store-facts-in-database in het gebruikte settings*.xml-bestand.

Mocht de oorzaak hiermee niet achterhaald zijn, gelieve dan - na verwijdering van de vertrouwelijke gegevens - het gebruikte settings*.xml-bestand als Antwoord toe te voegen.

Hoe activeer ik Tracelogs?

In de documentatie van Data Hub staan de trace opties beschreven. De basis is het instellen van drie omgevingsvariabelen:

  • INVANTIVE_TRACE_ACTIVE op true zetten.
  • INVANTIVE_TRACE_TO_FILE op true zetten.
  • INVANTIVE_TRACE_FOLDER op c:\temp\mijn-map zetten.

Bij de volgende herstart van een Invantive product op Windows, Linux en Mac zul je de tracebestanden zien verschijnen.

Hoe controleer ik de waarde van een driverattribuut?

Bij het aanmelden op de database met een Data Replicator repository kan de waarde opgevraagd worden met de query:

select code
,      value
,      default_value
from   SYSTEMPROVIDERATTRIBUTES@DataDictionary
where  code like 'beta-store-facts-%'

local export results as "c:\jobs\log\providerattributes.csv" format csv include technical headers

Er kan ook gekeken worden in het settings*.xml bestand waarin de database gedefinieerd is.

De locatie van het bestand is te zien door bijvoorbeeld in het aanmeldscherm van het Invantive Query Tool te zweven met de muis boven de databasenaam.

De locatie van het bestand is in Invantive Data Hub te zien direct na het aanmelden bij de meldingcode itgenlom042:

itgenlom014: Connection chosen: group\database
itgenlom042: Database definition taken from the file 'C:\Users\john.doe\Invantive\settings-acme.xml'.
itgenlom043: Database definition file was last modified on 13-11-2021 09:43:22 (UTC).

Voor meer informatie over settings*.xml zie:

Vanaf 20.2.240 is het ook mogelijk de locatie van settings*.xml op te vragen met:

select SETTINGS_FILE_NAME_PATH
from   SYSTEMDATABASES@DataDictionary

Het blijkt dat in ons settings.xml bestand de waarde voor beta-store-facts-in-database op “false” stond. Dit is gewijzigd in “True”. En het laadscript is gestart.

Echter dit gaf nog niet het gewenste resultaat. De volgende query geeft geen rijen:

select *
from   dc_table_partition_versions_r
where  ptn_name = '1221788'
and    tpn_stored_in_database_flag = 'Y'
and    tpn_active_flag = 'Y'

Het kan even duren totdat een verandering in deze instelling zichtbaar wordt in de database; als Data Replicator van mening is dat er geen replicatie uitgevoerd hoeft te worden zullen de voorheen actieve tabelpartitieversies actief blijven en niet bijgewerkt of vervangen worden.

Advies is om een geforceerde refresh te draaien. Afhankelijk van de inrichting kunnen de stappen verschillen, maar meestal werkt dit na aanmelden op het repository via het Invantive Query Tool of Invantive Data Hub:

use 1221788

alter persistent cache force refresh approach copy

voor alleen administratie 1221788. Voor alle administraties gebruikt men dan bijvoorbeeld:

use all

alter persistent cache force refresh approach copy

Als we een geforceerde refresh op alle administraties doen dan krijgen we op een gegeven moment weer de volgende melding:

Exact Online heeft minimaal 9,5 minuten nodig tussen elke aanvraag voor een nieuw access token.

Deze melding betreft een ander issue, gelieve hiervoor de upgrade uit te voeren zoals beschreven in Itgeneor364: Exact Online heeft minimaal 9,5 minuten nodig tussen elke aanvraag voor een nieuw toegangstoken - #3 door forums.

Het bleek dat de instelling beta-store-facts-in-database ook in de SQL-bestanden op false gezet werd:

set beta-store-facts-in-database false;

Na het verwijderen hiervan liet de replicatie weer de Exact Online data in de SQL Server views zien voor circa 6000 administraties/tabellen.