[ DeYo @ 28.04.2007. 10:24 ] @
Imam web aplikaciju u kojoj za kontrolu i pokretaje scheduled procesa koristim Quartz paket (www.opensymphony.com/quartz). Kreiranje jobova, njihova organizacija i samo pokretanje nisu problem. Problem je konekcija sa bazom, u ovom slucaju konkretno Oracle 9i ali to ne menja sustinu. Quatz jobovi se izvrsavaju van web kontejnera i zato nemaju mogucnost direktnog pristupa web kontekstu i JNDI referenci koja je tamo definisana (data source binding). Privremeno sam resio tako sto sam u inicajlni Quartz servlet, koji ucitavam sa pokretanjem web aplikacije, dodao parametre za dbUsername, dbPassword i dbUrl (definisano unutar web.xml). Ti parametri se iz kreiranog schedulera prosledjuju jobovima pa pristup bazi obavljam direktnim ucitavanjem: Code: DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection connection = DriverManager.getConnection(dbUrl, dbUsername, dbPassword); Medjutim, zbog postavke problema, treba mi mogucnost da dohvatim JNDI. Nesto nalik ovome: Code: ctx = new javax.naming.InitialContext(); Context envCtx = (Context) ctx.lookup("java:comp/env"); ds = (DataSource) envCtx.lookup("my_ds"); dc = ds.getConnection(); Da li je to nekako moguce? Negde sam nasao tip da se u servletu izvuku potrebni parametri web kontexta i da se to zatim prosledi jobovima, unutar kojih bi se zatim vrsio restore (!?) ili kreiranje novog konteksta. Medjutim nikakav primer implemetacije nisam pronasao. Ako ima ljudi iskusnih sa koriscenjem Quartz paketa svaka pomoc bi mi dobro dosla. Hvala unapred. |