De Orxresta kassa connect naar de SCO machine via smb protocol (samba) met in richten van de nieuwe SCO machine liepen we tegen het probleem aan dat de op de SCO machine uit zijn NSTRPAGES, na ongeveer 1 nacht gedraait te hebben was de SCO machine niet meer via het netwerk te benaderen.
Opvragen huidige status.
# netstat -m streams allocation: config alloc free total max fail stream 4096 99 3997 18135 102 0 queues 452 204 248 36278 210 0 mblks 271 164 107 4667846 236 0 buffer headers 442 309 133 326393 321 0 class 1, 64 bytes 64 5 59 2308883 12 0 class 2, 128 bytes 32 0 32 541007 25 0 class 3, 256 bytes 48 6 42 664628 39 0 class 4, 512 bytes 8 6 2 75 8 0 class 5, 1024 bytes 4 0 4 34 2 0 class 6, 2048 bytes 98 94 4 500197 97 0 class 7, 4096 bytes 0 0 0 0 0 0 class 8, 8192 bytes 1 0 1 739 1 0 class 9, 16384 bytes 1 0 1 1 1 0 class 10, 32768 bytes 0 0 0 0 0 0 class 11, 65536 bytes 0 0 0 0 0 0 class 12, 131072 bytes 0 0 0 0 0 0 class 13, 262144 bytes 0 0 0 0 0 0 class 14, 524288 bytes 0 0 0 0 0 0 total configured streams memory: 2000.00KB streams memory in use: 220.86KB maximum streams memory used: 268.12KB
het gaat vooral om de regel streams memory in use: 220.86KB en om de fail kolom als de waarde van streams memory in user hoger word als de waarde total configured streams memory: 2000.00KB dan is het netwerk niet meer te bereiken.
Dit is een probleem in SCO openserver kernel. memory wat gealloceerd word door applicatie ivm met netwerk connecties word door de applicatie wel vrij gegeven maar de SCO kernel maakt het daarna niet meer vrij. niet alle applicatie’s maken gebruik van de stream buffers. Het probleem is in sco openserver 5.0.7 opgelost. helaas konden we hier geen gebruik van maken, wij gebruik van 5.0.5 🙁 . Je kan het probleem op 2 marnieren oplossen.
1. Samba source downloaden en een een routine uiit zetten en opnieuwe compileren 2. Maak gebruik van de IP files van 5.0.7 (bij gevoegd in dit document)
Optie 1
Download de samba source van www.samba.org. versie 2.2.8a. pak deze uit in bv /tmp open de volgende file in je favorieten text editor (bv vi) source/lib/util_sock.c zoek in deze file op print_socket_options plaats voeg de extra commentaar symbolen toe zoals hier onder in rood zijn aan gegeven . i
static void print_socket_options(int s) { int value; socklen_t vlen = 4; smb_socket_option *p = &socket_options[0];
/* Edwin commented out this bit - 30-11-2004 */ /* Memory leak in sco kernel */ /* for (; p->name != NULL; p++) { if (getsockopt(s, p->level, p->option, (void *)&value, &vlen) == -1) { DEBUG(5,("Could not test socket option %s.\\\\n", p->name)); } else { DEBUG(5,("socket option %s = %d\\\\n",p->name,value)); } } */ }
hierna moet je alleen samba nog compileren. omdat ik deze methode niet gebruikt heb staat hier onder alleen in grote lijnen hoe je samba zou kunnen compileren op sco. zorg er voor dat make geinstalleerd is op sco en er moet een compiler aanwezig zijn dit mag cc maar ook gcc. deze software is te downloaden op www.sco.com je kan extra optie mee geven met compileren zoals de lokatie waar de files uit eindelijk komen te staan. doe daarom ./configure –help en je kan alle extra optie bekijken. hier onder compileren in 3 stappen.
* ./configure (eventueel met optie) * make * make install<>
als het goed is zou samba zonder fouten moeten compileren.
Optie 2
Wij hebben er voor gekozen om de ip files van 5.0.7 gebruiken deze files zijn bij dit document bij gevoegd. Driver.o en space.c plaats deze files in /etc/conf/pack.d/ip/ deze methode zou ook moeten werken voor een 5.0.6 systeem en 5.0.4 versie ik heb hem alleen getest op 5.0.5.
Als de files op op de plaats staan moet de kernel opnieuwe gerelinked worden
/etc/conf/cf.d/link_unix
daarna de machine rebooten.
shutdown -i6 -g0 -y
Zaken om rekening mee te houden
Ik heb gemerkt dat het probleem zich nog steeds voordoet als de kassa en/of de sco machines zijn aangesloten op een hub of als de switch poort verkeerd staat ingesteld. een vereisten is dus dat zowel de cwpc op een switch zitten en dat de poorten goed zijn ingesteld. zowel de kassa als de SCO machine staan ingesteld op auto negotiate de switch moet dus ook op de manier in gesteld staan. twijfel je of de switch goed is ingesteld of dat er toch spraken is van een hub dan is dit op de sco machine eenvoudig te controleren met ndstat -l is eenvoudig te checken of er collisions zijn. als dit het geval (lopen ze op) dan is er spraken van een hub / verkeert geconfigureerde switch of een slechte netwerk kabel.
Recente reacties