On Jun 14, 2007, at 7:29 AM, Piers Geyman wrote:
Hi,
I can get a connection running to Oracle just using the tranql
connector
that uses the tranQL/geronimo connection pooling, but I need to use
the
Oracle Connection Pooling as I am using Oracle RAC and oracle needs to
manage the connections in the pool based on information it receives
from the
Oracle RAC.
Do I need to develop my own Resource Adapter to be able to have
database
connection served by the Oracle Connection Factory Pool
(oracle.jdbc.pool.OracleDataSourceFactory), or am I missing some
obvious
configuration of geronimo/tranQL that would allow me to specify the
Oracle
class (oracle.jdbc.pool.OracleDataSourceFactory) as my connection
pool?
At the moment there's no way to have oracle manage a connection pool,
and it doesn't fit into the idea of the connector architecture. I
looked for some RAC documentation and it looks like there's a way for
weblogic to do the pooling at least for oracle 10g
(bestpracticesforxaandrac.pdf, p.6). That makes me suspect that
there is some way to use RAC through a resource adapter. For
instance, does oracle supply an XADataSource?
Do you know what the oracle connection pooling does? Why is this
something that would be difficult for the connection manager to do?
If there's really no way to avoid Oracle managing the connections it
should still be fairly easy to write a modified ConnectionManager
that doesn't do pooling but delegates to oracle. If you don't need
jta transactions at all there's probably an even simpler way to do
this by writing a gbean that creates the datasource, and has a method
called $getResource that returns it. If you then name this gbean
correctly it should fit into our jndi lookup mechanism.
Is there publicly available documentation on how to use RAC in a java
enterprise environment, e.g. javadoc or some indication of what
classes are available and for what purposes?
thanks
david jencks
Thanks and regards
Piers
Lin Sun-2 wrote:
Hi, I tried this with Geronimo 1.1 w/ daytrader. Basically I need to
copy the oracle tranql rar file and the oracle jar file into my
repository, and specify the dependency of the oracle jar file
somewhere
in the plan -
<dep:dependency>
<dep:groupId>oracle</dep:groupId>
<dep:artifactId>classes12</dep:artifactId>
<dep:version>10g</dep:version>
<dep:type>jar</dep:type>
</dep:dependency>
and develop a resource adapter plan like below (below is an
application
scoped connection pool plan, but it can also be a server wide plan).
<ext-module>
<connector>TradeDataSource</connector>
<external-path>tranql/tranql-connector-oracle-xa/1.1/rar</external-
path>
<connector
xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.1">
<resourceadapter>
<outbound-resourceadapter>
<connection-definition>
<connectionfactory-interface>javax.sql.DataSource</
connectionfactory-interface>
<connectiondefinition-instance>
<name>jdbc/TradeDataSource</name>
<config-property-setting
name="UserName">trade</config-property-setting>
<config-property-setting
name="Password">trade</config-property-setting>
<config-property-setting
name="DatabaseName">tradedb</config-property-setting>
<config-property-setting
name="DataSourceName">TradeDataSource</config-property-setting>
<config-property-setting
name="ServerName">linsun2</config-property-setting>
<config-property-setting
name="PortNumber">1521</config-property-setting>
<config-property-setting
name="DriverType">thin</config-property-setting>
<connectionmanager>
<xa-transaction>
<transaction-caching/>
</xa-transaction>
<single-pool>
<max-size>10</max-size>
<min-size>0</min-size>
<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>
<idle-timeout-minutes>30</idle-timeout-minutes>
<match-one/>
</single-pool>
</connectionmanager>
</connectiondefinition-instance>
</connection-definition>
</outbound-resourceadapter>
</resourceadapter>
</connector>
</ext-module>
The oracle tranql rar file isn't in the geronimo assembly,
unfortunatelly. So you'll have to get it from the Tranql project
(http://tranql.codehaus.org/Download). You can download the binary
(that is a bit old than what I used) or build it yourself. The
ra.xml
inside of the rar file contains what configuration parameters you can
specify in the connection pool plan.
HTH, Lin
Piers Geyman wrote:
Hi,
I am trying to migrate from tomcat to geronimo and I am having
trouble
being
able to configure my Oracle RAC datasource in geronimo to use the
Oracle
Driver's connection pooling rather than the default geonimo pooling.
In tomcat I configured my datasource as follows, which used the
Oracle
Datasource connection pool rather than DBCP, but I cannot see how
I can
do
the same in Geronimo.
<Resource
auth="Container"
description="My Oracle Datasource"
name="jdbc/myOracleDataSource"
type="oracle.jdbc.pool.OracleDataSource"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=oraclehost1)(PORT=1529))(ADDRESS=(PROTOCOL=TCP)
(HOST=oraclehost2)(PORT=1529))(LOAD_BALANCE=yes)(CONNECT_DATA=
(SERVER=DEDICATED)(SERVICE_NAME=TESTDB)))"
user="devapp"
password="devapp"
maxIdle="20"
minIdle="10"
maxWait="5000"
maxActive="100"
connectionCachingEnabled="true"
fastConnectionFailoverEnabled="true"
connectionCacheName="myOracleDatasourceCache"
onsConfigStr="nodes=oraclehost1:6200,oraclehost2:6200"
connectionProperties="oracle.jdbc.ReadTimeout=30000"/>
I see that other connection pools to the databases seem to use
tranQL,
but
there seems to be no documentation for this product.
Any help would be appreciated.
Thanks and regards
Piers
--
View this message in context: http://www.nabble.com/How-to-
configure-a-datasource-to-use-OracleDataSource-for-Datasource-
pooling-tf3921766s134.html#a11121302
Sent from the Apache Geronimo - Users mailing list archive at
Nabble.com.