Woei, mijn eerste post in dit subforum
Ik ben op het moment bezig met het proggen van een programma dat SNMP gegevens van een aantal apparaten ophaalt, en vervolgens in een database gooit (Mysql). SNMP gedeelte werk nu
vrij goed.
Het probleem is dat, op het moment dat de SNMP waarde vernieuwt zijn, wil ik dat deze in de database gezet worden. Dit word gedaan door de klasse SNMPHandler een methode aan te laten
roepen in de klasse Aperio, die het vervolgens weer doorgeeft aan de DBHandler klasse.
:SNMPHandler
:Aperio
Niet echt ingewikkeld, maar voor de duidelijkheid. Op het moment dat ik Aperio.sensorsSNMPupdated(); uitcommentarieer, kost het updaten van de SNMP gegevens ongeveer 15 milliseconden. Op het moment dat ik deze methode wel aanroep, kost het ongeveer 320 milliseconden. Op het moment worden er nog maar 8 SNMP waarde opgehaald. Als dit er later meer worden (moeten er toch minimaal 100 worden), word dit echt te langzaam.
Het lijkt er op dat de JVM de code gewoon van boven naar beneden uitvoert, en methoden aanroept, en wacht op een antwoord of totdat zij klaar zijn. Dit wil ik niet, want het updaten van de database duurt gewoon te lang. Wat voor mogelijke oplossingen zijn hiervoor?
Natuurlijk heb ik zelf al wat research gedaan. Ik kwam uit op de package Java.util.Concurrent. Ik ben nog een beetje aan het lezen of dit een mogelijke oplossing is, maar het lijkt me een vrij ingewikkelde oplossing. Graag hoor ik dus van jullie andere mogelijke oplossingen
Muchios Gracias!
btw, de meeste klasse zijn al Threads, maar ik weet niet 100% zeker hoe ik kan zien op het daadwerkelijk aparte Threads geworden zijn?
Ik ben op het moment bezig met het proggen van een programma dat SNMP gegevens van een aantal apparaten ophaalt, en vervolgens in een database gooit (Mysql). SNMP gedeelte werk nu
vrij goed.
Het probleem is dat, op het moment dat de SNMP waarde vernieuwt zijn, wil ik dat deze in de database gezet worden. Dit word gedaan door de klasse SNMPHandler een methode aan te laten
roepen in de klasse Aperio, die het vervolgens weer doorgeeft aan de DBHandler klasse.
:SNMPHandler
code:
1
| Aperio.sensorsSNMPupdated(); |
:Aperio
code:
1
2
3
4
| public void sensorsSNMPupdated()
{
dbHandler.updateSensorsToDatabase(getSensorsArray());
} |
Niet echt ingewikkeld, maar voor de duidelijkheid. Op het moment dat ik Aperio.sensorsSNMPupdated(); uitcommentarieer, kost het updaten van de SNMP gegevens ongeveer 15 milliseconden. Op het moment dat ik deze methode wel aanroep, kost het ongeveer 320 milliseconden. Op het moment worden er nog maar 8 SNMP waarde opgehaald. Als dit er later meer worden (moeten er toch minimaal 100 worden), word dit echt te langzaam.
Het lijkt er op dat de JVM de code gewoon van boven naar beneden uitvoert, en methoden aanroept, en wacht op een antwoord of totdat zij klaar zijn. Dit wil ik niet, want het updaten van de database duurt gewoon te lang. Wat voor mogelijke oplossingen zijn hiervoor?
Natuurlijk heb ik zelf al wat research gedaan. Ik kwam uit op de package Java.util.Concurrent. Ik ben nog een beetje aan het lezen of dit een mogelijke oplossing is, maar het lijkt me een vrij ingewikkelde oplossing. Graag hoor ik dus van jullie andere mogelijke oplossingen
Muchios Gracias!
btw, de meeste klasse zijn al Threads, maar ik weet niet 100% zeker hoe ik kan zien op het daadwerkelijk aparte Threads geworden zijn?