Thanks Derek. I also just found this: http://groups.google.com/group/liftweb/browse_thread/thread/e75046eaf215e97/259da9d9ef22ca7a?lnk=gst&q=%22extends+connectionmanager%22#
On Oct 21, 9:15 pm, Derek Chen-Becker <dchenbec...@gmail.com> wrote: > I think that you're making this more complicated that it needs to be, > although I may be misunderstanding the question. The ConnectionIdentifier > trait has a jndiName val on it. If you specify a valid JNDI name for that > val, then you don't need to wire up a connection manager for it. You can > simply do things like: > > object MyConnOne extends ConnectionIdentifier { val jndiName = > "jdbc/ConnOne" } > object MyConnTwo extends ConnectionIdentifier { val jndiName = > "jdbc/ConnTwo" } > > // Wire up a default > DB.defineConnectionManager(DefaultConnectionIdentifier, DerbyDBVendor) > > DB.use(MyConnOne) { conn => > DB.exec(conn) { results => ... } > > } > > Lift will automatically handle retrieving the data source via JNDI if you > specify a ConnectionIdentifier and you don't have a connection manager > defined. > > Derek > > > > On Wed, Oct 21, 2009 at 10:38 AM, opyate <opy...@gmail.com> wrote: > > > Hello Lift committers, > > > I have a quick question about defining a datasource. I usually do it > > like this: > > > DefaultConnectionIdentifier.jndiName = "jdbc/myApp" > > // use default internal Derby DB if there's not already a JNDI > > connection defined > > if (!DB.jndiJdbcConnAvailable_?) { // looks at > > DefaultConnectionIdentifier > > Log.warn("No JNDI configured - using default built-in Derby > > database.") > > DB.defineConnectionManager(DefaultConnectionIdentifier, > > DerbyDBVendor) > > } > > > Is DerbyDBVendor in this case a fallback datasource? (Presumably it > > is, if the JNDI lookup is not available...) > > > If so, this leads to my next question, relating to defining extra > > (i.e. non-default) datasources. > > > The only way (it seems) for me to do it, is by using: > > > DB.defineConnectionManager(CustomConnId1, SomeDBVendor1) > > DB.defineConnectionManager(CustomConnId2, SomeDBVendor2) // > > CustomConnId1/2 points to defined JNDI lookups > > > Is there a way to define custom datasources without specifying a > > fallback SomeDBVendor1, SomeDBVendor2, etc? > > I couldn't see anything obvious in the latest checkout of DB.scala > > > At the moment I'm forced to define these fallbacks, and when my app > > context reloads, poor Derby steps on its own toes: > > > Caused by: java.nio.channels.OverlappingFileLockException > > at sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList > > (FileChannelImpl.java:1170) > > at sun.nio.ch.FileChannelImpl$SharedFileLockTable.add > > (FileChannelImpl.java:1072) > > at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:878) > > at java.nio.channels.FileChannel.tryLock(FileChannel.java:962) > > at org.apache.derby.impl.io.DirFile4.getExclusiveFileLock(Unknown > > Source) > > > I understand that SomeDBVendor1/2 could contain my db connection > > details, but I don't want to have db connection details specified in > > ConnectionManager instances in my code, and would rather keep them in > > JNDI lookups, and said ConnectionManager instances seems to be > > compulsory at this stage. > > > Please shed some light - I might be missing the boat again > > completely :-) > > > Ultimately I'd like to have the same control over my extra datasources > > than I do over DefaultConnectionIdentifier. > > > Thanks, > > Juan --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---