Entitas layanan pesan Java (JMS) 2.0

Aplikasi klien yang terhubung ke Azure Service Bus Premium dan menggunakan pustaka Bus Layanan Azure JMS dapat menggunakan entitas di bawah ini.

Antrean

Antrean di JMS secara semantik sebanding dengan antrean Bus Layanan tradisional.

Untuk membuat Antrean, gunakan metode di bawah ini di kelas JMSContext -

Queue createQueue(String queueName)

Topik

Topik di JMS secara semantik sebanding dengan topik Bus Layanan tradisional.

Untuk membuat Topik, gunakan metode di bawah ini di kelas JMSContext -

Topic createTopic(String topicName)

Antrean sementara

Jika aplikasi klien memerlukan entitas sementara yang ada selama masa pakai aplikasi, aplikasi dapat menggunakan Antrean sementara. Entitas ini digunakan dalam pola Request-Reply.

Untuk membuat antrean sementara, gunakan metode di bawah ini di kelas JMSContext -

TemporaryQueue createTemporaryQueue()

Topik sementara

Sama seperti Antrean Sementara, Topik Sementara ada untuk mengaktifkan terbitkan/berlangganan melalui entitas sementara yang ada selama masa pakai aplikasi.

Untuk membuat topik sementara, gunakan metode di bawah ini di kelas JMSContext -

TemporaryTopic createTemporaryTopic()

Langganan layanan pesan Java (JMS)

Meskipun ini secara semantik mirip dengan Langganan (yaitu, ada pada topik dan mengaktifkan semantik terbitkan/berlangganan), spesifikasi Layanan Pesan Java memperkenalkan konsep atribut Bersama, Privat **Tahan Lama, dan Tidak Tahan Lama untuk langganan tertentu.

Catatan

Langganan di bawah ini tersedia di tingkat Azure Service Bus Premium untuk aplikasi klien yang terhubung ke Azure Service Bus menggunakan pustaka Azure Service Bus JMS.

Hanya langganan tahan lama yang dapat dibuat menggunakan portal Azure.

Langganan bersama yang tahan lama

Langganan bersama yang tahan lama digunakan ketika semua pesan yang diterbitkan pada suatu topik harus diterima dan diproses oleh aplikasi, terlepas dari apakah aplikasi secara aktif mengkonsumsi pesan dari langganan setiap saat.

Aplikasi apa pun yang diautentikasi untuk menerima dari Bus Layanan dapat menerima dari langganan bersama yang tahan lama.

Untuk membuat langganan bersama yang tahan lama, gunakan metode di bawah ini di kelas JMSContext -

JMSConsumer createSharedDurableConsumer(Topic topic, String name)

JMSConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector)

Langganan bersama yang tahan lama terus ada kecuali dihapus menggunakan metode unsubscribe pada kelas JMSContext.

void unsubscribe(String name)

Langganan privat yang tahan lama

Seperti langganan bersama yang tahan lama, langganan privat yang tahan lama digunakan ketika semua pesan yang diterbitkan pada topik akan diterima dan diproses oleh aplikasi, terlepas dari apakah aplikasi secara aktif mengkonsumsi pesan dari langganan.

Namun, karena ini adalah langganan privat, hanya aplikasi yang membuat langganan yang dapat menerimanya.

Untuk membuat langganan privat yang tahan lama, gunakan metode di bawah ini dari kelas JMSContext -

JMSConsumer createDurableConsumer(Topic topic, String name)

JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal)

Catatan

Fitur noLocal ini saat ini tidak didukung dan diabaikan.

Langganan privat yang tahan lama terus ada kecuali dihapus menggunakan metode unsubscribe pada kelas JMSContext.

void unsubscribe(String name)

Langganan bersama yang tidak tahan lama

Langganan bersama yang tidak tahan lama digunakan ketika beberapa aplikasi klien perlu menerima dan memproses pesan dari satu langganan, hanya sampai mereka secara aktif mengkonsumsi/menerimanya.

Karena langganan tidak tahan lama, langganan tidak diprtahankan. Pesan tidak diterima oleh langganan ini ketika tidak ada konsumen aktif di dalamnya.

Untuk membuat langganan bersama yang tidak tahan lama, buat seperti JmsConsumer yang ditunjukkan dalam metode di bawah ini dari kelas JMSContext -

JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName)

JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector)

Langganan bersama yang tidak tahan lama terus ada sampai ada konsumen aktif yang menerimanya.

Langganan privat yang tidak tahan lama

Langganan privat yang tidak tahan lama digunakan ketika aplikasi klien perlu menerima dan memproses pesan dari langganan, hanya sampai aplikasi secara aktif mengkonsumsinya. Hanya satu konsumen yang dapat tersedia pada langganan ini, yaitu, klien yang membuat langganan.

Karena langganan tidak tahan lama, langganan tidak diprtahankan. Pesan tidak diterima oleh langganan ini ketika tidak ada konsumen aktif di dalamnya.

Untuk membuat langganan privat yang tidak tahan lama, buat seperti JMSConsumer yang ditunjukkan dalam metode di bawah ini dari kelas JMSContext -

JMSConsumer createConsumer(Destination destination)

JMSConsumer createConsumer(Destination destination, String messageSelector)

JMSConsumer createConsumer(Destination destination, String messageSelector, boolean noLocal)

Catatan

Fitur noLocal ini saat ini tidak didukung dan diabaikan.

Langganan privat yang tidak tahan lama terus ada sampai ada konsumen aktif yang menerimanya.

Pemilih pesan

Sama seperti Filter dan Tindakan yang ada untuk langganan Bus Layanan reguler, Pemilih Pesan ada untuk Langganan JMS.

Pemilih pesan dapat diatur pada setiap langganan JMS dan tersedia sebagai kondisi filter pada properti header pesan. Hanya pesan dengan properti header yang cocok dengan ekspresi pemilih pesan yang akan dikirim. Nilai null atau karakter kosong menunjukkan bahwa tidak ada pemilih pesan untuk Langganan/Konsumen JMS.

Konsep tambahan untuk langganan Java Message Service (JMS) 2.0

Cakupan klien

Langganan, sebagaimana ditentukan dalam Java Message Service (JMS) 2.0 API, mungkin atau mungkin tidak tercakup ke aplikasi klien tertentu (diidentifikasi dengan yang sesuai clientId).

Setelah langganan tercakup, langganan hanya dapat diakses dari aplikasi klien yang memiliki id klien yang sama.

Setiap upaya untuk mengakses langganan yang tercakup ke ID klien tertentu (misalnya clientId1) dari aplikasi yang memiliki ID klien lain (misalnya clientId2) akan mengarah pada pembuatan langganan lain yang tercakup ke ID klien lain (clientId2).

Catatan

ID klien boleh null atau kosong, tetapi harus cocok dengan ID klien yang ditetapkan pada aplikasi klien JMS. Dari perspektif Azure Service Bus, ID klien null dan id klien kosong memiliki perilaku yang sama.

Jika ID klien diatur ke null atau kosong, ID klien hanya dapat diakses oleh aplikasi klien yang ID kliennya juga diatur ke null atau kosong.

Kemampuan berbagi

Langganan Bersama mengizinkan beberapa klien/konsumen (yaitu, objek JMSConsumer) untuk menerima pesan dari mereka.

Catatan

Langganan bersama yang tercakup dalam ID klien tertentu masih dapat diakses oleh beberapa klien/konsumen (yaitu objek JMSConsumer), tetapi setiap aplikasi klien harus memiliki ID klien yang sama.

Langganan yang tidak dibagikan hanya mengizinkan satu klien/konsumen (yaitu, objek JMSConsumer) untuk menerima pesan dari mereka. Jika JMSConsumer dibuat pada langganan yang tidak dibagikan saat sudah memiliki JMSConsumer yang aktif mendengarkan pesan di dalamnya, maka JMSException akan dilemparkan.

Durabilitas

Langganan yang tahan lama terus berlanjut dan terus mengumpulkan pesan dari topik, terlepas dari apakah aplikasi (JMSConsumer) mengonsumsi pesan darinya.

Langganan yang tidak tahan lama tidak bertahan dan hanya mengumpulkan pesan dari topik selama aplikasi (JMSConsumer) mengonsumsi pesan darinya.

Representasi langganan cakupan klien

Mengingat bahwa langganan cakupan klien (JMS) harus berdampingan dengan langganan yang ada, cara langganan cakupan klien (JMS) diwakili mengikuti format di bawah ini.

  • <SUBSCRIPTION-NAME>$<CLIENT-ID>$D (untuk langganan yang tahan lama)
  • <SUBSCRIPTION-NAME>$<CLIENT-ID>$ND (untuk langganan yang tidak tahan lama)

Di sini, $ adalah pembatasnya.

Langkah berikutnya

Untuk informasi selengkapnya dan contoh penggunaan pesan Azure Service Bus, lihat topik lanjutan berikut ini: