الفاصوليا التي تعتمد على الرسائل - حافلة واحدة، ومواصفات تنشيط متعددة

StackOverflow https://stackoverflow.com/questions/1031728

سؤال

لدي 2 حبوب مدفوعة بالرسالة.2 مواصفات التنشيط لهذه الحبوب.لدي ناقل رسائل واحد وتم تكوين مواصفات التنشيط على هذا الناقل.لدي قائمتين مختلفتين ومصنع اتصال قائمة انتظار واحد تم تكوينه لناقل الرسائل هذا.

الآن، أود أن أكتب الكود الخاص بي لإرسال رسالة إلى إحدى قوائم الانتظار في وقت التشغيل بعد تحديد قائمة الانتظار.ومع ذلك، كلا بلدي MDBs تتلقى نفس الرسالة.كيف يتم هذا التكوين بشكل عام؟هل أقوم دائمًا بتكوين قائمة انتظار واحدة -> مصنع اتصال قائمة انتظار واحد -> ناقل رسائل واحد -> 1 MDB؟هل الأمر كله علاقة فردية؟

أوه، نسيت أن أذكر هذا:أنا أستخدم Websphere Application Server v6.1

هل كانت مفيدة؟

المحلول

بشكل عام المفهوم هو أن:

  1. يتم إرسال رسالة (قائمة الانتظار)/نشرها (الموضوع) إلى وجهة (قائمة الانتظار/الموضوع)
  2. يستمع ActivationSpec إلى الرسائل في وجهة معينة (قائمة الانتظار/الموضوع)
  3. مواصفات التنشيط :الوجهة هي علاقة 1:1
  4. تم تكوين الفول (MDB وهو مستهلك) للاستماع إلى ActivationSpec.

ما يعنيه هذا هو أنه في الواقع يتم ربط الحبة بالوجهة بطبقة من عدم الاتجاه التي توفرها مواصفات التنشيط.

من أين تأتي الحافلة - SIBus هي البنية التحتية للمراسلة التي تجعل كل هذا ممكنًا.يتم استضافة الوجهات على متن الحافلة.

فيما يتعلق بالسؤال - سيتم تكوين ActivationSpec للاستماع إلى وجهة على الناقل سيتم إرسال الرسائل إليها.يقرر مصنع الاتصال الناقل الذي سيتم إرسال الرسالة إليه.طالما أن اسم الوجهة فريد ومستهدف لقائمة انتظار محددة (قائمة انتظار JMS مرتبطة بالوجهة على الناقل)، فلن يتم استلام رسالة واحدة إلا بواسطة ActivationSpec واحد.

كم عدد الوجهات (تحت رابط SIBus في وحدة تحكم مسؤول WAS) التي تم إنشاؤها على متن الناقل؟هل يمكنك التحقق/التحقق من صحة التكوين؟

للإجابة على أسئلتك - "هل هي حافلة واحدة لكل مواصفات تنشيط ومصنع اتصال قائمة انتظار واحد لكل قائمة انتظار." - الجواب هو لا.

  1. الحافلة هي البنية التحتية الأساسية التي يمكنها استضافة الوجهات "n".يستمع One ActivationSpec إلى وجهة واحدة.
  2. مع مصنع اتصال قائمة الانتظار هو مصنع (نمط مصنع J2EE) لإنشاء قوائم الانتظار.

نصائح أخرى

وأعتقد أن تقوله تريد كل من بنوك التنمية المتعددة الأطراف لتلقي الرسالة نفسها، أليس كذلك؟

وإذا كان هذا هو الحال بعد ذلك بنوك التنمية المتعددة الأطراف يجب أن يستمع إلى <م> الموضوع لا طابور <م> .

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

وماذا تحتاج الحافلة الرسالة؟

وعادة ما الربط بين MDB مع طابور - انها 1: 1 العلاقة. إرسال رسالة إلى قائمة انتظار، والمستمع يحصل عليها. ما هي حافلة شراء لك؟

ولقد فعلت الدائرة مع يبلوغيتش، وليس هناك مثل هذا التصور كما حافلة الرسالة المطلوبة. اعتقد انها شيء IBM.

هنا مثال عن كيفية القيام الدائرة مع الربيع. هذه هي الطريقة التي أود أن أوصى المتابعة.

وUPDATE: أنا يساء تفسيرها سؤالك. عندما قلت الخاص على حد سواء طوابير كانوا يحصلون على نفس الرسالة، لم أكن أعتقد أن كان السلوك المطلوب. إذا كان كذلك، ثم الموضوعات هي الطريقة الصحيحة للذهاب. قوائم الانتظار من نقطة إلى نقطة الرسائل. موضوعات يتم نشر / الاشتراك.

وأظن لم يتم تعيين التكوين لديك ما يصل طريقة تفكيرك هو عليه. نحن نستخدم نفس التكوين وصفها، مع العديد من MDB (مع قائمة انتظار وتفعيل المواصفات)، ومصنع واحد والحافلات رسالة وكل شيء يعمل كما هو متوقع.

لتحصل على السلوك الذي نشهد ليست في الواقع من الممكن إلا إذا كنت إما إرسال نفس الرسالة إلى كل من الطوابير، أو قد حددت موضوع بدلا من طابور. وأنا متأكد من أنه حتى إذا كان كل MDB لهي قراءة من نفس الطابور، واحد فقط سوف تحصل على رسالة، منذ طابور يعتمد فقط نقطة إلى نقطة الرسائل. ما كنت قد وصفت هو السلوك على أساس الموضوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top