Implement transactions (with expected behaviour [removed global connection variable])
Replace existing connection logic with ThreadLocal scope