jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexandru Popescu <the.mindstorm.mailingl...@gmail.com>
Subject Re: BindableRepository
Date Mon, 05 Dec 2005 10:13:38 GMT
#: Marcel Reutegger changed the world a bit at a time by saying on  12/5/2005 11:54 AM :#
> personally I think applications should only use a shared repository that 
> is deployed as a resource. either through some standard mechanism such 
> as RARs or some proprietary servlet engine mechanism.
> 
> e.g. use the jca contribution in jackrabbit.
> 
> In any case, the servlet engine or the application server should control 
> the life cycle of the repository (resource) and not the application 
> itself. (unless the repository is embedded into the application).
> 
> regards
>   marcel
> 

I fully agree that normally the server should be responsible with this task. However, I don't

remember that the servlet engines are required to conform to JCA spec.

Doing more digging I guess an even easier way to accomplish what I have suggested and still
not 
expose the BindableRepository is to have the BindableRepository return true/false according
to the 
fact if it triggered the RepositoryImpl.shutdown(). The RegistryHelper.unregister method can
check 
this return and unbind the repository (the unbinding is still tricky as some of the JNDI are
read-only).

./alex
--
.w( the_mindstorm )p.


> Alexandru Popescu wrote:
>> Hi!
>> 
>> I have been reading about the decissions around the BindableRepository 
>> and why or why not make it package vs public level.
>> 
>> I was wondering how to handle the following scenario:
>> 
>> 2 applications A & B using a shared repository
>> application A starts the repository
>> application B retrieves it through JNDI
>> application A is shutdown for maintanance (the repository shouldn't be 
>> closed, still being used by B)
>> JVM is shutting down
>> 
>> This results imo in a not-shutdown repository.
>> 
>> IMO a better approach would be to have the BindableRepository public and 
>> its shutdown public, so that every application relying on it can `try´ 
>> to close the repository. I am saying `try´ because the 
>> BindableRepository should be able to find out if it is still referenced 
>> and trigger the RepositoryImpl.shutdown only when the last referencing 
>> application is triggering the shutdown.
>> 
>> Please let me know what do you think about this. If you agree with this 
>> scenario I can (almost) immediately provide the patched version.
>> 
>> thanks in advance,
>> 
>> ./alex
>> -- 
>> .w( the_mindstorm )p.
>> 
>> 
>> 
> 
> 
> 
> 
> 
> !DSPAM:43940e7258489828750033!
> 
> 



Mime
View raw message