Community
Participate
Working Groups
Globally defined datasources are working fine on WebLogic, however application defined datasource are not available during predeploy. Need to 1) verify the order of operations for DS definition 2) reproduce the exception during JPA app predeploy using the following example that is currently configured to run off a server defined global DS. http://wiki.eclipse.org/EclipseLink/Examples/JPA/WebLogic_Web_Tutorial#JNDI_Datasource_Setup
I have seen this error message before. I am getting the following message that does not state the problem correctly - the DS is not defined - but the jtaDataSource element is defined in persistence.xml - it just does not resolve... when i either... 1) enter an invalid DS name - one that does not exist 2) one defined locally scope=Application in the ear/META-INF/weblogic-application.xml Exception [EclipseLink-28010] (Eclipse Persistence Services - 1.1 (Build SNAPSHOT - 20080725)): org.eclipse.persistence.exceptions.EntityManagerSetupException Exception Description: PersistenceUnitInfo unified has transactionType JTA, but doesnt have jtaDataSource. at org.eclipse.persistence.exceptions.EntityManagerSetupException.jtaPersistenceUnitInfoMissingJtaDataSource(EntityManagerSetupException.java:154) at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:790) at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:189) at weblogic.deployment.PersistenceUnitInfoImpl.createEntityManagerFactory(PersistenceUnitInfoImpl.java:320) at weblogic.deployment.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:124)
In predeploy() we are failing because the supplied jtaDataSource is null in the check below... persistenceUnitInfo.getJtaDataSource() == null ...for both misspelled or misconfigured sources if (!isValidationOnly(predeployProperties, false) && persistenceUnitInfo != null && transactionType == PersistenceUnitTransactionType.JTA) { if (predeployProperties.get(PersistenceUnitProperties.JTA_DATASOURCE) == null && persistenceUnitInfo.getJtaDataSource() == null) { throw new PersistenceException(EntityManagerSetupException.jtaPersistenceUnitInfoMissingJtaDataSource(persistenceUnitInfo.getPersistenceUnitName()));
Q) Are we sure that the EAR is configured properly - as the ds is showing as null when we get to predeploy() - the same as if I misspelled it. According to BEA documentation we must configure the following as well to bind the ejb module to the ds defined in the ear. http://edocs.bea.com/wls/docs81/ConsoleHelp/jdbc_connection_pools.html#1108839 http://edocs.beasys.com/wls/docs90/jdbc_admin/packagedjdbc.html#get_connection weblogic-application.xml - set to.... <module><name>localOracle10RemoteDS</name><type>JDBC</type> <path>META-INF/oracle-jdbc.xml</path></module> ejb-jar.xml - missing ref weblogic-ejb-jar.xml - missing web.xml - not used weblogic.xml - missing @ >Test 1: --------------------------------- I put a break point at the start of predeploy - with a purposely broken application context ds - I get the weblogic log on not-resolving the URL before I entered predeploy (Note I get it after predeploy completes - If I reference a global ds - while still containting an application ds - as Chris suggested) Daemon Thread [Thread-26] (Suspended (breakpoint at line 684 in EntityManagerSetupImpl)) EntityManagerSetupImpl.predeploy(PersistenceUnitInfo, Map) line: 684 PersistenceProvider.createContainerEntityManagerFactory(PersistenceUnitInfo, Map) line: 189 PersistenceUnitInfoImpl.createEntityManagerFactory() line: 320 PersistenceUnitInfoImpl.<init>(PersistenceUnitBean, PersistenceUnitConfigurationBean, GenericClassLoader, String, URL, URL) line: 124 ModulePersistenceUnitRegistry(AbstractPersistenceUnitRegistry).storeDescriptors(Map, Map) line: 331 ModulePersistenceUnitRegistry(AbstractPersistenceUnitRegistry).loadPersistenceDescriptor(VirtualJarFile, boolean, File) line: 245 ModulePersistenceUnitRegistry.<init>(GenericClassLoader, ApplicationContextInternal, Module, boolean) line: 63 EJBModule.setupPersistenceUnitRegistry() line: 202 EJBModule.prepare() line: 351 ModuleListenerInvoker.prepare() line: 93 DeploymentCallbackFlow$1.next(Object) line: 384 StateMachineDriver$ParallelChange$1.run() line: 71 AuthenticatedSubject.doAs(AbstractSubject, PrivilegedAction) line: 321 SecurityManager.runAs(AuthenticatedSubject, AuthenticatedSubject, PrivilegedAction) line: not available StateMachineDriver$ParallelChange.run() line: 67 Thread.run() line: 619 <Sep 3, 2008 8:55:42 PM EDT> <Warning> <JDBC> <BEA-001129> <Received exception while creating connection for pool "localOracle10RemoteDS": [BEA][Oracle JDBC Driver][Oracle]ORA-12505 Connection refused, the specified SID (orcl2) was not recognized by the Oracle server.> weblogic.deployment.PersistenceUnitInfoImpl@461f7c info PersistenceUnitInfoImpl (id=76) cl GenericClassLoader (id=97) configDD null dd PersistenceUnitBeanImpl (id=101) emf null jarFileUrls ArrayList<E> (id=109) jarParentUrl URL (id=111) jtaDataSource null nonJtaDataSource null parentMBean null persistenceUnitId "_appsdir_weblogicEAR22_ear#weblogicEJB2.jar#unified#unified" (id=120) [EL Finest]: 2008.09.03 21:02:49.620--ServerSession(6555608)--Thread(Thread[Thread-26,5,Pooled Threads])--Begin predeploying Persistence Unit unified; state Initial; factoryCount 0 Daemon Thread [Thread-26] (Suspended) EJBModule.prepare() line: 417 [local variables unavailable] ModuleListenerInvoker.prepare() line: 93 DeploymentCallbackFlow$1.next(Object) line: 384 StateMachineDriver$ParallelChange$1.run() line: 71 AuthenticatedSubject.doAs(AbstractSubject, PrivilegedAction) line: 321 SecurityManager.runAs(AuthenticatedSubject, AuthenticatedSubject, PrivilegedAction) line: not available StateMachineDriver$ParallelChange.run() line: 67 StateMachineDriver$ParallelChange.run() line: 67 >Test 2: for reference I set a breakpoint on a working global DS --------------------------------------------------------------- [Global] info PersistenceUnitInfoImpl (id=85) cl GenericClassLoader (id=98) configDD null dd PersistenceUnitBeanImpl (id=111) emf null jarFileUrls ArrayList<E> (id=115) jarParentUrl URL (id=120) jtaDataSource RmiDataSource (id=102) appName null classLoader null driverClass "weblogic.jdbc.jta.DataSource" (id=144) driverInstance DataSource (id=147) driverProps ConcurrentProperties (id=152) driverUrl "jdbc:weblogic:jta:oracle10RemoteDS" (id=154) isLoggingResource false jdbcCtx WLEventContextImpl (id=155) jndiNames String[1] (id=157) jtaRegistrationName "oracle10RemoteDS" (id=159) moduleName null pa null poolName "oracle10RemoteDS" (id=159) rmiSettings RmiDriverSettings (id=169) scope "Global" (id=171) txDataSource true useDriver true verbose false nonJtaDataSource RmiDataSource (id=102) appName null classLoader null driverClass "weblogic.jdbc.jta.DataSource" (id=144) driverInstance DataSource (id=147) driverProps ConcurrentProperties (id=152) driverUrl "jdbc:weblogic:jta:oracle10RemoteDS" (id=154) isLoggingResource false jdbcCtx WLEventContextImpl (id=155) jndiNames String[1] (id=157) jtaRegistrationName "oracle10RemoteDS" (id=159) moduleName null pa null poolName "oracle10RemoteDS" (id=159) rmiSettings RmiDriverSettings (id=169) scope "Global" (id=171) txDataSource true useDriver true verbose false parentMBean null persistenceUnitId "_appsdir_weblogicEAR25_ear#weblogicEJB2.jar#unified#unified" (id=133) properties Properties (id=137) rootUrl URL (id=139) runtimeMBean null using <persistence-unit name="unified" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>localOracle10RemoteDS</jta-data-source> <non-jta-data-source>localOracle10RemoteDS</non-jta-data-source> Synopsis: -------------------------- The global oracle-ds.xml file looks the same as the local one. However, I dont use the normal jdbc/OracleDS, I use just "OracleDS" Q) Did you guys change the ds ref name when switching from global to local I am still in the process of getting an application scoped ds working. This bug needs to differentiate between 1) A misspelled or not fully configured (referenced) datasource 2) An actual bug on the weblogic or eclipselink side - it looks like if 1) is setup correctly then it would be on the weblogic side since we are supposed to be supplied with a fully populated PeristenceUnitInfo object from the weblogic container by contract.
Configure your app according to the following graphic http://download.oracle.com/docs/cd/E11035_01/wls100/jdbc_admin/packagedjdbc.html#wp1053852
I am going to test a jndi lookup via a standalone servlet or session bean and then test kodo - so we can verify that the application-context jdbc module is configured properly
The configuration looks fine because If I purposely break the SID on the application context datasource - WebLogic Server emits logs and exceptions. However, if i try to use the app context datasource (same settings as the working Global one) - then WebLogic Server does not complain but sends us a null jtaDataSource inside a PersistenceUnitInfoImpl at first contact with predeploy() in eclipseLink - we have not control over this null datasource. Details: ------------- WebLogic server is not populating PersistenceUnitInfo with the jtaDataSource - it is coming in EclipseLink as null. A) 1st Point of entry between WebLogic and EclipseLink is in createContainerEntityManagerFactory before predeploy. Daemon Thread [Thread-26] (Suspended (breakpoint at line 175 in PersistenceProvider)) PersistenceProvider.createContainerEntityManagerFactory(PersistenceUnitInfo, Map) line: 175 PersistenceUnitInfoImpl.createEntityManagerFactory() line: 320 PersistenceUnitInfoImpl.<init>(PersistenceUnitBean, PersistenceUnitConfigurationBean, GenericClassLoader, String, URL, URL) line: 124 ModulePersistenceUnitRegistry(AbstractPersistenceUnitRegistry).storeDescriptors(Map, Map) line: 331 ModulePersistenceUnitRegistry(AbstractPersistenceUnitRegistry).loadPersistenceDescriptor(VirtualJarFile, boolean, File) line: 245 ModulePersistenceUnitRegistry.<init>(GenericClassLoader, ApplicationContextInternal, Module, boolean) line: 63 EJBModule.setupPersistenceUnitRegistry() line: 202 EJBModule.prepare() line: 351 ModuleListenerInvoker.prepare() line: 93 DeploymentCallbackFlow$1.next(Object) line: 384 This is what we want (from a Global datasource) info PersistenceUnitInfoImpl (id=85) cl GenericClassLoader (id=98) configDD null dd PersistenceUnitBeanImpl (id=111) emf null jarFileUrls ArrayList<E> (id=115) jarParentUrl URL (id=120) jtaDataSource RmiDataSource (id=102) appName null classLoader null driverClass "weblogic.jdbc.jta.DataSource" (id=144) driverInstance DataSource (id=147) driverProps ConcurrentProperties (id=152) driverUrl "jdbc:weblogic:jta:oracle10RemoteDS" (id=154) isLoggingResource false jdbcCtx WLEventContextImpl (id=155) jndiNames String[1] (id=157) jtaRegistrationName "oracle10RemoteDS" (id=159) moduleName null pa null poolName "oracle10RemoteDS" (id=159) rmiSettings RmiDriverSettings (id=169) scope "Global" (id=171) txDataSource true useDriver true This is what we see: weblogic.deployment.PersistenceUnitInfoImpl@dab72a info PersistenceUnitInfoImpl (id=82) cl GenericClassLoader (id=95) configDD null dd PersistenceUnitBeanImpl (id=99) emf null jarFileUrls ArrayList<E> (id=101) jarParentUrl URL (id=103) null-----> jtaDataSource null nonJtaDataSource null parentMBean null persistenceUnitId "_appsdir_weblogicEAR53_ear#weblogicEJB2.jar#unified#unified" (id=105) properties Properties (id=107) rootUrl URL (id=109) runtimeMBean null B) see the following method in weblogic.jar that should either create a non-null jtaDataSource, or throw a warning if the configuration is wrong EJBModule { private void initJNDIContext(); C) When we get to the point of the EclipseLink exception we are just responding the the fact that the passed in puInfo.jtaDataSource is null public class EntityManagerSetupImpl { public synchronized ClassTransformer predeploy(PersistenceUnitInfo info, Map extendedProperties) { if (predeployProperties.get(PersistenceUnitProperties.JTA_DATASOURCE) == null && persistenceUnitInfo.getJtaDataSource() == null) { >outputs Exception Description: PersistenceUnitInfo unified has transactionType JTA, but doesnt have jtaDataSource. Daemon Thread [Thread-26] (Suspended (breakpoint at line 789 in EntityManagerSetupImpl)) EntityManagerSetupImpl.predeploy(PersistenceUnitInfo, Map) line: 789 PersistenceProvider.createContainerEntityManagerFactory(PersistenceUnitInfo, Map) line: 189 PersistenceUnitInfoImpl.createEntityManagerFactory() line: 320 PersistenceUnitInfoImpl.<init>(PersistenceUnitBean, PersistenceUnitConfigurationBean, GenericClassLoader, String, URL, URL) line: 124 ModulePersistenceUnitRegistry(AbstractPersistenceUnitRegistry).storeDescriptors(Map, Map) line: 331 ModulePersistenceUnitRegistry(AbstractPersistenceUnitRegistry).loadPersistenceDescriptor(VirtualJarFile, boolean, File) line: 245 ModulePersistenceUnitRegistry.<init>(GenericClassLoader, ApplicationContextInternal, Module, boolean) line: 63 EJBModule.setupPersistenceUnitRegistry() line: 202 [local variables unavailable] ModuleListenerInvoker.prepare() line: 93 DeploymentCallbackFlow$1.next(Object) line: 384 StateMachineDriver$ParallelChange$1.run() line: 71 AuthenticatedSubject.doAs(AbstractSubject, PrivilegedAction) line: 321 SecurityManager.runAs(AuthenticatedSubject, AuthenticatedSubject, PrivilegedAction) line: not available StateMachineDriver$ParallelChange.run() line: 67 StateMachineDriver$ParallelChange.run() line: 67 Thread.run() line: 619 D) To test this theory, I will purposely break the SID of an application-context datasource - we see the error message - and the resulting null jtaDataSource. However, if the app-context ds is ok - we just get null from WebLogic. modify C:\wse\w34\weblogicEAR\EarContent\META-INF\oracle-jdbc.xml referenced by weblogic-application.xml from <jdbc-data-source xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-jdbc.xsd" xmlns="http://www.bea.com/ns/weblogic/jdbc-data-source"> <name>localOracle10RemoteDS</name> <jdbc-driver-params> ... <property> <name>SID</name> <value>orcl</value> to <name>SID</name> <value>orcl_broken</value> E) Results of a purposly broken application context datasource <Sep 4, 2008 2:39:33 PM EDT> <Warning> <JDBC> <BEA-001129> <Received exception while creating connection for pool "localOracle10RemoteDS": [BEA][Oracle JDBC Driver][Oracle]ORA-12505 Connection refused, the specified SID (orcl_broken) was not recognized by the Oracle server.> [EL Finest]: 2008.09.04 14:40:16.207--ServerSession(28272629)--Thread(Thread[Thread-30,5,Pooled Threads])--Begin predeploying Persistence Unit unified; state Initial; factoryCount 0 weblogic.common.ResourceException: [BEA][Oracle JDBC Driver][Oracle]ORA-12505 Connection refused, the specified SID (orcl_broken) was not recognized by the Oracle server. at weblogic.jdbc.common.internal.XAConnectionEnvFactory.makeConnection(XAConnectionEnvFactory.java:454) at weblogic.jdbc.common.internal.XAConnectionEnvFactory.createResource(XAConnectionEnvFactory.java:154) at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1109) at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1033) at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:214) Caused by: weblogic.common.ResourceException: Unknown Data Source localOracle10RemoteDS at weblogic.jdbc.common.internal.ConnectionPoolManager.shutdownConnectionPool(ConnectionPoolManager.java:491) at weblogic.jdbc.common.internal.ConnectionPoolManager.shutdownAndDestroyPool(ConnectionPoolManager.java:466) at weblogic.jdbc.module.JDBCModule.unprepare(JDBCModule.java:414) before we get to predeploy() where the jtaDataSource is null - which we are not able to use - so we report it. Note: the error message needs to be split in a separate bug to differentiate between whether the user did not have a <jta-data-source> element - or the datasource was invalid - since this check is performed on the server we treat both the same. Results: The application context datasource is configured (as is evident if I try to break it), it is just not populated in PersistenceUnitInfoImpl or is not associated property with the pu. Synopsis: ------------- The PersistenceUnitInfoImpl passed/populated by the WebLogic server in EJBModule.setupPersistenceUnitRegistry() is coming in with a null datasource - EclipseLink expects that this datasource was correctly loaded by the server. This may be a WebLogic server issue within EJBModule.initJNDIContext() in weblogic.jar. thank you /michael
e related lower priority: https://bugs.eclipse.org/bugs/show_bug.cgi?id=246271 https://bugs.eclipse.org/bugs/show_bug.cgi?id=246272
Everyone, I have a temporary workaround - until we determine why PersistenceUnitInfoImpl.jtaDataSource is null from the weblogic server before predeploy() It involves using the javax.persistence.jta|nonJtaDataSource properties to do our own JNDI lookup of the DS The result is that the JPA application can use the oracle-jdbc.xml application DS packaged with the EAR and not rely on a global DS. Details: Workaround for null PersistenceUnitInfoImpl.jtaDataSource from wls server - use the javax.*DataSource properties to to our own JNDI lookup in JNDIConnector in deploy() after a bypassed predeploy() - setting these two properties will allow the predeploy to continue - when we actually do a crud operation on the em - we will do a JNDI lookup using this jndi property name at that time. weblogicEAR/EarContent/META-INF/oracle-jdbc.xml ----------------------------------------------- - comment out the Application scope and default to Global (this ds becomes application defined but globally available) - may be just my config though <!-- scope>Application</scope--> weblogicEJB/ejbModule/META-INF/peristence.xml --------------------------------------------- - Add the two non-standard javax.persistence.*DataSource properties - so we can bypass the null ds passed by the server in PersistenceUnitInfo <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="unified" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>localOracle10RemoteDS</jta-data-source> <!-- jta-data-source>oracle10RemoteDS</jta-data-source--> <properties> <property name="javax.persistence.jtaDataSource" value="localOracle10RemoteDS"/> <property name="javax.persistence.nonJtaDataSource" value="localOracle10RemoteDS"/> logs: -------------- [EL Finest]: 2008.09.08 12:48:16.653--ServerSession(18397823)--Thread(Thread[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--property=javax.persistence.jtaDataSource; value=localOracle10RemoteDS [EL Finest]: 2008.09.08 12:48:16.653--ServerSession(18397823)--Thread(Thread[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--property=javax.persistence.nonJtaDataSource; value=localOracle10RemoteDS [EL Config]: 2008.09.08 12:48:19.200--ServerSession(18397823)--Connection(26836802)--Thread(Thread[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--connecting(DatabaseLogin( platform=>DatabasePlatform user name=> "" connector=>JNDIConnector datasource name=>localOracle10RemoteDS )) [EL Config]: 2008.09.08 12:48:20.403--ServerSession(18397823)--Connection(31059213)--Thread(Thread[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--Connected: jdbc:bea:oracle://10.x:1521;CATALOGOPTIONS=2;CONNECTIONRETRYDELAY=1;SUPPORTLINKS=false;MAXPOOLEDSTATEMENTS=0;KEYSTORE=;ENABLECANCELTIMEOUT=false;TRUSTSTOREPASSWORD=;VALIDATESERVERCERTIFICATE=true;CODEPAGEOVERRIDE=;REFCURSORSUPPORT=true;KEYSTOREPASSWORD=;CONNECTIONRETRYCOUNT=5;SENDFLOATPARAMETERSASSTRING=false;COMMITBEHAVIOR=serverDefault;TNSSERVERNAME=;BATCHPERFORMANCEWORKAROUND=false;INITIALIZATIONSTRING=;RESULTSETMETADATAOPTIONS=0;QUERYTIMEOUT=0;HOSTNAMEINCERTIFICATE=;WIREPROTOCOLMODE=1;CATALOGINCLUDESSYNONYMS=true;JAVADOUBLETOSTRING=false;LOADLIBRARYPATH=;IMPORTSTATEMENTPOOL=;ALTERNATESERVERS=;KEYPASSWORD=;ENCRYPTIONMETHOD=noEncryption;CONVERTNULL=1;TRUSTSTORE=;TNSNAMESFILE=;AUTHENTICATIONMETHOD=auto;SERVICENAME=;SERVERTYPE=;LOADBALANCING=false;SID=orcl;WORKAROUNDS=0;INSENSITIVERESULTSETBUFFERSIZE=2048;SYSLOGINROLE=;FETCHTSWTZASTIMESTAMP=false User: Sxxxx Database: Oracle Version: 10.2.0.1.0 Driver: Oracle Version: 3.70.26 (029619.012905.019214) [EL Fine]: 2008.09.08 12:48:21.153--ServerSession(18397823)--Connection(5171053)--Thread(Thread[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--SELECT ID, DATE_STAMP FROM STAT_LABEL Object: org.eclipse.persistence.example.unified.business.StatLabel@c4a57c Object: org.eclipse.persistence.example.unified.business.StatLabel@129ca4e
ejb-3_0-fr-spec-persistence.pdf specification reference: The javax.persistence.jtaDataSource property workaround in addition to specifying <jta-data-source> is defined in section 7.1.3.1 The <jta-data-source> element definition in the spec states support for the "global JNDI" name - this assumes that the spec is differentiating global/application scope in a JNDI context and not "global as in global to the pu or application". "6.2.1.5 jta-data-source, non-jta-data-source In Java EE environments, the jta-data-source and non-jta-data-source elements are used to specify the global JNDI name of the JTA and/or non-JTA data source to be used by the persistence provider. If neither is specified, the deployer must specify a JTA data source at deployment or a JTA data source must be provided by the container, and a JTA EntityManagerFactory will be created to correspond to it."
Workaround adjustment: javax property now uses application scope ds. The following change suggested by Matt to the workaround where the javax.persistence.jtaDataSource property value is "java:/app/jdbc/yourdatasource" allows us to keep the <scope>Application</scope> scope in the ds module - thanks Matt. oracle-jdbc.xml <jdbc-data-source-params> <jndi-name>appDS</jndi-name> <scope>Application</scope> persistence.xml <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="unified" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>localOracle10RemoteDS</jta-data-source> <properties> ---> <property name="javax.persistence.jtaDataSource" value="java:app/jdbc/appDS"/> [EL Fine]: 2008.09.09 11:08:14.710--ClientSession(14277544)--Connection(25865672)--Thread(Thread[[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--INSERT INTO STAT_LABEL (ID, DATE_STAMP) VALUES (?, ?) bind => [1001, 2009-09-09] Issue: The jta-data-source is always overriden by the datasource in javax.persistence.jtaDataSource - A documentation wiki is required on usage of this alternate property.
This bug is waiting on a possible WebLogic Application Server fix in EJBModule.initJNDIContext() Moved to: unassigned for 1.1 release
7366474
Moving to 2.0 (server fix is assigned). We have the following workaround until then. http://wiki.eclipse.org/EclipseLink/Examples/JPA/WLS_AppScoped_DataSource
Underlying JNDI validation error on the server is fixed in post load 12 - we need to verify the fix and/or deprecate the workaround
Reverifying behavior with load14
Latest WLS load still requires the javax property workaround. >Also, we now require that a JTA datasource is transactional. *jdbc.xml must be modified as follows <!--driver-name>oracle.jdbc.OracleDriver</driver-name--> <driver-name>oracle.jdbc.xa.client.OracleXADataSource</driver-name>
Updating priority due to revised bug categorization process. See the following page for details: http://wiki.eclipse.org/EclipseLink/Development/Bugs/Guidelines#Priority_and_Target_Milestone If you feel the updated priority is incorrect, please send an email to eclipselink-users@eclipse.org.
>This workaround needs to be verified as fixed in the 1 July 2009 release of 11gR1
>Reverify against latest release
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink