tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Connolly <stephen.alan.conno...@gmail.com>
Subject Re: ManagedConnectionFactory.matchManagedConnections
Date Thu, 11 Feb 2010 19:25:06 GMT
I'd come to the same conclusion myself...

http://n4.nabble.com/How-do-i-configure-the-pooling-strategy-for-an-outbound-resource-adapter-embedded-td1477489.html#a1477489

On 11 February 2010 18:50, David Jencks <david_jencks@yahoo.com> wrote:
> Not sure I'm on the openejb-users list...
>
> Stephen,
>
> this might be easier to discuss on the geornimo users list where I'm
> subscribed :-)
>
> The geronimo connector framework gives you a lot of options for how to
> configure pooling, since the behavior naively implied by the spec doesn't
> seem very concurrency-friendly to me.
>
> I think you've configured a single pool for all the managed connections,
> where the assumption is that all the connections are identical so every
> managed connection will match every request.  In this configuration, the
> framework picks a single managed connection from the pool and calls match
> with a singleton set containing it to verify that the configuration
> assumption is correct.  Since this is evidently not the situation you are in
> you have two options:
>
> 1. Configure mutliple pools partitioned on the request info.
>
> 2. Use the match-all strategy which will give the mcf all the connections in
> the pool to look at.  This has concurrency implications.
>
> I don't know how this stuff is configured in openejb.... with the aid of
> some documentation or a pointer to the code I might be able to give more
> specific advice.
>
> thanks
> david jencks
>
>
>
> On Feb 11, 2010, at 9:32 AM, David Blevins wrote:
>
>>
>> On Feb 10, 2010, at 6:16 AM, Stephen Connolly wrote:
>>
>>> Hi,
>>>
>>> Having some fun with
>>> ManagedConnectionFactory
>>> .matchManagedConnections(Set,Subject,ConnectionRequestInfo)
>>>
>>> I have a custom RA...
>>>
>>> my implementation looks a little something like (pseudo code)
>>>
>>> for (ManagedConnectionImpl mci: connectionSet) {
>>>  if (mci.getRequestInfo().equals(requestInfo)) {
>>>   return mci;
>>>  }
>>>  return null;
>>> }
>>>
>>> which from my reading of section 6.5.3 of the JCA spec is the correct
>>> thing to do if you implement connection pooling.
>>>
>>> However, if at any point I fail to find a matching connection from the
>>> supplied connectionSet and return null per the spec, I get a lovely
>>> exception from
>>>
>>> org
>>> .apache
>>> .geronimo
>>> .connector
>>> .outbound.SinglePoolConnectionInterceptor#internalGetConnection
>>>
>>> thrown from line 105: The pooling strategy does not match the
>>> MatchManagedConnections implementation. Please investigate and
>>> reconfigure this pool
>>>
>>> If I instead throw a javax.resource.NotSupportedException then things
>>> seem to work, but that is against the spec...
>>
>> David Jencks is the one who wrote the Java EE Connector impl we use.  He
>> might have a better idea.
>>
>> -David
>>
>
>

Mime
View raw message