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



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

در این مقاله آموزش اوراکل قصد داریم یاد بگیریم که چگونه در بانک اطلاعاتی اوراکل بتوانیم Job Chain ایجاد کنیم که بسیار کاربردی برای فعالیت های منظم و تکراری در اوراکل می باشد. در دیتابیس اوراکل یک  Chain به مجموعه ای از وظایف و عملیات هایی می باشد که برای انجام یک هدف مشترک اجرا شده و با هم در ارتباط هستند.

 

Job Chain  چیست

 Chain در واقع به منظور اجرای عملیات های به هم وابسته و مرتبط براساس یک زمانبند اجرا خواهد شد که این عملیات می تواند Jobs یا هر نوع عملیات و یا تراکنشی باشد که روال کار به این صورت است که Jobs یا عملیات ها براساس اجرا عملیاتی و به شرط اجرای موفق عملیات قبلی اجرا خواهد شد.

تمامی دستورات Chain در پکیج اوراکل (built-in) به نامDBMS_SCHEDULER  می باشد.

 

برای ایجاد و استفاده از Chain باید مراحل زیر به ترتیب انجام شود :

  • ایجاد یک آبجکت Chain (Chain Object)
  • تعریف مراحل (steps) در Chain
  • اضافه کردن قوانین (Rules)
  • فعال کردن Chain
  • ایجاد یک Job  برای Chain

 

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

شما می توانید Chain را از طریق پروسیجری (Procedures) به نام CREATE_CHAIN  در پکیج    DBMS_SCHEDULER  ایجاد کنید و پس از ایجاد Chain می توانید مراحل )steps( و قوانین )rules(  Chain را به صورت جداگانه تعریف کنید .

Job 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) تا زمان اجرای یک Events اجرا نشود

شما می توانید مراحل )step( تعریف و ایجاد کنید و تا زمانی که یک event  اجرا نشده باشد ، اجرا نشود  تا زمان اجرا شدن کامل event اجرا نشود و برای انجام این مرحله )step( از پروسیجری به نام DEFINE_CHAIN_EVENT_STEP  استفاده کنید که این پروسیجر یک سری پارامتر ورودی می پذیرد که یکی از آن ها  به نام event می باشد که پارامتر event  می تواند یک event زمان بندی شده یا event  شرطی باشد.

مثال زیر ایجاد یک مرحله )step( بصورتی که تا زمان اجرا یک event  منتظر می ماند.

چگونه یک مرحله (step) می تواند از بیرون و خارج از برنامه قابل اجرا باشد

 

چگونه قوانین (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 که در حال حاضر فعال می باشد هیچ خطایی نمی دهد و فعال می شود اگر غیر فعال باشد.

چگونه در اوراکل Chain را فعال کنیم

 

ایجاد Job در Chain

برای ایجاد Job درRUN_CHAIN ، شما می توانید پروسیجر  Chainرا  استفاده کنید

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

 

چگونه Chain را حذف کنیم

شما می توانید Chain را حذف drop  کنید که Chain شامل مراحل (steps)و قوانین (Rules) می باشد را می توانید با استفاده از پروسیجر  DROP_CHAIN حذف drop کنید.

چگونه Chain را حذف کنیم

 

چگونه 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 ایجاد می کنید.

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

 

چگونه قوانین (Rules) را در Chain حذف کنیم

شما می توانید  قوانین (Rules) را از یک  Chain با استفاده از پروسیجر DROP_CHAIN_RULE حذف drop کنید.

چگونه قوانین (Rules) را در Chain حذف کنیم.

 

چگونه Chain  را غیرفعال کنیم

شما می توانید یک  Chain را با استفاده از پروسیجر DISABLE غیرفعال کنید.

چگونه Chain  را غیرفعال کنیم.

 

چگونه در Chain  مراحل (steps) را حذف کنیم

شما می توانید مراحل )steps(  از  Chain را با استفاده از دستور DROP_CHAIN_STEP حذف drop کنید.

چگونه در Chain  مراحل (steps) را حذف کنیم.

 

متوقف کردن  Chain مراحل

شما دو راه دارید برای متوقف کردن مراحل (steps) که بصورت زیر می باشد.

  • بوسیله ایجاد کردن  قوانین (Rules) یگ  Chain که مرحله مورد نظر را  Stop کند.
  • اجرا و فراخوانی پروسیجر DBMS_SCHEDULER.STOP_JOB

هر مرحله (step) که  stop می کنید باید حتما نام  schema پایگاه داده و نام  job و نام مرحله  job را مشخص کنید

 

متوقف کردن Chain Steps بصورت جداگانه

زمانی که یک  مرحله (steps) متوقف می شود وضعیت مرحله به  STOPPED تغییر پیدا می کند .

 

چگونه Chain را Pause کنیم

شما می توانید یک  Chain اصلی یا زیر مجموعه را Pause  کنید. شما می توانید با قراردادن ویژگی PAUSE را روی یک یا چند  مرحله (steps) برابر مقدار TRUE کنید و از طریق  DBMS_SCHEDULER.ALTER_CHAIN یا      ALTER_RUNNING_CHAIN  این عملیات را انجام دهید.  

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

 

چگونه مراحل Chain را نادیده بگریم و Skip کنیم

شما می توانید یک یا چند مرحله (steps)  در یک  chain را نادیده بگیرید و اصطلاحا skip کنید .  برای انجام این کار شما می توانید مقدار ویژگی SKIP را برای یک را چند مرحله (steps)  را از روشهای DBMS_SCHEDULER.ALTER_CHAIN  یا  ALTER_RUNNING_CHAIN مقدار آن را برابر  TRUE  کنید.

 

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

شما می توانید وضعیت Chains  در حال اجرا را از طریق دو views  می نوانید مشاهده مانیتور کنید.

ویوو SCHEDULER_RUNNING_JOBS شامل یک رکورد می باشد که شامل داده job های در حال اجرا برای هر مرحله (steps) می باشد.

ویوو  SCHEDULER_RUNNING_CHAINS شامل یک رکورد می باشد برای هر مرحله (steps) از  Chainکه در حال اجرا می باشد.

 

جهت ثبت پیام باید در سایت عضو شوید و یا وارد سایت شده باشید .
ورود به حساب کاربری / ایجاد حساب کاربری
کار با Built-in Functions در پایتون (2)

کار با Built-in Functions در پایتون (2)

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

Cheat Sheet در پایتون - مبانی پایتون (1)

Cheat Sheet در پایتون - مبانی پایتون (1)

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

10 وب سایت برای حل تمام سوالات مربوط به برنامه نویسی

10 وب سایت برای حل تمام سوالات مربوط به برنامه نویسی

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

APEX_ZIP : مدیریت فایل های Zip از PL/SQL

APEX_ZIP : مدیریت فایل های Zip از PL/SQL

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