You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Dain Sundstrom <da...@iq80.com> on 2007/01/09 19:02:35 UTC

Connector Lazy Activation

The ConnectionTrackingCoordinator now supports lazy connector  
activation via the optional 'lazyActivation' GBean attribute.   
Currently, the CTC tracks all connections opened in a component  
instance and when the component is reentered, all previously open  
connections are reconnected.  The new optional mode waits to  
reconnect connection until they are actually used.  If the connection  
is not used, then it is not connected.  This is accomplished by  
proxying the Connection instance.  The proxy implements all  
interfaces that the Connection implemented, so the proxy can still be  
cast to a vendor specific connection interface (think Oracle JDBC  
Connection sub-interface).

One very nice side effect of this feature is that is reduces the  
burden to track open connections on a per component basis.  Without  
lazy activation, each component instance must track previously open  
connections, so that they can be reconnected.  With lazy activation,  
the proxy is performing this tracking, so the component is free to  
not track that information.  Of course, components will still want to  
demarc component entrance and exit so the Connector system can return  
handles to the connection pool (for connectors that support  
disassociation), but that is a much simpler task.  This relaxation of  
the requirements for a component integrator is very important to  
OpenEJB3 as we now use JPA for CMP and will not be able to implement  
all of the connector tracking rules that we were when we had complete  
control over the CMP implementation.  This will also make integration  
with component frameworks Spring much easier since connection  
tracking can be optional.

I have applied this improvement to trunk where is it on by default  
and to branch/1.2 where it is not active.  I have also verified that  
the it does not break the tck for 1.2 in either mode.

-dain


Re: Connector Lazy Activation

Posted by Dain Sundstrom <da...@iq80.com>.
BTW, this was very easy to implement.  Did it Sunday and sill managed  
to make it to a movie (I highly recommend you all see "Children of  
Man").  The architecture had a very convient place to put the proxy  
creation code, and it was easy to catch events to release the proxy  
connection.  Kudos to Jencks!

-dain

On Jan 9, 2007, at 10:02 AM, Dain Sundstrom wrote:

> The ConnectionTrackingCoordinator now supports lazy connector  
> activation via the optional 'lazyActivation' GBean attribute.   
> Currently, the CTC tracks all connections opened in a component  
> instance and when the component is reentered, all previously open  
> connections are reconnected.  The new optional mode waits to  
> reconnect connection until they are actually used.  If the  
> connection is not used, then it is not connected.  This is  
> accomplished by proxying the Connection instance.  The proxy  
> implements all interfaces that the Connection implemented, so the  
> proxy can still be cast to a vendor specific connection interface  
> (think Oracle JDBC Connection sub-interface).
>
> One very nice side effect of this feature is that is reduces the  
> burden to track open connections on a per component basis.  Without  
> lazy activation, each component instance must track previously open  
> connections, so that they can be reconnected.  With lazy  
> activation, the proxy is performing this tracking, so the component  
> is free to not track that information.  Of course, components will  
> still want to demarc component entrance and exit so the Connector  
> system can return handles to the connection pool (for connectors  
> that support disassociation), but that is a much simpler task.   
> This relaxation of the requirements for a component integrator is  
> very important to OpenEJB3 as we now use JPA for CMP and will not  
> be able to implement all of the connector tracking rules that we  
> were when we had complete control over the CMP implementation.   
> This will also make integration with component frameworks Spring  
> much easier since connection tracking can be optional.
>
> I have applied this improvement to trunk where is it on by default  
> and to branch/1.2 where it is not active.  I have also verified  
> that the it does not break the tck for 1.2 in either mode.
>
> -dain