Prestatieafstemming voor parallelle verwerking

In deze bijlage wordt geschreven hoe u prestaties kunt optimaliseren, bijvoorbeeld door de sessie Verwerken (tccri7203m000) met behulp van parallelle verwerking uit te voeren.

De werkelijke prestaties van Verwerken (tccri7203m000) zijn afhankelijk van een groot aantal factoren, waaronder het aantal beschikbare CPU's en de instellingen van de applicatie- en databaseservers. De hoeveelheid gegevens in de tabellen is een andere belangrijke factor. In het algemeen bevatten de volgende tabellen grote hoeveelheden gegevens:

  • Integratiemutaties (tfgld482)
  • Afstemmingsgegevens (tfgld495)
  • Gejournaliseerde mutaties (tfgld106)
  • OHW- en voorraadmutaties (JSC) (ticst300)
  • OHW- en voorraadmutaties PCS (tipcs300)
  • Historie verkooporders (tdsls450, tdsls451, en tdsls456)

In LN FP5 en hoger is een functie beschikbaar waarmee tabellen rechtstreeks kunnen worden bijgewerkt via het RDBMS. Deze functie is geïmplementeerd in porting-set 8.7a.03 en hoger.

Rechtstreekse updates via het RDBMS zijn efficiënter dan via de bshell. Het verschil is dat de volledige mutatie wordt overgedragen aan het RDBMS. Alleen tabellen of gegevens waarvoor geen herberekening van eigen bedragen en/of valutakoersen is vereist, kunnen op deze wijze worden bijgewerkt. Dit kan bijvoorbeeld het geval zijn als de eigen bedragen van een rapporteringsvaluta de bedragen in een lokale valuta worden. Het verwijderen van eigen bedragen is een ander voorbeeld. Dit kan het geval zijn als rapporteringsvaluta's worden verwijderd of als in logistieke tabellen het valutasysteem wordt gewijzigd in een standaardvalutasysteem.

In de sessie Verwerken (tccri7203m000) wordt gecontroleerd of updates rechtstreeks via het RDBMS kunnen plaatsvinden. De sessie maakt gebruik van de conventionele (tragere) updates als de updates niet rechtstreeks via het RDBMS kunnen worden uitgevoerd.

Of u RDBMS-updates kunt uitvoeren, wordt bepaald door de volgende factoren:

  • In de sessie Valutakoersen (tccri7100m000) moet de waarde van het veld Uitdrukken in basisvaluta overeenkomen met die van het corresponderende veld in de sessie Valutakoersen (tcmcs0108m000). In EURO-bedrijven bijvoorbeeld kunnen de koersen vanuit EUR (lokaal) naar mutatievaluta’s dezelfde blijven als de instelling voor Uitdrukken in basisvaluta niet wordt gewijzigd tijdens de conversie.

    NB: Dit geldt voor alle koerstypen van elke basisvaluta in de sessie Valutakoersen (tcmcs0108m000).

  • Technische beperkingen

    De volgende beperkingen zijn van toepassing:

    • De databasedriver moet een driver van niveau 2 zijn.
    • De volgende tabellen worden niet gecontroleerd of gespiegeld:

      tfgld495, tfgld482, tdsls451 en tdsls456

  • Versie 8.7a.03 of hoger van de porting-set moet worden gebruikt. Het TIV-niveau van de porting-set moet 1744 of hoger zijn. U kunt dit nummer controleren door $BSE/bin/bshell6.2 –V op te geven in de opdrachtregel (onder Windows gebruikt u %BSE\bin\ntbshell –V).

Als u het proces voor valuta-initialisatie start in de sessie Verwerken (tccri7203m000), krijgt de sessie toegang tot het conversiecluster en relevante bedrijven, en bepaalt de sessie vervolgens welk type conversie is vereist. Als updates rechtstreeks via het RDBMS kunnen worden uitgevoerd, worden bepaalde gegevens gegenereerd in de tabellen Conversietabellen per clusterbedrijf (tccri725) en Update-groepen clusterconversietabellen valuta-initialisatie (tccri726).

NB

De tabel Update-groepen clusterconversietabellen valuta-initialisatie (tccri726) wordt alleen gegenereerd voor records in de tabel Integratiemutaties (tfgld482) in de sessie FV-conversietabellen per clusterbedrijf (tccri7125m000).

In de sessie FV-conversietabellen per clusterbedrijf (tccri7125m000) wordt het veld Collectieve updates geselecteerd als een tabel rechtstreeks via de RDBMS-updates wordt bijgewerkt met Verwerken (tccri7203m000).

De tabel Integratiemutaties (tfgld482) bevat mogelijk mutaties van meerdere financiële bedrijven. De integratiemutaties waarvoor updates rechtstreeks via het RDBMS kunnen worden uitgevoerd, worden gegroepeerd in update-groepen. Mutaties in één update-groep kunnen worden geconverteerd tijdens één RDBMS-update. Als de tabel Integratiemutaties (tfgld482) moet worden geconverteerd zonder rechtstreekse updates via het RDBMS, kan de tabelconversie toch worden gesplitst. Op deze manier wordt de conventionele update van de tabel verwerkt met behulp van parallelle processen.

De tabel Afstemmingsgegevens (tfgld495) moet alleen worden gesplitst als rechtstreekse updates via het RDBMS niet mogelijk zijn. Dit is bijvoorbeeld het geval als herberekening van eigen bedragen of valutakoersen is vereist.

NB
  • Als de conversie van de tabel Afstemmingsgegevens (tfgld495) wordt gesplitst, wordt de tabel niet rechtstreeks bijgewerkt via het RDBMS.
  • De tabel Gejournaliseerde mutaties (tfgld106) kan worden geconverteerd met behulp van parallelle processen. Rechtstreekse updates via het RDBMS worden niet ondersteund.

Voorbeeld van een afstemming

Dit voorbeeld geldt voor conversietaken die worden verwerkt zonder rechtstreekse updates via het RDBMS en die kunnen worden gesplitst in FV-conversietabellen per clusterbedrijf (tccri7125m000).

Bij interne conversie met parallelle verwerking kunnen conversies worden uitgevoerd met en zonder rechtstreekse updates via het RDBMS, afhankelijk van de valuta-instellingen per bedrijf.

Stel dat gegevens van drie bedrijven moeten worden geconverteerd door middel van negen parallelle bshells. De afbeelding toont deze situatie met verschillende kleuren voor de drie bedrijven.

De tabel die in taak 1.1 wordt geconverteerd, is bijzonder groot. Tegelijkertijd worden ook drie andere grote tabellen geconverteerd (2.1, 2.2 en 3.1). Als de grote conversietaak 1.1 kan worden gesplitst, kunt u besluiten taak 1.1 met zes bshells te verwerken en de taken 2.1, 2.2 en 3.1 met drie bshells. Nadat u taak 1.1 hebt gesplitst, worden de zes grotere taken waarmee deze taak wordt verwerkt, afgehandeld vóór de kleinere (paarsgekleurde) taken.

Dezelfde aanpak kunt u hanteren als de conversie van tabel 2.3 en 2.4 kan worden gesplitst. Als tabel 2.3 wordt verwerkt door twee parallelle bshells en tabel 2.4 wordt verwerkt door drie parallelle bshells, is er nog voldoende capaciteit om de overige parallelle bshells de kleinere (groengekleurde) taken tegelijk te laten uitvoeren.

Na het splitsen van de taken is de werklast van de parallelle processen evenwichtiger verdeeld.

Het totale verstreken tijd is gedaald van 28 naar 17 tijdseenheden.

Verwerken (tccri7203m000): proefconversie versus werkelijke conversie

In de simulatiemodus worden de databasemutaties van de rechtstreekse updates via het RDBMS getest. Dit type updates kan worden gebruikt voor de conversie van Afstemmingsgegevens (tfgld495), Integratiemutaties (tfgld482), Historie verkooporderregels (tdsls451) en Historie leveringsregels verkooporder (tdsls456). Mutaties worden in de proefmodus teruggedraaid. Dit kan aanzienlijk meer tijd in beslag nemen dan de mutaties in een werkelijke conversie.

In de conventionele conversielogica wordt tijdens een proefconversie geen update van tabelgegevens uitgevoerd. Terwijl deze tabellen tijdens een proefconversie in een korte tijd worden verwerkt, neemt de verwerking tijdens de werkelijke conversie meer tijd in beslag.
NB

Tijdens de valuta-initialisatie mogen geen andere gebruikers of processen actief zijn in de bedrijven van de conversiecluster, zelfs niet als de sessie Verwerken (tccri7203m000) wordt gebruikt om een proefconversie uit te voeren.

Om problemen met tabelvergrendelingen of met het lezen van niet-toegewezen mutaties te voorkomen moet u op het volgende letten:
  • Rechtstreekse updates via het RDBMS bestaan uit grote mutaties die tijdens de proefconversie worden getest maar niet worden toegewezen. Dit kan resulteren in tabelvergrendelingen voor de tabellen Afstemmingsgegevens (tfgld495), Integratiemutaties (tfgld482), Historie verkooporderregels (tdsls451) en Historie leveringsregels verkooporder (tdsls456).
  • SQL-server: Default gebruikt de databasedriver het isolatieniveau "Read uncommitted" om gedeelde vergrendelingen en de exclusieve vergrendeling voor bijwerk- en verwijderingsacties te voorkomen. Als gevolg hiervan kunnen andere gebruikers of processen tijdens een (proef)conversie niet-toegewezen mutaties lezen in de tabellen Afstemmingsgegevens (tfgld495), Integratiemutaties (tfgld482), Historie verkooporderregels (tdsls451) en Historie leveringsregels verkooporder (tdsls456). Zie voor meer informatie Infor Enterprise Server - Technical Reference Guide for SQL Server Database Driver (U8173US).

Oracle-instellingen

De rechtstreekse updates via het RDBMS bestaan uit grote mutaties. Daarom is een grote hoeveelheid undo-tabelruimte nodig. LN wordt getest met een undo-tabelruimte van 32 GB. Het is raadzaam om de undo-tabelruimte zo te configureren dat de gegevensbestanden automatisch worden uitgebreid met bijvoorbeeld 8 GB per keer. Dit voorkomt dat fouten van het type ORA-1555 (Snapshot too old) optreden. Houd rekening met de maximale bestandsgrootte.

Het valt niet goed te voorspellen of deze undo-tabelruimte voldoende is. Het is raadzaam om ORA-1555 fouten te bekijken in de logbestanden van LN wanneer de sessie Verwerken (tccri7203m000) bezig is.

In het algemeen moet de Oracle-database nauwkeurig worden ingesteld om goede queryresultaten te krijgen.

LN is getest met de volgende instellingen voor de LN-omgeving in het bestand $BSE/lib/default/db_resource:

  • ora_init:0101000
  • ora_max_array_fetch:100
  • ora_max_array_insert:100
  • ora_alter_session: set " _optim_peek_user_binds "= false

De bovenstaande regels kunt u samenvoegen met de databaseresource voor een conversie die is gebaseerd op batches.

In sommige implementaties worden niet-default waarden toegepast op verborgen Oracle-parameters (ook wel "underscore"-parameters genoemd). Deze instellingen kunnen van invloed zijn op de uitvoeringsplannen van de query's. U kunt overwegen deze terug te zetten naar de default waarden. Dit kunt u doen door de instellingen toe te voegen aan de eigenschap ora_alter_session in het bestand $BSE//lib/defaults/db_resource.

SQL-server instellingen

U kunt de logbestandregistratie voor de database LN tijdens de valuta-initialisatie wijzigen in Eenvoudig en een volledige back-up maken na voltooiing van de valuta-initialisatie.

Stel het bestand $BSE/lib/default/db_resource in zodat arrays kunnen worden opgehaald en stel vervolgens de grootte van de ophaalbewerking in op 100.

DB2-instellingen

Stel het bestand $BSE/lib/default/db_resource in zodat arrays kunnen worden opgehaald en stel vervolgens de grootte van de ophaalbewerking in op 100.