4. Istuntotason valvonta-ja tilastointiohjelmisto
4.4. Tiedonkeruuohjelma
Tiedonkeruuohjelma on UX-funktioiden kanssa samassa laitteessa tietyin väli
ajoin käynnistyvä ohjelma, jonka tarkoitus on siirtää jaetun muistin rengaspus- kurissa olevat, UX-funktioiden kirjoittamat istuntotiedot talteen levytiedostoik- si ja sen jälkeen vapauttaa luetut rengaspuskurin alkiot uudelleen käytettäviksi.
Lisäksi se voi siirtää luetut tiedot muihin laitteistoihin TCP/IP-FTP -ohjelmalla.
Tietoja voidaan käyttää erilaisissa valvontaohjelmissa.
---
\
Tiedonkeruuohjelma
siirtoparametritiedostc
J
Г
Kuukausi-tiedosto
\ ТЧ
!
liI i
n\—¿j\
xz
IXXXXXXXXXXVXXXXXXXXXXXNXXXXXV-Kuva 12: Tiedonkeruuohjelman tiedostojen käyttö
48
Istuntotason valvonta- ja tilastointiohjelmísto Tiedonkeruuohjelma
Rengaspuskuri tiedonlähteenä
Tiedonkeruuohjelma käynnistyy minuutin välein ja tutkii, onko R-jonossa tie
tueita. Jos R-jono on tyhjä, niin ohjelma lopettaa välittömästi suorituksen. Kos
ka tiedonkeruuohjelma toimii tärkeissä tuotantolaitteistoissa, on sen tietojenkä
sittelyresurssien kulutus minimoitu. Tässä on onnistuttu erinomaisesti, tyypilli
nen keskusyksikön kulutus on vain muutamia kymmeniä sekunteja vuorokau
dessa.
Mikäli R-jonossa on tietueita, niin otetaan vanhin pois R-jonosta ja tarkistetaan onko sen tilaksi merkitty kirjoitettu. Jos ei, niin kirjoitetaan siitä huomio virhe- lokiin. Sitten muutetaan tietueen tilaksi "käytössä". Seuraavaksi kirjoitetaan osa tietueen tiedoista kahteen tiedostoon, muutetaan tietueen tilaksi luettu ja palautetaan se W-jonoon. Näin käydään läpi kaikki R-jono n tietueet. Kun R-jo
no on tyhjä, suljetaan tiedostot ja jäädään odottamaan seuraavaa herätystä.
Kuukausitiedosto ja päivitystiedosto
Tiedonkeruuohjelma tallettaa tietoa kahteen eri tiedostoon, koska valvonnan ja tilastoinnin tarpeet ovat hyvin erilaiset. Valvontaa varten kirjoitetaan uudet tie
dot omaan tiedostoonsa, jota on helpompi yrittää siirtää kokonaisuudessaan valvontaohjelmistoa ajaville koneille. Uusien tietojen tiedosto kirjoitetaan aina edellisen vastaavan tiedon päälle. Tilastointia varten uudet tiedot lisätään kuu
kausittain vaihtuvaan toiseen tiedostoon edellisten tietojen perään. Tästä kuu- kausitiedostosta saadaan yhden kuukauden istuntotiedot kerralla tilastoinnin tarpeisiin.
Istuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma
Kuukausitiedostot ovat nimeltään esimerkin uxl99304.csv mukaisia. Ensin on tunniste ux, sitten vuosi neljällä numerolla ja kuukausi kahdella numerolla tar
vittavine etunollineen, jotta tiedostoilla olisi yhtä pitkät nimet. Seuraavaksi on pisteellä erotettuna tiedoston tyyppi, joka on csv.24 Kuukausitiedostossa on ai
noastaan nimensä mukaisessa kuussa tapahtuneet Netex-tapahtumat. Jotkut is
tunnot voivat siten ulottua useamman tiedoston puolelle.
ALKU; 736599467; 1.0; SBSS.CSV ( TEO_DISK : «KATAJA. UE>SBSS_CSV. C ; 95 ) Versio 1.0. nyt ОП Wed May S 10:57:47 1993 TIEDOT; 736013624: VAX3; 01.00; UXCBLSEC versio 01.00. alustettu Wed Apr 28 16:13:44 1993
KOWrølTTI ; type; statu6iwrltten¡atype;msgln:byteln;msgout; byteout ; nrs; ind; len ; ubc ; req ; nr f ; bt 1 ; tnc>; rat ; obs ; bsl ; bso ; nam; hst :cwaproc;cvabost ;cwaid;cwastat TIBTO;3i2.-736600494iUxCnn; ; ; ; , 0x00000000 ; 0x00000000;2 ; 0 ; 1 ; 5308 ; 0 ; 0 ; 0 ; 0 ; 32767 ; 3;NTXOPBR ;VAX3 ; ; 0x00
TIBTO;5;2; 736600494 ;OxCmp; ; ; ;;0x00000000 ; 0x00000002 :2 ; 0 ; 130 ; 5308;2 ; 0 ; 0 ; 0 ; 32767 ; 3 ;RHTOPER ;VAX3 ; ; 0x00 TIETO ; 6 ; 2 ; 736600494 ; UxDsc ; 2 ; 722 ; 3 ; 5 ; 0x00000000 : 0x00000000,0 ; 0 ; 6 ; 5308; 32767 ; 0 ; 0 : 0 ; 32767 ; 3 : RMTOPER ; VAX3 0x00 TIETO;5;2;736600733¡Uxcnv; ; ; ; ; 0x00000000; 0x00000001; 8: 0; 129 : 5284; 20: 0 ; 0 : 0 ; 800; 149 ;BFXJS ; ; ; 0x00
TIETO;4;2;736600733:UxCnt:: ; ; 0x00000000 ; 0x00000000;6 ; 0;2; 5284 ; 20 ; 0 ; 0 ; 0 ; 800 : 149 ;PYLBVAX3 ; 1BM1 . 0x00 TIETO; 6 ; 2 ; 736600738;UxDsc; 7 ;2S75;5; 151;0x00000000;0x00000000;0 ; 0;6 ;S284;20;0 ; 0 ; 0;800 ; 149 ; PYLEVAX3 ; IBM1 : 0x00 TIBTO.-2 ¡2; 736600739;UxOfr; ; ; ; ; 0x00000000 ; 0x00000000; 0 ; 0; 129 ¡5310 ; 20; 0 ; 0 ; 0; 800 ; 149;BFXJS ; ; ; ; ; 0x00
TIETO; 3:2; 736600743 ¡Uxcnn: . . .-0x00000000; 0x00000000; 8; 0 ; 1; 5311; 0; 0; 0; 0;-1 ; 149 ; PYLEVAX3 ; IBM1 ; ¡0x00 TIETO: 5; 2:736600743 ¡UxOnp; : 0x00000000 ; 0x00000002 ; 8; 0 ; 130. S311.20 ; 0 ; 0: 0 ; 16384:149 ; PYLEVAX3 ; IBM1 ; ¡0x00 TIETO ; 6 ; 2 ; 736600743 :UxDsc;4; 199:4; 123;0x00000000 ; 0x00000000 ; 0 ; 0 ; 6.5311; 20 ; 0 : 0 ; 0 : 163 84 ; 149.FYLEVAX3 ; 1EM1 .0x00
Kuva 13: Kuukausitiedoston alkua
Kuukausitiedostossa on neljänlaisia rivejä. Rivin tyyppi ilmaistaan sen ensim
mäisellä alkiona, joka on merkkijono "ALKU", "TIEDOT", "KOMMENTTI"
tai "TIETO". ALKU-rivi kertoo milloin tiedostoon on ensimmäisen kerran kir
joitettu. Tämä ilmaistaan sekuntien lukumääränä 1.1.1970 kello 0 lähtien. Seu
raavaksi kerrotaan tiedot kirjoittaneen ohjelman versio, esimerkkitiedostossa se on "LO". Loppuosa rivistä on vapaamuotoinen kommentti, jossa kerrotaan tie
doston kirjoittaneen ohjelman nimi, sen lähdekooditiedoston koko nimi hake-mistopolkuineen ja ensimmäisen kirjoitusaika selväkielisenä ihmislukijaa hel
pottamaan.
TIEDOT-rivi kertoo jaetun muistin alueen alustusajan, istuntotietoja ilmoitta
van koneen nimen (esimerkissä VAX3), sekä jaetun muistialueen versionume
ron. Loppurivi on selväkielinen esitys alustusajasta ja versionumerosta.
KOM-24Comma-separated value, Powell90, s. 233, 264
50
I stuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma
MENTTI-rivi jätetään koneellisessa käsittelyssä huomiotta, esimerkkitiedostos- samme se kertoo TIETO-rivien kenttien selitykset.
ALKU; 737494885; 1.0; SESS.CSV (T60_DISK:«KATAJA.UB>SBSS_CSV.C;95) versio 1.0, nyt on Sat May 15 19:41:25 1993 TIEDOT; 736889101; VAX3; 01.00; UXCBLSBC versio 01.00. alustettu Sat May 8 19:25:01 1993
KOtWENTTI: type; status ¡writ ten ; a type ; msgln ; by tein ¡msgout ; by teout ; nrs; lnd; len,ubc;req,nrt ,-bfl; tmo; rat; obs.-bsl; bso; nam; hsticwaproc: cwabost:Cwald ¡cwa stat TIETO;5 ; 2 : 737494837 ;UxCmp; : ; ; ; 0x00000000 ; 0x00000001; 8 ; 0 ; 129 ; 4058;20 ; 1800 ; 0 ; 0 ; 149 ; 32600 ; 28194005 ; ; ; ; ; 0*00
TIBTO;4;2¡737494837¡UxCnt;; ; ; 0x00000000; 0x00000000 ; 6 ; 0; 2 ; 4058;20;1800; 0.0 ; 149 ; 32600 ;U373940S;IBM1 ; 0x00
TIETO : 6.-2:737494855 ;UxDsc:3; 108; 176 ; 5421695: 0x00000000 ; 0x00000000 ; 0 ; 0.6 ; 4058:20 ; 1800 ; 0 ; 0 ; 149.-32600 ¡U373940S; IBM1 ¡0x00
Kuva 14: Uudet istuntotiedot
Uusien istuntotietojen tiedosto on saman muotoinen kuin kuukausitiedosto. Ri
vejä on luonnollisesti huomattavasti vähemmän. Tämän tiedoston nimi on ux.csv. Jotta tiedosto ehditään siirtää määritellyille valvontaohjelmistoille, ei si
tä yritetä uusia kuin korkeintaan kerran minuutissa. Toisaalta, tätä suuremmalla päivitysvälillä valvonnan reaaliaikaisuus kärsii.
Tiedonkeruuohjelma siirtää uudet tiedot sisältävän ux.csv-tiedoston valvonta
ohjelmille TCP/IP FTP-ohjelmiston avulla.
Valvontaohjelmien määrittelytiedosto
Jos tiedonkeruuohjelman tulee siirtää istuntotietoja valvontaohjelmille, se tar
vitsee FTP-ohjelman käyttöön useita siirtoparametreja. Määrittelyjä on helppo muuttaa ohjelmiin koskematta, kun ne sijoitetaan omaan määrittelytiedostoon
sa. Tällainen tiedosto on kuvattu liitteessä SESS_CSV.FTP. Tiedosto on taval
linen tekstitiedosto, kommentit merkitään ensimmäisessä sarakkeessa olevalla puolipisteellä ja parametrit erotellaan toisistaan välilyönneillä. Tiedoston luku lopetetaan joko tiedoston loppuun tai ensimmäiseen tyhjään riviin. Tämän an
siosta tyhjän rivin jälkeen voi kirjoittaa vapaamuotoisia kommentteja ja käytös
tä poissa olevia parametri rivejä, kuten liitetiedostossa on tehtykin.
Istuntotason valvonta- ja tilastointiohjelmisto Tiedonketuuohjelma
Määrittelytiedostossa annetaan kustakin valvontatietoa tarvitsevasta koneesta seitsemän parametria:
hostname Tämä on kohdekoneen nimi joko symbolisena, hierarkkisena nimenä tai numeerisena IP-osoitteena.
username Tämä on kohdekoneen käyttäjätunnus, jolla siirto suorite
taan.
password Tämä on edellä olevaan käyttäjätunnukseen liittyvä sala
sana.
directory Tässä kerrotaan kohdekoneen hakemisto, johon tieto talle
tetaan.
filename Mikäli kohdekoneen FTP-palvelinohjelmisto vaatii standar
dista poiketen tiedostonimen STOU-komentoon, niin annetaan se tässä.
mode Valittavana on kaksi eri siirtotapaa: I tai A. I tarkoittaa binäärisiirtoa ja A tekstitiedostosiirtoa.
debug Jos tätä siirtoa halutaan seurata lokitiedostosta niin anne
taan parametrin aivoksi DEBUG. Muutoin arvoksi voidaan sijoittaa NODEBUG, jolloin siirrosta ei kirjoiteta lokitie
dostoon mitään.
Taulukko 8: FTP-siirtoparametritiedoston kentät
Jos jollekin parametrille ei haluta antaa arvoa ollenkaan, voidaan sen paikalle kirjoittaa NULL. Tässä tapauksessa FTP-siirrossa jätetään vastaava komento antamatta. Poikkeuksena on filename-parametri, jonka ollessa NULL annetaan STOU-komento standardin mukaisena ilman tiedostonimeä.
TCP/IP FTP-protokollan käyttö25
Tiedonkeruuohjelman FTP-toteutukseen oli mahdollista valita kaksi eri lähesty
mistapaa. Helpompi tapa olisi ollut käynnistää tiedonkeruuohjelmasta toinen
52
I stuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma
prosessi, joka olisi käyttänyt FTP-ohjelmaa kuten vuorovaikutteinen käyttäjä.
Olisi siis luotu siirto parametrien mukaan komentojono, jossa olisi annettu vuo
rovaikutteisen FTP-asiakasohjelman komentoja.
Valitsin kuitenkin kunnianhimoisemman, mutta toisaalta paljon antoisamman ja tehokkaamman toteutustavan. Ohjelmoin tiedonkeruuohjelmaan oman FTP- asiakasohjelman. Koska tehtävänä oli vain siirtää yksi tiedosto toiseen konee
seen, riittää yksinkertainen, suoritukseltaan virhetilanteita lukuunottamatta line
aarinen FTP komentojen käyttö. Tämä näkyy liitteenä olevasta SESS_FTP.C- ohjelmatiedoston siirra_tiedosto()-aliohjelmasta, jonka runkona on for-silmuk- ka. Siirtoparametrien määräämät komennot annetaan tietyssä järjestyksessä ja virheen sattuessa koko siirrosta luovutaan. Seuraavassa kuvassa näytetään, minkälainen keskustelu syntyy siirtoparametrijoukolla:
• hostname = "katajka.op.fi"
• username = "kataja"
• password = "unixs5"
• directory = "D:\XFER"
• filename = "NULL"
• mode = "I"
• debug = "NODEBUG".
25Postel85
Istuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma
Tiedonkeruuohjelma Valvojakoneen FTP-palvelija
connect katajka.op.fi:ftp
USER kataja
PASS unixsS
CWD C:\XFER
TYPE
PASV
connect 157.124.2.13:4 * 256 + 10
220 FTP server ready
331 Enter password, please
230 User kataja logged in
250 Changed directory to C:\XFER
200 Binary mode OK
227 PORT 157,124,2,13,4,10
STOU
150 Storing file as FTP44544 copy file to 157.124.2.13:1034
г
dose connection to 157.1242.13:1034
QUIT
226 File transfer succeeded
dose connection to katajka.op.fi:ftp
221 Byel
Kuva 15: FTP-tiedostonsiirron esimerkki
Ensin tiedonkeruuohjelma avaa TCP-yhteyden valvojakoneen FTP-palvelijan porttiin. Valvojakoneen FTP-palvelija tervehtii asiakasta 220-sanomalla, joka ilmoittaa FTP-palvelijan olevan valmiina vastaanottamaan komentoja. Seuraa- vaksi asiakas antaa käyttäjätunnuksen ja siihen liittyvän salasanan. Jos ne ovat oikein (vasteet ovat kuvan mukaiset), palvelin vastaa 230-sanomalla. Seuraa- vaksi asiakas valitsee hakemiston, jonne talletettava tiedosto siirretään. Tämä
54
Istuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma
tehdään CWD (Change Working Directory, vaihda oletushakemisto) komen
nolla. Seuraavaksi kerrotaan siirtotavan olevan binäärinen. Siirrettävä tiedosto
han on tekstitiedosto, mutta samankaltaisten tiedostojärjestelmien kesken on tehokkaampaa käyttää binäärisiirtoa kuin tekstisiirtoa. Binäärisiirto ei muuta millään tavalla siirrettävää tiedostoa, kun taas tekstlsiirron on otettava kantaa rivinvaihtojen säilymiseen erilaisissa tiedostojärjestelmissä. Täten tiedostosta joudutaan etsimään rivinvaihdot.
Normaalisti FTP-palvelin avaa tiedonsiirtoyhteyden asiakasohjelmaan päin.
Tässä ohjelmassa oh kuitenkin yksinkertaisempaa ottaa kaikki yhteydet asia
kasohjelmasta palvelimeen päin. PASV-komento määrää palvelinohjelman odottamaan asiakkaan yhteydenottoa. Palvelin kertoo 227-vastauksessaan, mi
hin TCP-porttiin asiakasohjelman tulee yhteys muodostaa. Portti kerrotaan CSV-muodossa kuudella luvulla. Koska TCP-portin numero on kuusitoistabit- tinen ja toisaalta vasteen jokaisen luvun tulee tarkoittaa kahdeksanbittistä lu
kua, jaetaan portin numero eniten merkitsevään tavuun ja vähiten merkitsevään tavuun. Tämän vuoksi esimerkiksi vasteen 192,126,6,105,4,10-portti tarkoittaa IP-osoitteen 192.126.6.105 TCP-porttia 4 * 256 + 10 = 1034.
Hyväksytyn P AS V-komennon jälkeen otetaan tiedonsiirtoyhteys vasteen kerto
maan porttiin. Sen jälkeen lähetetään ohjausyhteydelle komento STOU (Store Unique), joka tarkoittaa, että tieto talletetaan tiedostoon, jonka nimen FTP- palvelija saa itse muodostaa yksikäsitteiseksi. STOU-komennon vasteessa nu
mero 150 on kerrottava käytetty tiedoston nimi. Tiedoston loputtua suljetaan tiedonsiirtoyhteys. Tämä on merkki FTP-palvelijalle, että tiedosto loppui.
Pal-Istuntotason valvonta- ja tilastointiohjelmisto Valvontaohjelma
velin vastaa kertomalla onnistuiko tiedonsiirto. Viimeiseksi annetaan QUIT-ko- mento ja suljetaan ohjausyhteys.
Edellä kuvattu siirto tehdään uudelleen jokaiselle määritellylle valvontakoneel- le.