<লোড- অন-স্টার্টআপ> মানটি কী বোঝায় সার্ভলেটটি


174

আমি এখানে কিছুটা বিভ্রান্ত হয়ে পড়ছি। আমাদের অ্যাপ্লিকেশনটিতে আমরা কয়েকটি সার্লেটলেট সংজ্ঞায়িত করছি। এখানে web.xmlসার্ভলেটগুলির একটির জন্য অংশটি উদ্ধৃত হয়েছে :

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-class>com.foo.framework.axis2.http.FrameworkServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet> 

আমার বোধগম্যতার সাথে মানটি <load-on-startup>স্বয়ংক্রিয়ভাবে লোড হওয়ার জন্য একটি ধনাত্মক পূর্ণসংখ্যার হতে হবে। আমি গুগল সন্ধান করেছি কিন্তু আমি যে প্রতিক্রিয়াগুলি পেয়েছি তা কেবল আমার বিভ্রান্তির সাথে যুক্ত হয়েছে।

উত্তর:


186

রেজিন 3.0 নথির এই আচরণ:

লোড-অন-স্টার্টআপটি (alচ্ছিক) পূর্ণসংখ্যার মান নির্দিষ্ট করতে পারে। মান যদি 0 বা তার বেশি হয় তবে এটি সার্লেটগুলি লোড করার জন্য একটি অর্ডার নির্দেশ করে, বেশি সংখ্যাসহ সার্ভলেটগুলি কম সংখ্যক সার্ভলেট পরে লোড হয়ে যায়।

JSP 3.1 বৈশিষ্ট (JSR 340) পৃষ্ঠা 14-160 এই বলে:

উপাদানটি load-on-startupনির্দেশ করে যে ওয়েব অ্যাপ্লিকেশন শুরু করার সময় এই সার্লেটটি লোড করা উচিত (তাত্ক্ষণিকভাবে এবং এর টিআইএন () কল করা উচিত)। এই উপাদানটির উপাদান উপাদানটি অবশ্যই পূর্ণসংখ্যা হতে হবে যাতে সার্লেট লোড করা উচিত order মানটি যদি negativeণাত্মক পূর্ণসংখ্যার হয় বা উপাদানটি উপস্থিত না থাকে তবে পাত্রে যখনই এটি চয়ন করবে এটি সার্লেটটি লোড করতে মুক্ত। মানটি যদি ধনাত্মক পূর্ণসংখ্যা বা 0 হয় তবে অ্যাপ্লিকেশন স্থাপনের সাথে পাত্রে অবশ্যই সার্লেটটি লোড করে আরম্ভ করতে হবে। ধারকটিকে অবশ্যই গ্যারান্টি দিতে হবে যে উচ্চতর সংখ্যার সাথে চিহ্নিত সার্ভলেটগুলি আগে কম পূর্ণসংখ্যাযুক্ত চিহ্নিত সার্লেটগুলি লোড করা হয়। ধারকটি একই load-on-startupমান সহ সার্লেলেটগুলি লোড করার ক্রমটি চয়ন করতে পারে ।

আপনি সম্ভবত কেবল জেএসআরই নয়, আপনার ওয়েব ধারকটির জন্য ডকুমেন্টেশনও যাচাই করতে চান। মতপার্থক্য থাকতে পারে


ক্ল্যাটাস তার উত্তরে ভুল। আপনার পোস্টটি সম্পাদনা করার কথা বিবেচনা করা উচিত।
আলবোজ

3
যখন স্টার্টআপে লোড নির্দিষ্ট না করা হয় তখন কী ঘটে?
নির্মল

1
@ নির্মল দ্বিতীয় অনুচ্ছেদে উল্লেখ করেছে যে উপাদানটি উপস্থিত না থাকলে এটির মতো আচরণ যেমন এটি নেতিবাচক ছিল অর্থাত্ পাত্রে যখনই এটি পছন্দ করবে সার্লেটটি লোড করতে মুক্ত।
ফিনেগান

129

সংক্ষিপ্ত উত্তর : মান> = 0 এর অর্থ হ'ল ওয়েব-অ্যাপ স্থাপন করা অবস্থায় বা সার্ভার শুরু হওয়ার পরে সার্লেটটি লোড হবে। মান <0: সার্ভলেটটি লোড করা হয় যখনই ধারকটিকে মনে হয়।

দীর্ঘ উত্তর (চশমা থেকে):

লোড-অন-স্টার্টআপ উপাদানটি ইঙ্গিত দেয় যে ওয়েব অ্যাপ্লিকেশন শুরু করার সময় এই সার্লেটটি লোড করা উচিত (ইনস্ট্যান্টিয়েটেড করা উচিত এবং এর init () কল করা উচিত)। এই উপাদানটির alচ্ছিক বিষয়বস্তু অবশ্যই একটি পূর্ণসংখ্যা হতে হবে যাতে সার্ভলেটটি লোড করা উচিত order মানটি যদি negativeণাত্মক পূর্ণসংখ্যার হয় বা উপাদানটি উপস্থিত না থাকে তবে পাত্রে যখনই এটি চয়ন করবে এটি সার্লেটটি লোড করতে মুক্ত। মানটি যদি ধনাত্মক 128 পূর্ণসংখ্যা বা 0 হয় তবে অ্যাপ্লিকেশন স্থাপনের সাথে পাত্রে অবশ্যই সার্লেটটি লোড করে আরম্ভ করতে হবে। ধারকটিকে অবশ্যই গ্যারান্টি দিতে হবে যে উচ্চতর সংখ্যার চিহ্নযুক্ত সার্ভলেটগুলি আগে কম পূর্ণসংখ্যাযুক্ত চিহ্নিত সার্লেটগুলি লোড করা হয়। ধারক একই লোড-অন-স্টার্ট-আপ মান সহ সার্লেলেটগুলি লোড করার ক্রম চয়ন করতে পারে।


1
এবং এজন্য আমরা অ্যাপ্লিকেশন শুরু হওয়ার পরে প্রথমে এটি লোড করার জন্য ডিসপ্যাচার সার্ভেল ইনর্ডারের জন্য 0 চিহ্নিত করি ..
লাকী

11

এটি সূচিত করে যে কোনও অনুরোধ অ্যাক্সেস করার চেষ্টা না করা পর্যন্ত সার্লেটটি শুরু হবে না।

যদি লোড-অন-স্টার্টআপটি শূন্যের চেয়ে বড় বা সমান হয় তবে কন্টেইনারটি শুরু হওয়ার সাথে সাথে আপনি যে স্টার্টআপ মানটি সেখানে রেখেছেন সেটির উপরে লোডের ক্রমবর্ধমান ক্রমে সেই সার্লেটটি শুরু হবে (উদাহরণস্বরূপ 0, 1 তারপরে 2 তারপর 5 তারপর 10 এবং আরও) ।


7
শূন্যের ফলে লোডও হয়। কেবলমাত্র নেতিবাচক মানগুলি গ্যারান্টিযুক্ত নয়: "[... ... মানটি যদি ধনাত্মক পূর্ণসংখ্যা হয় বা 0 হয় তবে
ধারকটিকে

1
@cletus আমার মনে হয় এটা পরিবর্তন করতে ভালো শূন্য তার চেয়ে অনেক বেশী সঙ্গে শূন্যের চেয়ে বড় বা সমান , যেমন গৃহীত এক প্রতি ইঙ্গিত কারণ অনেক ব্যবহারকারী আপনার উত্তর পড়ুন। অগ্রিম ধন্যবাদ
তারিক

9

সার্লেট লাইফ চক্র

একটি সার্লেটের জীবনচক্রটি যে ধারকটিতে সার্ভলেট মোতায়েন করা হয়েছে তার দ্বারা নিয়ন্ত্রিত হয়। যখন কোনও অনুরোধ কোনও সার্লেটে ম্যাপ করা হয় তখন ধারকটি নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করে।

  1. সার্লেটের কোনও উদাহরণ উপস্থিত না থাকলে ওয়েব ধারক:

    ক। সার্লেট ক্লাসটি লোড করে

    খ। সার্লেট ক্লাসের একটি উদাহরণ তৈরি করে

    গ। দুর পদ্ধতিটি কল করে সার্লেট দৃষ্টান্তটি সূচনা করে ( সূচনাটি একটি সার্লেট তৈরি এবং প্রারম্ভিককরণের মধ্যে আচ্ছাদিত করা হয় )

  2. ধারক পরিষেবা পদ্ধতি, অনুরোধ এবং প্রতিক্রিয়া অবজেক্টগুলি পাস করার অনুরোধ করে। পরিষেবা পদ্ধতি রাইটিং পদ্ধতিতে আলোচনা করা হয় ।

একটি 0 মানটির load-on-startupঅর্থ যে পয়েন্ট 1 কার্যকর করা হয় যখন সেই সার্লেলে একটি অনুরোধ আসে। অন্যান্য মানগুলির অর্থ পয়েন্ট 1 এর ধারক প্রারম্ভকালে কার্যকর করা হয়।


ত্রুটিহীন উত্তর!
গৌরব

1

যেমন অন্য উত্তরে বলা হয়েছে এবং এই লোড-অন-স্টার্টআপ আর্টিকেলটি শূন্য গ্রহণযোগ্য এবং অন্য কোনও সার্লেটের অনুপস্থিতিতে এটি মোতায়েনের সময় লোড এবং লোডের উপর অগ্রাধিকার গ্রহণ করবে। লোড-অন স্ট্যাটআপের সর্বোত্তম ব্যবহার হ'ল সার্লেটগুলি লোড করা যা প্রথমে অনুরোধ আসার আগে ভালভাবে আরম্ভ করতে আরও বেশি সময় নেয় যা সংযোগ পুল তৈরি করে বা নেটওয়ার্ক কল করতে বা বিশাল সংস্থান রাখে, এটি প্রথম কয়েকটি অনুরোধের জন্য প্রতিক্রিয়ার সময়কে উল্লেখযোগ্যভাবে হ্রাস করবে।


1
  1. মান দুটি সার্লেটের তুলনায় যদি একই হয় তবে তারা ওয়েড.এক্সএমএল ফাইলের মধ্যে ঘোষিত একটি ক্রমে লোড হবে।
  2. 0 বা সার্ভলেটের তুলনায় negativeণাত্মক পূর্ণ সংখ্যা লোড হবে যখন কনটেইনার এগুলি লোড করে মনে করে।
  3. ওয়েব ধারক দ্বারা সার্লেটের লোডিং, ইনিশিয়ালাইজেশন এবং ডিআইএন () পদ্ধতিতে কল করার গ্যারান্টি দেয়।
  4. ওয়েব কন্টেইনারগুলি লোড করার সিদ্ধান্ত নেওয়ার পরে যদি কোনও সার্লেটের জন্য কোনও উপাদান না থাকে তবে সেগুলি লোড হবে।

0

হ্যাঁ এর একই মান থাকতে পারে .... লোড-অন-স্টার্টআপটিতে নম্বর দেওয়ার কারণটি হ'ল সার্ভারের সমস্ত সার্লেটটি লোড করার জন্য একটি ক্রম সংজ্ঞায়িত করা। 0 টি লোড-অন-স্টার্টআপ মান সহ সার্লেটটি প্রথমে লোড হবে এবং এর পরে 1 মান সহ সার্লেটটি লোড হবে।

লোড-অন-স্টার্টআপের জন্য যদি দুটি সার্ভলেটের একই মান থাকে তবে এটি কীভাবে ওয়েব.এক্সএমএলে উপরে থেকে নীচে ঘোষিত হবে তা লোড হবে। ওয়েব.এক্সএমএল-এ প্রথম যে সার্ভলেটটি আসবে তা প্রথমে লোড হবে এবং তার পরে অন্যটি লোড হবে।


0

-> (লোড-অন-স্টার্ট-আপের অনুপস্থিতি) ট্যাগ সর্বপ্রথম যখন সার্ভারলে সার্ভারলেট মোতায়েন করা হয়, সার্লেটের অবজেক্ট তৈরি করা সার্ভারের দায়িত্ব the উদাহরণস্বরূপ: ধরুন সার্ভারে সার্ভলেট মোতায়েন রয়েছে, (সার্ভারে সার্ভলেট অবজেক্টটি উপলভ্য নয়) ক্লায়েন্ট প্রথমবারের জন্য সার্লেলে অনুরোধটি প্রেরণ করে তারপরে সার্ভারটি ডিফল্ট কনস্ট্রাক্টরের সাহায্যে সার্লেটlet বস্তু তৈরি করে এবং তাত্ক্ষণিকভাবে init () কল করে। সেই থেকে যখন কখন ক্লায়েন্ট অনুরোধ প্রেরণ করে কেবলমাত্র পরিষেবা পদ্ধতিটি কার্যকর করা হবে কারণ বস্তু ইতিমধ্যে উপলব্ধ

যদি লোড-অন-স্টার্ট-আপ ট্যাগটি ডিপ্লোয়মেন্ট ডেসক্রিপটরটিতে ব্যবহার করা হয়: মোতায়েনের সময় সার্ভার ট্যাগগুলির মধ্যে প্রদত্ত ধনাত্মক মানের উপর ভিত্তি করে সার্লেলেটগুলির জন্য সার্লেট আইটেম তৈরি করে। সার্লেট ক্লাসের জন্য অবজেক্ট তৈরি করা 0-128 0 নম্বর অনুসারে সার্ভলেটটি প্রথম তৈরি করা হবে এবং অন্যান্য সংখ্যার পরে তৈরি হবে।

আমরা যদি ওয়েব.এক্সএমএল-তে দুটি সার্ভলেটের জন্য একই মান সরবরাহ করি তবে ওয়েব.এক্সএমএল-তে ক্লাসের অবস্থানের ভিত্তিতে অবজেক্ট তৈরি করা হবে যা সার্ভার থেকে সার্ভারেও পরিবর্তিত হয়।

আমরা যদি স্টার্ট আপ ট্যাগের লোডের মধ্যে নেতিবাচক মান সরবরাহ করি তবে সার্ভারটি সার্লেট অবজেক্টটি তৈরি করবে না।

অন্যান্য পরিস্থিতি যেখানে সার্ভার সার্লেটের জন্য বস্তু তৈরি করে।

আমরা যদি ওয়েব.এক্সএমএলে স্টার্ট আপ ট্যাগটিতে লোড ব্যবহার না করি, তবে ক্লায়েন্ট যখন প্রথমবারের সার্ভারের জন্য অনুরোধ প্রেরণ করে তখন বস্তুটি তৈরি হয় এবং সার্ভার তার জীবনচক্রের পদ্ধতিগুলি কল করার জন্য দায়ী project তারপরে যদি একটি .class সার্ভারে পরিবর্তন করা হয় (টমক্যাট)। আবার ক্লায়েন্ট পরিবর্তিত সার্লেটের জন্য অনুরোধ প্রেরণ করে তবে টমক্যাটের ক্ষেত্রে নতুন অবজেক্ট তৈরি হবে না এবং সার্ভার পুনরায় আরম্ভ না হওয়া অবধি সার্ভার বিদ্যমান অবজেক্টটি ব্যবহার করবে না। কিন্তু ওয়েব-লজিকের ক্লাসে যখন কখন ক্লাস ফাইলটি সার্ভারে পুনরায় চালু করার সাথে সার্ভারে সংশোধন করা হয় যদি এটি একটি অনুরোধ গ্রহণ করে তবে সার্ভারটি বিদ্যমান সার্লেটে নষ্ট পদ্ধতিটি কল করে এবং একটি নতুন সার্লেট আইটেম তৈরি করে এবং এর সূচনা করার জন্য init () কে কল করে ।


-1

মানটি যদি ০ হয় তবে অনুরোধটি আসার পরে সার্লেটটি তাত্ক্ষণিকভাবে প্রেরণ করা হবে, অন্য> = 0 ধারক মানগুলির ক্রমবর্ধমান ক্রমে লোড করবে। যদি 2 বা ততোধিক সার্লেটের একই মান থাকে তবে ওয়েব.এক্সএমএল-এ সার্ভলেটগুলির ক্রম ঘোষণা করা হয়েছে।


-2

সার্ভলেট কনটেইনার প্রারম্ভকালে বা প্রথম অনুরোধ করা হওয়ার সময় সার্লেটটি লোড করে। সার্ভলেটটির লোডিং "ওয়েব.এক্সএমএল" ফাইলের "লোড-অন-স্টার্টআপ" বৈশিষ্ট্যের উপর নির্ভর করে। বৈশিষ্ট্যটির যদি ইতিবাচক পূর্ণসংখ্যা থাকে (0 থেকে 128) তবে সার্ভলেটটি ধারকটির লোডিংয়ের সাথে লোড হয় অন্যথায় যখন পরিষেবাটির জন্য প্রথম অনুরোধ আসে তখন তা লোড হয়।

অনুরোধ পেলে সার্ভলেটটি লোড হয়ে যায় তখন একে "অলস লোডিং" বলা হয়।


-6

এটি আপনি যেমন আশা করেন না তেমন সহজ।

মানটি ইতিবাচক হলে ধারক শুরু হওয়ার সাথে সাথে এটি লোড হয়

যদি অনুরোধটি করা হয় তখন মানটি সার্লেলেট লোড হওয়ার চেয়ে ইতিবাচক না হলে।

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