Nilai Atribut Sinkronisasi

Atribut sinkronisasi adalah properti deklaratif yang menentukan jenis sinkronisasi apa yang Anda inginkan untuk dimiliki komponen Anda saat diaktifkan. Saat Anda menyertakan atribut sinkronisasi, COM+ menangani detail sinkronisasi atas nama Anda; Anda tidak perlu melakukan panggilan lain.

Bergantung pada persyaratannya, objek dapat berbagi sinkronisasi pemanggilnya, memerlukan sinkronisasi baru, atau beroperasi tanpa sinkronisasi.

COM+ menyediakan nilai atribut sinkronisasi berikut:

  • Cacat. Saat Anda menonaktifkan atribut sinkronisasi, COM+ mengabaikan persyaratan sinkronisasi komponen dalam menentukan konteks untuk objek. Akibatnya, objek mungkin atau mungkin tidak berbagi konteks pemanggilnya (dan sinkronisasi).

    Secara umum, Anda harus menggunakan nilai atribut ini ketika Anda tahu komponen tidak pernah mengakses manajer sumber daya. Saat memigrasikan komponen COM ke COM+, Anda harus menonaktifkan atribut sinkronisasi untuk mempertahankan perilaku yang sama dengan komponen COM yang tidak dikonfigurasi. Komponen yang tidak dikonfigurasi adalah komponen COM yang belum diinstal dalam aplikasi COM+.

  • Tidak Didukung. Objek dengan nilai ini tidak pernah berpartisipasi dalam sinkronisasi, terlepas dari status pemanggilnya. Pengaturan ini hanya tersedia untuk komponen yang tidak transaksi dan tidak menggunakan layanan aktivasi COM+ just-in-time (JIT).

  • Didukung. Objek dengan nilai ini berpartisipasi dalam sinkronisasi jika ada. Anda menyatakan nilai ini ketika Anda ingin objek berbagi dalam sinkronisasi pemanggilnya tetapi tidak memerlukan sinkronisasinya sendiri.

    Alasan yang baik untuk mengatur atribut sinkronisasi Anda ke Didukung adalah bahwa pengaturan ini bisa lebih murah dalam hal sumber daya sistem. Namun, lebih sulit untuk menulis komponen Anda karena kebutuhan untuk melindunginya dari panggilan bersamaan. Implikasi pengaturan atribut sinkronisasi ke Didukung adalah bahwa, dalam keadaan tertentu, instans objek Anda dapat dibuat sewaktu-waktu sehingga tidak disinkronkan. Jika model utas komponen Gratis atau Keduanya, Anda harus melindungi data instans Anda dengan beberapa jenis mekanisme penguncian. Jika Model Threading adalah Apartemen (STA), Anda tidak perlu melindungi data instans Anda.

  • Diperlukan. Saat Anda mengatur atribut ini, COM+ memastikan bahwa semua objek yang dibuat dari komponen akan disinkronkan. Akibatnya, setiap kali COM+ membuat instans komponen Anda, ia memastikan hanya ada satu utas yang melalui instans ini pada satu waktu.

    Karena COM+ mengaktifkan objek, ia melihat status sinkronisasi pemanggilnya. Jika penelepon disinkronkan, COM+ mengalirkan batas sinkronisasi penelepon untuk menyertakan objek baru. Jika tidak, COM+ memulai sinkronisasi.

  • Membutuhkan Baru. Objek dengan nilai ini harus berpartisipasi dalam sinkronisasi baru, di mana COM+ mengelola konteks dan apartemen atas nama semua komponen yang terlibat dalam panggilan. COM+ secara otomatis memulai sinkronisasi baru, yang berbeda dari sinkronisasi penelepon.

    Alasan yang baik untuk mengatur atribut sinkronisasi Anda ke Requires New adalah pengaturan ini memungkinkan Anda melakukan panggilan luar ke instans komponen Anda secara lebih efisien. Namun, ini juga membuat panggilan antara objek Anda dan objek yang membuatnya lebih mahal dalam hal sumber daya sistem.

    Misalnya, asumsikan kasus di mana objek Anda dan objek pembuatnya memiliki batas sinkronisasi yang sama. Jika klien A memanggil objek pembuat dan klien B memanggil objek Anda, panggilan kedua harus menunggu hingga panggilan pertama selesai. Jika Anda mengatur Memerlukan Baru, objek Anda dibuat dalam batas sinkronisasi terpisah. Dalam hal ini, panggilan dari objek lain dapat diproses secara bersamaan. Namun, panggilan dari objek pembuat ke objek Anda memerlukan lebih banyak sumber daya sistem karena harus melewati batas sinkronisasi.

Mengatur Atribut Sinkronisasi

Dependensi Sinkronisasi