java.sql.SQLException: Protocol violation caught while accessing a page and Oracle DB is used

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.

Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Problem

Users are not able to access particular pages in Bamboo and the following appears in the atlassian-bamboo.log

org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is 
org.hibernate.TransactionException: JDBC rollback failed
	at org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:684)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:849)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:826)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	...
Caused by: org.hibernate.TransactionException: JDBC rollback failed
	at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:200)
	at org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:681)
	... 255 more
Caused by: java.sql.SQLException: Protocol violation: [ 0, ]
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:669)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
	at oracle.jdbc.driver.T4C7Ocommoncall.doOROLLBACK(T4C7Ocommoncall.java:66)
	at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:906)
	at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:4539)
	at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:855)
	at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:213)
	at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:192)
	... 256 more

Diagnosis

Environment

  • The SQLException: Protocol violation is usually caused by the JDBC driver. Please ensure that you're using the correct Database JDBC Driver in your Bamboo instance, considering your Bamboo version and Oracle version.

Cause

If you're using Oracle's ojdbc7.jar (version 12.1.0.1) to connect to your Oracle database, you're hitting a known bug with the driver itself as discussed in this StackOverflow post.

BAM-18276 - The Oracle JDBC Driver bundled with Bamboo 5.15.x is buggy . This is fixed in Bamboo 6.2.0

Resolution

  1. Stop Bamboo.
  2. Download ojdbc8.jar version 12.2.0.1.
  3. Update your JDBC driver by replacing the existing JAR file inside the $BAMBOO_INSTALL/lib folder with the new one.
  4. Start Bamboo.



Last modified on Jan 28, 2025

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.