Oracle Weblogic, resetting datasources

In our OSB services we make a lot of use of jca database adapters calling stored procedures.
After changing the package structure in the database (adding new procedures) we get the next stacktrace (partly in Dutch)

[sourcecode language=”xml”]
Invoke JCA outbound service failed with application error, exception: com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/EmailService/BusinessService/retrieveMail/retrieveMail [ retrieveMail retrieveMail_ptt::retrieveMail (InputParameters,OutputParameters) ] – WSIF JCA Execute of operation ‘retrieveMail’ failed due to: Fout bij oproep opgeslagen procedure.
Fout bij een poging de EML.EMAIL.RETRIEVE_MAIL API voor te bereiden en uit te voeren.
Er is een fout opgetreden bij het voorbereiden en uitvoeren van de EML.EMAIL.RETRIEVE_MAIL API. Oorzaak: java.sql.SQLSyntaxErrorException: ORA-00902: Ongeldig gegevenstype.

; nested exception is:
BINDING.JCA-11811
Fout bij oproep opgeslagen procedure.
Fout bij een poging de EML.EMAIL.RETRIEVE_MAIL API voor te bereiden en uit te voeren.
Er is een fout opgetreden bij het voorbereiden en uitvoeren van de EML.EMAIL.RETRIEVE_MAIL API. Oorzaak: java.sql.SQLSyntaxErrorException: ORA-00902: Ongeldig gegevenstype.

Controleer of de API is gedefinieerd in de database en of de parameters overeenkomen met de handtekening van de API. Deze uitzondering wordt niet als opnieuw te proberen beschouwd, blijkbaar wegens een fout in het model. Als u de fout in plaats daarvan wilt classificeren als opnieuw te proberen, voegt u de eigenschap nonRetriableErrorCodes met waarde “-902” toe aan de implementatiedescriptor (dat wil zeggen weblogic-ra.xml). Om automatisch een nieuwe poging te doen stelt u de volgende composite.xml-eigenschappen voor deze aanroep in: jca.retry.interval, jca.retry.count en jca.retry.backoff. Alle eigenschappen zijn gehele getallen.

com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/EmailService/BusinessService/retrieveMail/retrieveMail [ retrieveMail_ptt::retrieveMail(InputParameters,OutputParameters) ] – WSIF JCA Execute of operation ‘retrieveMail’ failed due to: Fout bij oproep opgeslagen procedure.
Fout bij een poging de EML.EMAIL.RETRIEVE_MAIL API voor te bereiden en uit te voeren.
Er is een fout opgetreden bij het voorbereiden en uitvoeren van de EML.EMAIL.RETRIEVE_MAIL API. Oorzaak: java.sql.SQLSyntaxErrorException: ORA-00902: Ongeldig gegevenstype.

at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBindingServiceImpl.invoke(JCATransportOutboundOperationBindingServiceImpl.java:155)
at com.bea.wli.sb.transports.jca.JCATransportEndpoint.sendRequestResponse(JCATransportEndpoint.java:209)
at com.bea.wli.sb.transports.jca.JCATransportEndpoint.send(JCATransportEndpoint.java:170)
at com.bea.wli.sb.transports.jca.JCATransportProvider.sendMessageAsync(JCATransportProvider.java:598)
…..

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:889)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:540)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:213)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1075)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1466)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3752)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3937)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:9259)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1535)
at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:99)
at oracle.tip.adapter.db.sp.AbstractStoredProcedure.execute(AbstractStoredProcedure.java:123)
… 151 more
[/sourcecode]

Edwin already blogged about how to refresh the datasources in Weblogic by use of wlst and ant.
If you want to refresh the datasource manually in the console do the next.

Go to the Weblogic Console > datasources and select your datasource.
Go to the tab ‘Control’, select the servers to which the datasource is targetted and click ‘Reset’.

Thanks go out to my colleague Arnaud for the tip.

Share this Post:
Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

4 Responses to “Oracle Weblogic, resetting datasources”

commenter

how to reset the datasource using WLST script?

[…] Elzinga has wrote a blog about this same […]

commenter

it doesn’t work for me..!

Leave a Reply:

Name (required):
Mail (will not be published) (required):
Website:
Comment (required):
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>