Pranay,

I tried two similar approaches to resolve this in my system which is
Solr 4.0 running in Tomcat 7.x on Ubuntu 9.10.

My preference was to use an alias for each of my database environments
as a JVM parameter because it makes more sense to me that the database
connection be stored in the data config file rather than in a Tomcat
configuration or startup file.
Because of preference, I first attempted the following:
1. Set a JVM environment variable 'solr.dbEnv' to the represent the
database environment that should be accessed. For example, in my dev
environment, the JVM environment variable was set as -Dsolr.dbEnv=dev.
2. In the data config file I had 3 data sources. Each data source had
a name that matched one of the database environment aliases.
3. In the entity of my data config file "dataSource" parameter was set
as follows dataSource=${solr.dbEnv}.

Unfortunately, this fails to work. Setting "dataSource" parameter in
the data config file does not override the default. The default
appears to be the first data source defined in the data config file.

Second, I tried what Marcus suggested.

That is, I created a JVM variable to contain the connect URLs for each
of my environments.
I use that variable to set the URL parameter of the dataSource entity
in the data config file.

This works well.


Best,
Jerry Mindek

Unfortunately, the first option did not work. It seemed as though
On Wed, Jul 18, 2012 at 3:46 PM, Pranav Prakash <pra...@gmail.com> wrote:
> That approach would work for core dependent parameters. In my case, the
> params are environment dependent. I think a simpler approach would be to
> pass the url param as JVM options, and these XMLs get it from there.
>
> I haven't tried it yet.
>
> *Pranav Prakash*
>
> "temet nosce"
>
>
>
> On Tue, Jul 17, 2012 at 5:09 PM, Markus Klose <m...@shi-gmbh.com> wrote:
>
>> Hi
>>
>> There is one more approach using the property mechanism.
>>
>> You could specify the datasource like this:
>> <dataSource name="database" driver="${sqlDriver}" url="${sqlURL}"/>
>>
>>  And you can specifiy the properties in the solr.xml in your core
>> configuration like this:
>>
>> <core instanceDir="core1" name="core1">
>>         <property name="sqlURL" value="jdbc:hsqldb:/temp/example/ex"/>
>>         ....
>> </core>
>>
>>
>> Viele Grüße aus Augsburg
>>
>> Markus Klose
>> SHI Elektronische Medien GmbH
>>
>>
>> Adresse: Curt-Frenzel-Str. 12, 86167 Augsburg
>>
>> Tel.:   0821 7482633 26
>> Tel.:   0821 7482633 0 (Zentrale)
>> Mobil:0176 56516869
>> Fax:   0821 7482633 29
>>
>> E-Mail: markus.kl...@shi-gmbh.com
>> Internet: http://www.shi-gmbh.com
>>
>> Registergericht Augsburg HRB 17382
>> Geschäftsführer: Peter Spiske
>> USt.-ID: DE 182167335
>>
>>
>>
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Rahul Warawdekar [mailto:rahul.warawde...@gmail.com]
>> Gesendet: Mittwoch, 11. Juli 2012 11:21
>> An: solr-user@lucene.apache.org
>> Betreff: Re: DIH XML configs for multi environment
>>
>> http://wiki.eclipse.org/Jetty/Howto/Configure_JNDI_Datasource
>> http://docs.codehaus.org/display/JETTY/DataSource+Examples
>>
>>
>> On Wed, Jul 11, 2012 at 2:30 PM, Pranav Prakash <pra...@gmail.com> wrote:
>>
>> > That's cool. Is there something similar for Jetty as well? We use Jetty!
>> >
>> > *Pranav Prakash*
>> >
>> > "temet nosce"
>> >
>> >
>> >
>> > On Wed, Jul 11, 2012 at 1:49 PM, Rahul Warawdekar <
>> > rahul.warawde...@gmail.com> wrote:
>> >
>> > > Hi Pranav,
>> > >
>> > > If you are using Tomcat to host Solr, you can define your data
>> > > source in context.xml file under tomcat configuration.
>> > > You have to refer to this datasource with the same name in all the 3
>> > > environments from DIH data-config.xml.
>> > > This context.xml file will vary across 3 environments having
>> > > different credentials for dev, stag and prod.
>> > >
>> > > eg
>> > > DIH data-config.xml will refer to the datasource as listed below
>> > > <dataSource jndiName="java:comp/env/<*YOUR_DATASOURCE_NAME*>"
>> > > type="JdbcDataSource" readOnly="true" />
>> > >
>> > > context.xml file which is located under "/<TOMCAT_HOME>/conf" folder
>> > > will have the resource entry as follows
>> > >   <Resource name="<*YOUR_DATASOURCE_NAME*>" auth="Container"
>> > >             type="" username="XXXXX" password="XXXXX"
>> > >             driverClassName=""
>> > >             url=""
>> > >             maxActive="8"
>> > >             />
>> > >
>> > > On Wed, Jul 11, 2012 at 1:31 PM, Pranav Prakash <pra...@gmail.com>
>> > wrote:
>> > >
>> > > > The DIH XML config file has to be specified dataSource. In my
>> > > > case, and possibly with many others, the logon credentials as well
>> > > > as mysql
>> > server
>> > > > paths would differ based on environments (dev, stag, prod). I
>> > > > don't
>> > want
>> > > to
>> > > > end up coming with three different DIH config files, three
>> > > > different handlers and so on.
>> > > >
>> > > > What is a good way to deal with this?
>> > > >
>> > > >
>> > > > *Pranav Prakash*
>> > > >
>> > > > "temet nosce"
>> > > >
>> > >
>> > >
>> > >
>> > > --
>> > > Thanks and Regards
>> > > Rahul A. Warawdekar
>> > >
>> >
>>
>>
>>
>> --
>> Thanks and Regards
>> Rahul A. Warawdekar
>>

Reply via email to