I have be looking through the posts and have not found much so I wanted to ask the question myself. My configuration is JDK1.4.1_01, Oracle 8.1.7, JBoss 3.0.4, Oracle TopLink 9.0.3 and I am using BMP for my EJBs. I am trying to configure TopLink with External JTS so the TopLink can participate in transactions, also I am use the Oracle XA DataSource because some persistence may span database connections.
I copy the oracle-xa-service.xml from docs/examples/jca into server/all/deploy. I then modify the configuration for my database, I am using the oracle thin driver, but I did try the OCI8 driver. Also I am using the JDK 1.4 Oracle 9.2 JDBC Drivers. I startup JBoss so far so good. But when I attempt to integrate with TopLink I get the following problems: 1. Using the TopLink JNDIConnector I the following exception: ERROR [STDERR] LOCAL EXCEPTION STACK: EXCEPTION [TOPLINK-7060] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.ValidationException EXCEPTION DESCRIPTION: Cannot acquire data source [XATestDS]. INTERNAL EXCEPTION: javax.naming.InvalidNameException: Not a compound name: XATestDS The exception occurs wheter I specify initial context properties such as Provider URL, Context Factory and Package, or use the defaults from the container. I have tried every combination to no avail. Below is the code: DatabaseLogin login = project.getLogin(); Hashtable jndiProperties = new Hashtable(); jndiProperties.put(Context.PROVIDER_URL, "jnp://localhost:1099); jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); Context context = InitialContext(jndiProperties); JNDIConnector connector = new JNDIConnector(context, "java:/XATestDS"); login.setConnector(connector); ........ serverSession.login(); <- This is when it occurs. However I did find that I was able to get past the Invalid Naming exception with this code. Basically I get the DataSource myself and then pass it to the JNDIConnector. DatabaseLogin login = project.getLogin(); Hashtable jndiProperties = new Hashtable(); jndiProperties.put(Context.PROVIDER_URL, "jnp://localhost:1099); jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); Context context = InitialContext(jndiProperties); javax.sql.DataSource ds = (javax.sql.DataSource) JNDIHelper.lookup( "java:/XATestDS"); JNDIConnector connector = new JNDIConnector(ds); login.setConnector(connector); ........ serverSession.login(); No Exceptions. So I got past the naming exceptions. My guess is that form some reason TopLink if converting java:/XATestDS to XATestDS as other servers like WebLogic use this form of naming. But that is pure speculation, I am debugging to see if that is the case. So I get past this problem only to find that neither an Oracle XADataSource nor a regular Oracle DataSource will work. I get exceptions in both cases. I have read on the forums that the Oracle XA DataSource has problems, but I use it in WebLogic and WebSphere pretty regularly without issue, so I am not sure what the forum users means by buggy. With the following code and the Oracle XA DataSource: login.useExternalTransactionController(); String jtsControllerClassName = oracle.toplink.jts.JTSExternalTransactionController Class jtsControllerClass = Thread.currentThread().getContextClassLoader().loadClass(jtsCon trollerClassName); ExternalTransactionController jtsController = (ExternalTransactionController) jtsControllerClass.newInstance(); serverSession.setExternalTransactionController(jtsController); login.useExternalConnectionPooling(); The class oracle.toplink.jts.JTSExternalTransactionController implements the registration of a synchronization object according to the JTS 1.0 standard. Since there is not JTSExternalTransactionController for JBoss supplied with TopLink as there is in WebLogic and WebSphere, I had to use the generic one provided. With the above code and an Oracle XA DataSource I get the following exception: at org.jboss.resource.connectionmanager. BaseConnectionManager2.allocateConnection (BaseConnectionManager2.java:534) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ ConnectionManagerProxy. allocateConnection(BaseConnectionManager2.java:814) at org.jboss.resource.adapter.jdbc.JDBCDataSource.getConnection( JDBCDataSource.java:131) at oracle.toplink.jndi.JNDIConnector.connect(Unknown Source) at oracle.toplink.sessions.DatabaseLogin.connect(Unknown Source) at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source) at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source) at oracle.toplink.threetier.ConnectionPool.buildConnection(Unknown Source) at oracle.toplink.threetier.ExternalConnectionPool.startUp(Unknown Source) at oracle.toplink.threetier.ServerSession.connect(Unknown Source) at oracle.toplink.publicinterface.DatabaseSession.login(Unknown Source) When I use the above code with a plain old Oracle DataSource I get a NullPointer exception pointing with a message stating an exception occured within JTS. I initiate a read first which works fine with the Oracle DataSource, but even reads fail with the Oracle XA DataSource. The stack trace is the following: at oracle.toplink.exceptions.ValidationException.jtsExceptionRai sed(Unknown Source) at oracle.toplink.jts.AbstractExternalTransactionController.getA ctiveUnitOfWork(Unknown Source) at oracle.toplink.publicinterface.Session.getActiveUnitOfWork(Un INTERNAL STACK TRACE: java.lang.NullPointerException at oracle.toplink.jts.JTSExternalTransactionController.getExtern alTransaction(Unknown Source) at oracle.toplink.jts.AbstractExternalTransactionController.getA ctiveUnitOfWork(Unknown Source) at oracle.toplink.publicinterface.Session.getActiveUnitOfWork(Un known Source) Any help in this situation would be greatly appreciated. Thanks Mike H. Sr. Michael Huneycutt Sr. TRC - A perotsystems* Company Email: [EMAIL PROTECTED] Office FL: (813) 891-6084 x47395 Office VA: (804) 934-0977 Cell: (804) 304-7655 URL: www.trcinc.com www.perotsys.com ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user