چگونه در اوراکل Job Chain ایجاد کنیم

در این مقاله آموزش اوراکل قصد داریم یاد بگیریم که چگونه در بانک اطلاعاتی اوراکل بتوانیم Job Chain ایجاد کنیم که بسیار کاربردی برای فعالیت های منظم و تکراری در اوراکل می باشد. در دیتابیس اوراکل یک Chain به مجموعه ای از وظایف و عملیات هایی می باشد که برای انجام یک هدف مشترک اجرا شده و با هم در ارتباط هستند.
Job Chain چیست
Chain در واقع به منظور اجرای عملیات های به هم وابسته و مرتبط براساس یک زمانبند اجرا خواهد شد که این عملیات می تواند Jobs یا هر نوع عملیات و یا تراکنشی باشد که روال کار به این صورت است که Jobs یا عملیات ها براساس اجرا عملیاتی و به شرط اجرای موفق عملیات قبلی اجرا خواهد شد.
برای ایجاد و استفاده از Chain باید مراحل زیر به ترتیب انجام شود :
- ایجاد یک آبجکت Chain (Chain Object)
- تعریف مراحل (steps) در Chain
- اضافه کردن قوانین (Rules)
- فعال کردن Chain
- ایجاد یک Job برای Chain
چگونه در اوراکل Job Chain ایجاد کنیم
شما می توانید Chain را از طریق پروسیجری (Procedures) به نام CREATE_CHAIN در پکیج DBMS_SCHEDULER ایجاد کنید و پس از ایجاد Chain می توانید مراحل )steps( و قوانین )rules( Chain را به صورت جداگانه تعریف کنید .
در زمان ایجاد Chain، آرگومان و پارامترهای rule_set_name و evaluation_interval بصورت کلی می توانید مقدار NULL را مقدار دهی کنید . پارامتر evaluation_interval به معنی مشخص کردن تعداد فاصله )Gap( در Chain می باشد و پارامتر rule_set_name اشاره دارد به نام قوانین )rules( می باشد.
چگونه در Chain مرحله (steps) تعریف کنیم
بعد از اینکه Chainایجاد کرده اید شما می توانید یک یا بیش از یک مرحله )step( را ایجاد کنید که هر مرحله )step( می تواند شامل یکی از مورد و اهداف زیر ایجاد شده باشد.
- یک برنامه اجرایی زمان بندی شده . (Scheduler program object)
- می تواند مرحله )step( یک Chain دیگری باشد (که به این حالت اصطلاحا Nested Chain می گویند)
- می تواند یک رویداد (event) زمان بندی شده یا یک رویداد داخلی باشد.
برای تعریف یک مرحله )step( در Chain از نوع program یا Nested Chain از پروسیجری به نام DEFINE_CHAIN_STEP در پکیج DBMS_SCHEDULER استفاده می کنیم.
در مثال زیر ما دو مرحله)step( به یک Chain به نام my_chain1 ایجاد کرده ایم.
چگونه مرحله (step) تا زمان اجرای یک Events اجرا نشود
شما می توانید مراحل )step( تعریف و ایجاد کنید و تا زمانی که یک event اجرا نشده باشد ، اجرا نشود تا زمان اجرا شدن کامل event اجرا نشود و برای انجام این مرحله )step( از پروسیجری به نام DEFINE_CHAIN_EVENT_STEP استفاده کنید که این پروسیجر یک سری پارامتر ورودی می پذیرد که یکی از آن ها به نام event می باشد که پارامتر event می تواند یک event زمان بندی شده یا event شرطی باشد.
مثال زیر ایجاد یک مرحله )step( بصورتی که تا زمان اجرا یک event منتظر می ماند.
چگونه قوانین (Rules) را به Chain اضافه کنیم
شما می توانید قوانین (Rules) را به Chain از طریق پروسیجر DEFINE_CHAIN_RULE اعمال کنید . شما با فراخوانی پروسیجر DEFINE_CHAIN_RULE می توانید هر تعداد قوانین (Rules) را به Chain اضافه کنید.
قوانین (Rules) در Chainزمانی که مراحل)step( اجرا می شود تعریف می شود و در واقع قوانین (Rules) تعریف روابط و وابستگی بین مراحل)step( می باشد. هر قوانین (Rules) می تواند یک شرط باشد.
همه قوانین (Rules) در Chain با هم کار می کنند. زمانی که یک Chain اجرا و با موفقیت به پایان می رسد در واقع یک مرحله)step( مرحله به پایان رسیده است.
شما می توانید شرط ها را با هم از طریق عملگرهای منطقی مانند AND, OR و یا NOT با ترکیب و شرط جدیدی ایجاد کنید و در اصطلاح یک متن شرطی conditional expressions ایجاد کنید و هچنین با قراردادن پرانتر در اصطلاحات شرطی conditional expressions تقدم و تاخر در اجرای شرط را برقرار کنید.
ویژگی های مرحله (Step Attributes) در Chain
لیست ویژگی هایی که هر مرحله)step( می تواند داشته باشد به شرح زیر می باشد :
- completed مرحله تکمیل شده است
- state نشان دهنده ی وضعیت مرحله
- start_date تاریخ اجرا شدن مرحله
- end_date تاریخ پایان رسیدن مرحله
- error_code خطا در مرحله
- Duration مدت زمان اجرای مرحله
ویژگی completed دارای مقدار نوع Boolean می باشد و اگر برابر مقدار True باشد ویژگی state برابر با یکی از مقادیر SUCCEEDED, FAILED, STOPPED می باشد.
چگونه Chain را فعال کنیم
شما می توانید Chain را با پروسیجری به نام ENABLE در پکیج DBMS_SCHEDULER فعال کنید. یک Chain بایستی فعال شده باشد قبل از اینکه بخواهد اجرا شود که بتواند بوسیله یک جاب اجرا شود. فعال کردن Chain که در حال حاضر فعال می باشد هیچ خطایی نمی دهد و فعال می شود اگر غیر فعال باشد.
ایجاد Job در Chain
برای ایجاد Job درRUN_CHAIN ، شما می توانید پروسیجر Chainرا استفاده کنید.
چگونه Chain را حذف کنیم
شما می توانید Chain را حذف drop کنید که Chain شامل مراحل (steps)و قوانین (Rules) می باشد را می توانید با استفاده از پروسیجر DROP_CHAIN حذف drop کنید.
چگونه Chain را اجرا کنیم
شما می توانید با استفاده از دو پروسیجر زیر Chain را سریعا اجرا کنید.
- RUN_JOB
- RUN_CHAIN
اگر شما در حال حاضر Job برای Chain ایجاد کرده اید می توانید با استفاده از دستور RUN_JOB جاب موردنظر در Chain را اجرا کنید اما بایستی پارامتری به نام use_current_session برای پروسیجر RUN_JON برابر مقدار falseقرار دهید.
شما می توانید با استفاده از پروسیجر RUN_CHAINیک Chain را اجرا کنید بدون اینکه برای Chain جابی job داشته باشد. همچنین شما می توانید با استفاده از دستور RUN_CHAIN فقط قسمتی از Chain را اجرا کنید.
پروسیجر RUN_CHAIN زمانی که اجرا می شود در واقع یک temporary job برای اجرا کردن قسمتی از یک Chain ایجاد می کنید.
چگونه قوانین (Rules) را در Chain حذف کنیم
شما می توانید قوانین (Rules) را از یک Chain با استفاده از پروسیجر DROP_CHAIN_RULE حذف drop کنید.
چگونه Chain را غیرفعال کنیم
شما می توانید یک Chain را با استفاده از پروسیجر DISABLE غیرفعال کنید.
چگونه در Chain مراحل (steps) را حذف کنیم
شما می توانید مراحل )steps( از Chain را با استفاده از دستور DROP_CHAIN_STEP حذف drop کنید.
متوقف کردن Chain مراحل
شما دو راه دارید برای متوقف کردن مراحل (steps) که بصورت زیر می باشد.
- بوسیله ایجاد کردن قوانین (Rules) یگ Chain که مرحله مورد نظر را Stop کند.
- اجرا و فراخوانی پروسیجر DBMS_SCHEDULER.STOP_JOB
هر مرحله (step) که stop می کنید باید حتما نام schema پایگاه داده و نام job و نام مرحله job را مشخص کنید.
زمانی که یک مرحله (steps) متوقف می شود وضعیت مرحله به STOPPED تغییر پیدا می کند .
چگونه Chain را Pause کنیم
شما می توانید یک Chain اصلی یا زیر مجموعه را Pause کنید. شما می توانید با قراردادن ویژگی PAUSE را روی یک یا چند مرحله (steps) برابر مقدار TRUE کنید و از طریق DBMS_SCHEDULER.ALTER_CHAIN یا ALTER_RUNNING_CHAIN این عملیات را انجام دهید.
چگونه مراحل Chain را نادیده بگریم و Skip کنیم
شما می توانید یک یا چند مرحله (steps) در یک chain را نادیده بگیرید و اصطلاحا skip کنید . برای انجام این کار شما می توانید مقدار ویژگی SKIP را برای یک را چند مرحله (steps) را از روشهای DBMS_SCHEDULER.ALTER_CHAIN یا ALTER_RUNNING_CHAIN مقدار آن را برابر TRUE کنید.
چگونه Chain در حال اجرا را مانیتور کنیم
شما می توانید وضعیت Chains در حال اجرا را از طریق دو views می نوانید مشاهده مانیتور کنید.
- SCHEDULER_RUNNING_JOBS
- SCHEDULER_RUNNING_CHAINS
ویوو SCHEDULER_RUNNING_JOBS شامل یک رکورد می باشد که شامل داده job های در حال اجرا برای هر مرحله (steps) می باشد.
ویوو SCHEDULER_RUNNING_CHAINS شامل یک رکورد می باشد برای هر مرحله (steps) از Chainکه در حال اجرا می باشد.

کار با Built-in Functions در پایتون (2)
در این مقاله زمیوسی در بخش آموزش قصد داریم در مورد کار با Built-in Functions در پایتون صحبت کنیم. شما قبلاً با محبوب ترین تابع در پایتون یعنی ()print آشنا شدید.

Cheat Sheet در پایتون - مبانی پایتون (1)
پایتون 3 یک زبان برنامه نویسی واقعا همه کاره است که دوستش دارم هم برای توسط توسعه دهندگان وب web developers، دانشمندان داده data scientists و ...

10 وب سایت برای حل تمام سوالات مربوط به برنامه نویسی
در این مقاله زمیوسی، قصد داریم در مورد 10 سایت که برای حل تمام سوالات مربوط به برنامه نویسی شما صحبت کنیم. در هنگام یادگیری برنامه نویسی یا توسعه یک نرم افزار ....

APEX_ZIP : مدیریت فایل های Zip از PL/SQL
در این قسمت از آموزش مقاله زمیوس در بخش دیتابیس قصد داریم مجدد با یکی از قابلیت های APEX آشنا شویم در این مقاله با استفاده از پکیج APEX_ZIP ...