জেএমএস বার্তা শোনার চালক ব্যর্থ হয়েছে, কারণ: শনাক্তকারীটিতে অবৈধ জেএমএস শনাক্তকারী চরিত্র '-': 'এক্স-অনুরোধ-আইডি' রয়েছে


9

আমি প্রথমবারের মতো জেএমএস এবং কাতারে (আজুর সারি) কাজ করছি। আমার এমন একটি সারি তৈরি করা দরকার যেখানে রুবি সার্ভার কিছু ডেটা লিখবে এবং জাভা এটি সারি থেকে পড়বে এবং আরও মৃত্যুদন্ড কার্যকর করবে। এই প্রক্রিয়াটি আমার মেশিনে স্থানীয়ভাবে কাজ করছে। আমি একটি REST এন্ডপয়েন্ট তৈরি করেছি যা কাতারে ডেটা লিখছে এবং একবার যদি কাতারে ডেটা লেখা হয়, শ্রোতা ডেটাটি নিয়ে যায় এবং ডেটা পড়ে এবং চালিত করে। আমরা যখন এটি অ্যাজুরেতে স্থাপন করি তখন ত্রুটিটি আমি লগগুলিতে দেখতে পারি যা কুইউস শুরু হতে দিচ্ছে না

Setup of JMS message listener invoker failed for destination 'queue' - trying to recover. Cause: Identifier contains invalid JMS identifier character '-': 'x-request-id' 

জিপকিন অ্যাজুরে সার্ভারে বিতরণ ট্রেসিং সিস্টেম হিসাবে উপস্থিত রয়েছে এবং আমার ধারণা এটি x-request-idজিপকিনের সাথে সম্পর্কিত যা সমস্যা তৈরি করছে। আমি গুগল ইস্যুটির জন্য অনুসন্ধান করেছি তবে কেন এটি হচ্ছে তা বুঝতে পারি নি।

নিম্নলিখিতটি ত্রুটির বার্তাটি নিম্নরূপ:

[36mc.m.s.l.NextGenRequestLoggingFilter     [0;39m [2m:[0;39m 
Before request [uri=/services/deal-service/api/v2/deals/ack;headers= 
[x-request-id:"2d8d86d7-4fbf-9db6-8e95-28813f21a85c", 
x-envoy-internal:"true", x-b3-parentspanid:"a209cdc649b0b890", content- 
length:"575", x-forwarded-proto:"http", postman-token:"ad074595- 
76a5-474b-9711-7e071b12b3b0", x-b3-sampled:"1", x-forwarded- 
for:"10.244.2.1", accept:"*/*", 
authorization: "some-token-YJc4tg--34jPRziJNSACqNQ", x-b3- 
traceid:"6b40ff22781be67ba209cdc649b0b890", x-b3- 
spanid:"702684ddb62cfe6b", 
host:"portal-gateway.52.228.65.225.nip.io", 
cache-control:"no-cache", accept-encoding:"gzip, deflate, br", 
user-agent:"PostmanRuntime/7.22.0", 
Content-Type:"application/xml;charset=UTF-8"]]
2020-02-18T15:19:34.197666458Z [2m2020-02-18 15:19:34.197[0;39m  . 
[32mDEBUG 
[,6b40ff22781be67ba209cdc649b0b890,702684ddb62cfe6b,true][0;39m  . 
[35m9[0;39m [2m---[0;39m [2m[ XNIO-1 task-15][0;39m

"রুবি সার্ভার" কী এবং কীভাবে এটি আপনার জেএমএস ক্লায়েন্টের কাছ থেকে ব্যবহার করার চেষ্টা করছেন তা কীভাবে ডেটা লিখছেন?
জাস্টিন বার্ট্রাম

আপনি যে "বিস্তারিত ত্রুটি বার্তা" পেস্ট করেছেন তাতে আসল ত্রুটি কোথায়? এটি দেখতে কিছু ডিবাগ লগিংয়ের মতো দেখাচ্ছে।
জাস্টিন বার্ট্রাম

উত্তর:


1

ত্রুটি বার্তা থেকে এটি সুস্পষ্ট যে আপনি কিউপিড জেএমএস ক্লায়েন্টকে সারিগুলির মাধ্যমে যোগাযোগের জন্য ব্যবহার করছেন। qpid ক্লায়েন্ট জাভা পরিবর্তনশীল নামকরণ কনভেনশন লঙ্ঘন করে এমন কোনও কীকে মঞ্জুরি দেবে না যেমন আপনি কিউপিড জেএমএস ক্লায়েন্টটি ত্রুটি ছুঁড়ে মারছে বলে কোন সারির শিরোনামে এক্স-অনুরোধ-আইডি প্রেরণ করতে পারবেন না। যখন অ্যাজুরি বাসে যোগাযোগের চেষ্টা করা হচ্ছে তখন কাতারে নির্দিষ্ট হেডারের (আইডি আপনার আসলে তাদের প্রয়োজন নেই) যুক্ত না করার জন্য আপনাকে আইটিটিও / জিপকিনের যত্ন নেওয়া উচিত। সুতরাং আপনাকে কিউগুলির অনুরোধটি বাধা দেওয়ার জন্য আইটিটিও / জিপকিন লাইব্রেরিগুলি অক্ষম করতে হবে যাতে শিরোনাম ছাড়াই / সারিতে অনুরোধ করা যায়। এটি সমস্যার সমাধান করবে।


4

জেএমএস 2 স্পেসিফিকেশনের ৩.৩.১ অংশে বার্তা বৈশিষ্ট্য সম্পর্কে এটি বলা হয়েছে:

সম্পত্তির নাম অবশ্যই কোনও বার্তা নির্বাচক শনাক্তকারীর জন্য নিয়ম মানতে হবে। আরও তথ্যের জন্য বিভাগ 3.8 দেখুন "বার্তা নির্বাচন"।

শনাক্তকারীদের ক্ষেত্রে বিভাগ ৩.৮.১.১ অংশত:

সনাক্তকারী হ'ল একটি সীমাহীন দৈর্ঘ্যের অক্ষর ক্রম যা জাভা সনাক্তকারী শুরুর চরিত্রের সাথে শুরু হওয়া উচিত; নিম্নলিখিত সমস্ত অক্ষরগুলি জাভা সনাক্তকারী অংশের অক্ষর হতে হবে। একটি শনাক্তকারী শুরুর চরিত্রটি এমন কোনও অক্ষর যার জন্য পদ্ধতিটি Character.isJavaIdentifierStartফিরে আসে true। এর মধ্যে '_' এবং '$' অন্তর্ভুক্ত রয়েছে। শনাক্তকারী অংশের অক্ষর এমন কোনও অক্ষর যার জন্য পদ্ধতিটি Character.isJavaIdentifierPartফিরে আসে true

আপনি অক্ষর পাস যদি -মধ্যে হয় Character.isJavaIdentifierStartবা Character.isJavaIdentifierPartফেরত মান হয় false। অন্য কথায়, একটি বার্তা সম্পত্তি নামে চরিত্র JMS স্পেসিফিকেশন লঙ্ঘন করে এবং এর ফলে একটি ত্রুটি হতে হবে।-


0

ত্রুটির বিবরণ (জাভা স্ট্যাক ট্রেস) এখানে সত্যিই দরকারী হবে।

ত্রুটি বার্তার মাধ্যমে আমি ধরে নিয়েছি, আপনি Qpid জেএমএস ক্লায়েন্ট ব্যবহার করছেন , যা বার্তার বৈশিষ্ট্যগুলির নাম পরীক্ষা করে চলেছে । এই নামগুলিতে কেবল অক্ষর থাকতে পারে যা বৈধ জাভা শনাক্তকারী অক্ষর

স্ট্রিংয়ের 'সারি-নাম' এ একটি '-' অক্ষর রয়েছে, এটি জাভা শনাক্তকারী নয়। ঠিক করার জন্য, আপনাকে 'সারি-নাম' বৈধ অক্ষরের সাথে কোনও কিছুর মধ্যে পরিবর্তন করতে হবে, উদাহরণস্বরূপ 'ক্যু_নাম' (আন্ডারস্কোর সহ), বা 'কাতার নাম' (উটের ক্ষেত্রে)।


1
আমি বিস্তারিত ত্রুটি বার্তা সহ প্রশ্ন আপডেট করেছি। আমরা শিরোনামের মানগুলি দেখতে পাই (অর্থাত্ x- অনুরোধ-আইডি) সমস্যাটি তৈরি করছে। এটি আইটিওয়ের মাধ্যমে যুক্ত হচ্ছে। তবে কোনওভাবে জেএমএস এগুলি পার্স করতে সক্ষম হচ্ছে না।
ওমর বাহির
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.