I think i understand this partly, but not completly for sure.
i. Never - should throw exception if a transaction was running, we cannont know that, so this is not possible.
ii. Mandatory - Not possible again for similar reason.
iii. Supports - Not possible because how would you know if a transaction was running or not.
iv. RequiresNew - Should suspend a running transaction and start new one, we don't know if TX was running, so not possible (is that right??)
v. Required - Should start new Tx only if there was no TX already, we don't know the current TS - So container always starts one for us. But if there was a TX running, we should join it, how is that possible??
vi. Not supported - Should run without TX, and suspend any existing TX, how is this possible, contradicts with point iv. right??
I am still not clear ....any help would be appriciated.
Thanks alot.