java - certification - azure




AWS ত্রুটি বার্তা: বর্তমানে একটি সংঘাতমূলক শর্তাধীন ক্রিয়াকলাপ এই সংস্থার বিরুদ্ধে চলছে (4)

আমি intermittently এই ত্রুটি পেয়েছি।

আমার একটি প্রোগ্রাম রয়েছে যা java অ্যাড sdk ব্যবহার করে এবং s3 এ কয়েক হাজার ছোট ফাইলের লোড লোড করে। আমি intermittently এই ত্রুটি দেখতে।

ইন্টারনেটে দ্রুত অনুসন্ধান করার পরে কোন সহায়ক উত্তর খুঁজে পাওয়া যায়নি।

কলিং প্রোগ্রাম একক থ্রেডেড নোট করুন। অন্তর্নিহিত aws java sdk কর্মীদের থ্রেড ব্যবহার বলে মনে হচ্ছে।

Status Code: 409, AWS Service: Amazon S3, AWS Request ID: 75E16E8DE2193CA6, AWS Error Code: OperationAborted, AWS Error Message: A conflicting conditional operation is currently in progress against this resource. Please try again., S3 Extended Request ID: 0uquw2YEoFamLldm+c/p412Lzd8jHJGFBDz3h7wN+/4I0f6hnGLkPMe+5LZazKnZ
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:552)
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:289)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2648)
    at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:578)
    at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:503)

আপনার উদাহরণ অনুরোধ একটি বালতি তৈরি হয়। আপনি যদি অনেক buckets বা buckets প্রতিস্থাপন করার চেষ্টা করছেন, এটি স্বাস্থ্যকর নয়।

মনে রাখবেন আপনার অ্যাকাউন্টের জন্য 100 buckets একটি সীমা আছে ( here )। সম্পাদনা করুন: এখন এই সীমা একটি "নরম সীমা" এবং যদি প্রয়োজন হয় তবে আপনি এটি বৃদ্ধি করতে পারেন।

এছাড়াও একটি বালতি একটি সৃষ্টি সময় লাগে যে নোট করুন এবং:

... আপনার অ্যাপ্লিকেশনটির উচ্চ প্রাপ্যতা কোড পাথে বালতি তৈরি বা কল করতে উপযুক্ত নয় ...

একবার আপনার buckets তৈরি করা ভাল, আপনি আপনার বিদ্যমান buckets (অথবা এমনকি একটি একক) মধ্যে অনেক পছন্দ করতে পারেন।

যাইহোক, কোনও সিস্টেমের সাথে কাজ করার সময় যেটি এখন এবং তারপরে ব্যর্থ হওয়ার জন্য আবদ্ধ, আপনি ত্রুটিগুলি হ্যান্ডেল করতে সক্ষম হবেন এবং এমন ত্রুটিটি গ্রহণ করার সময় আপনার প্রক্রিয়াটি হ্রাস করতে সক্ষম হবেন। AWS ডক্সে আরও বিস্তারিত দেখুন।


আমি একই ত্রুটি বার্তা পেয়েছিলাম, যখন আমি অনুসরণ করেছিলাম:

  1. একটি বালতি তৈরি - এটি ডিফল্টভাবে মার্কিন অঞ্চলে গিয়েছিল (ব্যবহৃত AWSCLI)

  2. উপলব্ধি, বালতি ইইউ অঞ্চলে যেতে হবে এবং এটি মুছে ফেলা (ব্যবহৃত AWS কনসোল)

  3. (কয়েক মিনিট পরে) ইইউ অঞ্চলের উল্লেখ, বালতি তৈরি করার চেষ্টা

ধাপ 3 এ, AWS কনসোল আমাকে আপনার প্রশ্নের শিরোনাম থেকে ত্রুটি বার্তা দেখিয়েছে।

তাই আমি অনুমান করি, মার্কিন যুক্তরাষ্ট্রে বালতি মোছা হয়েছিল, তবে সম্ভবত কিছু সময়সীমাবদ্ধতা প্রক্রিয়া রয়েছে যা সময় নিচ্ছে। এবং আমি আশা করি, কয়েক ঘন্টার জন্য অপেক্ষা করে আমি আবার তৈরির জন্য বালতি নামটি খুঁজে পাব - এই সময় সঠিক (ইইউ) অঞ্চলে।

FIX: - সম্পাদনা: প্রায় এক ঘন্টা পরে, বালতি তৈরির (ইইউ অঞ্চলে) আমার প্রচেষ্টা সফল হয়েছে।


গুগল থেকে এই থ্রেডে যারা হোঁচট খেয়েছে তাদের জন্য, প্রথম ফলাফল হিসাবে এই ত্রুটির বার্তা সন্ধান করুন:

যদি আপনি নতুন অঞ্চলে পুনঃনির্মাণের জন্য বালতি মুছে ফেলেন তবে এই ব্যাকগ্রাউন্ড সিঙ্কটি সম্পূর্ণ না হওয়া পর্যন্ত "ম্যানুয়ালি" অপেক্ষা করবেন না , পরিবর্তে চালানোর জন্য একটি ছোট bash স্ক্রিপ্টটি রাখুন এবং প্রতি 5 সেকেন্ড বা তার বেশি আপনার প্রয়োজনীয় বালতি তৈরির পুনরায় চেষ্টা করুন।

উদাহরণ:

#!/bin/bash 
RESULT=2 
until [  $RESULT -eq 0 ]; do
    aws s3 mb s3://your.bucket.name --region us-west-2
    RESULT=$?
    sleep 5 
done 
echo "Bucket created!"

এটি আপনার জন্য "তৈরি বালতি" অপারেশনটি পুনরায় চেষ্টা করবে, প্রতি কয়েক সেকেন্ডে ('ঘুম' উপর নির্ভর করে) এবং যত তাড়াতাড়ি সম্ভব - এটি আপনার জন্য তৈরি করবে, সুতরাং কেউ ভুলভাবে আপনার বালতি নাম চুরি করতে পারবে না :)

আশা করি এটা সাহায্য করবে :)


সহজ এবং সহজবোধ্য: নতুন বালতি নাম পরিবর্তন করুন বা 1 ঘন্টা অপেক্ষা করুন।