Today, I've found that CFTransaction cannot work for different datasource. This one is really bad for CFDevelopers like us. Because we need to use CFTransaction when we need to do long process for so many query transaction within our code with different datasource.

view plain print about
1<cftransaction action="BEGIN">
2    <cftry>
3        ...
4        ...
5        ...
6        ...
7        <cftransaction action="COMMIT" />
8        <cfcatch type="Any">
9            <cftransaction action="ROLLBACK" />
10            ...
11            ...
12        </cfcatch>
13    </cftry>
14</cftransaction>

When I use above coding with different datasource within CFTransaction, CF return "Datasource name must be same within CFTransaction". That's why I need to change like

view plain print about
1<cftry>
2    ...
3    ...
4    ...
5    ...
6    <cfcatch type="Any">
7        ...
8        ...
9    </cfcatch>
10</cftry>

I feel it's not safe at all and it might be half-process for database if some of query got error. And I have not found any nice solution for using different datasource like CFTransaction's yes-or-failed-all method.