With a multicore.xml that looks like:
<multicore enabled="true" adminpath="/admin/multicore"
persistent="true"  libDir="solr/lib" >
 <core name="core0" instanceDir="core0" default="true"/>
 <core name="core1" instanceDir="core1" />
</multicore>

it seems to work fine.

Just a tip:
libDir is somehow not relative to configdir. Maybe making it relative to
cfgDir, like:
libDir=cfgdir+libDir;
@ row 83 of MultiCore.java could make it more intuitive. (ie. 
libDir="lib" vs. libDir="solr/lib")

I will test it better,
thanks,
Walter

Henri Biestro (JIRA) wrote:
>      [ 
> https://issues.apache.org/jira/browse/SOLR-409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>  ]
>
> Henri Biestro updated SOLR-409:
> -------------------------------
>
>     Attachment: solr-350_409.patch
>
> solr 350 & solr 409 mixed together
>
>   
>> Allow configurable class loader sharing between cores
>> -----------------------------------------------------
>>
>>                 Key: SOLR-409
>>                 URL: https://issues.apache.org/jira/browse/SOLR-409
>>             Project: Solr
>>          Issue Type: Sub-task
>>    Affects Versions: 1.3
>>            Reporter: Henri Biestro
>>            Priority: Minor
>>             Fix For: 1.3
>>
>>         Attachments: solr-350_409.patch, solr-409.patch, solr-409.patch
>>
>>
>> WHAT:
>> This patch allows to configure in the solrconfig.xml the library directory 
>> and associated class loader used to dynamically create instances.
>> The solr config XML can now specify a libDir element (the same way the 
>> dataDir can be specified).
>> That element can also specify through the 'shared' attribute whether the 
>> library is shared.
>> By default, the shared attribute is true; if you specify a libDir, its class 
>> loader is made shareable.
>> Syntax:
>> <libDir shared='true*|false'>/path/to/shareable/dir</libDir>
>> WHY:
>> Current behavior allocates one class loader per config & thus per core.
>> However, there are cases where one would like different cores to share some 
>> objects that are dynamically instantiated (ie, where the class name is used 
>> to find the class through the class loader and instantiate). In the current 
>> form; since each core possesses its own class loader, static members are 
>> indeed different objects. For instance, there is no way of implementing a 
>> singleton shared between 2 request handlers.
>> Originally from 
>> http://www.nabble.com/Post-SOLR215-SOLR350-singleton-issue-tf4776980.html
>> HOW:
>> The libDir element is extracted from the XML configuration file and parsed 
>> in the Config constructor.
>> A static map of weak reference to classloaders keyed by library path is used 
>> to keep track of already built shareable class loaders.
>> The weak reference is here to allow class eviction by the GC, avoiding 
>> leakage that would result by keeping hard reference to class loaders.
>> STATUS:
>> initial code drop
>>     
>
>   

Reply via email to