are you sure the default pooling strategy is compatible with your outbound adapter... I spent some time figuring out how to control the pooling strategy. I'll see about posting a blog entry on the solution maybe tomorrow if I get a chance

Sent from my [rhymes with tryPod] ;-)

On 17 Feb 2010, at 22:53, Laird Nelson <[email protected]> wrote:

Bug filed, though assuredly the problem is with Geronimo since it shouldn't
be using assertions to check argument values:
https://issues.apache.org/jira/browse/OPENEJB-1234

Best,
Laird

On Wed, Feb 17, 2010 at 5:06 PM, Laird Nelson <[email protected]> wrote:

Well, the long thread I followed suggests that the only way to get my
connection factory from a @LocalClient is to access it under
java:openejb/Resource/classes. There isn't any other name I can give it, and there isn't any other name I can look it up under. I am thrilled if there is in fact another possibility, but to my knowledge this and only this
works:

 @Resource(name="java:openejb/Resource/classes")
 private MyConnectionFactoryImpl connectionFactory;

...and there is no other configuration located anywhere else (in XML, in
properties, in code).

Now that I have it working, I can see that the connection factory is
correctly injected.  Hooray!

However, when I call its method that gets me a new user connection, I'm
getting an AssertionError in the middle of the Geronimo connection
management infrastructure. The stack is at the end of my message. Perhaps David Jencks is lurking on this list? I can provide any and all information
as necessary.

Best,
Laird

java.lang.AssertionError
   at
org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener.addConnectionInfo( GeronimoConnectionEventListener.java:121)
   at
org.apache.geronimo.connector.outbound.ManagedConnectionInfo.addConnectionHandle( ManagedConnectionInfo.java:117)
   at
org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getConnection( ConnectionHandleInterceptor.java:50)
   at
org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection (TCCLInterceptor.java:39)
   at
org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.getConnection( ConnectionTrackingInterceptor.java:66)
   at
org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocateConnection( AbstractConnectionManager.java:87)
   at
com.foobar.jca.StatelessKnowledgeSessionUserConnectionFactory.newStatelessKnowledgeSession( StatelessKnowledgeSessionUserConnectionFactory.java:229)

(You'll note that I'm doing a JCA implementation for Drools 5.0.1; my
KnowledgeBase implementation serves as my connection factory; the user
connection to the Drools instance is represented by the
StatelessKnowledgeSession interface.)


On Wed, Feb 17, 2010 at 4:35 PM, Stephen Connolly <
[email protected]> wrote:

markmail is not iPod friendly, so I'm not sure if your like makes the
following redundant.

in general, I find openejb just wires things up for you, so if you are looking for a MyConnectionFactory at java:eis/mcf even though you gave not told openejb to bind it to that jndi name, openejb will see that it has classesRA which provides MyConnectionFactory, and just wire it up... which makes testing easier as you don't have to try and replicate jboss jndi
bindings in your openejb tests

Sent from my [rhymes with tryPod] ;-)


On 17 Feb 2010, at 21:04, Laird Nelson <[email protected]> wrote:

Ah, found

http://markmail.org/thread/kp4wft7lnwq4sybh#query:+page:1+mid:ebfybgjawllun4ke+state:results

That did the trick (though of course it is somewhat non- obvious! :-)).

Best,
Laird

On Wed, Feb 17, 2010 at 2:42 PM, Laird Nelson <[email protected]>
wrote:

I am sure that I am missing something obvious, but perhaps not, as I
cannot
find any information on this subject.

I am writing a resource adapter. For its unit tests, I am attempting to deploy it, unpackaged, into an instance of OpenEJB 3.1.3- SNAPSHOT. A
patch
that was committed in January somewhere seems to let OpenEJB
3.1.3-SNAPSHOT
auto-discover @LocalClients, such as my unit test, in projects that have
an
META-INF/ra.xml file present. This is great--I can tell from some of
the
logging messages that OpenEJB is at least attempting to instantiate my
ResourceAdapter implementation.

I've used @LocalClient before, too, and so I have the InitialContext all set up, and I can tell that indeed, OpenEJB is firing up. So far so
good.

Now the obvious/stupid part.  I've built this resource adapter
implementation, I have the ra.xml...but where...where do I indicate what JNDI name I would like it to have? Obviously this information shouldn't
be
part of the final resource adapter hairball, since by definition you're supposed to be able to pick a .rar file up, put it in an app server, and
have it install itself.

In JBoss, I believe I'd accomplish this with some sort of .xml file a la
*-ds.xml; either its name or some element within that file would
designate
the JNDI name.  I'm not terribly familiar with JBoss.

In Glassfish, I believe I'd have to do this with the Glassfish command
line
tools; something like asadmin deploy myrar.rar.

What do I do in OpenEJB in an in-memory unit testing scenario?

My ultimate goal is to have my @LocalClient simply do:

@Resource(name="...") // whatever the name is
private MyConnectionFactoryImplementation myConnector;

and have it "just work".

Any pointers in any direction are gratefully accepted.

Best,
Laird



Reply via email to