Mercurial > dive4elements > river
view flys-aft/src/main/resources/sql/aft-common.properties @ 5779:ebec12def170
Datacage: Add a pool of builders to make it multi threadable.
XML DOM is not thread safe. Therefore the old implementation only allowed one thread
to use the builder at a time. As the complexity of the configuration
has increased over time this has become a bottleneck of the whole application
because it took quiet some time to build a result. Furthermore the builder code path
is visited very frequent. So many concurrent requests were piled up
resulting in long waits for the users.
To mitigate this problem a round robin pool of builders is used now.
Each of the pooled builders has an independent copy of the XML template
and can be run in parallel.
The number of builders is determined by the system property
'flys.datacage.pool.size'. It defaults to 4.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Sun, 21 Apr 2013 12:48:09 +0200 |
parents | 7a68967ca72a |
children |
line wrap: on
line source
select.gewaesser = \ SELECT GEWAESSER_NR, NAME FROM SL_GEWAESSER select.messstelle = \ SELECT NAME, MESSSTELLE_NR, STATIONIERUNG \ FROM MESSSTELLE \ WHERE GEWAESSER_NR = :GEWAESSER_NR select.abflusstafel = \ SELECT ABFLUSSTAFEL_NR, \ ABFLUSSTAFEL_BEZ, \ strftime('%s', GUELTIG_VON) * 1000 AS GUELTIG_VON, \ strftime('%s', GUELTIG_BIS) * 1000 AS GUELTIG_BIS, \ PEGELNULLPUNKT, \ BFG_ID \ FROM ABFLUSSTAFEL \ WHERE MESSSTELLE_NR LIKE :number select.tafelwert = \ SELECT TAFELWERT_NR AS id, WASSERSTAND AS w, ABFLUSS AS q FROM TAFELWERT \ WHERE ABFLUSSTAFEL_NR = :number select.bfg.id.current = \ SELECT ABT.BFG_ID AS BFG_ID FROM ABFLUSSTAFEL ABT \ WHERE GUELTIG_VON IN ( \ SELECT min(GUELTIG_VON) FROM ABFLUSSTAFEL \ WHERE GUELTIG_VON IS NOT NULL AND GUELTIG_BIS IS NULL \ AND MESSSTELLE_NR LIKE :number) \ AND MESSSTELLE_NR LIKE :number