{"record":{"id":"1cdd6c6ce6bef3ca","repo":"apache/shardingsphere","slug":"attempt-to-start-more-than-d-transactions","errorCode":null,"errorMessage":"Attempt to start more than %d transactions","messagePattern":"Attempt to start more than (.+?) transactions","errorType":"exception","errorClass":"ExcessTransactionsException","httpStatus":null,"severity":"error","filePath":"proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/transaction/FirebirdStartTransactionCommandExecutor.java","lineNumber":55,"sourceCode":"    private static final int MAX_CONCURRENT_TRANSACTIONS = 1;\n    \n    private final FirebirdStartTransactionPacket packet;\n    \n    private final ConnectionSession connectionSession;\n    \n    @Override\n    public Collection<DatabasePacket> execute() {\n        validateNoActiveTransaction();\n        connectionSession.setAutoCommit(packet.isAutoCommit());\n        connectionSession.setReadOnly(packet.isReadOnly());\n        connectionSession.setIsolationLevel(packet.getIsolationLevel());\n        int transactionId = FirebirdTransactionIdGenerator.getInstance().nextTransactionId(connectionSession.getConnectionId());\n        return Collections.singleton(new FirebirdGenericResponsePacket().setHandle(transactionId));\n    }\n    \n    private void validateNoActiveTransaction() {\n        if (FirebirdTransactionIdGenerator.getInstance().hasActiveTransaction(connectionSession.getConnectionId())) {\n            throw new ExcessTransactionsException(MAX_CONCURRENT_TRANSACTIONS);\n        }\n    }\n}\n","sourceCodeStart":37,"sourceCodeEnd":59,"githubUrl":"https://github.com/apache/shardingsphere/blob/e952770a215630a3659c75d64369168cd3e26b82/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/transaction/FirebirdStartTransactionCommandExecutor.java#L37-L59","documentation":"Error \"Attempt to start more than %d transactions\" thrown in apache/shardingsphere.","triggerScenarios":"A Firebird start-transaction request exceeds the maximum number of concurrent transactions the proxy allows.","commonSituations":"Applications leaking transactions (never committing) until the per-connection transaction cap is reached.","solutions":["Commit or roll back existing transactions before starting new ones.","Reduce the number of concurrently open transactions per connection.","Increase the configured transaction limit if the workload legitimately needs more."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e952770a215630a3659c75d64369168cd3e26b82","analyzedAt":"2026-08-14T13:54:53.392Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}