It looks like you object is not valid anymore after original connection is
closed. Try using transaction that covers both calls - this would retain
connection open.

сб, 11 лют. 2017 о 02:43 kumarburla <[email protected]> пише:

> Hi Team,
>
> I am using sql-stored component and to execute stored procedure in Oracle
> DB. One of my OUT parameters in SQLXML.
>
> When i am getting output in body, i am getting type as oracle.xdb.XMLType.
> I
> am passing this output to another procedure but i am getting error while
> doing so. Below is my code
>
> /Step 1 : Call to Oracle Stored procedure
> <to uri="sql-stored:SP_Test(INTEGER 5 , OUT SQLXML PR)dataSource=ds1" />
> <log message=" 324 ${body}"/>
> <log message=" 123  ${body.[PR]}"/>
> Step 2 : <setBody >
>         <simple resultType="java.sql.SQLXML">${body.[PR]}</simple>
>         </setBody>
> <log message=" after 324  ${body}"/>
> Step 3:
> <setHeader headerName="test1"><simple>${body}</simple></setHeader>
>                                         <to
> uri="sql-stored:SP_Test1(SQLXML ${header.test1})?dataSource=ds1}"
> /> /
>
>
> After executing the above steps below is my stack trace.
>
> 2017-02-10 16:40:24,601 | INFO  |  324
> {PATIENTRECORDS=oracle.xdb.XMLType@7941dbe3}
> 2017-02-10 16:40:24,662 | INFO  |  123  oracle.xdb.XMLType@7941dbe3
> 2017-02-10 16:40:24,662 | INFO  |  after 324  oracle.xdb.XMLType@7941dbe3
> 2017-02-10 16:40:25,024 | INFO  |
> org.springframework.dao.RecoverableDataAccessException:
> CallableStatementCallback; SQL [{call SP_Test1(?)}]; Closed Connection;
> nested exception is java.sql.SQLRecoverableException: Closed Connection
>         at
>
> org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:98)
>         at
>
> org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
>         at
>
> org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
>         at
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1094)
>         at
> org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1130)
>         at
>
> org.springframework.jdbc.object.StoredProcedure.execute(StoredProcedure.java:142)
>         at
>
> org.apache.camel.component.sql.stored.TemplateStoredProcedure.execute(TemplateStoredProcedure.java:74)
>         at
>
> org.apache.camel.component.sql.stored.CallableStatementWrapper.populateStatement(CallableStatementWrapper.java:104)
>         at
>
> org.apache.camel.component.sql.stored.SqlStoredProducer$1.execute(SqlStoredProducer.java:69)
>         at
>
> org.apache.camel.component.sql.stored.CallableStatementWrapper.call(CallableStatementWrapper.java:55)
>         at
>
> org.apache.camel.component.sql.stored.SqlStoredProducer.process(SqlStoredProducer.java:43)
>         at
>
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
>         at
>
> org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:173)
>         at
>
> org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:341)
>         at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:168)
>         at
>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
>         at
>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
>         at
> org.apache.camel.processor.TryProcessor.process(TryProcessor.java:113)
>         at
> org.apache.camel.processor.TryProcessor.process(TryProcessor.java:84)
>         at
>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
>         at
>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
>         at
>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
>         at
>
> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:192)
>         at
> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:76)
>         at java.util.TimerThread.mainLoop(Timer.java:555)
>         at java.util.TimerThread.run(Timer.java:505)
> Caused by: java.sql.SQLRecoverableException: Closed Connection
>         at
>
> oracle.jdbc.driver.PhysicalConnection.prepareCall(PhysicalConnection.java:4178)
>         at
>
> oracle.jdbc.driver.PhysicalConnection.prepareCall(PhysicalConnection.java:4134)
>         at
> oracle.jdbc.oracore.OracleTypeADT.initMetadata12(OracleTypeADT.java:551)
>         at
> oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:507)
>         at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:469)
>         at
> oracle.sql.OpaqueDescriptor.initPickler(OpaqueDescriptor.java:258)
>         at oracle.sql.OpaqueDescriptor.<init>(OpaqueDescriptor.java:59)
>         at
> oracle.sql.OpaqueDescriptor.createDescriptor(OpaqueDescriptor.java:177)
>         at oracle.xdb.XMLType.toDatum(XMLType.java:758)
>         at oracle.xdb.XMLType.toBytes(XMLType.java:4048)
>         at
>
> oracle.jdbc.driver.OraclePreparedStatement.setOPAQUECritical(OraclePreparedStatement.java:6560)
>         at
>
> oracle.jdbc.driver.OraclePreparedStatement.setOPAQUEInternal(OraclePreparedStatement.java:6517)
>         at
>
> oracle.jdbc.driver.OraclePreparedStatement.setSQLXMLInternal(OraclePreparedStatement.java:6598)
>         at
>
> oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:9463)
>         at
>
> oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8946)
>         at
>
> oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:9557)
>         at
>
> oracle.jdbc.driver.OracleCallableStatement.setObject(OracleCallableStatement.java:6090)
>         at
>
> oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:249)
>         at
>
> org.springframework.jdbc.core.StatementCreatorUtils.setValue(StatementCreatorUtils.java:437)
>         at
>
> org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:235)
>         at
>
> org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:150)
>         at
>
> org.springframework.jdbc.core.CallableStatementCreatorFactory$CallableStatementCreatorImpl.createCallableStatement(CallableStatementCreatorFactory.java:213)
>         at
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1072)
>
>
> Thanks & Regards
> Kumar
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Need-an-Example-to-pass-XMLTYPE-output-to-Oracle-stored-procedure-facing-issue-with-my-code-tp5793784.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Reply via email to