Ik ben bezig een applicatie te bouwen in JSP. De hele bende draait op win2K server en maakt gebruik van een dedicated SQL Server 2000 via een dedicated 100Mbit Ethernet verbinding.
De verbindingen naar die database lopen via een connection pool (protomatter). De werking van de pool is simpel. De eerste keer dat je de pool gebruikt dient er een init uitgevoerd te worden. Dan worden zaken als poolsize, db url enz. gezet. Elke volgende verbinding kun je gewoon aanmaken met als driver de pool driver + de pool naam. De pool naam wordt geassocieert met de reeds uitgevoerd init en de aangevraagde verbinding wordt uit de betreffende pool gehaald. Er hoeft geen info over de verbinding mee meegegeven te worden, zoals username password e.d. Dat wordt allemaal binnen de pool geregeld.
Nu heb ik dus een aantal JSP pagina's die zelf niet direct in de database komen. Al deze bewerkingen lopen via een set JavaBeans. Ik heb nu een DbCon object (ook een bean) wat ik een "application" scope geef binnen JSP. Bij een aanroep naar een data bean geef ik de DbCon als var mee. Op die manier heeft de betreffende databean een referentie naar het DbCon object en kan dus een Connection uit de pool vissen. (via een methode DbCon.getConnection, zodat er in geen enkel bean connection info staat, behalve de DbCon bean).
Nu heb ik de volgende vragen: Hoe kan ik in een JSP omgeving (ik gebruik Macromedia JRun, maar Tomcat of JBoss zou ook kunnen) vanuit beans bij objecten in de application scope(en dus niet via het doorgeven van referenties)?
En, is er een nette manier om bij het starten van de applicatie de init voor de pool uit te voeren (DbCon object te creeeren) en een referentie naar het object te bewaren in de application scope oid?
Laatste vraag: wanneer ik de tags:
gebruik, wordt de setParameter dan elke keer uitgevoerd? Of alleen als de bean met id "dbObj" nog niet in de application scope bestaat? Ik neem aan dat als ik de setParameter buiten de useBean tags zet dat ie sowieso wordt uitgevoerd, en dat als ie er binnen staat dat ie dan alleen wordt uitgevoerd als het object gecreeerd wordt, en dat zou maar 1 keer moeten gebeuren aangezien het een application scope heeft.
Tot zover mijn geraaskal voor vanavond
De verbindingen naar die database lopen via een connection pool (protomatter). De werking van de pool is simpel. De eerste keer dat je de pool gebruikt dient er een init uitgevoerd te worden. Dan worden zaken als poolsize, db url enz. gezet. Elke volgende verbinding kun je gewoon aanmaken met als driver de pool driver + de pool naam. De pool naam wordt geassocieert met de reeds uitgevoerd init en de aangevraagde verbinding wordt uit de betreffende pool gehaald. Er hoeft geen info over de verbinding mee meegegeven te worden, zoals username password e.d. Dat wordt allemaal binnen de pool geregeld.
Nu heb ik dus een aantal JSP pagina's die zelf niet direct in de database komen. Al deze bewerkingen lopen via een set JavaBeans. Ik heb nu een DbCon object (ook een bean) wat ik een "application" scope geef binnen JSP. Bij een aanroep naar een data bean geef ik de DbCon als var mee. Op die manier heeft de betreffende databean een referentie naar het DbCon object en kan dus een Connection uit de pool vissen. (via een methode DbCon.getConnection, zodat er in geen enkel bean connection info staat, behalve de DbCon bean).
Nu heb ik de volgende vragen: Hoe kan ik in een JSP omgeving (ik gebruik Macromedia JRun, maar Tomcat of JBoss zou ook kunnen) vanuit beans bij objecten in de application scope(en dus niet via het doorgeven van referenties)?
En, is er een nette manier om bij het starten van de applicatie de init voor de pool uit te voeren (DbCon object te creeeren) en een referentie naar het object te bewaren in de application scope oid?
Laatste vraag: wanneer ik de tags:
code:
1
2
3
| <jsp:useBean id="dbObj" class="DbObj" scope="application"> <jsp:setParameter name="dbObj" parameter="dbnaam" value="mijndatabs" /> </jsp:useBean> |
gebruik, wordt de setParameter dan elke keer uitgevoerd? Of alleen als de bean met id "dbObj" nog niet in de application scope bestaat? Ik neem aan dat als ik de setParameter buiten de useBean tags zet dat ie sowieso wordt uitgevoerd, en dat als ie er binnen staat dat ie dan alleen wordt uitgevoerd als het object gecreeerd wordt, en dat zou maar 1 keer moeten gebeuren aangezien het een application scope heeft.
Tot zover mijn geraaskal voor vanavond