Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 25464|Vastaus: 0

[Lähde] .net/C# Hajautettu TransactionScope

[Kopioi linkki]
Julkaistu 5.5.2018 10.53.17 | | | |
Lainatakseni jonkun toisen opasta:
Varsinaisessa kehitystyössä suorita tapahtuma ja kutsu sitten toinen rajapinta syöttämään dataa; jos käsittelylogiikassa on poikkeus, aiemmin syötetty data muuttuu roska-dataksi,
Haluamme pystyä määrittelemään koko metodin transaktioksi, ja TransactionScope-luokka tarjoaa yksinkertaisen metodin, jonka avulla sinun ei tarvitse olla vuorovaikutuksessa transaktion kanssa.
Merkitä koodilohko osallistuvaksi transaktioon. TransactionScope-objekti luo transaktion ja asettaa transaktion transaktio-luokan Current -ominaisuudeksi.

1. TransactionScope:n edut
1. Sen käyttö on kätevämpää. TransactionScope voi toteuttaa implisiittisiä transaktioita, jolloin voit kirjoittaa datan käyttökerroksen koodia ilman transaktioiden huomioimista, mutta ohjata liiketoimia liiketoimintakerroksessa.
2. Hajautettuja transaktioita voidaan toteuttaa, kuten tietokantarajat ylittävä tai MSMQ.

2. TransactionScope:n haitat
1. Kustannustehokkuus ei ole korkea. Esimerkiksi ohjaat vain kirjaston tapahtumia "Scope"-osiossa. "TransactionScope" on hieman tuhlaavaa.
2. Normaaleissa olosuhteissa, kunhan käytät "TransactionScopea", sinun täytyy konfiguroida MSDTC, asentaa palomuuri ja avata portti 139. Tätä porttia ei voi muuttaa

3. Jos sinun täytyy käyttää hajautettuja tapahtumia, sinun täytyy miettiä sitä
1. Täytyykö tämä operaatio olla transaktiossa? Jos tämä vaihe ei valmistu tai epäonnistuu, kannattaako koko tapahtuman peruminen takaisin? Eikö ole olemassa elegantteja kompensointi- tai vikasietokykyjä?
2. Kuinka monta pistettä hajautetut tapahtumat vaativat? Täytyykö sinulla olla suuri sarja reaaliaikaisia operaatioita? Etkö voisi virtaviivaistaa joitakin asioita ilmoitustoimintojen avulla?
3. Hajautetun transaktion aloittamisen jälkeen, suorititko transaktioriippumattomia operaatioita, vaikka nämä operaatiot eivät liittyneet transaktioihin? (esim. datan lukeminen, laskeminen, käyttäjän viestin odottaminen, muiden moduulien kutsun odottaminen jne.)
4. Et kai laskenut joitakin lukutoimintoja kauppaan? Tämä on helppo virhe, kun lisäät tapahtumaan tietyn toiminnon.
5. Jotkin toimenpiteesi vaiheet voidaan suorittaa kaikkien operaatioiden jälkeen. Tämän tyyppisellä toiminnolla on ilmeiset ilmoitusominaisuudet. Ilmoitustoiminnot sanovat, että annan sinulle ilmoituksen, ja takaan, että ilmoitus tavoittaa sinut;
Teidän täytyy ottaa tämä ilmoitus ja varmistaa, että se käsitellään, mutta teidän ei tarvitse käsitellä sitä heti, kun ilmoitan teille. Tämä operaatio voidaan tietenkin tehdä toisella tehtävällä.

4. Kiinnitä huomiota seuraaviin seikkoihin hajautettuja tapahtumia käyttäessäsi
1: Varmista, että transaktioon osallistuva kone on ottanut käyttöön hajautetun transaktion tuen.
2: Jos koneessa on palomuuri päällä, sinun täytyy asettaa msdtc-prosessi poikkeukseksi.
3: Transaktioon osallistuva kone ei voi ylittää domainia (jos kyseessä on monitoimialueinen, Microsoftilla ei tällä hetkellä ole tarkkaa ratkaisua);
4: Käytä hajautettuja transaktioita vain, kun sinulla on useita tietokantoja, jos kyseessä on sama tietokanta, on parasta käyttää SqlTransactionia.
1. Lisää ensin System.Transactions-viite (sinun täytyy lisätä Net assembly)

C#-kutsun koodi on seuraava:

Blogien osoite, jotka selittävät tämän hajautetun transaktioluokan selityksen, on hyvin selkeä:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html

2. Aseta web-palvelimen ja SQL-palvelinympäristön asetukset

Ohjauspaneeli - > Järjestelmät ja turvallisuus - > hallintatyökalut - > komponenttipalvelut
(Tämä vaaditaan sekä WEB- että SQL-palvelimille)





Ohjauspaneeli - > Järjestelmät ja turvallisuus - > Hallintatyökalut - > Palvelut
(Tämä vaaditaan sekä WEB- että SQL-palvelimille)




Ohjauspaneeli - > Järjestelmä ja turvallisuus - > Windowsin palomuuri
(Tämä vaaditaan sekä WEB- että SQL-palvelimille)




3. MSSQL-konfiguraatio

Palvelinyhteyksiä varten napsauta hiiren oikealla - > ominaisuuksia




4. Määritä isännät (konfiguroi vain WEB-palvelin, jos ei, konfiguroi se myös SQL-palvelimella)

C:\Windows\System32\drivers\etc
isäntätiedosto, joka avataan Muistiopadilla
(SQL-palvelimen tiedot täytyy konfiguroida WEB-palvelimen Hosts-tiedostossa)
(Jos testi epäonnistuu, määritä web-palvelimen tiedot SQL-palvelimen Hosts-tiedostoon)






Edellinen:Ulkoiset linkit Discuz X -foorumipostauksiin lisäävät nofollow-attribuutin
Seuraava:Funktiot, jotka pitävät kaksi desimaalipaikkaa desimaalipisteen jälkeen C#:ssa ja miten niitä käytetään
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com