To conclude this thread, I resolved it this way:
Changed from
Code:
<tx:annotation-driven transaction-manager="txManager" order="2000000000"/>
to
Code:
<util:constant id="txAspectOrder" static-field="SystemPointcuts.TRANSACTION_ASPECT_ORDER"/>
<bean class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<property name="transactionInterceptor" ref="transactionInterceptor"/>
<property name="order" ref="txAspectOrder"/>
</bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="txManager"/>
<property name="transactionAttributeSource">
<bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/>
</property>
</bean>
so the transaction aspect order can be defined by a constant in a Java class along with the order of all other custom aspects.