পুরো পরিষেবাটি আরম্ভ না করে কীভাবে আমি টমক্যাট ওয়েবআপ আপডেট করব?


95

আমি নতুন Tomcat। আমাদের কাছে একটি ডেভ মেশিন রয়েছে যার প্রায় 5 টি অ্যাপ চলছে। যদিও এটি ডেভ, এটি আমাদের ক্লায়েন্টরা পরীক্ষার সময় বেশ ভারী ব্যবহার করে।

সুতরাং বলুন যে আমাদের এক শ্রেণির ফাইলে একটি ছোট পরিবর্তন করা দরকার। এখনই, আমাদের টমক্যাটটি (অন্য চারটি অ্যাপ্লিকেশনকে প্রভাবিত করে) শাটডাউন করতে WARহবে , ফাইলটি (এবং ওয়েব অ্যাপ্লিকেশন ডিরেক্টরি) মুছতে হবে, নতুন WARফাইলটি পুনরায় চালু করুন এবং পুনরায় চালু করতে হবে Tomcat

অবশ্যই এটি কয়েকটি লোককে আপসেট করে কারণ এটি সমস্ত অ্যাপ্লিকেশনের জন্য লগইন থাকা সমস্ত সেশনকে ধ্বংস করে দেয়।

এই কাজ করতে একটি ভাল উপায় আছে কি? মানে, দেব মেশিনে থাকা সমস্ত কিছুর বদলে কেবল CLASS কে আবার লোড করার কোনও উপায় আছে ?

ধন্যবাদ


আপনার সেশন ম্যানেজমেন্টকে এমন কিছুতে পরিবর্তন করুন যা ফাইল চালিয়ে যায়? দুঃখিত প্রতিরোধ করতে পারেন না :)
রজারডপ্যাক

4
@ আরগারডপ্যাক ছয় বছর আগে আমি যখন প্রশ্নটি জিজ্ঞাসা করেছি তখন থেকে আমি টমক্যাট সম্পর্কে অনেক কিছু শিখেছি। যা হোক ধন্যবাদ.
সিবিএমিকস

গরম সোয়াপিং মাত্র ক্লাস সংক্রান্ত দেখতে stackoverflow.com/questions/32459047/...
rogerdpack

উত্তর:


60

আপনি কি টমকেটের ম্যানেজার অ্যাপ্লিকেশনটি ব্যবহার করার চেষ্টা করেছেন ? এটি আপনাকে টমক্যাটটি বন্ধ করে দিয়ে যুদ্ধের ফাইলগুলি অনিপ্লোয়েড / স্থাপন করতে দেয়।

আপনি যদি ম্যানেজার অ্যাপ্লিকেশনটি ব্যবহার করতে না চান, আপনি ওয়েব অ্যাপস ডিরেক্টরি থেকে ওয়ার ফাইলটিও মুছতে পারেন, টমক্যাট অল্প সময়ের পরে অ্যাপ্লিকেশনটি প্রকাশ করবে। এরপরে আপনি কোনও যুদ্ধ ফাইল ডিরেক্টরিতে আবার অনুলিপি করতে পারবেন এবং টমক্যাট যুদ্ধ ফাইলটি স্থাপন করবে।

আপনি যদি উইন্ডোজটিতে টোম্যাট চালাচ্ছেন তবে বিভিন্ন ফাইল লক না করার জন্য আপনার কনটেক্সটটি কনফিগার করতে হবে ।

যদি আপনার একেবারে কোনও ডাউনটাইম না থাকে তবে আপনি টমক্যাট 7 এর সমান্তরাল মোতায়েন দেখতে চাইতে পারেন আপনি একই অ্যাপ্লিকেশন পাথের সাথে ওয়েব অ্যাপ্লিকেশনটির একাধিক সংস্করণ একই সময়ে স্থাপন করতে পারেন। প্রসঙ্গ সংস্করণে অনুরোধগুলির সাথে মেলে ব্যবহার করার নিয়মগুলি নিম্নরূপ:

  • অনুরোধে যদি কোনও সেশনের তথ্য উপস্থিত না হয় তবে সর্বশেষতম সংস্করণটি ব্যবহার করুন।
  • সেশনের তথ্য যদি অনুরোধে উপস্থিত থাকে তবে প্রতিটি সংস্করণের সেশন ম্যানেজারের সাথে একটি মিলিত সেশনের জন্য পরীক্ষা করুন এবং যদি এটি পাওয়া যায় তবে সেই সংস্করণটি ব্যবহার করুন।
  • সেশনের তথ্য যদি অনুরোধে উপস্থিত থাকে তবে কোনও মিলের সেশন পাওয়া যায় না, তবে সর্বশেষতম সংস্করণটি ব্যবহার করুন।

এটিও একটি ভাল পরামর্শ। আমি আজ অবধি ম্যানেজার অ্যাপটির কথা শুনিনি। হ্যাঁ, আমরা উইন্ডোজ ব্যবহার করি। ওয়ার ফাইলটি মুছে ফেলার এবং অপেক্ষার বিষয়ে আমার একটি উদ্বেগ হ'ল আমাদের ক্লায়েন্টরা ঘন ঘন "ছোট সংশোধন" আশা করে। এই পরামর্শগুলি কি সেই দৃশ্যের জন্য কাজ করবে?
cbmeeks

4
@cbmeeks - এই ছোট সংশোধনগুলি কত ঘন ঘন ঘটে এবং কতক্ষণ আগে কেউ খেয়াল করে তা নির্ভর করে। উভয় ক্ষেত্রেই, অল্প পরিমাণ সময় আসবে যে অ্যাপ্লিকেশনটি অনুপলব্ধ। এটি আপনার হার্ডওয়্যার / অ্যাপ্লিকেশনটির উপর নির্ভর করে যে কতক্ষণ সময় হয়। তবে এটি সেকেন্ডে পরিমাপ করা হয়, আমি সাধারণত আমাদের অ্যাপ্লিকেশনগুলিতে 5-10 বলি। তবে আপনার মাইলেজটি পৃথক হতে পারে :)
স্টিভ কে

4
কি দারুন. আমি এই প্রশ্নটি জিজ্ঞাসা করার পর থেকে আমি অনেক কিছু শিখেছি। হ্যাঁ, আমরা এখন টমক্যাটকে পুরোপুরি নামা না করে টমকেট অ্যাপ্লিকেশন স্থাপন করি। একটি জিনিস আমি নিশ্চিত করেছিলাম যে সমস্ত লগিং (অ্যাপ্লিকেশন এবং টমক্যাট) লগগুলি রেকর্ড না করে ওয়েব অ্যাপস / অ্যাপ্লিকেশন ফোল্ডারে। অথবা, লক না করার জন্য টোম্যাটকে কনফিগার করাও কাজ করে। সুতরাং আমরা টমক্যাট ফোল্ডারের বাইরে একটি কেন্দ্রীয় জায়গায় লগিং রেখেছি। স্বপ্নের মতো কাজ করে। তবে আপনার উত্তরটি সবচেয়ে সহায়ক ছিল। ধন্যবাদ!
সিবিএমিক্স

5
পুনরায় চালু না করে পুনরায় চালনার সময়, আপনাকে মেমরি ফাঁসের বিষয়ে সতর্কতা অবলম্বন করতে হবে - প্রায়শই শ্রেণিবদ্ধরা রেফারেন্স ফাঁস করে দেয় এবং অ্যাপ্লিকেশনটির পুরানো সংস্করণ থেকে মেমরি মুক্ত করতে আপনাকে পুরো টমক্যাট প্রক্রিয়াটি পুনরায় চালু করতে হবে। LiveRebel (অন্য উত্তরে উল্লিখিত) আপনার জন্য সমস্ত কিছু স্বয়ংক্রিয় করতে পারে।
নিম প্র্যাকস

4
পুনরায় প্রচারের জন্য আপনাকে যুদ্ধ মুছে ফেলতে হবে না। কেবলমাত্র পুরানো যুদ্ধের অনুলিপি করুন এবং কয়েক সেকেন্ড অপেক্ষা করুন।
পিস্পেস করুন

31

একাধিক সহজ উপায় আছে।

  1. যেকোন ওয়েবঅ্যাপের কেবল ওয়েব.এক্সএমএল স্পর্শ করুন।

    touch /usr/share/tomcat/webapps/<WEBAPP-NAME>/WEB-INF/web.xml
    

আপনি WEB-INF / lib এ একটি নির্দিষ্ট জার ফাইল আপডেট করতে পারেন এবং তারপরে পুরো যুদ্ধ ফাইলটি তৈরি করা এবং এটি পুনরায় স্থাপনের পরিবর্তে ওয়েব.এক্সএমএল স্পর্শ করতে পারেন।

  1. ওয়েব অ্যাপস / YOUR_WEB_APP ডিরেক্টরি মুছুন, টমক্যাট 5 সেকেন্ডের মধ্যে যুদ্ধ মোতায়েন শুরু করবে (ধরে নিবেন যে আপনার যুদ্ধের ফাইলটি এখনও ওয়েব অ্যাপস ফোল্ডারে বিদ্যমান রয়েছে)।

  2. সাধারণত নতুন সংস্করণ সহ যুদ্ধের ফাইলটি ওভাররাইট করা স্বয়ংক্রিয়ভাবে টমক্যাটের মাধ্যমে পুনরায় কর্মক্ষম হয়ে যায়। যদি তা না হয় তবে উপরে বর্ণিত হিসাবে আপনি ওয়েব.এক্সএমএল স্পর্শ করতে পারেন।

  3. ইতিমধ্যে বিস্ফোরিত "ডিরেক্টরি" থেকে আপনার ওয়েব অ্যাপস ফোল্ডারে অনুলিপি করুন


4
'টাচ' পদ্ধতিটি ক্লাসগুলি পুনরায় লোড করে না তা জেনে রাখা কার্যকর। IOW, এটা অভিযোগমোচন না এবং ওয়েব অ্যাপ্লিকেশনটি জন্য classloader অনুক্রমের রিলোড
Rondo

4
কেন এই কাজগুলি পড়তে পারে তা দেখে $CATALINA_BASE/conf/context.xml। WEB-INF / web.xML পরিবর্তনগুলির জন্য দেখা হয়। অন্যান্য সংস্থান প্রয়োজন অনুসারে সহজেই তালিকাভুক্ত করা যায়।
কেভিন

21

অ্যাপাচি টমকাটের কনফার্ট ডিরেক্টরিতে আপনি প্রসঙ্গ.এক্সএমএল ফাইলটি খুঁজে পেতে পারেন। সেই সম্পাদনা ট্যাগটিতে < প্রসঙ্গ পুনরায় লোডযোগ্য = "সত্য" > হিসাবে। এটি সমস্যার সমাধান করবে এবং আপনার সার্ভার পুনরায় আরম্ভ করার দরকার নেই


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