# Database-side JDBC routines using non-nested connections

A database-side JDBC routine can create a new connection instead of using a nested connection. Statements executed in the routine will be part of a different transaction, and so can issue commits and rollbacks.

Such a routine can connect to a database different from the one to which the parent SQL statement that called it is connected. The routine does not use the same transaction or Connection. It establishes a new Connection and transaction.

Note: If database-side JDBC routines do not use nested connections, this means that they are operating outside of the normal DBMS transaction control, so it is not good practice to use them indiscriminately.

- Invoking a procedure using the CALL command
  If a procedure uses only IN parameters, Derby can execute the procedure by using the SQL CALL command. A stored procedure with IN, OUT, or INOUT parameters can be invoked from a client application by using a CallableStatement.

Parent topic: Programming database-side JDBC routines
Related concepts
Database-side JDBC routines and nested connections
Database-side JDBC routines and SQLExceptions
User-defined SQLExceptions