[ 
http://issues.apache.org/jira/browse/JCR-313?page=comments#action_12366615 ] 

Marcel Reutegger commented on JCR-313:
--------------------------------------

Thanks Jukka for taking the initiative on this issue. If everyone else is ok 
with implementing JNDI support in the SimpleDbPersistenceManager that's also 
fine with me. But a have a few concerns that I'd like to express:

- I share Brians opinion to create a separate implementation that is JNDI 
enabled and move the common logic into a base class. The main reason here is to 
keep the existing implementation simple.

- The implementation that uses JNDI should not keep the connection that it gets 
from the datasource. There are several reasons why this is not desirable: 1) 
there might be a connection timeout in the datasource that will revoke the 
connection given to the PM, 2) if the connection is broken due to a network 
failure, the PM would have to recover from that failure. But this is exactly 
the responsibility of a DataSource.
One of the concerns with the current simple implementation is that it does not 
make use of a pool (DataSource), the JNDI enabled PM should address this.

- With the previous point in mind, a JNDI enabled PM will not be able to use 
prepared statements over multiple store() operations, because it should return 
the connection. This will probably have a significant impact on the 
implementation of the PM. So, I'm not sure how much of the current Simple DB PM 
can acutally be reused.


> Allow to configure DB persistence managers through JDNI
> -------------------------------------------------------
>
>          Key: JCR-313
>          URL: http://issues.apache.org/jira/browse/JCR-313
>      Project: Jackrabbit
>         Type: Improvement
>     Versions: 0.9
>     Reporter: Martin Perez
>     Assignee: Jukka Zitting
>      Fix For: 1.0
>  Attachments: dbpm-jndi.patch
>
> Currently, DB persistence managers have hardcoded urls. Even more, they will 
> use a single connection with the drawbacks that this have regarding 
> concurrency, performance and transactionality. 
> It would be fairly better to allow to configure DB persistence managers 
> through JDNI references to DataSource. So giving responsability to 
> application server. Concurrency, performance and transactionability will be 
> highly boosted with this approach. 
> This could be a sample configuration :
> <PersistenceManager 
> class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
>        <param name="dataSource" value="jdbc/JackrabbitDS"/>
>         
>        .... think also about a way to pass params to data source, it should 
> be simple ....
>        <param name="schema" value="mysql"/>
>        <param name="schemaObjectPrefix" value="${
> wsp.name}_"/>
>        <param name="externalBLOBs" value="false"/>
>    </PersistenceManager>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to