Top 10 ABAP dump - első rész

Nyomtatás
Írta: Major Tamás – 2010. Szeptember 29. ( Cikkek - Netweaver )
dump1.jpgEgy programozó előbb vagy utóbb a munkája során találkozni fog szintaktikai vagy logikai hibák mellett dump-al is. Mik az ABAP dump-ok? Ezek a hibaüzenetek sok esetben segítenek megérteni, hogy a rendszernek szüksége van még valamely javításra. Nem arra kell gondolnunk, hogy lemaradt egy pontosvessző valamely sor végéről vagy, hogy rosszak volnának a hivatkozásaink. A probléma okát az SAP mélyén kell keresnünk. Viszont fontos megjegyeznem, hogy a megoldások problémánként különbözőek lehetnek. A megoldásban az SAP kontaktorok mellett segítenek egy kis kitartással az SAP Note-k is.
Cikksorozatomban a 10 leggyakoribb ABAP dump-t szeretném bemutatni. Mivel az egyes dump-k több SAP Note-ból állnak, ezért három részre bontottam az anyagot.


topdump1_elso.jpgA toplista első dump-ja a STORAGE_PARAMETERS_WRONG_SET. A problémák főként a 32 bites operációs rendszer általános korlátozásaihoz kapcsolódnak. A folyamatok az operációs rendszerben futnak szoros összefüggésekben egymással és maximum 4 GB-t tudnak címezni. A heap memory paramétereivel: abap/heap_area_dia, abap/heap_area_nondia, abap/heap_area_total tudjuk a címzést vezérelni.

A dump javításhoz több lehetőségeink vannak:

a) használjuk a boot.ini fájlban a /3GB kapcsolót

topdump1_icon1.jpgSAP Note 552209 - Maximum memory utilization for processes on NT/Win2000

Ha futás közben hibát észlelünk, akkor nézzük meg, hogy milyen szelekciós kritériumokat tudunk használni. Mivel ezek rövidebb futásidőt eredményezhetnek.
Ha korlátozva van az adatkészlet, akkor a meglévő címtartomány elegendő lesz a program befejezéséhez anélkül, hogy további módosításokat kellene végezni a rendszerben.
A paraméterváltozás után lehetséges, hogy a rendelkezésre álló címtartomány továbbra is elégtelen lesz. Ha ez a helyzet áll elő, akkor nem sikerült a szelekciós kritériumokkal korlátozni a riportot vagy a programot. Az SAP azt az üzenetet fogja adni, hogy analizáljuk részletesen a program forráskódját.
Az R/3 kezdte el használni a beállítások specifikációit, ami már a memória-intenzív programokat is végre tudja hajtani. Ez azt jelenti, hogy tesztelnünk kell a beállításokat hétvégenként vagy esténként.

Lépések:

Ha az NT Enterprise Edition vagy Windows 2000 Advanced szervert használjuk és a /3GB opció is működik (SAP Note 110172), akkor ezek a beállítások lehetővé teszik egy folyamat számára, hogy 2,5 GB memóriát foglaljon le magának a memóriatárból. Ha ezen, paraméterek beállításit használja az NT és 2000 szerver, akkor körülbelül 1,5 GB szabad memória áll rendelkezésre. Ha sikerült végrehajtani a programot a fenti beállításokkal, akkor a következő kérdéseket kellene figyelembe venni: Milyen gyakran fut a program? Naponta? Hetente?
A következő tényezők függvényében kell döntenünk:

Ez esetben a profil nem tagja a bejelentkezési csoportoknak, hanem csak arra szolgál, hogy a memória-intenzív programokat hajtsa végre.

topdump1_icon1.jpg

SAP Note 110172 - Windows: Transactions with large memory requirements

Egy munkafolyamat számára a 2 GB címzési memória 32 bites Windows szerver (NT4, Windows 2000 és 2003 szerver) alatt nem tudja kielégíteni a programok óriási memóriaigényét. Korában a 32 bites Windowsban a 2 GB címzési memóriából 1,2-1,5 GB memória állt rendelkezésre a programok számára. A maradék címzési memóriát a Shared Memory buffer használta, a program adatok és a betöltött DLL-k erősen töredezettek voltak. (Osztott memória (Shared/Common Memory): minden korszerű rendszer külön virtuális címtartományba helyezi az egyes folyamatokat (MVS), hogy azok ne zavarhassák egymást, viszont külön eszközt biztosít arra, hogy a folyamatok, ha akarnak, használhassanak megosztott memóriatartományokat.)

A címtartomány növeléséhez vagy optimalizálásához a következő lépésekre van szükség:


topdump1_icon2.jpgKernel 3.x:


topdump1_icon2.jpgKernel 4.0 és 4.5A:


topdump1_icon2.jpgKernel 4.6:

 

topdump1_icon1.jpg

SAP Note 313347 - Windows editions and memory support

Hardver tanácsok SAP bevezetéshez:

További segítségeket találunk:

Általánosságban azt mondhatjuk, hogy a Windows szervernek mindenképp 64 bites változatot kérjük.

topdump1_icon3.jpgMi a különbség az egyes Windows kiadások között?

Van néhány jelentős különbség az Enterprise Edition és a Standard Edition között.


topdump1_icon3.jpgMit jelent a /3GB opció?

Gyakran az emberek azt gondolják, hogy a /3GB opció bekapcsolása azt jelenti, hogy 3 GB vagy több memóriát tudunk címezni, de valójában ez nem így van. A 2GB memóriát növeljük meg háromra. Minden folyamat a saját címtartományában fut és maximum 2 vagy 3 GB memóriát képes címezni. Ha a folyamat eléri ezt a határt, akkor mindentől függetlenül a foglalt memória méretét lezárja. A hiba a 32 bites architektúrában rejlik. Aktiváljuk a /3GB opciót a boot.ini fájlban, amely kiterjeszti egy folyamat korlátozott címtartományát 3 GB-ra. Ezen funkció maximum 16 GB-t main memóriát támogat. Az aktiváláshoz segítséget találunk az MS Knowledge Base cikkekben:
- http://support.microsoft.com/kb/291988/hu
- http://support.microsoft.com/kb/283037/hu


topdump1_icon3.jpgEgy SAP rendszer képes 4 GB-nál nagyobb fizikai memóriát kezelni?

A válasz igen, képes. Az SAP több különálló munkafolyamatot is tartalmaz. Minden egyes munkafolyamatnak 2-3 GB virtuális memóriája van. A memória egy része meg van osztva (osztott memória), ezért csak egyszer létezik a fizikai memóriában. A megosztott és nem megosztott memória ezért lehet több mint 4 GB-t.

topdump1_icon3.jpgMennyibe kerül a Windows memória támogatása?

Az alábbi táblázatban láthatjuk a main memória által támogatott szervereket, valamit a processzorok számát:

 

Windows szerver

Támogatott main memória

Processzorok száma

Windows Server 2003 Standard Edition (32-Bit)

4 GB

4

Windows Server 2003 Standard Edition (64-Bit)

32 GB

4

Windows Server 2003 Enterprise Edition (32-Bit)

64 GB*

8

Windows Server 2003 Enterprise Edition (64-Bit)

1 TB

8

Windows Server 2003 DataCenter Edition

64 GB*

32

Windows Server 2003 Datacenter (64-Bit)

1 TB

64

Windows 2000 Standard Server **

4 GB

4

Windows 2000 Advanced Server

8 GB

8

Windows 2000 Datacenter Server

32 GB*

32

*: a /3GB funkció használat maximum 16 GB memóriát támogat
**: Microsoft nem támogatja a /3GB funkciót

 

b) a másik út a probléma kivédéséhez az volna, hogy próbáljunk meg több kritériumot megadni a riportban/programban/tranzakcióban, aminek eredményként kevesebb belépésre lesz szükség az adatbázisodba vagy a bufferbe. Ha ezt az utat választjuk, akkor a rendszernek nem lesz szüksége sok forrásra a tranzakció futtatáshoz.

c) a memória csökkenést vezérlő paraméterek: rdisp/ROLL_SHM, rdisp/PG_SHM

d) migráljuk a rendszerünket 64 bitesre (SAP Note 931024)

topdump1_icon1.jpg

SAP Note 931024 - FAQ: 64-bit platforms for Windows


topdump1_icon3.jpgAz SAP jelenleg milyen 64 bites Windows platformokat támogat?

Az SAP a következő Windows platformokat támogatja:
- x64 (x86_64 vagy AMD64 néven is ismert): ez az AMD-nek egy 64 bites mikroprocesszoros architektúrája. Később az Intel is bemutatott egy kompatibilis architektúrát EM64T néven.
- IA64 (Intel 64 bites architektúra): ez az Intel-nek és Hewlett-Packard egy 64 bites mikroprocesszoros architektúrája (Itanium, Itanium 2).


topdump1_icon3.jpgMik volnának a platformok közötti különbségek?

Az x64 a hagyományos x32 architektúrát bírálja felül. Az x64 alatt a teljes 32 bites programok mellett 64 bites teljes programok is futtathatók. Az x64 bites standard architektúra lesz a jövő a nagyteljesítményű szerverek számára.
Másik oldalról viszont az IA64-t úgy tervezték, hogy a HP PA-Risk és Intel x86 32 bit-nek legyen a következő generációja. Az EPIC architektúra rakta le az ütemezett logikát a fordítóprogramokhoz. Ahelyett, hogy a logikai chip tartalmazna több párhuzamos integer-t, float egységet és több regisztert. Ennek nagy hasznát veszik a tudományos számítások és az építészet.
További információkat olvashatunk a következő linken: http://www.sap.com/benchmark

topdump1_icon3.jpgMik volnának a 64 bites platform előnyei a 32 bitessel szemben?


A 32 bites platformnak egy folyamata nem tud 3 GB-nál nagyobb memóriát címezni, még akkor sem, ha több fizikai memória áll rendelkezésre. A növekvő adatbázis méretek és az alkalmazások összetettsége egyre inkább korlátozza a felhasználókat. Ezek ahhoz vezetnek, hogy bizonyos alkalmazások egyszerűen nem tudnak befejeződni. Egy ABAP alkalmazás szerver a következő dump-t adhatja: 'TSV_TNEW_PAGE_ALLOC_FAILED' vagy 'STORAGE_PARAMETERS_WRONG_SET'. Továbbá az adatbázis oldalon is hasonló problémák jelentkezhetnek.
A 64 bites platform egy folyamata gyakorlatilag korlátlan mennyiségű memóriát képes címezni, elkerülve így a fent említett problémákat. További előny, hogy a memória kezelés konfigurációja egyszerűbb, alapvetően tudjuk használni a 64 bites rendszer memóriával kapcsolatos paramétereit. A 32 bites platform puffer kiigazítása nehézzé válik, ha a rendelkezésre álló teljes címtartományt akarjuk használni. A /3GB funkció az operációs rendszernek csak 1 GB memóriát ad, és ez gyakran probléma akkor, mikor a rendszernek több kell. Ez gyakran megtörtént a több mint 12 GB memóriával rendelkező rendszereknél.

topdump1_icon3.jpgA jövőben az SAP ezeket a platformokat, hogy fogja támogatni?


Az SAP támogatni fogja az IA64 és x64 rendszereket egészen mindaddig, amíg a Microsoft és az Intel támogatja az SAP-t.
A következő linken többet is tudunk olvasni a termékrendelkezésre álló mátrixhoz (PAM) mely operációs rendszerek, adatbázisok és SAP alkalmazások választhatók: http://service.sap.com/pam.

topdump1_icon3.jpgMikortól nem lesznek támogatottak a 32 bites platformok?


Az SAP 6.20-s verzióját ne használjuk 32 bites platformon. További információk itt találhatóak: http://service.sap.com/pam.

 

topdump1_icon1.jpg

SAP Note 996600 - 32 Bit platforms not recommended for productive NW2004s apps

A tranzakció véget ért mivel a memória kiosztás hibás. Az alkalmazás szerver indítása rossz volt, mivel az összes buffer foglalás meghaladta a 32 bites határt. Általános szabályként lehet feltételezni, hogy az új hozzáadott funkcionalitások az alkalmazásokban több erőforrást igényelnek.
Amíg a 32 bites 4.6-s SAP verzió címtartománya elegendő volt néhány ritka esetet kivéve az összes alkalmazás számára, ahol elég nagy belső alkalmazásokat hoztunk létre. Addig a NetWeaver 2004-nek, a 7.00-s megfelelő kernellel a funkcionalitások változásainak a növekedése miatt nagyobb címtartományra volt szüksége:

Ebben a dump-ban megtapasztalhattuk azt, hogy mennyire fontos kérdés a megfelelő bites Windows szerverválasztás. A következő részben a memóriakezelésről fogok írni. Bízom benne, hogy hasznát veszitek a cikksorozatomnak és remélem legközelebb is fogunk találkozni.

 

A szerző a veszprémi Mérnök Informatika szakon végezett, majd egy multinál az SAP-val dolgozott key user-ként az MM,SD és XI modulokban, ahol a fő feladata a folyamatok felállítása és meglévők optimalizálása volt. 2010-től egy középvállalatnál dolgozik ugyancsak key user-ként a AM, MM, PM, PP, SD, WM területeken. Jelenleg egy SAP ugrade előkészítésén dolgozik.

További cikkek a szerzőtől


Nincs hozzászólása.
A téma megvitatása a fórumon. (0 hozzászólás)