The correct answer is (b) SQLTransactionSync
To elaborate: For read-only transaction, we create the object SQLTransactionSync. If the first argument is NULL then we throw SQLException which is Error code 0. SQLTransactionSync object is fresh initially but when it is marked as stale it is committed or rolled back.