« Return to Thread: SQL module using JNDI resource

Re: SQL module using JNDI resource

by Adam Retter-3 :: Rate this Message:

Reply to Author | View in Thread

Not much is required, really you need an extra function (perhaps
called get-jndi-connection()) in the SQLModule which would be very
similar to the existing sql:get-connection() method.

For a function such as sql:get-jndi-connection($jndiName, $username,
$password), All it would really need to do is something like this -

String dbJNDI = args[0].getStringValue();
String dbUser = args[1].getStringValue();
String dbPassword = args[2].getStringValue();

Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(dbJNDI);
Connection con = ds.getConnection(dbUser, dbPassword);

//get the existing connections map from the context
HashMap connections =
(HashMap)context.getXQueryContextVar(SQLModule.CONNECTIONS_CONTEXTVAR);
if(connections == null)
{
        //if there is no connections map, create a new one
        connections = new HashMap();
}
       
//get an id for the connection
long conID = getUID();

//place the connection in the connections map
connections.put(new Long(conID), con);
                       
//store the updated connections map back in the context
context.setXQueryContextVar(SQLModule.CONNECTIONS_CONTEXTVAR, connections);
                       
//return the uid handle of the connection
return new IntegerValue(conID);


2008/5/8 <exist@...>:

>
> Hi,
>
> We're currently in a project in which we're going to use exist and
> xquery to aggregate data from several sources like external web
> services, data stored in exist and data stored in RDBMS-es.
>
> We're using the httpclient module to call the external web services
> and are going to use the sqlmodule for getting the data from the
> RDBMS-es.
>
> eXist will be run from within tomcat or jetty.
> For the SQL connections, it would be nice if I was able to reference a
> jndi resource that is managed by tomcat/jetty. This way tomcat/jetty
> will be responsible for maintaining and cleaning up the connections to
> the databases and it will result in a more scalable solution as
> compared to opening and closing a connection for each query that is run.
>
> Since I'm no programmer, I would like to know if someone has done this
> already or what needs to be changed/added to the sql module to
> implement this.
>
> Any feedback on this idea will be much appreciated.
>
>
> Kind regard,
>
> Danny
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Exist-open mailing list
> Exist-open@...
> https://lists.sourceforge.net/lists/listinfo/exist-open



--
Adam Retter

eXist Developer
{ England }
adam@...
irc://irc.freenode.net/existdb

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Exist-open mailing list
Exist-open@...
https://lists.sourceforge.net/lists/listinfo/exist-open

 « Return to Thread: SQL module using JNDI resource

LightInTheBox - Buy quality products at wholesale price