- These error messages are, in essence, telling you that DTC cannot communicate with SQL Server. Here's what you need to check
Ensure both computers can ping each other using netbios names. Netbios names must be used for DTC transactions. - Both computers must have MSDTC running
- If there are firewalls on either machine, they must have exceptions for Port 135 or for the program msdtc.exe.
The dtcPing tool can be helpful in diagnosing DTC issues. For more information see http://support.microsoft.com/kb/918331
Now, whether or not you want to use large scope transactions is another question, and not a simple one to answer. A couple of points to think about when you are considering using transactions are
- Any update, insert etc to a rdmbs is either completed successfully or rolled back. Using TransactionOption "Required" as I discuss above is about combining many update/insert/delete statements so that they all succeed or none of them do.
- Be mindful of how long the transaction runs for. This is the time that another transaction might have to wait if there is a locking issue.
- There might be other ways to ensure your data integrity. For example, if you are thinking about transactions to enable simple re-running of the package in the event of an error, you might be able to structure the package so that it can re-run even after successful completion of some, or all, of the tasks.
Another point worth noting with SSIS transactions is that you can set TransactionOption of "Required" on the package, and have a task (such as Execute SQL) which has a TransactionOption of NotSupported. In this way, so long as the tasks executes, it will not be rolled back with the rest of the package in the event of a failure.
For a real-time demonstration of data that has SSIS packages loading/processing about 300 new records/second (all day, every day) see http://RichardLees.com.au/sites/Demonstrations
No comments:
Post a Comment