Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# для профСссионалов. Π’ΠΎΠΌ IIΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 58

Автор Π‘ΠΈΠΌΠΎΠ½ Робинсон

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· слуТб COM+, ΠΊΠ°ΠΊ старыС, извСстныС ΠΈΠ· MTS, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Π΅ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡ‹. Но сначала ΠΊΡ€Π°Ρ‚ΠΊΠΎ рассмотрим Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° COM+: "snap-in" слуТб ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Component Services). (Snap-in являСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ SQL Server ΠΈΠ»ΠΈ IIS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ интСрфСйса консоли управлСния Microsoft β€” ММБ.)

Snap-in слуТб ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ администратор MTS Π±Ρ‹Π» доступСн Π² Windows NT ΠΈΠ· мСню Start ΠΊΠ°ΠΊ ΠΏΡƒΠ½ΠΊΡ‚ Option Pack. Π’ соотвСтствии со своим Π½ΠΎΠ²Ρ‹ΠΌ статусом составной части ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы слуТбы COM+ пСрСчислСны Π² Windows 2000 Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π»ΠΈΠ²ΠΎ Π² мСню Administrative Tools ΠΏΠΎΠ΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Component Services.

ЛСвая панСль ΠΎΠΊΠ½Π° слуТб ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Component Services) содСрТит иСрархичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ COM+ ΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². (На языкС слуТб ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ являСтся Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² COM+, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ (Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ) ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅, это Π½Π°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Π² MTS ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ). Класс ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ прСдставлСн Π·ΠΎΠ»ΠΎΡ‚Ρ‹ΠΌ ΡˆΠ°Ρ€ΠΈΠΊΠΎΠΌ со Π·Π½Π°ΠΊΠΎΠΌ плюс Π² сСрСдинС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° происходит ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ.

БущСствуСт Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° сборок .NET Π² слуТбы ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ snap-in слуТб ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ CLR.

ΠœΡ‹ рассмотрим ΠΎΠ±Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΏΠΎΠ·ΠΆΠ΅. Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΎΠ±Π·ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… слуТб, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставляСт COM+.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ COM+ 

НазначСниС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Вранзакция являСтся мноТСством ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΎΠ΄Π½Π° опСрация Π² мноТСствС ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‚ΠΎ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ²ΡˆΠΈΠ΅ΡΡ Ρ€Π°Π½Π΅Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² исходноС состояниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн Π½ΠΈΠΆΠ΅.

Рассмотрим web-сайт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ занимаСтся Π² основном ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ для Π·Π°ΠΊΠ°Π·ΠΎΠ². Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° сайтС ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Ρ‚ΠΎ трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ списаниС с Π΅Π³ΠΎ счСта, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ запись Π·Π°ΠΊΠ°Π·Π° Π±Ρ‹Π»Π° ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°ΠΊΠ°Π·ΠΎΠ². Если Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π²Π²ΠΎΠ΄ΠΎΠΌ записи ΠΎ Π·Π°ΠΊΠ°Π·Π΅ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ списаниС срСдств с ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΈ Π·Π°ΠΊΠ°Π· Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ Π·Π° Ρ‚ΠΎΠ²Π°Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚.

public void PlaceOrder(OrderInfo, objOrderInfo, UserInfo objUserInfo) {

 CreditCard objCreditCard=new CreditCard();

 OrderTable objOrderTable=new OrderTable();

 // Π¨Π°Π³ 1: БписаниС срСдств с ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹

 objCreditCard.PlaceCharge(objOrderInfo, objUserInfo);

 // Если здСсь Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка ΠΌΠ΅ΠΆΠ΄Ρƒ шагами 1 ΠΈ 2,

 // Ρ‚ΠΎ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ

 // ΠΎΠ½ Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΠ»

 // Π¨Π°Π³ 2: Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π°ΠΊΠ°Π·

 objOrderTablΠ΅.RecordOrder(objOrderInfo, objUserInfo);

}

Π’ старыС Π²Ρ€Π΅ΠΌΠ΅Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС схСмы обСспСчСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, упомянутой Π²Ρ‹ΡˆΠ΅. Π­Ρ‚ΠΈ схСмы Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ логичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ стратСгии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ ошибкам. Π£ΠΆΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADODB.Connection ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² достаточно элСгантной Ρ„ΠΎΡ€ΠΌΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ContextUtil, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ скоро рассмотрим, слуТбы COM+ прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ использованию ΠΈ Π±ΠΎΠ»Π΅Π΅ простым, Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ADODB.Connection.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Рассмотрим Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ распрСдСлСнных транзакция (DTC), ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows, ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ транзакциями. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ ΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² транзакциях, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ согласованы с интСрфСйсом, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌ DTC, ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° рСсурсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° DTC ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ΅Ρ‚ Π΅ΠΌΡƒ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции позволяСт Ρ‚Π°ΠΊΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ, ΠΊΠ°ΠΊ процСссоры Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ процСссоры ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ совмСстно.

DTC Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ процСсса, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π²ΡƒΡ…Ρ„Π°Π·Π½ΠΎΠΉ фиксациСй. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ DTC Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ сначала Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° рСсурсов, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, смоТСт Π»ΠΈ ΠΎΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ β€” это являСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·ΠΎΠΉ. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли DTC ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ участника, ΠΎΠ½ ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ участнику ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния β€” это Π±ΡƒΠ΄Π΅Ρ‚ вторая Ρ„Π°Π·Π°. Если ΠΎΠ΄ΠΈΠ½ ΠΈΠ· участников испытываСт трудности Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Π΅, Ρ‚ΠΎ DTC ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ участнику ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ.

"ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚" являСтся абстракциСй, Π²Π°ΠΆΠ½ΠΎΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. КаТдая опСрация Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ β€” такая ΠΊΠ°ΠΊ списаниС срСдств с ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ вставка записи ΠΎ Π·Π°ΠΊΠ°Π·Π΅ β€” ΠΈΠΌΠ΅Π΅Ρ‚ контСкст, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½Π° ассоциирована. Если опСрация происходит Π² контСкстС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, это Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ опСрация являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ DTC, Ρ‡Ρ‚ΠΎΠ±Ρ‹ транзакция Π±Ρ‹Π»Π° зафиксирована ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π°. Вакая опСрация ΠΏΠΎ сути ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎΠΌ "Π²Π΅Ρ‚ΠΎ" Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² своСм контСкстС.

Π₯отя ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅, это объяснСниС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² сборкС .NET.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² N-Π·Π²Π΅Π½Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅

АрхитСктурно Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрныС прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ COM+, состоят ΠΈΠ· слоя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ добавлСнию, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡŽ ΠΈ обновлСнию записСй Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎΡ‚ слой Π·Π°Π²Π΅Ρ€Π½ΡƒΡ‚ Π² слой бизнСс-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ бизнСс-ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‡Π΅Ρ€Π΅Π· интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° основС Ρ„ΠΎΡ€ΠΌΡ‹ Windows ΠΈΠ»ΠΈ Π½Π° основС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ бизнСс-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. Если ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄ бизнСс-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ COM+, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ DTC ΠΎΠ± ΠΎΡ‚ΠΌΠ΅Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π‘Π»ΡƒΠΆΠ±Ρ‹ COM+ ΠΈ врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

НазваниС Π‘Π΅Ρ€Π²Π΅Ρ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Microsoft Π±Ρ‹Π»ΠΎ нСсколько Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ MTS прСдоставлял большС, Ρ‡Π΅ΠΌ просто ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим Π΄Π²Π΅ слуТбы COM+, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ упомянуты ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Π² MTS, β€” Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ JIT ΠΈ созданиС ΠΏΡƒΠ»ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ОбС эти слуТбы ΡΠ²Π»ΡΡŽΡ‚ΡΡ тСхнологиями эффСктивного использования сСрвСрными машинами своих рСсурсов ΠΏΡ€ΠΈ манипуляциях сСрвСрными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ активация JIT ΠΈ созданиС ΠΏΡƒΠ»ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ COM+.

β–‘ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ являСтся ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ классов ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² процСссС Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

β–‘ Π‘Π΅Ρ€Π²Π΅Ρ€Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ являСтся ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ классов ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π΅ΠΌ процСссС, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΡ‚ процСссов всСх Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС ASP ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Π² сСрвСрных прилоТСниях. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ находятся Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π΅ΠΌ процСссС, ΠΎΡ‚ΠΊΠ°Π· сСрвСрного ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌΡƒ ΠΎΡ‚ΠΊΠ°Π·Ρƒ сСрвСра Web. Для стандартных (Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² .NET) ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ COM задаСтся свойство Activation Type Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Activation ΠΎΠΊΠ½Π° прилоТСния Properties:

Как ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅, сущСствуСт другая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° для опрСдСлСния Ρ‚ΠΈΠΏΠ° Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ сборки .NET. Π‘ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Волько прилоТСния COM+ с Ρ‚ΠΈΠΏΠΎΠΌ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Serverapplication ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡƒΠ»ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… слуТбу COM+, которая Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна Π΄Π°Π»Π΅Π΅.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡƒΠ»ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² процСссора ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ² являСтся достаточно Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌ созданиС экзСмпляра ΠΈ инициализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΈ расходы ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ для сСрвСра Web, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ дСсятки тысяч ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ ΠΎΡ‰ΡƒΡ‰Π°Π»ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΏΠΎΠΊΠ° сСрвСр Web пытаСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², слуТбы COM+ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΡƒΠ»Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Как ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, эта слуТба COM+ позволяСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ использования Π΄Π°ΠΆΠ΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ понадобятся. Когда сСрвСрному сСансу ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠ½ просто Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· ΠΏΡƒΠ»Π° доступных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², получая Π΅Π³ΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π³ΠΎΡ‚ΠΎΠ², ΠΈΠ»ΠΈ оТидая Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, ΠΏΠΎΠΊΠ° Π½Π΅ станСт доступСн Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ освобоТдаСтся ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, слуТбы COM+ Π½Π΅ Ρ€Π°Π·Ρ€ΡƒΡˆΠ°ΡŽΡ‚ Π΅Π³ΠΎ, Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡƒΠ»Π΅, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ Π½Π° случай, Ссли ΠΎΠ½ понадобится Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ минимальноС ΠΈ максимальноС число ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΡƒΠ»Π΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ дискрСтно ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, сколько сСрвСрных рСсурсов Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ для класса ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.