Multiple Kodo Datasources in WebLogic 8.1 using JCA - How?
Greetings
I am trying to set up WebLogic (8.1) such that I can deploy a single Kodo
JCA connector but use it to access multiple data sources. Assuming that the
JCA adaptor has been deployed to the Server with a name and jndi key of
"kodo", I believe that the way to do it is to deploy a second copy of the
weblogic-ra.xml and ra.xml files and use an <ra-link-ref> tag to refer to
the primary deployed JCA adaptor. The second ra.xml has different kodo
config-property-values for connection URL, Username/password, etc from the
primary ra.xml.
This seems to work - to a point. Accessing the second "adaptor" ("kodo2")
does work and seems to link to the primary one, but the ra.xml
config-properties which are used appear to be from the primary deployment :(
not the second one as I hoped.
Can anyone point me in the right direction? Below is a copy of the
secondary weblogic-ra.xml file:
<!DOCTYPE weblogic-connection-factory-dd PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 6.0.0 Connector//EN'
'http://www.bea.com/servers/wls600/dtd/weblogic600-ra.dtd'>
<weblogic-connection-factory-dd>
<connection-factory-name>kodo2</connection-factory-name>
<jndi-name>kodo2</jndi-name>
<ra-link-ref>kodo</ra-link-ref>
<pool-params>
<initial-capacity>0</initial-capacity>
<max-capacity>8</max-capacity>
<capacity-increment>1</capacity-increment>
<shrinking-enabled>false</shrinking-enabled>
<shrink-period-minutes>200</shrink-period-minutes>
</pool-params>
<security-principal-map>
</security-principal-map>
</weblogic-connection-factory-dd>
Thanks
..droo.
Drew-
It should be possible to use two separate Kodo JCA configurations in the
same application server. Could you post your two configurations (without
the license keys, please) so we can take a look of the different places
where you are configuring the sequence table names? I suspect that there
might be a simple misconfiguration or type somewhere.
In article <BD4AB2EE.8DA%[email protected]>, Drew Lethbridge wrote:
I think I have partially figured this out. Actually I shouldn't have ra.xml
in the second JCA adaptor, instead I can specify different config properties
in weblogic-ra.xml such as:
<map-config-property>
<map-config-property-name>Schemas</map-config-property-name>
<map-config-property-value>FRED</map-config-property-value>
</map-config-property>
I am still getting some weird behaviour though. For example, I currently
get an exception when trying to to an update because kodo2 tries to get the
sequence from the wrong schema, i.e.:
com.solarmetric.jdbc.ReportingSQLException: ORA-00942: table or view does
not exist
{prepstmnt 7569347 SELECT SEQUENCEX FROM MARY.JDO_SEQUENCEX WHERE PKX = ?
FOR UPDATE [reused=0]} [code=942, state=42000]
at
kodo.jdbc.schema.DBSequenceFactory.getNext(DBSequenceFactory.java:227)
Etc...
It should be getting the sequence from FRED (kodo2), not MARY (kodo).
Any tips about how to configure multiple kodo JCA properties in Weblogic 8.1
would still be very much appreciated.
Cheers!
.droo.
On 19/8/04 2:39 PM, in article BD4A6C2D.7A0%[email protected], "Drew
Lethbridge" <[email protected]> wrote:
Greetings
I am trying to set up WebLogic (8.1) such that I can deploy a single Kodo
JCA connector but use it to access multiple data sources. Assuming that the
JCA adaptor has been deployed to the Server with a name and jndi key of
"kodo", I believe that the way to do it is to deploy a second copy of the
weblogic-ra.xml and ra.xml files and use an <ra-link-ref> tag to refer to
the primary deployed JCA adaptor. The second ra.xml has different kodo
config-property-values for connection URL, Username/password, etc from the
primary ra.xml.
This seems to work - to a point. Accessing the second "adaptor" ("kodo2")
does work and seems to link to the primary one, but the ra.xml
config-properties which are used appear to be from the primary deployment :(
not the second one as I hoped.
Can anyone point me in the right direction? Below is a copy of the
secondary weblogic-ra.xml file:
<!DOCTYPE weblogic-connection-factory-dd PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 6.0.0 Connector//EN'
'http://www.bea.com/servers/wls600/dtd/weblogic600-ra.dtd'>
<weblogic-connection-factory-dd>
<connection-factory-name>kodo2</connection-factory-name>
<jndi-name>kodo2</jndi-name>
<ra-link-ref>kodo</ra-link-ref>
<pool-params>
<initial-capacity>0</initial-capacity>
<max-capacity>8</max-capacity>
<capacity-increment>1</capacity-increment>
<shrinking-enabled>false</shrinking-enabled>
<shrink-period-minutes>200</shrink-period-minutes>
</pool-params>
<security-principal-map>
</security-principal-map>
</weblogic-connection-factory-dd>
Thanks
.droo.
Marc Prud'hommeaux
SolarMetric Inc.
Similar Messages
-
Configuring kodo-jdo-2.5.3 with weblogic 8.1 using JCA
Hi there.
I am trying to configure kodo-jdo-2.5.3 in WebLogic 8.1 using JCA method.
The issue I got was that I got DB authentication failed. I have tested my
JDBC connect -- working fine, I have turned on JDBC log in WL, it looks
fine.
It looks like that KODO was still trying to create its own JDBC connection
even I have specified
<config-property>
<description>The JNDI name of the connection factory to use for
obtaining connections.</description>
<config-property-name>ConnectionFactoryName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>datasource.oracle9</config-property-value>
</config-property>
"datasource.oracle9" is the JNDI name of my data source.
The error message is the following. I will really appreciate your help.
Melvin
Oct 19, 2003 4:20:53 AM com.solarmetric.kodo.impl.jdbc.RegisterListener
registerClass
SEVERE: com.solarmetric.kodo.runtime.FatalDataStoreException:
java.sql.SQLException: User: melvin, f
ailed to be authenticated. [code=0;state=null]
NestedThrowables:
java.sql.SQLException: User: melvin, failed to be authenticated.
com.solarmetric.kodo.runtime.FatalDataStoreException:
java.sql.SQLException: User: melvin, failed to
be authenticated. [code=0;state=null]
NestedThrowables:
java.sql.SQLException: User: melvin, failed to be authenticated.
at
com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwFatal(SQLExceptions.java:58)
at
com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
ry.java:212)
at
com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
ion.java:370)
at
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClassInternal(JDBCPe
rsistenceManagerFactory.java:455)
at
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClass(JDBCPersistenc
eManagerFactory.java:338)
at
com.solarmetric.kodo.impl.jdbc.RegisterListener.registerClass(RegisterListener.java:53)
at
javax.jdo.spi.JDOImplHelper.registerClass(JDOImplHelper.java:269)
at samples.j2ee.Car.<clinit>(Car.java)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at samples.j2ee.ejb.CarBean.class$(CarBean.java:11)
at samples.j2ee.ejb.CarBean.list(CarBean.java:136)
at
samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
at jsp_servlet.__index._jspService(__index.java:170)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
a:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
ontext.java:6310)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
22)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
NestedThrowablesStackTrace:
java.sql.SQLException: User: melvin, failed to be authenticated.
at
weblogic.jdbc.common.internal.RmiDataSource.getSubject(RmiDataSource.java:257)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:188)
at
com.solarmetric.kodo.impl.jdbc.runtime.DataSourceConnector.getConnection(DataSourceConnec
tor.java:63)
at
com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
ry.java:179)
at
com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
ion.java:370)
at
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClassInternal(JDBCPe
rsistenceManagerFactory.java:455)
at
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClass(JDBCPersistenc
eManagerFactory.java:338)
at
com.solarmetric.kodo.impl.jdbc.RegisterListener.registerClass(RegisterListener.java:53)
at
javax.jdo.spi.JDOImplHelper.registerClass(JDOImplHelper.java:269)
at samples.j2ee.Car.<clinit>(Car.java)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at samples.j2ee.ejb.CarBean.class$(CarBean.java:11)
at samples.j2ee.ejb.CarBean.list(CarBean.java:136)
at
samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
at jsp_servlet.__index._jspService(__index.java:170)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
a:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
ontext.java:6310)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
22)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
<Oct 19, 2003 4:20:53 AM CDT> <Info> <EJB> <BEA-010051> <EJB Exception
occurred during invocation fr
om home: samples.j2ee.ejb.CarEJB_pgfrtx_HomeImpl@1c059f6 threw exception:
com.solarmetric.kodo.runti
me.FatalDataStoreException: java.sql.SQLException: User: melvin, failed to
be authenticated. [code=0
;state=null]
NestedThrowables:
java.sql.SQLException: User: melvin, failed to be authenticated.
com.solarmetric.kodo.runtime.FatalDataStoreException:
java.sql.SQLException: User: melvin, failed to
be authenticated. [code=0;state=null]
NestedThrowables:
java.sql.SQLException: User: melvin, failed to be authenticated.
at
com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwFatal(SQLExceptions.java:58)
at
com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
ry.java:212)
at
com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
ion.java:370)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getDictionary(JDBCStoreManager.ja
va:753)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
java:1023)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
java:1037)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getResultList(JDBCExtent.java:71)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getIterator(JDBCExtent.java:47)
at
com.solarmetric.kodo.runtime.ExtentImpl$MultipleSubclassIterator.newIterator(ExtentImpl.j
ava:344)
at serp.util.MultiIterator.setIterator(MultiIterator.java:74)
at serp.util.MultiIterator.hasNext(MultiIterator.java:29)
at serp.util.LookaheadIterator.setNext(LookaheadIterator.java:133)
at
serp.util.LookaheadIterator.initialize(LookaheadIterator.java:118)
at serp.util.LookaheadIterator.hasNext(LookaheadIterator.java:48)
at serp.util.MultiIterator.setIterator(MultiIterator.java:73)
at serp.util.MultiIterator.hasNext(MultiIterator.java:29)
at
com.solarmetric.kodo.runtime.ExtentImpl$TransactionAwareIterator.hasNext(ExtentImpl.java:
403)
at samples.j2ee.ejb.CarBean.list(CarBean.java:138)
at
samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
at jsp_servlet.__index._jspService(__index.java:170)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
a:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
ontext.java:6310)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
22)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
NestedThrowablesStackTrace:
java.sql.SQLException: User: melvin, failed to be authenticated.
at
weblogic.jdbc.common.internal.RmiDataSource.getSubject(RmiDataSource.java:257)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:188)
at
com.solarmetric.kodo.impl.jdbc.runtime.DataSourceConnector.getConnection(DataSourceConnec
tor.java:63)
at
com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
ry.java:179)
at
com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
ion.java:370)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getDictionary(JDBCStoreManager.ja
va:753)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
java:1023)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
java:1037)Alex Robbins wrote:
Try removing <authentication-mechanism> from the ra.xml file of the Kodo
JCA connector. Then it won't try to authenticate against the WL security
realm. (If you want connector-level authentication as well as DB-conn
authentication i think you'll have to configure WL security. I don't know
how). This worked for me.
Alex.Hi, The following is the ra.xml, please see any problem.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE connector PUBLIC '-//Sun Microsystems, Inc.//DTD Connector
1.0//EN' 'http://java.sun.com/dtd/connector_1_0.dtd'>
<connector>
<display-name>KodoJDO</display-name>
<description>Resource Adapter for integration of the Kodo Java Data
Objects (JDO) implementation with J2EE 1.3 compliant managed
environments</description>
<icon>
<small-icon>kodo16.gif</small-icon>
<large-icon>kodo32.gif</large-icon>
</icon>
<vendor-name>Solarmetric, Inc.</vendor-name>
<spec-version>1.0</spec-version>
<eis-type>jdo</eis-type>
<version>1.0</version>
<license>
<description>See http://www.solarmetric.com for terms and license
conditions.</description>
<license-required>true</license-required>
</license>
<resourceadapter>
<managedconnectionfactory-class>com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl</managedconnectionfactory-class>
<connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
<connectionfactory-impl-class>com.solarmetric.kodo.impl.jdbc.ee.JDOConnectionFactory</connectionfactory-impl-class>
<connection-interface>javax.resource.cci.Connection</connection-interface>
<connection-impl-class>com.solarmetric.kodo.ee.EEPersistenceManager</connection-impl-class>
<transaction-support>XATransaction</transaction-support>
<config-property>
<description>The number of hard references to cached objects that the
PersistenceManager's cache will retain (in addition to the soft reference
cache that it maintains). Setting this to a higher value will result in
more objects being retained in the cache, at the cost of utilizing more
memory resources. Setting it to -1 will cause the PersistenceManager to
maintain hard references only. This will result in better performance, but
can have adverse effects on memory usage.</description>
<config-property-name>CacheReferenceSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>1000</config-property-value>
</config-property>
<config-property>
<description>The class name of ether the JDBC java.sql.Driver, or an
instance of a javax.sql.DataSource to use to connect to the data
source.</description>
<config-property-name>ConnectionDriverName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The JNDI name of the connection factory to use for
finding non-transactional connections. If specified, this is the
connection that will be used for access for obtaining sequence
numbers.</description>
<config-property-name>ConnectionFactory2Name</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>jdbc/petshop</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to be passed to
the JDBC Driver when obtaining a Connection for the ConnectionFactory2
(which will be used to obtain sequence numbers). Properties are of the
form "key=value". If a javax.sql.DataSource class is defined in the
javax.jdo.option.ConnectionDriverName property, then this property will be
used to set bean-like properties in the DataSource instance upon creation.
These properties vary depending on the DataSource in use: see the
documentation for your DataSource for details on the properties to
use.</description>
<config-property-name>ConnectionFactory2Properties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The JNDI name of the connection factory to use for
obtaining connections.</description>
<config-property-name>ConnectionFactoryName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>PetShopXADataSource</config-property-value>
</config-property>
<config-property>
<description>The password for the user specified in
ConnectionUserName</description>
<config-property-name>ConnectionPassword</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to be passed to
the JDBC Driver when obtaining a Connection. Properties are of the form
"key=value". If a javax.sql.DataSource class is defined in the
javax.jdo.option.ConnectionDriverName property, then this property will be
used to set bean-like properties in the DataSource instance upon creation.
These properties vary depending on the DataSource in use: see the
documentation for your DataSource for details on the properties to
use.</description>
<config-property-name>ConnectionProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The connection retain mode. Possible options are
"persistence-manager", "transaction", and "on-demand". Default value is
"on-demand".</description>
<config-property-name>ConnectionRetainMode</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>on-demand</config-property-value>
</config-property>
<config-property>
<description>The number of seconds to wait between testing
connections retrieved from the connection pool. Only valid when using the
built-in Kodo connection pooling.</description>
<config-property-name>ConnectionTestTimeout</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>10</config-property-value>
</config-property>
<config-property>
<description>The URL for the data source.</description>
<config-property-name>ConnectionURL</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The username for the connection listed in
ConnectionURL.</description>
<config-property-name>ConnectionUserName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for caching of data loaded
from the data store. Must implement
com.solarmetric.kodo.runtime.datacache.DataCache.</description>
<config-property-name>DataCacheClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.DataCacheClass upon
initialization.</description>
<config-property-name>DataCacheProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the default class to use for mapping
persistent classes to the database. Must extend
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.</description>
<config-property-name>DefaultClassMappingClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping</config-property-value>
</config-property>
<config-property>
<description>The number of seconds that data in the data cache is
valid for. A value of 0 or less means that by default, cached data does
not time out.</description>
<config-property-name>DefaultDataCacheTimeout</config-property-name>
<config-property-type>java.lang.Double</config-property-type>
<config-property-value>0.0</config-property-value>
</config-property>
<config-property>
<description>The number of rows that will be pre-fetched when an
element in a Query result is accessed.</description>
<config-property-name>DefaultFetchBatchSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>10</config-property-value>
</config-property>
<config-property>
<description>The threshold below which result lists will be
completely instantiated upon their creation. A value of -1 will always
force all results to be completely instantiated, thus disabling lazy
result loading.</description>
<config-property-name>DefaultFetchThreshold</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>30</config-property-value>
</config-property>
<config-property>
<description>The name of the default class to use for managing
subclass indicator columns. Must implement the
com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProvider interface. See
custom class indicator documentation for more information about subclass
providers.</description>
<config-property-name>DefaultSubclassProviderClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in
com.solarmetric.kodo.impl.jdbc.DefaultSubclassProviderClass upon
initialization.</description>
<config-property-name>DefaultSubclassProviderProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The DBDictionary to use for this configuration. This is
auto-detected based on the setting of javax.jdo.option.ConnectionURL, so
you need only set this to override the default with your own custom
DBDictionary or if you are using an unrecognized driver.</description>
<config-property-name>DictionaryClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A space-separated list of name-value properties
settings to pass to the dictionary defined by
com.solarmetric.kodo.impl.jdbc.DictionaryClass. Many of the DBDictionary
options are automatically configured by concrete subclasses of
GenericDictionary. The defaults can, however, be overridden by using this
property.</description>
<config-property-name>DictionaryProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>If true, then Kodo JDO will allow the use of query
filter extensions. See the query extensions documentation for more
information.</description>
<config-property-name>EnableQueryExtensions</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of fetch group names that
PersistenceManagers will load by default when loading data from the
database.</description>
<config-property-name>FetchGroups</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>If true, then all fields of all classes in a given
inheritance hierarchy will by default map into the least-derived type's
default primary table. If false then a new default primary table will be
created for each class in the inheritance hierarchy, and each type's
declared fields will map to that table by default.</description>
<config-property-name>FlatInheritanceMapping</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>A String value indicating whether or not Kodo should
automatically flush modifications to the data store before executing
queries.</description>
<config-property-name>FlushBeforeQueries</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>with-connection</config-property-value>
</config-property>
<config-property>
<description>If false, then the JDO implementation must consider
modifications, deletions, and additions in the PersistenceManager
transaction cache when executing a query inside a transaction. Else, the
implementation is free to ignore the cache and execute the query directly
against the data store.</description>
<config-property-name>IgnoreCache</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>The license key provided to you by SolarMetric. Keys
are available at www.solarmetric.com</description>
<config-property-name>LicenseKey</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>xxxx</config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for obtaining a reference
to the transaction manager in an enterprise environment. Must implement
the com.solarmetric.kodo.ee.ManagedRuntime interface.</description>
<config-property-name>ManagedRuntimeClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.ee.AutomaticManagedRuntime</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.ManagedRuntimeClass upon
initialization.</description>
<config-property-name>ManagedRuntimeProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The maximum number of connections to pool. If all of
these are in use, then PersistenceManager instances must wait for a
connection to become available. This option has been removed from the
specification, but we still use the javax.jdo.option for backwards
compatibility.</description>
<config-property-name>MaxPool</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>200</config-property-value>
</config-property>
<config-property>
<description>The minimum number of connections to keep in the pool.
This option has been removed from the specification, but we still use the
javax.jdo.option for backwards compatibility.</description>
<config-property-name>MinPool</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>2</config-property-value>
</config-property>
<config-property>
<description>The number of milliseconds to wait for a pooled
connection before throwing an exception if the pool is empty. This option
has been removed from the specification, but we still use the
javax.jdo.option for backwards compatibility.</description>
<config-property-name>MsWait</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>30000</config-property-value>
</config-property>
<config-property>
<description>If true, then the application plans to have multiple
threads simultaneously accessing a single PersistenceManager, so measures
must be taken to ensure that the implementation is thread-safe. Otherwise,
the implementation need not address thread safety.</description>
<config-property-name>Multithreaded</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>If true, then it is possible to read persistent data
outside the context of a transaction. Otherwise, a transaction must be in
progress in order read data.</description>
<config-property-name>NontransactionalRead</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>If true, then it is possible to write to fields of a
persistent-nontransactional object when a transaction is not in progress.
If false, such a write will result in a JDOUserException.</description>
<config-property-name>NontransactionalWrite</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>Selects between optimistic and pessimistic (data store)
transactional modes.</description>
<config-property-name>Optimistic</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>The name of the class that the
PersistenceManagerFactory should create when creating a new
PersistenceManagerImpl. Must extend
com.solarmetric.kodo.runtime.PersistenceManagerImpl.</description>
<config-property-name>PersistenceManagerClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the concrete implementation of
javax.jdo.PersistenceManagerFactory that
javax.jdo.JDOHelper.getPersistenceManagerFactory () should create. For
Kodo JDO, this should be
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory or
com.solarmetric.kodo.impl.jdbc.ee.EEPersistenceManagerFactory, or a custom
extension of one of these types.</description>
<config-property-name>PersistenceManagerFactoryClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.PersistenceManagerClass upon
initialization.</description>
<config-property-name>PersistenceManagerProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of classes that will be
initialized whenever a new PersistenceManager is instantiated. This can be
used to get around issues with application identity classes not being
associated with their respective persistent classes.</description>
<config-property-name>PersistentTypes</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the class to use to proxy second class
objects in managed instances. Must implement
com.solarmetric.kodo.util.ProxyManager.</description>
<config-property-name>ProxyManagerClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.util.SimpleProxyManager</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.ProxyManagerClass upon
initialization.</description>
<config-property-name>ProxyManagerProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for caching of queries
loaded from the data store. Must implement
com.solarmetric.kodo.runtime.datacache.QueryCache.</description>
<config-property-name>QueryCacheClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.runtime.datacache.query.QueryCacheImpl</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.QueryCacheClass upon
initialization.</description>
<config-property-name>QueryCacheProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A list of query filter listeners to add to the default
list of extensions. Ignored if com.solarmetric.kodo.EnableQueryExtensions
is false.</description>
<config-property-name>QueryFilterListeners</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for communicating commit
information among JVMs. Must implement
com.solarmetric.kodo.runtime.event.RemoteCommitProvider.</description>
<config-property-name>RemoteCommitProviderClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.RemoteCommitProviderClass upon
initialization.</description>
<config-property-name>RemoteCommitProviderProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>If true, then fields in a persistence-capable object
that have been changed during a transaction will be rolled back to their
original values upon a rollback. Otherwise, the values will not be changed
upon rollback.</description>
<config-property-name>RestoreValues</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>The name of the class that will be used as the
Collection implementation for returning ResultList instances. It must be
an instance of
com.solarmetric.kodo.runtime.objectprovider.ResultList.</description>
<config-property-name>ResultListClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The property string used to configure the instance of
the ResultListClass.</description>
<config-property-name>ResultListProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>If true, then fields in a persistence-capable object
that have been read during a transaction must be preserved in memory after
the transaction commits. Otherwise, persistence-capable objects must
transition to the hollow state upon commit, meaning that subsequent reads
will result in a database round-trip.</description>
<config-property-name>RetainValues</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for generating sequence
numbers when using data store identity. Must implement the
com.solarmetric.kodo.impl.jdbc.SequenceFactory interface.</description>
<config-property-name>SequenceFactoryClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.schema.DBSequenceFactory</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.impl.jdbc.SequenceFactoryClass upon
initialization.</description>
<config-property-name>SequenceFactoryProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The class names of a SQLExecutionListener
implementation to install on the SQLExecutionManager.</description>
<config-property-name>SQLExecutionListenerClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of a custom SQLExecutionManager to be used for
all issuance of SQL to the data store. Must implement
com.solarmetric.kodo.impl.jdbc.SQLExecutionManager.</description>
<config-property-name>SQLExecutionManagerClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl</config-property-value>
</config-property>
<config-property>
<description>The size of the PreparedStatement cache that is
maintained in the DataSource implementation.</description>
<config-property-name>StatementCacheMaxSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>70</config-property-value>
</config-property>
<config-property>
<description>The time, in seconds, after which a JDBC query will be
aborted if it has not yet returned any values. This value is simply passed
to the JDBC driver's Statement.setTimeout method; Kodo does not perform
any addition timeout actions. Note that many JDBC drivers either ignore
this request, or improperly handle it, which may result in application
deadlocks.</description>
<config-property-name>StatementExecutionTimeout</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>-1</config-property-value>
</config-property>
<config-property>
<description>If true, the Kodo runtime will automatically attempt to
refresh the database schema when persistent classes are referenced,
allowing the developer to bypass the schematool step. This property is
only intended to be used for development. As automatic schema migration
can result in data loss, this feature should never be enabled on a
production system. Furthermore, this feature has serious adverse affects
on Kodo's runtime performace. Ensure that it is disabled before doing any
performance analysis.</description>
<config-property-name>SynchronizeSchema</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>The name of the class to use to store
persistence-capable objects involved in a PM's transaction cache. Must
implement com.solarmetric.kodo.runtime.StateManagerSet.</description>
<config-property-name>TransactionCacheClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.runtime.FifoStateManagerSet</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.TransactionCacheClass upon
initialization.</description>
<config-property-name>TransactionCacheProperties</config-property-name>
<config-property-type>java.lang.String</config-property -
ORA-01002: fetch out of sequence using multiple XA datasources
Hi,
I have a problem accessing multiple XA datasources :
- launch an sql request on datasource 1
- rs.next() on the resultset
- use the data to launch another sql request on datasource 2
After 10 iterations, the next() method throws an SQLException (ORA-01002: fetch out of sequence).
After further investigation, I noticed that :
- the problem doesn't occur if the same datasource is used for the 2 requests
- if I set the fetch size to 15 for the first request, the exception is thrown after 15 iterations (but I can't use this as a workaround because the number is potentially above the million).
Anyone experiencing the same problem ?
Thanks in advance
Nicolas
Here's my configuration :
- Weblogic 8.1 SP4
- JDK sun 1.4.2_04 (we have the same problem with various JDKs including JRockit)
- Oracle 10g
- Oracle thin driver xa 10.1.0.2.0
A JSP I use to reproduce the problem :
<pre><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.ArrayList,
java.sql.Connection,
java.sql.PreparedStatement,
java.sql.ResultSet,
java.sql.SQLException,
javax.naming.InitialContext,
javax.naming.NamingException,
javax.sql.DataSource,
javax.transaction.UserTransaction"%>
<%!
public void launchTest() throws Exception {
Connection cnx =null ;
try {
getUserTransaction().begin();
// SQL access #1
cnx = getConnection("jdbc/xaDatasource1");
PreparedStatement stmt = cnx.prepareStatement("SELECT test_col from test_table");
ResultSet rs = stmt.executeQuery();
// iterate on resulset from SQL 1
int i=1;
while (rs.next()){ // SQL exception after 10 iterations
System.out.println(i + "");
i++;
// SQL access #2
Connection cnx2 = getConnection("jdbc/xaDatasource2");
// problem occurs even if we don't request
cnx2.close();
// end SQL access #2
getUserTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
try {
getUserTransaction().rollback();
} catch (Exception e1) {
e1.printStackTrace();
throw e;
} finally {
try {
if (cnx != null && !cnx.isClosed())
cnx.close();
} catch (Exception e1) {
e1.printStackTrace();
private UserTransaction getUserTransaction() throws NamingException {
return (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
private Connection getConnection(String jndiName) throws NamingException, SQLException {
DataSource ds = (DataSource) new InitialContext().lookup(jndiName);
return ds.getConnection();
%>
<%
launchTest();
SQL CODE :
CREATE TABLE TEST_TABLE ( TEST_COL NUMBER(2));
insert into test_table values(1);
insert into test_table values(2);
insert into test_table values(3);
insert into test_table values(4);
insert into test_table values(5);
insert into test_table values(6);
insert into test_table values(7);
insert into test_table values(8);
insert into test_table values(9);
insert into test_table values(10);
insert into test_table values(11);
%>
</pre>Nicolas Mervaillie wrote:
Hi,
I have a problem accessing multiple XA datasources :
- launch an sql request on datasource 1
- rs.next() on the resultset
- use the data to launch another sql request on datasource 2
After 10 iterations, the next() method throws an SQLException (ORA-01002: fetch out of sequence).
After further investigation, I noticed that :
- the problem doesn't occur if the same datasource is used for the 2 requests
- if I set the fetch size to 15 for the first request, the exception is thrown after 15 iterations (but I can't use this as a workaround because the number is potentially above the million).
Anyone experiencing the same problem ?Hi. This is a known weakness of Oracle. If the XA transactional context of a connection
changes during a result set processing, even if it is switched back correctly, the result
set is aborted. If the oracle driver has fetched 10 rows, that's all you get. The next
call to next() that needs real DBMS communication will fail.
By spec, an XA connection should be able to be swapped out and enlisted in different
transactions at a per-call granularity, so our pools allow that by default. Try setting
the KeepXAConnTillTxCOmplete setting in your pool.
When a connection is put back in the pool, if it is an XA connection we will suspend
any user tx, and test it with our own test tx, then re-enlist and re-start the user
tx in flight. This may be the context switch that kills the oracle result set.
Joe
>
Thanks in advance
Nicolas
Here's my configuration :
- Weblogic 8.1 SP4
- JDK sun 1.4.2_04 (we have the same problem with various JDKs including JRockit)
- Oracle 10g
- Oracle thin driver xa 10.1.0.2.0
A JSP I use to reproduce the problem :
<pre><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.ArrayList,
java.sql.Connection,
java.sql.PreparedStatement,
java.sql.ResultSet,
java.sql.SQLException,
javax.naming.InitialContext,
javax.naming.NamingException,
javax.sql.DataSource,
javax.transaction.UserTransaction"%>
<%!
public void launchTest() throws Exception {
Connection cnx =null ;
try {
getUserTransaction().begin();
// SQL access #1
cnx = getConnection("jdbc/xaDatasource1");
PreparedStatement stmt = cnx.prepareStatement("SELECT test_col from test_table");
ResultSet rs = stmt.executeQuery();
// iterate on resulset from SQL 1
int i=1;
while (rs.next()){ // SQL exception after 10 iterations
System.out.println(i + "");
i++;
// SQL access #2
Connection cnx2 = getConnection("jdbc/xaDatasource2");
// problem occurs even if we don't request
cnx2.close();
// end SQL access #2
getUserTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
try {
getUserTransaction().rollback();
} catch (Exception e1) {
e1.printStackTrace();
throw e;
} finally {
try {
if (cnx != null && !cnx.isClosed())
cnx.close();
} catch (Exception e1) {
e1.printStackTrace();
private UserTransaction getUserTransaction() throws NamingException {
return (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
private Connection getConnection(String jndiName) throws NamingException, SQLException {
DataSource ds = (DataSource) new InitialContext().lookup(jndiName);
return ds.getConnection();
%>
<%
launchTest();
SQL CODE :
CREATE TABLE TEST_TABLE ( TEST_COL NUMBER(2));
insert into test_table values(1);
insert into test_table values(2);
insert into test_table values(3);
insert into test_table values(4);
insert into test_table values(5);
insert into test_table values(6);
insert into test_table values(7);
insert into test_table values(8);
insert into test_table values(9);
insert into test_table values(10);
insert into test_table values(11);
%>
</pre> -
Use DataSource of weblogic in a standalone Java file
Hi,
We have a requirement to run a java file at a scheduled time in a day using cron scheduler on our linux server.
We need to fetch data from the database & perform some business logic in this standalone JAVA file.
Our application has an EAR which is deployed on Weblogic 10.3 server & in our application, we are utilizing the datasource created in that domain using Hibernate.
Now, can we create a standealone Java file & use exisitng datasource (without Hibernate) instead of legacy JDBC code to connect to DB.
Also, do we need to keep this JAVA file a part of this EAR, WAR or can we put the class file in anylocation outside this EAR & then utilize datasource feature.
Please help on the same in implementation.
Thanks,
UttamHi Ravi,
I did create Datasource domain & put wlclient.jar in my application classpath (Add jar in Java Build path of application), but, when I ran application, its giving below error
Exception in thread "Main Thread" java.lang.NoClassDefFoundError: weblogic/kernel/KernelStatus
at weblogic.jndi.Environment.<clinit>(Environment.java:78)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:198)
at TestDataSource.main(TestDataSource.java:37)
Also, I'm putting code here as I there is no provision to attach the file here. Please let me know whats wrong here.
Also, I've given the name of datasource as testDataSource through Admin console of the domain. Do we need to prefix the name with jdbc/ in the code or without that also it works?
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class TestDataSource {
public static void main(String[] args)
DataSource ds=null;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
Context ctx=null;
try
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,
"t3://172.19.244.180:7001");
System.out.println("HERE");
ctx=new InitialContext(ht);
ds=(DataSource)ctx.lookup("jdbc/testDataSource");
System.out.println("HERE AFER CONTEXT CREATION");
conn=ds.getConnection();
stmt=conn.createStatement();
rs=stmt.executeQuery("select distinct(circle) from AIRCEL_STORE_FINDER order by 1 ");
while (rs.next())
System.out.println("circle name "+rs.getString(1));
}catch (Exception e) {
System.out.println("Error in Main "+e.toString());
e.printStackTrace();
finally{
try{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
if(ds!=null)
ds=null;
if(ctx!=null)
ctx.close();
}catch (SQLException e) {
System.out.println("Error in SQLException Finally "+e.toString());
catch (NamingException e) {
System.out.println("Error in NamingException Finally "+e.toString());
} -
Connecting to TimesTen using DataSource in WebLogic on Linux
We are trying to use weblogic 9.2 to connect to TimesTen7.0, both are on Linux.
We have installed Oracle 10g client and then installed TimesTen 7.0 Client on the Linux server hosting weblogic.
Created Client DSN in /var/TimesTen/sys.odbc.ini file as follows:
[ODBC Data Sources]
TTclientMaster=TimesTen 7.0 Client Driver
[TTclientMaster]
TTC_SERVER="TTServerHostName"
TTC_SERVER_DSN=TTmaster
When we are trying to create DataSource in weblogic Admin console it does not show up TTClient Driver in the list.
We tried setting up using "Others" for driver and databasetype but then it asks for databasename which we don't have since TT uses DSN.
We are looking for any pointers or references that can explain how to configure weblogic to use TimesTen using TT 7.0 client DSN.If you have access to a copy of TimesTen 6.0 you can look in the AppServer Configuration Guide (appsrv.pdf) that was shipped with that release. This guide is currently being rewritten and so is not yet available for 7.0.
If you can't get hold of a copy, e-mail me at [email protected] and I'll send it to you.
Chris -
EBS datasource in WebLogic cluster using the EBS dbc file
Hi All
Please let me know if someone has successfully created EBS datasource in WebLogic cluster using the EBS dbc file.
I have successfully created the datasource with one managed server but I am getting 'OAuth Mashaling Failure' error while adding the second managed server to this datasource.
ThanksThanks Hussein
Here is the complete error:
[wlst] Caused by: weblogic.common.ResourceException: weblogic.common.ResourceException: OAUTH marshaling failure
[wlst] at weblogic.jdbc.common.internal.PooledConnectionEnvFactory.createResource(PooledConnectionEnvFactory.java:133)
[wlst] at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1249)
[wlst] at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1166)
[wlst] at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:249)
[wlst] at weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1154)
[wlst] at weblogic.jdbc.common.internal.ConnectionPool.start(ConnectionPool.java:154)
[wlst] at weblogic.jdbc.common.internal.ConnectionPoolManager.createAndStartPool(ConnectionPoolManager.java:454)
[wlst] at weblogic.jdbc.common.internal.ConnectionPoolManager.createAndStartPool(ConnectionPoolManager.java:372)
[wlst] at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:255) -
Creating txn datasource in weblogic 10.3
Hi,
Can anyone help me to create transactional datasources in weblogic 10.3. We are migrating our application from 8.1 to 10.3 and migrated existing datasources to 10.3. While executing ejb's it is giving the following error.
java.sql.SQLException: Connection has already been created in this tx context for pool named <Pool 1> Illegal attempt to create connection from another pool: <Pool 2>
In 8.1, we have only one connection pool associated with many txn datasources. In 10.3 created separate pool for each data source from same DB with following properties for txn.
--Supports global transaction with one-phase commit.
Used oracle.jdbc.OracleDriver driver class.
Thanks in advance.You need to use an XA driver to span multiple resources such as oracle.jdbc.xa.client.OracleXADataSource
See this article, which has some info on XA even if you aren't using RAC
http://www.oracle.com/technology/products/weblogic/OracleWLS_RAC.pdf -
Different Options while creating a Datasource in Weblogic
Hi
I am using Weblogic 11 as Application Server .
While in the process of creating a DataSource in Weblogic , i came across different options such as for Instance Connections , for Service Connections.
Please tell me whats the difference in these two ??
Whats the difference in Oracle Drivers (Thin) for Instance Connections versions 9 , 10 , 11
Whats the difference in Oracle Drivers (Thin) for Service Connections 9 , 10 , 11
Thanks in advance .Hi,
Your query is replied by Joe Weistine (JDBC Expert) Please find the answer:
http://forums.oracle.com/forums/message.jspa?messageID=4029371
You can directly post your JDBC related querries to JDBC Forum directly to get to get Quick/appropriate/correct answers and attention from JDBC experts... WebLogic Server - JDBC (Forum ID)
Thanks
Jay SenSharma
Edited by: Jay SenSharma on Jan 16, 2010 10:38 AM -
Can not connect datasource in weblogic server
I have written a test class. I create datasource in weblogic server 11g(datasource name =fdbusionline jndi name = 'jdbc/fdbusionline' ) and start weblogic server. but always report the following error:
javax.naming.NameNotFoundException: Unable to resolve 'fdbusionline'. Resolved '' [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'fdbusionline'. Resolved '']; remaining name 'fdbusionline'
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at weblogic.jndi.internal.ServerNamingNode_1035_WLStub.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:423)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:411)
at com.fd.busionline.test.appinterface.impl.DataSourceTest.testConnectDataSource(DataSourceTest.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at oracle.jdevimpl.junit.runner.junit4.JUnit4Testable.run(JUnit4Testable.java:24)
at oracle.jdevimpl.junit.runner.TestExecution.run(TestExecution.java:27)
at oracle.jdevimpl.junit.runner.JUnitTestRunner.main(JUnitTestRunner.java:88)
Caused by: javax.naming.NameNotFoundException: Unable to resolve 'fdbusionline'. Resolved ''
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)
at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
@test
public void testConnectDataSource(){
Connection conn = null;
Context ctx = null;
try{
// Hashtable env = new Hashtable();
// env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
// env.put(Context.PROVIDER_URL, "t3://localhost:7001");
// env.put(InitialContext.SECURITY_PRINCIPAL, "weblogic");
// env.put(InitialContext.SECURITY_CREDENTIALS, "!QAZ2wsx");
Environment env=new Environment();
env.setProviderUrl("t3://localhost:7001");
env.setSecurityPrincipal("weblogic");
env.setSecurityCredentials("!QAZ2wsx");
ctx = new InitialContext();
ctx=env.getInitialContext();
Object obj = ctx.lookup("fdbusionline");// can not work
Object obj = ctx.lookup("jdbc/fdbusionline"); // can not work
DataSource ds = (DataSource) PortableRemoteObject.narrow(obj, DataSource.class);
conn = ds.getConnection();
Statement stmt = conn.createStatement();
String sql = "select sysdate from dual";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getDate(1));
} catch (Exception e) {
e.printStackTrace();
}finally{
System.out.println("Test Datasource Connection");
who can help me? Any help will be appreciated greatlyOkay, but are you sure that the datasource is actually deployed? Does the server log or the management interface of weblogic actually report that the datasource was deployed succesfully under the name you specify? And did you double check if you don't have any name mismatches (such as a typo or an upper/lowercase mismatch)?
I ask because the connection to the server appears to be working, but the lookup of the name gives no results - the only thing I can think of is that the resource really is not deployed even if you believe it is.
A few observations:
- you may want to put your JNDI credentials in a jndi.properties file in the root of the classpath in stead of hardcoding them (but you may hardcode for now as a quick test of course)
- the correct lookup should be to "jdbc/fdbusionline", in other words you use the jndi-name.
ctx = new InitialContext();
ctx=env.getInitialContext();the env.getInitialContext() really is not necessary, I would remove it. -
Running Multiple Server Instance in Weblogic Server
Hi
I am using Weblogic 5.1.0 with SP6. I am trying to run multiple server
instances
of Weblogic Server. The one that comes by default is "myServer".
My question is if i were to create multiple server instances, do i need to
copy the
weblogic.properties file in each of folder corresponding to respective
application
server instance. I am not using Clusters.
Also if i need to include some classes or jar files in my application server
instance
classpath, how do i do it. cuz in weblogic.properties file i didn't find any
property
corresponding to classpath.
The classpath i need to set is for my creating a JDBC pool for connectivity
to my
AS400 DB2 database using the Type 4 (AS400JDBCDriver) Driver. Is there some
other way to do it.
Thanks in advance
NiranjanThere is an answer on your first question at
weblogic.support.interest.clustering
I asked a similar question. Search for a message posted by me on 24/11/00
Rgds,
Mike
"Niranjan Soni" <[email protected]> wrote in message
news:[email protected]..
Hi
I am using Weblogic 5.1.0 with SP6. I am trying to run multiple server
instances
of Weblogic Server. The one that comes by default is "myServer".
My question is if i were to create multiple server instances, do i need to
copy the
weblogic.properties file in each of folder corresponding to respective
application
server instance. I am not using Clusters.
Also if i need to include some classes or jar files in my applicationserver
instance
classpath, how do i do it. cuz in weblogic.properties file i didn't findany
property
corresponding to classpath.
The classpath i need to set is for my creating a JDBC pool forconnectivity
to my
AS400 DB2 database using the Type 4 (AS400JDBCDriver) Driver. Is theresome
other way to do it.
Thanks in advance
Niranjan -
Our setup:
Tomcat 5.5, KODO 3.4.1, single transaction per request on the application (application is sessionless).
Observations:
1. When we specify javax.jdo.option.ConnectionURL, javax.jdo.option.ConnectionUserName, javax.jdo.option.ConnectionPassword in the properties file, it uses the KODO DataSource specifically com.solarmetric.jdbc.PoolingDataSource.
2. If we want to use JNDI, we specify javax.jdo.option.ConnectionFactoryName=java:comp/env/jdbc/MyDB in the properties file and then in our tomcat server.xml context we add something like the following:
<Resource
name="jdbc/MyDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@_host_:_port_:_SID_"
username="_username_"
password="_password_"
maxActive="10"
maxIdle="5"
maxWait="-1"/> 3. When specifying with JNDI in tomcat, it appears to use the tomcat DataSource (org.apache.tomcat.dbcp.dbcp.BasicDataSource).
4. Using the tomcat BasicDataSource means that we get no prepared statement caching - this is a documented issue with using third party DataSources.
5. Using the tomcat BasicDataSource also seems to do a database rollback after every persistence manager 'close', which in our setup equates to each request.
Questions:
1. How do we force KODO to use it's own DataSource when using JNDI in tomcat?
2. How would we force KODO to use a different DataSource in the properties file (like the tomcat BasicDataSource)?
3. Is there any way to stop the database rollback after each persistenceManager close when using the tomcat BasicDataSource?
4. Is it recommended to use the KODO DataSource? Are there any reasons to not use it?
5. What are the main differences between the KODO DataSource and the tomcat BasicDataSource?
Many thanks in advance.
NickCan anyone shed some light on how we get statement caching working whilst using JNDI to specify the db connection details? Is this possible???
Any info/help would be very much appreciated as statement caching is something we would now like to enable.
Many thanks,
Nick -
How to resolve BEA KODO license on WebLogic Server
Using BEA Workshop Studio 3.2 you can create Kodo provided JPA project. As part of the project creation the BEA Kodo license (license.bea) file is included within Project/src folder, so that it is available in the classpath. While running the project on WebLogic server you might face license error "kodo.persistence.PersistenceException: No product license key was found..."
The fix for this issue is to merge the kodo license.bea content into WebLogic server license.bea file.
Edit WebLogic-server-Home\license.bea file
Edit Project\src\license.bea file, copy the content <license-group.. > .. </license-group> and paste inside WebLogic-server-Home\license.bea file NOTE: Paste the kodo license content within enclosing <bea-licenses> ... </bea-licenses> but outside of <license-group format="1.0" product="WebLogic Platform" release="xx"> tag.
With this you should be able to run the kodo project on WebLogic server.follow this doc http://docs.oracle.com/cd/E35287_01/fusionapps.7964/e14849.pdf
mark if it helps -
Configuring Multiple LDAP Datasources in VDS
Hi,
I'm trying to configure multiple LDAP Datasources using VDS, one talking to AD and other to Novell eDir from VDS, my LDAP connection strings works well but when I start the service in VDS the service will never startup all I see is Exception null, it does not throw any exception at the same time it doesn't start up the service. I've tried configuring with signle Datasource which works fine. This is failing when I combine those two datasources into one configuration. Have any configured multiple datasources with in VDS. Not sure if you have encountered any problems.
Thanks,
Joe.PAre you just trying to bring in two LDAP data sources or do a join between them?
Actually both I believe are considered types of joins.
You cannot just define two datasources and expect them to show up. -
Adding an XE DataSource in WebLogic 10gR3
I have Oracle 10g XE installed on my Windows XP Pro box. It is runing on port 17969.
I am trying to add a dataSource in Weblogic 10gR3 Server. I tripled checked the port, IP and all other parameters. I have also checked the TNSListener for the correct SID and port, etc. Everything looks correcct. I can log into the Oracle dB thru it's home page.
Can someone please take a look at my stack trace and offer advice as to what is wrong between the Weblogic Server and the Oracle dB? Thanks. Phil
When I click to test the configuration, this is the error that I see:
Connection test failed.
Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: higgled.dnsalias.com:17969:XE
oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:460)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:490)
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:202)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:474)
com.bea.console.utils.jdbc.JDBCUtils.testConnection(JDBCUtils.java:505)
com.bea.console.actions.jdbc.datasources.createjdbcdatasource.CreateJDBCDataSource.testConnectionConfiguration(CreateJDBCDataSource.java:369)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:870)
org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:809)
org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:478)
org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:306)
org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:336)
...I have Oracle 10g XE installed on my Windows XP Pro boxlog onto system above as the OS user which owns the Oracle software (oracle?)
open a command window & issue the following commands
lsnrctl status
lsnrctl service
post back here the commands above & output from them
post the last 30 - 40 lines from listener.log -
Can't find the J2EE Application JDBC Module Datasource in Weblogic
Hello,
I am trying to locate the JDBC Module J2EE application Datasource details in weblogic but I cant find it.
Can someone help me where I can find any Mbean in Weblogic which will specify all the details about the DataSource.
You can see in the image that under deployment I have an application which has Data source(saasreporef).
I have already discovered this target in one of my agent and I want to locate some Mbean which can give me details about this Datasource in Weblogic.I've solved it myself. It changed to NWDS from the Visual Administrator. It can be undepolyed using undepoly view in the NWDS.
I can find the answer using keword 'Deploying and Running the Application from NWDS' in the help portal.
Maybe you are looking for
-
How to change the url of "Add New Item" of a particular list in SharePoint 2013???
Hi Guys, How to change the url of "Add New Item" of a particular list in SharePoint 2013??? I need to redirect it into the page where I have created my Visual web part. Please suggest Warm Regards, Tony Joy
-
Hi, Can you explain the import PO Process cycle from PO to Payment i.e ME21 to MIRO, as in imort PO we have to make payment to deiffernt vendor like acutal vendor from where we are purchasing the material, then custom , then courier charges, insuranc
-
Apple TV screen is smaller than TV size
Hello. We just installed a sound bar on our TV and now the HDMI cable for the Apple TV is plugged directly into the receiver, vs the TV. Now the Apple TV screen is a smaller box centered in the middle of the TV, about half the size as the actual TV.
-
Hi all, Please tell me which of the following from R/3 ABAP actualy used in SRM technical. 1)ALV 2)ALE-IDOC 3)BDC 4)SMARTFORM 5)Module pool 6)BADI 7)BAPI 8)USER EXIT Please answer as it will help me to decide wether to enter into SRM or not. Also ple
-
Disable automatic shift fields filter
Hello! FCP is adding a Shift Fields filter automatically to my sequences. I understand the theory and purpose of Field Dominance but for my current sequences it DOES NOT need to be changed - I've tested it. This auto filter application is making extr