Has anyone tried to get Jackrabbit's JCA working with Jencks (or another JCA provider) in Tomcat? I'm pretty new to JCA but my understanding is that, ideally, the app server handles the repository lifecycle and individual servlets access it through JNDI. But the JCA support seems to not be usable with JNDI, and creates the repository inside itself. The reason I think I need JCA transactions is that I'm using both Jackrabbit and JDO in my project; I'd like them to participate in 2PC transactions.

The specific problem I'm seeing is actually during unit testing, so its outside Tomcat. Both JDO and Jackrabbit are configured to use a PostgreSQL installation, but with different user/pass, and in different databases within the installation. During the unit tests, I'm seeing 2 or more postgresql processes started for each file that contains integration tests (that actually use JDO and/or Jackrabbit instead of mocking them). By the time the tests finish, there are more than 50 open database connections; they are all released when maven finishes executing, but not before. Watching the active processes, it is obvious that no more than two of the postgresql processes are ever actively used, and they are always the most recently created processes (based on process ID). Just in case this is an OS issue, I'm running on MacOS X.

If anyone could provide guidance for this situation, I'd really appreciate it. Also, if it would be easier for me to simply be using a J2EE server like JBoss or Geronimo, I'd appreciate knowing that too (I should be able to use cactus to run the integration tests inside the app server, right?).

Thanks,

Mark

Reply via email to