В този раздел се предоставя обща информация за функцията многосайтово обновяване, така както тя се прилага в случаи, когато има хост и AS/400 сървъри на бази данни. Тук са описани продукти и компоненти, необходими за реализацията на приложения за PC, UNIX и Web, които обновяват множество DB2 бази данни в една и съща транзакция.
Функцията Многосайтово обновяване, позната също и като Разпределена единица работа (distributed unit of work -DUOW) и Двуфазов протокол за записване на промените, е функция, която позволява на вашите приложения да обновяват данни в множество отдалечени сървъри на бази данни като се гарантира целостта на данните. Характерен пример за многосайтово обновяване е банкова транзакция, която включва трансфер на пари от една сметка в друга, намираща се на различен сървър на базата данни.
При подобна операция е съществено актуализациите за дебитната операция да не се запишат, докато не се запишат също и актуализациите, необходими да се кредитира другата сметка. Операцията многосайтово обновяване се прилага, когато данни, представляващи тези сметки, се управляват от два различни сървъра на базата данни.
DB2 продуктите осигуряват пълна поддръжка за многосайтово обновяване. Тази поддръжка е налична както за приложения, разработени на стандартен SQL, така и за приложения, използващи продукти на Монитора за транзакции, използващи спецификацията на интерфейса X/Open XA. Примери за такива продукти на Монитора за транзакции са IBM TxSeries (CICS и Encina), IBM Message and Queuing Series, IBM Component Broker Series, IBM San Francisco Project, както и Microsoft Transaction Server (MTS), BEA Tuxedo, NCR TopEnd и други. Изискванията за настройка са различни в зависимост от това дали се използва многосайтово обновяване на базата на собствен SQL или на TP Монитор.
И двете програми за многосайтово обновяване - на базата на собствен SQL и на TP Монитор трябва да се прекомпилират с опциите CONNECT 2 SYNCPOINT TWOPHASE. И двете могат да използват оператора SQL Connect, за да посочат коя база данни да се използва за SQL операторите, които следват след това. Ако няма Монитор на транзакции, който да укаже на DB2, че ще координира транзакцията (както това е указано при получаването от страна на DB2 на повиквания xa_open от Монитора на транзакции за установяване на връзка с база данни), тогава за координиране на транзакцията ще се използва софтуерът DB2.
Когато се използва многосайтово обновяване с Монитор на транзакции, приложението трябва да подаде заявка за записване на промените или отхвърляне на последните промени, като използва API на Монитора на транзакции, например CICS SYNCPOINT, Encina Abort(), MTS SetAbort().
Когато се използва многосайтово обновяване на собствен SQL, трябва да се зададат нормалните SQL COMMIT и ROLLBACK.
Многосайтово обновяване чрез Монитор на транзакции може да координира транзакция, която осъществява достъп до DB2 и до не-DB2 мениджъри на ресурси, като Oracle, Informix, SQLServer и т.н. Многосайтово обновяване на собствен SQL се използва само с DB2 сървъри. Собственото SQL многосайтово обновяване се използва само със сървъри DB2.
За да работи транзакция за многосайтово обновяване, всяка от базите данни, участващи в разпределената транзакция, трябва да може да поддържа Разпределена единица работа. За момента следните DB2 сървъри осигуряват поддръжка на DUOW, което им позволява да участват в разпределени транзакции:
Разпределената транзакция може да актуализира всяка комбинация от поддържани сървъри на бази данни. Например, вашето приложение може да обнови няколко таблици в DB2 Universal Database на Windows NT или Windows 2000, база данни DB2 за OS/390 и база данни DB2/400, всичко това с една единствена транзакция.