|
From: Bronwen C. <bro...@ya...> - 2004-05-31 23:20:20
|
Hi,
If I understand your question, OracleLobHandler works in a test case =
without
weblogics pool, only using the oracle.jdbc.pool.OracleDataSource =
datasource
bean defined as:
<bean id=3D"dataSource" class=3D"oracle.jdbc.pool.OracleDataSource">
<property
name=3D"driverType"><value>oracle.jdbc.OracleDriver</value></property>
<property
name=3D"URL"><value>jdbc:oracle:thin:@localhost:1521:ROBIN</value></prope=
rty>
<property name=3D"user"><value>talentstudio</value></property>
<property
name=3D"password"><value>talentstudio</value></property>
</bean>
In deployment I have set up a weblogic pool using oracle thin driver, =
not a
weblogic oracle driver.=20
So from what I can determine weblogic pool + oracle driver +
oracleLobHandler throws the exception and
Oracle jdbc pool + oracleLobHandler (as in test case) works.
The printouts:
template.getDataSource().getConnection()=3D
weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_OracleConnection@=
112
connection.getMetaData().getConnection() =3D
weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_OracleConnection@=
112
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf =
Of
j=FCrgen h=F6ller [werk3AT]
Sent: 31 May 2004 22:52
To: spr...@li...
Subject: Re: [Springframework-developer] re: OracleLobCreator
Can you check what kind of wrappers the DataSource returns? Simply fetch =
the
DataSource, invoke getConnection() and see what kind of handle it =
returns
(System.out.println). Furthermore, invoke
getConnection().getMetaData().getConnection() and see whether this is =
the
native Connection (System.out.println again).=20
=20
However, if you have properly specified SimpleNativeJdbcExtractor for
OracleLobHandler's "nativeJdbcExtractor" property and still get that
exception, then I assume that Weblogic's own Oracle JDBC driver doesn't =
use
the OracleConnection class at all. This would mean that OracleLobHandler
cannot be used with it.
=20
Do I understand correctly that OracleLobHandler plus
SimpleNativeJdbcExtractor work properly with Oracle's original JDBC =
driver
plus Weblogic's connection pool?
=20
Juergen
=20
________________________________
Von: spr...@li... im Auftrag =
von
Bronwen Cassidy
Gesendet: Di 01.06.2004 00:24
An: spr...@li...
Betreff: RE: [Springframework-developer] re: OracleLobCreator
Hi,
OK the results when changing the driver for the pool from =
jdbc:oracle:thin
to: jdbc:weblogic:oracle using SimpleNativeJdbcExtractor
Error:
org.springframework.dao.DataAccessResourceFailureException: Could not =
create
Oracle LOB; nested exception is org.springframework.dao.In
validDataAccessApiUsageException: OracleLobHandler needs to work on
oracle.jdbc.OracleConnection - specify a proper NativeJdbcExtractor
org.springframework.dao.InvalidDataAccessApiUsageException: =
OracleLobHandler
needs to work on oracle.jdbc.OracleConnection - specify a
proper NativeJdbcExtractor
at
org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.ge=
tOr
acleConnection(OracleLobHandler.java:366)
at
org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.cr=
eat
eLob(OracleLobHandler.java:336)
at
org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.se=
tCl
obAsString(OracleLobHandler.java:264)
at
com.zynap.talentstudio.dao.jdbc.oracle.datamanipulation.PortfolioDataMani=
pul
ation$1.setValues(PortfolioDataManipulation.java
:50)
at
org.springframework.jdbc.core.support.AbstractLobCreatingPreparedStatemen=
tCa
llback.doInPreparedStatement(AbstractLobCreating
PreparedStatementCallback.java:71)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:292)=
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:308)=
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf =
Of
tho...@tr...
Sent: 31 May 2004 21:47
To: spr...@li...
Subject: Re: [Springframework-developer] re: OracleLobCreator
I was finally able to reproduce the error in my own environment using =
Spring
1.0.1. I will try 1.0.2 (current CVS) and see what happens.
Thomas
Here is my stack trace:
org.springframework.dao.DataAccessResourceFailureException: Could not =
create
Oracle LOB; nested exception is java.lang.ClassCastException: null
java.lang.ClassCastException
at
oracle.jdbc.driver.OracleConnection.unwrapCompletely(OracleConnection.jav=
a:5
090)
at
oracle.jdbc.driver.OracleConnection.physicalConnectionWithin(OracleConnec=
tio
n.java:5141)
at oracle.sql.CLOB.createTemporary(CLOB.java:1009)
at oracle.sql.CLOB.createTemporary(CLOB.java:956)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java=
:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI=
mpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.pr=
epa
reLob(OracleLobHandler.java:375)
at
org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.cr=
eat
eLob(OracleLobHandler.java:327)
at
org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.se=
tCl
obAsString(OracleLobHandler.java:255)
at org.buggybean.web.TestServlet.doGet(TestServlet.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Ser=
vle
tStubImpl.java:971)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.j=
ava
:402)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.j=
ava
:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.ru=
n(W
ebAppServletContext.java:6350)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSub=
jec
t.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)=
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServle=
tCo
ntext.java:3635)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.j=
ava
:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Quoting "j=FCrgen h=F6ller [werk3AT]" <jue...@we...>:
> Changing the pool should just affect the NativeJdbcExtractor choice, =
=3D
> i.e. a different bean wired to OracleLobHandler's =
"nativeJdbcExtractor" =3D
> property.
> =3D20
> Give SimpleNativeJdbcExtractor a try with a Weblogic pool; there's a =
=3D
> good chance that it will work, avoiding the need for a specific =
Weblogic =3D
> implementation of the NativeJdbcExtractor interface.
> =3D20
> As of Spring 1.0.2, SimpleNativeJdbcExtractor will even work with =3D
> Commons DBCP too, avoiding the need for a different =
NativeJdbcExtractor =3D
> configuration when switching between Commons DBCP and another pool.
> =3D20
> Side note: The new version of SimpleNativeJdbcExtractor will also work =
=3D
> with C3P0. This allows the use of C3P0's ComboPooledDataSource as =
direct =3D
> replacement of Commons DBCP's BasicDataSource.
> =3D20
> Juergen
> =3D20
>
> ________________________________
>
> Von: spr...@li... im Auftrag =
=3D
> von Bronwen Cassidy
> Gesendet: Mo 31.05.2004 22:25
> An: spr...@li...
> Betreff: Re: [Springframework-developer] re: OracleLobCreator
>
>
>
> Hi
> I have no concern as to the pool i use, i am actually
> completely ignorant and have been blindly feeling my
> way using the spring test cases, samples, docs and
> some googling, until 4 months ago i had never used
> oracle and until a week ago i did not need to do more
> than work out db agnostic sql queries :-)
>
> so please i am more than happy to use weblogic pool,
> which i am using when the app is deployed, hence the
> test time passes and deploy time failures most
> likely!! I am guessing the changes are needed in the
> nativeJdbcExtractor class in the spring.xml needs to
> point to a weblogic equivalent??
>
> --- Thomas Risberg <tho...@tr...> wrote:
> > Since you are using the Commons DBCP rather than a
> > WebLogic pool the
> > issue is slightly different. We have to figure out
> > why the connection
> > returned from the DBCP pool is not unwrapped
> > properly.
> >
> > Thomas
> >
> >
> > Bronwen Cassidy wrote:
> >
> > >Thank-you Jurgen
> > >This was the approach i had come to conclude as the
> > >only difference between passing test case and
> > failing
> > >deployed app is the connection pool handled by
> > >weblogic , ahh well another trip into the unknown,
> > the
> > >best part of being a developer ;-)
> > >
> > >regards
> > >Bronwen
> > >
> > >--- j=3DFCrgen_h=3DF6ller_[werk3AT]
> > ><jue...@we...> wrote: >
> > >OracleLobHandler needs to work on a native
> > >=3D20
> > >
> > >>OracleConnection as it comes from the driver. The
> > >>usual problem in that respect is not the driver
> > but
> > >>the connection pool: Every connection pool needs
> > to
> > >>wrap native connections with pooled connections
> > that
> > >>at least have different closing behavior.
> > >>
> > >>To address this, OracleLobHandler has the
> > >>"nativeJdbcExtractor" property, taking an
> > >>implementation of Spring's NativeJdbcExtractor
> > >>interface. Spring includes out-of-the-box
> > >>implementations for Commons DBCP, XAPool, and
> > JBoss.
> > >>I guess what you need to do is write such an
> > >>extractor for Weblogic.
> > >>
> > >>What's odd about your exception is that
> > >>OracleLobCreator does not complain that it doesn't
> > >>receive an OracleConnection (there's an explicit
> > >>check in there). It seems to get a wrapped
> > >>connection that is still assignable to
> > >>OracleConnection, although it's not the native
> > >>OracleConnection from the driver...
> > >>
> > >>Maybe Weblogic uses some special way of pooling
> > >>connections for the Oracle driver, using poolable
> > >>OracleConnections? The getPhysicalConnection
> > method
> > >>will probably be in the OracleConnection class,
> > not
> > >>in the CLOB class. Try writing a
> > NativeJdbcExtractor
> > >>that unwraps an OracleConnection with that method.
> >
> > >>
> > >>Juergen
> > >>
> > >>
> > >>________________________________
> > >>
> > >>Von:
> > >>
> > >> =3D20
> > >>
> >
> >spr...@li...
> > >=3D20
> > >
> > >>im Auftrag von Bronwen Cassidy
> > >>Gesendet: Mo 31.05.2004 04:27
> > >>An:
> > spr...@li...
> > >>Betreff: RE: [Springframework-developer] re:
> > >>OracleLobCreator
> > >>
> > >>
> > >>
> > >>Hi I have:
> > >>
> > >>Weblogic 8 service pack 2
> > >>ojdbc.jar (Oracle9i 9.2.0.1 JDBC Drivers)
> > >>Oracle9i
> > >>I have set up the connection pool using the
> > >>jdbc:oracle:thin (oracle thin
> > >>drivers (not weblogic ones)
> > >>
> > >>Actually I managed to find some information (very
> > >>little) one from a
> > >>hibernate mail, suggested using the
> > >>getPhysicalConnection() instead of
> > >>createTemporary, but this method does not seem to
> > >>available on the CLOB
> > >>class??
> > >>
> > >>-----Original Message-----
> > >>From:
> > >>
> > >> =3D20
> > >>
> >
> >spr...@li...
> > >=3D20
> > >
> >
> >[mailto:spr...@li...]
> > >=3D20
> > >
> > >>On Behalf Of
> > >>Thomas Risberg
> > >>Sent: 31 May 2004 02:09
> > >>To:
> > spr...@li...
> > >>Subject: Re: [Springframework-developer] re:
> > >>OracleLobCreator
> > >>
> > >>Bronwen,
> > >>
> > >>In order to pinpoint the problem quicker - what
> > >>version of WebLogic,
> > >>Oracle and JDBC drivers are you using?
> > >>
> > >>Thomas
> > >>
> > >>Bronwen Cassidy wrote:
> > >>
> > >> =3D20
> > >>
> > >>>Hi I have a CLOB column in oracle and in the test
> > >>> =3D20
> > >>>
> > >>there are no
> > >> =3D20
> > >>
> > >>>problems, unfortunately deploying to weblogic I
> > >>> =3D20
> > >>>
> > >>get the exception
> > >> =3D20
> > >>
> > >>>below. We are using classes12.jar whereas
> > weblogic
> > >>> =3D20
> > >>>
> > >>uses ojdbc14.jar, I
> > >> =3D20
> > >>
> > >>>firstly replaced weblogics jars and classpath
> > >>> =3D20
> > >>>
> > >>settings to use the
> > >> =3D20
> > >>
> > >>>classes12.jar, but got the same error, so I
> > pulled
> > >>> =3D20
> > >>>
> > >>weblogic oracle jar
> > >> =3D20
> > >>
> > >>>into my test classpath to test if the problem was
> > >>> =3D20
> > >>>
> > >>with the jars but
> > >> =3D20
> > >>
> > >>>the test worked fine ?? I am really stuck as to
> > >>> =3D20
> > >>>
> > >>whom this should go to
> > >> =3D20
> > >>
> > >>>weblogic, oracle, or . I am hoping there is an
> > >>> =3D20
> > >>>
> > >>expert there who can
> > >> =3D20
> > >>
> > >>>shed some light. Google did not have a single
> > >>> =3D20
> > >>>
> > >>match for variations of
> > >> =3D20
> > >>
> > >>>the first 2 lines!!
> > >>>
> > >>>java.lang.ClassCastException
> > >>>
> > >>>at
> > >>>
> > >>> =3D20
> > >>>
> >
> =
>oracle.jdbc.driver.OracleConnection.unwrapCompletely(OracleConnection.ja=
=3D
> va:5
> > >=3D20
> >
> =3D3D=3D3D=3D3D message truncated =3D3D=3D3D=3D3D
>
>
> =3D20
> =3D20
> =3D20
> ____________________________________________________________
> Yahoo! Messenger - Communicate instantly..."Ping"
> your friends today! Download Messenger Now
> http://uk.messenger.yahoo.com/download/index.html
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: Oracle 10g
> Get certified on the hottest thing ever to hit the market... Oracle =
10g.
> Take an Oracle 10g class now, and we'll give you the exam FREE.
> http://ads.osdn.com/?ad_id=3D3D3149&alloc_id=3D3D8166&op=3D3Dclick
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: Oracle 10g
> Get certified on the hottest thing ever to hit the market... Oracle =
10g.
> Take an Oracle 10g class now, and we'll give you the exam FREE.
> http://ads.osdn.com/?ad_id=3D3149&alloc_id=3D8166&op=3Dclick
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3D3149&alloc_id=3D8166&op=3Dclick
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149&alloc_id=8166&op=3Dick
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. =
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149&alloc_id=8166&op=3Dick
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|