# Requirements for database-side JDBC procedures using nested connections

In order to preserve transactional atomicity, database-side JDBC procedures that use nested connections have the following limitations.

- Cannot issue a commit or rollback, unless called within a CALL statement.
- Cannot change connection attributes such as auto-commit.
- Cannot modify the data in a table used by the parent statement that called the procedure, using INSERT, UPDATE, or DELETE. For example, if a SELECT statement using the T table calls the `changeTables` procedure, `changeTables` cannot modify data in the `T table.`
- Cannot drop a table used by the statement that called the procedure.
- Cannot be in a class whose static initializer executes DDL statements.

In addition, the Connection object that represents the nested connection always has its auto-commit mode set to false.
Parent topic: Database-side JDBC procedures and nested connections