Package org.pjdbc.sql
Interface PjdbcEventListener
- All Known Implementing Classes:
DebugEventListener
public interface PjdbcEventListener
Listener interface for PJDBC driver events.
Implementations can monitor driver behavior without modifying driver code. Register listeners via:
PjdbcListeners.register(PjdbcEventListener)for programmatic registration- ServiceLoader via META-INF/services/org.pjdbc.sql.PjdbcEventListener
All callback methods have default empty implementations so listeners only need to override the events they care about.
Example usage:
PjdbcListeners.register(new PjdbcEventListener() {
@Override
public void onRetry(String sql, SQLException cause, int attempt, long delayMs) {
logger.warn("Retry attempt {} after {}ms: {}", attempt, delayMs, cause.getMessage());
}
});
- Since:
- 2.2.0
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidonChaosInjected(String type, String sql, String details) Called when chaos injection occurs (for ChaosDriver).default voidonCircuitBreakerRejection(String name, String state) Called when a request is rejected by a circuit breaker.default voidonCircuitBreakerStateChange(String name, String oldState, String newState) Called when a circuit breaker changes state.default voidonFederatedQuery(String sql, List<String> targetUrls) Called when a query is executed against multiple federated databases.default voidonRetry(String sql, SQLException cause, int attempt, long delayMs) Called when a retry is about to be attempted.default voidonSqlTransformed(String original, String transformed) Called when SQL is transformed by a filter driver.
-
Method Details
-
onRetry
Called when a retry is about to be attempted.- Parameters:
sql- the SQL statement being retried (may be null for non-SQL operations)cause- the exception that triggered the retryattempt- the retry attempt number (1 for first retry, 2 for second, etc.)delayMs- the delay in milliseconds before the retry will be attempted
-
onCircuitBreakerStateChange
Called when a circuit breaker changes state.- Parameters:
name- the circuit breaker nameoldState- the previous state (CLOSED, OPEN, or HALF_OPEN)newState- the new state
-
onSqlTransformed
Called when SQL is transformed by a filter driver.- Parameters:
original- the original SQL statementtransformed- the transformed SQL statement
-
onFederatedQuery
Called when a query is executed against multiple federated databases.- Parameters:
sql- the SQL statement being executedtargetUrls- the JDBC URLs of the target databases
-
onCircuitBreakerRejection
Called when a request is rejected by a circuit breaker.- Parameters:
name- the circuit breaker namestate- the current circuit breaker state
-
onChaosInjected
Called when chaos injection occurs (for ChaosDriver).- Parameters:
type- the type of chaos injected (e.g., "delay", "exception", "timeout")sql- the SQL statement affected (may be null)details- additional details about the chaos injection
-