Guys, I just started using iBatis, and i think its a great framework, and would want to employ the same in our company for the persistance layer...Also "iBatis in Action" is a very well written book, great job Clinton, Larry and Brandon...
Anyways coming to the problem...So am facing this "protocol voilation" error when using oraclecursors (have followed the example on wiki) propogated on SimpleDataSource.pushConnection() with the stack trace below...using selects just works fine its just when using oraclecursors i face this problem Also after the stack trace i have posted by sqlmap-config and sqlmapping itself and the client.. would appreciate any input.. Exception in thread "main" java.sql.SQLException: Protocol violation at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:166) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:217) at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:1377) at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:132) at oracle.jdbc.driver.T4CConnection.do_rollback(T4CConnection.java:530) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1291) at com.ibatis.common.jdbc.SimpleDataSource.pushConnection(SimpleDataSource.java:527) at com.ibatis.common.jdbc.SimpleDataSource.access$100(SimpleDataSource.java:52) at com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke(SimpleDataSource.java:954) at $Proxy0.close(Unknown Source) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.close(JdbcTransaction.java:81) at com.ibatis.sqlmap.engine.transaction.TransactionManager.end(TransactionManager.java:111) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(SqlMapExecutorDelegate.java:782) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMapSessionImpl.java:176) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapClientImpl.java:154) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.autoEndTransaction(SqlMapExecutorDelegate.java:883) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:622) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:95) <-- XYZCertificate.xml --> <sqlMap namespace="Certificate"> <typeAlias alias="certificate" type="company.xyzcore.domain.Certificate"/> <resultMap id="certificateResult" class="exemptionCertificate"> <result property="certificateId" column="CERT_ID"/> <result property="name" column="NAME"/> </resultMap> <parameterMap id="outCursorParamMap" class="map"> <parameter property="criteriaParam" jdbcType="int" javaType="java.lang.Integer" mode="IN"/> <parameter property="outputCursorParam" jdbcType="ORACLECURSOR" mode="OUT" resultMap="certificateResult" /> </parameterMap> <procedure id="getCertificateByCertificateId" parameterMap="outCursorParamMap"> { call test.concept_test_api.get_cert_id(?, ?) } </procedure> </sqlMap> <!-- SQL MAP CONFIG --> <sqlMapConfig> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="oracle.jdbc.OracleDriver" /> <!--property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.111.212:1521:somedb" /--> <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@//192.168.111.106:1521/mydb" /> <property name="JDBC.Username" value="myusername" /> <property name="JDBC.Password" value="mypassword" /> </dataSource> </transactionManager> <sqlMap resource="company/xyz/core/persistence/XYZCertificate.xml"/> </sqlMapConfig> Caller code ------------------- String resource; Reader reader; SqlMapClient sqlMap; resource = "company/xyz/core/persistence/sql-map-config.xml"; reader = Resources.getResourceAsReader(resource); sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); HashMap params = new HashMap(); params.put("criteriaParam", new Integer(11)); List list = sqlMap.queryForList("getCertificateByCertificateId", params); Thanks in advance.. -- View this message in context: http://www.nabble.com/Protocol-Error---SimpleDataSource.pushConnection%28%29-when-using-oraclecursors-tp17093837p17093837.html Sent from the iBATIS - User - Java mailing list archive at Nabble.com.