Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Klientské aplikace, které se připojují ke službě Azure Service Bus Premium a používají knihovnu JMS služby Azure Service Bus , můžou používat následující entity.
Fronty
Fronty v JMS jsou sémanticky srovnatelné s tradičními frontami Service Bus.
Pro vytvoření fronty použijte následující metody v třídě JMSContext –
Queue createQueue(String queueName)
Témata
Témata v JMS jsou sémanticky srovnatelná s tradičními tématy služby Service Bus.
Pokud chcete vytvořit téma, použijte následující metody ve JMSContext třídě –
Topic createTopic(String topicName)
Dočasné fronty
Pokud klientská aplikace vyžaduje dočasnou entitu, která existuje po celou dobu životnosti aplikace, může používat dočasné fronty. Tyto entity se používají ve vzoru Žádosti a odpověď .
Chcete-li vytvořit dočasnou frontu, použijte následující metody ve JMSContext třídě –
TemporaryQueue createTemporaryQueue()
Dočasná témata
Stejně jako dočasné fronty existují dočasná témata, která umožňují publikování nebo přihlášení k odběru prostřednictvím dočasné entity, která existuje po celou dobu života aplikace.
Chcete-li vytvořit dočasné téma, použijte následující metody ve JMSContext třídě -
TemporaryTopic createTemporaryTopic()
Odběry služby zpráv Java (JMS)
I když jsou tato předplatná sémanticky podobná předplatným v tématech služby Service Bus (to znamená, že existují v tématu a povolte sémantiku publikování a odběru), specifikace služby Java Message Service představuje koncepty sdílených, nesdílených, **durable a non-durable atributů pro dané předplatné.
Poznámka:
Následující předplatná jsou k dispozici na úrovni Azure Service Bus Premium pro klientské aplikace, které se připojují ke službě Azure Service Bus pomocí knihovny JMS služby Azure Service Bus.
Pomocí webu Azure Portal je možné vytvořit pouze trvalá předplatná.
Sdílená spolehlivá předplatná
Sdílené trvalé předplatné se používá, když všechny zprávy publikované na téma jsou přijímány a zpracovávány aplikací bez ohledu na to, jestli aplikace z odběru aktivně odebírá.
Každá aplikace, která je ověřená pro příjem ze služby Service Bus, může přijímat ze sdíleného trvalého předplatného.
Pokud chcete vytvořit sdílené trvalé předplatné, použijte následující metody ve JMSContext třídě –
JMSConsumer createSharedDurableConsumer(Topic topic, String name)
JMSConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector)
Sdílené trvalé předplatné nadále existuje, pokud není odstraněno s využitím unsubscribe metody ve JMSContext třídě.
void unsubscribe(String name)
Zrušení sdílení trvalých předplatných
Podobně jako u sdíleného trvalého předplatného se nesdílené trvalé předplatné používá, když má aplikace přijímat a zpracovávat všechny zprávy publikované v tématu, bez ohledu na to, jestli aplikace aktivně spotřebovává z předplatného.
Vzhledem k tomu, že toto předplatné je nesdílené předplatné, může z něj přijímat pouze aplikace, která předplatné vytvořila.
Pokud chcete vytvořit nesdílené trvalé předplatné, použijte následující metody z JMSContext třídy –
JMSConsumer createDurableConsumer(Topic topic, String name)
JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal)
Poznámka:
Tato noLocal funkce se v současné době nepodporuje a ignoruje.
Nesdílené trvalé předplatné nadále existuje, pokud není odstraněno pomocí metody unsubscribe ve třídě JMSContext.
void unsubscribe(String name)
Sdílená nestálá předplatná
Sdílené nedurovatelné předplatné se používá, když více klientských aplikací potřebuje přijímat a zpracovávat zprávy z jednoho předplatného, pouze dokud z něj aktivně nevyužívá nebo nepřijímá.
Vzhledem k tomu, že předplatné není trvalé, není uloženo. Pokud v tomto předplatném nejsou žádní žádní aktivní uživatelé, zprávy se do tohoto předplatného nepřijímají.
Chcete-li vytvořit sdílené nedržitelné předplatné, vytvořte JmsConsumer podle metod zobrazených níže ve třídě JMSContext.
JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName)
JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector)
Sdílené nedurovatelné předplatné nadále existuje, dokud z něj nebudou aktivní příjemci.
Nesdílené neperzistentní předplatné
Nesdílené nedurable předplatné se používá, když klientská aplikace potřebuje přijímat a zpracovávat zprávy z předplatného, pouze dokud z něj aktivně nevyužívá. V tomto předplatném může existovat pouze jeden uživatel, tj. klient, který předplatné vytvořil.
Vzhledem k tomu, že předplatné není trvalé, není ukládáno. Zprávy nejsou tímto odběrem přijaty, když na něm není žádný aktivní uživatel.
Chcete-li vytvořit nesdílené nedurabilní předplatné, vytvořte JMSConsumer tak, jak je uvedeno v níže popsaných metodách z třídy JMSContext.
JMSConsumer createConsumer(Destination destination)
JMSConsumer createConsumer(Destination destination, String messageSelector)
JMSConsumer createConsumer(Destination destination, String messageSelector, boolean noLocal)
Poznámka:
Tato noLocal funkce se v současné době nepodporuje a ignoruje.
Nesdílené nedurovatelné předplatné nadále existuje, dokud z něj nebude aktivní příjemce.
Selektory zpráv
Stejně jako filtry a akce existují pro běžná předplatná služby Service Bus, existují selektory zpráv pro předplatná JMS.
Selektory zpráv lze nastavit pro každé odběry JMS a existují jako podmínka filtru pro vlastnosti záhlaví zprávy. Doručují se pouze zprávy s vlastnostmi záhlaví odpovídajícími výrazu selektoru zpráv. Hodnota null nebo prázdný řetězec označuje, že pro předplatné nebo příjemce JMS neexistuje žádný selektor zpráv.
Další koncepty pro předplatná JMS (Java Message Service) 2.0
Rozsah klienta
Předplatná, jak je uvedeno v rozhraní API JMS (Java Message Service) 2.0, můžou nebo nemusí být vymezená na konkrétní klientskou aplikaci nebo aplikace (identifikované s příslušnou clientId).
Jakmile je předplatné vymezeno, je možné k němu přistupovat pouze z klientských aplikací, které mají stejné ID klienta.
Všechny pokusy o přístup k předplatnému s vymezeným konkrétním ID klienta (řekněme clientId1) z aplikace s jiným ID klienta (řekněme clientId2) způsobí vytvoření jiného předplatného s vymezeným jiným ID klienta (clientId2).
Poznámka:
ID klienta může být null nebo prázdné, ale musí odpovídat ID klienta nastavenému v klientské aplikaci JMS. Z pohledu služby Azure Service Bus mají ID klienta s hodnotou null a prázdné ID klienta stejné chování.
Pokud je ID klienta nastavené na hodnotu null nebo prázdné, je přístupné pouze klientským aplikacím, jejichž ID klienta je také nastaveno na hodnotu null nebo prázdné.
Možnosti sdílení
Sdílená předplatná umožňují příjem zpráv z více klientů a příjemců (tj. objektů JMSConsumer).
Poznámka:
Sdílená předplatná vymezená na konkrétní ID klienta mají stále přístup více klientů a příjemců (tj. objektů JMSConsumer), ale každá klientská aplikace musí mít stejné ID klienta.
Nesdílená předplatná umožňují přijímat zprávy pouze jednomu klientovi nebo příjemci (tj. objektu JMSConsumer). Pokud se JMSConsumer vytvoří na nesdíleném předplatném, zatímco už má aktivní JMSConsumer pro příjem zpráv, je vyvolán JMSException.
Durability
Trvalá předplatná jsou trvalá a nadále shromažďují zprávy z tématu bez ohledu na to, jestli aplikace (JMSConsumer) zprávy využívá.
Netrvalé odběry nejsou uchovávány a shromažďují zprávy z tématu, dokud z něj aplikace (JMSConsumer) zprávy odebírá.
Reprezentace předplatných s vymezeným oborem klienta
Vzhledem k tomu, že předplatná s vymezeným oborem klienta (JMS) musí existovat společně s existujícími předplatnými, způsob, jakým jsou předplatná s vymezeným oborem klienta (JMS) reprezentována, použijte následující formát.
- <NÁZEV PŘEDPLATNÉHO>$<ID KLIENTA>$D (pro trvalá předplatná)
- < $ < > ID KLIENTA (pro nedůležitá předplatná)$
$ Tady je oddělovač.
Další kroky
Další informace a příklady použití zasílání zpráv služby Service Bus najdete v následujících pokročilých tématech: