I see @DB(txn=false) a lot in the code. The javadoc says "By marking
txn=false the method is not surrounded with transaction code" but I
can't find any code that backs up this claim. I only can find the below
code in com.cloud.utils.db.TransactionContextBuilder that seems to point
to the fact that only the existence of @DB indicates a transaction.
@Override
public boolean needToIntercept(Method method) {
DB db = method.getAnnotation(DB.class);
if (db != null) {
return true;
}
Class<?> clazz = method.getDeclaringClass();
do {
db = clazz.getAnnotation(DB.class);
if (db != null) {
return true;
}
clazz = clazz.getSuperclass();
} while (clazz != Object.class && clazz != null);
return false;
}
I grep'd through the code for ".txn()" and never once found a reference
to it. Its is safe to assume the txn attribute on @DB is bogus?
Darren