كيانات خدمة رسائل Java (JMS) 2.0

تطبيقات العميل التي تتصل بناقل خدمة Microsoft Azure المميز وتستخدم مكتبة خدمة رسائل Java لناقل خدمة Microsoft Azure يُمكنها استخدام الكيانات أدناه.

قوائم الانتظار

قوائم الانتظار في خدمة رسائل Java قابلة للمقارنة دلاليًا مع قوائم انتظار ناقل خدمة Microsoft Azure التقليدية.

لإنشاء قائمة انتظار، استخدم الطرق التالية في الفئة JMSContext -

Queue createQueue(String queueName)

الموضوعات

الموضوعات في خدمة رسائل Java قابلة للمقارنة دلاليًا مع موضوعات ناقل خدمة Microsoft Azure.

لإنشاء موضوع، استخدم الطرق التالية في الفئة JMSContext -

Topic createTopic(String topicName)

قوائم انتظار مؤقتة

إذا كان تطبيق العميل يتطلب كيان مؤقت موجود لمدة بقاء التطبيق، فإنه يمكن استخدام قوائم انتظار مؤقتة. تُستخدم هذه الكيانات في نمط الطلب-الرد.

لإنشاء قائمة انتظار مؤقتة، استخدم الطرق التالية في الفئة JMSContext -

TemporaryQueue createTemporaryQueue()

مواضيع مؤقتة

مثلها مثل قوائم الانتظار المؤقتة، تُوجد المواضيع المؤقتة لتمكين النشر/الاشتراك من خلال كيان مؤقت موجود لمدة بقاء التطبيق.

لإنشاء موضوع مؤقت، استخدم الطرق التالية في الفئة JMSContext -

TemporaryTopic createTemporaryTopic()

اشتراكات خدمة رسائل Java (JMS)

في حين أن هذه هي تشبه دلاليًا الاشتراكات (أي، موجودة في موضوع وتُمكن دلالات النشر/الاشتراك)، فإن مواصفات خدمة رسائل Java تُقدم مفاهيم السمات المشتركة، غير المشتركة، ** الدائمة، غير الدائمة لاشتراك معين.

ملاحظة

تتوفر الاشتراكات أدناه في مستوى ناقل خدمة Microsoft Azure المميز لتطبيقات العميل المتصلة بناقل خدمة Microsoft Azure باستخدام مكتبة خدمة رسائل Java لناقل خدمة Microsoft Azure.

لا يمكن إنشاء إلا الاشتراكات الدائمة باستخدام مدخل Microsoft Azure.

الاشتراكات المشتركة الدائمة

يُستخدم اشتراك دائم مشترك عندما تُستلم كافة الرسائل المنشورة حول موضوع ويُعالجها أحد التطبيقات، بغض النظر عما إذا كان التطبيق يستهلك بنشاط من الاشتراك طوال الوقت.

يمكن تلقي أي تطبيق تمت مُصادقته للاستلام من ناقل خدمة Microsoft Azure يُمكنه الاستلام من اشتراك دائم مشترك.

لإنشاء اشتراك دائم مشترك، استخدم الطرق التالية في الفئة JMSContext -

JMSConsumer createSharedDurableConsumer(Topic topic, String name)

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

يستمر الاشتراك الدائم المشترك في الوجود ما لم يُحذف باستخدام الأسلوب unsubscribe في الفئة JMSContext.

void unsubscribe(String name)

الاشتراكات غير المشتركة الدائمة

مثلها مثل اشتراك دائم مشترك، يُستخدم اشتراك دائم مشترك عندما تُستلم كافة الرسائل المنشورة حول موضوع ويُعالجها أحد التطبيقات، بغض النظر عما إذا كان التطبيق يستهلك بنشاط من الاشتراك.

ومع ذلك، نظرًا لأن هذا اشتراك غير مشترك، لا يمكن إلا للتطبيق الذي أنشأ الاشتراك استلامه.

لإنشاء اشتراك دائم غير مشترك، استخدم الطرق التالية من الفئة JMSContext -

JMSConsumer createDurableConsumer(Topic topic, String name)

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

ملاحظة

الميزة noLocal غير مدعومة حاليًا ويتم تجاهلها.

يستمر الاشتراك الدائم غير المشترك في الوجود ما لم يُحذف باستخدام الأسلوب unsubscribe في الفئة JMSContext.

void unsubscribe(String name)

الاشتراكات المشتركة غير الدائمة

يُستخدم الاشتراك المشترك غير الدائم عندما تحتاج تطبيقات العميل المتعددة لاستلام الرسائل ومعالجتها من اشتراك واحد، فقط حتى تُستهلك/ تُستلم بنشاط منه.

بما أن الاشتراك غير دائم، فإنه لا يستمر. لا يستلم هذا الاشتراك الرسائل عندما لا يُوجد أي مستهلكين نُشَطاء عليه.

لإنشاء اشتراك مشترك غير دائم، أنشئ JmsConsumer كما موضح في الأساليب أدناه من الفئة JMSContext -

JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName)

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

يستمر الاشتراك المشترك غير الدائم في الوجود حتى يُوجد مستهلكون نُشَطاء يستلمون منه.

الاشتراكات غير المشتركة غير الدائمة

يُستخدم اشتراك غير دائم غير مشترك عندما يحتاج تطبيق العميل إلى استلام رسالة من اشتراك ومعالجتها، فقط حتى يتم استهلاكه منه بنشاط. يمكن أن يوجد مستهلك واحد فقط على هذا الاشتراك، أي العميل الذي أنشأ الاشتراك.

بما أن الاشتراك غير دائم، فإنه لا يستمر. لا يستلم هذا الاشتراك الرسائل عندما لا يُوجد أي مستهلك نشط عليه.

لإنشاء اشتراك غير مشترك غير دائم، أنشئ JMSConsumer كما موضح في الأساليب أدناه من الفئة JMSContext -

JMSConsumer createConsumer(Destination destination)

JMSConsumer createConsumer(Destination destination, String messageSelector)

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

ملاحظة

الميزة noLocal غير مدعومة حاليًا ويتم تجاهلها.

يستمر الاشتراك غير الدائم غير المشترك في الوجود حتى يكون هناك مستهلك نشط يستلم منه.

محددات الرسائل

مثلها مثل عوامل التصفية والإجراءات الموجودة لاشتراكات ناقل خدمة Microsoft Azure العادية، توجد محددات الرسائل لاشتراكات خدمة رسائل Java.

يمكن إعداد محددات الرسائل على كل اشتراك من اشتراكات خدمة رسائل Java، وتوجد كشرط عامل تصفية على خصائص عنوان الرسالة. لا تُسلم إلا الرسائل ذات خصائص العنوان المطابقة لتعبير محدد الرسالة. تشير القيمة الفارغة أو السلسلة الفارغة إلى أنه لا يوجد محدد رسالة لاشتراك/لمستهلك خدمة رسائل Java.

مفاهيم إضافية لاشتراكات خدمة رسائل Java (JMS) 2.0

تحديد نطاق العميل

الاشتراكات، كما محدد في واجهة برمجة تطبيقات خدمة رسائل Java (JMS) 2.0، قد تكون أو لا تكون مُحددة النطاق إلى تطبيق / تطبيقات عميل معين (تم تعريفها مع clientId مناسب).

بمجرد تحديد نطاق الاشتراك، يمكن الوصول إليه فقط من تطبيقات العميل التي لها نفس معرّف العميل.

أي محاولات للوصول إلى اشتراك مُحدد النطاق لمعرّف عميل معين (ليكن clientId1) من تطبيق لديه معرّف عميل آخر (ليكن clientId2) ستؤدي إلى إنشاء اشتراك آخر مُحدد النطاق لمعرّف العميل الثاني (clientId2).

ملاحظة

يمكن أن يكون معرّف العميل فارغًا أو خاليًا، ولكن يجب أن يتطابق مع معرّف العميل المُعين لتطبيق عميل خدمة رسائل Java. من منظور ناقل خدمة Microsoft Azure، معرّف عميل فارغ ومعرف عميل خالِ لهما السلوك نفسه.

إذا تم تعيين معرّف العميل إلى فارغ أو خالِ، فلن يُتاح إلا لتطبيقات العميل التي تم تعيين معرّف العميل لها إلى فارغ أو خالِ.

قابلية المشاركة

تسمح الاشتراكات المشتركة لعدة عملاء/مستهلكين (أي كائنات JMSConsumer) باستلام رسائل منها.

ملاحظة

الاشتراكات المشتركة المُحددة النطاق إلى معرّف عميل معين لا يزال يمكن الوصول إليها قبل العملاء / المستهلكين متعددين (أي كائنات JMSConsumer)، ولكن يجب أن يكون لكل تطبيق من تطبيقات العميل معرّف العميل نفسه.

لا تسمح الاشتراكات غير المشتركة إلا عميل/مستهلك واحد (أي كائن JMSConsumer) باستلام رسائل منها. إذا تم إنشاء JMSConsumer على اشتراك غير مشترك بينما كان لديه بالفعل JMSConsumer نشط يستمع إلى الرسائل الموجودة عليه، فسيتم طرح JMSException.

المتانة

الاشتراكات الدائمة مُستمرة وتستمر في جمع الرسائل من الموضوع، بغض النظر عما إذا كان التطبيق (JMSConsumer) يستهلك الرسائل منه.

الاشتراكات غير الدائمة غير مُستمرة وتجمع الرسائل من الموضوع طالما أن التطبيق (JMSConsumer) يستهلك الرسائل منه.

تمثيل اشتراكات العميل مُحددة النطاق

نظرًا لأن اشتراكات العميل مُحددة النطاق (خدمة رسائل Java) يجب أن تتعايش مع الاشتراكاتالموجودة، فإن الطريقة التي يتم بها تحديد نطاق اشتراكات العميل (خدمة رسائل Java) تتبع التنسيق أدناه.

  • <SUBSCRIPTION-NAME>$<CLIENT-ID>$D (للاشتراكات الدائمة)
  • <SUBSCRIPTION-NAME>$<CLIENT-ID>$ND (للاشتراكات غير الدائمة)

هنا، $ هو المحدِّد.

الخطوات التالية

لمزيد من المعلومات والأمثلة لاستخدام مراسلة ناقل خدمة Microsoft Azure، راجع المواضيع المتقدمة التالية: