Skip to content
Prev Previous commit
Next Next commit
Rollback if start transaction request fails
  • Loading branch information
meedbek committed May 2, 2025
commit 8b783e1e6f656e932c822f95cd6777dbe236d647
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,14 @@ public BookingService(DataSource dataSource, @SuppressWarnings("SpringJavaInject

public StartTransactionResponseDTO startTransaction(StartTransactionRequestDTO body) {
try (OracleConnection conn = (OracleConnection) connectionPool.getConnection();
AutoCloseable suspend = conn::suspendTransaction;) {
AutoCloseable rollback = conn::rollback;) {
conn.setAutoCommit(false);
byte[] gtrid = conn.startTransaction(body.timeout() * 60);

long bookingId = createBooking(conn);

List<Long> seats = lockAndBookSeats(conn, bookingId, body.flightId(), body.count());
conn.suspendTransaction();

return new StartTransactionResponseDTO(bookingId, Util.byteArrayToHex(gtrid), seats.size(), seats);
} catch (APIException ex) {
Expand Down