نصب (Oracle REST Data Services (ORDS اوراکل اپکس

نوشته شده توسط :
نصب  (Oracle REST Data Services (ORDS اوراکل اپکس

1- معرفی


این داکیومنت بر اساس موارد زیر ارائه شده است :
Oracle 11g, 12c
ORDS 3.x


2- Oracle REST Data Services (ORDS) چیست ؟
(ORDS) یک Data Services که به جای Oracle HTTP server و mod_plsql مورد استفاده قرار می گیرد . ORDS بر اساس java EE که خدمات RESTful را فراهم می کند و قابلیت های امنیتی را افزایش می دهد پایه نهاده شده است . که آن را می توانید در در WebLogic، Tomcat ، Glassfish استقرار داد.

 

 

3- تعامل بین oracle ords و oracle apex

به طور معمول، دو راه برای نصب اوراکل APEX وجود دارد.
روش 1: پیکربندی Embedded PL/SQL Gateway : این روشی است برای پیکربندی اوراکل APEX که می تواند با اجرای Oracle XML DB HTTP Server انجام داد، که آن یکHTTP است که با نصب Oracle 11g یا نسخه بالاتر در دسترس خواهد بود.

روش 2: نصب اوراکل APEX در یک وب سرور خاص مانند در WebLogic، Tomcat یا Glassfish، ...

لینک اوراکل APEX به شرح زیراست :


http://your-server:8080/apex

 

برای استفاده از خدمات RESTful ، شما نیاز به نصب Oracle ORDS که می تواند بر روی سرور weblogic ، Tomcat ، Glassfish، استقرار پیدا کند دارید . Oracle ORDS می توانید به طور مستقیم به اوراکل APEX ارتباط برقرار کند و جایگزین کاملی برای Oracle HTTP Server باشد .

بنابراین شما می توانید RESTful را در APEX استفاده کنید و URL جدید برای کار با اوراکل APEX داشته باشید.

http://your-server:8080/ords

 

4- دانلود oracle ORDS
شما می توانید از طریق لینک زیر oracle ORDS را دانلود کنید :


http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html

نتیجه دانلود :

 


5- آماده سازی و تنظیمات ORDS برای اوراکل اپکس (oracle apex) :


بروید در مسیر ریشه apex خود یا همان پوشه apex :


Cmd را در مسیر بالا باز کنید


وارد sqlplus شوید (با رول sysdba)

دستور @apex_rest_config.sql را برای پیکربندی REST اجرا کنید :

 

 

پس از اجرای موفق دستور بالا باید برای دو کاربر user درخواست شده APEX_LISTENER و APEX_REST_PUBLIC_USER پسورد مناسب وارد کنید
APEX_LISTENER : این اکانت استفاده می شود برای اجرای پرس و جو مربوط به سرویس RESTful که در apex تعریف شود و ذخیره شده است .
APEX_REST_PUBLIC_USER : این اکانت استفاده می شود زمانی که فراخوانده شود رویس RESTful که در apex تعریف شود و ذخیره شده است .

 

فعال کردن خدمات شبکه (Network Services) :

به طور پیش فرض، خدمات شبکه (Network Services) در اوراکل 11g و یا نسخه های جدیدتر غیر فعال می باشد.
بنابراین، شما باید پکیج DBMS_NETWORK_ACL_ADMIN به منظور اعطای امتیازات اتصال هر host برای کاربر پایگاه داده APEX_050000 استفاده کنید.

شما نیاز به کوئری جهت مشاهده کاربران APEX در پایگاه داده را دارید :

Select Username from All_Users where username like 'APEX%';

 

اجرای دستور زیر برای اعطای امتیازات اتصال به هر host برای کاربر پایگاه داده APEX_050000.


Declare
Acl_Path Varchar2(4000);
Begin
-- Look for the ACL currently assigned to '*' and give APEX_050000
-- the "connect" privilege if APEX_050000 does not have the privilege yet.
Select Acl
Into Acl_Path
From Dba_Network_Acls
Where Host = '*'
And Lower_Port Is Null
And Upper_Port Is Null;
If Dbms_Network_Acl_Admin.Check_Privilege(Acl_Path
,'APEX_050000'
,'connect') Is Null Then
Dbms_Network_Acl_Admin.Add_Privilege(Acl_Path
,'APEX_050000'
,True
,'connect');
End If;
Exception
-- When no ACL has been assigned to '*'.
When No_Data_Found Then
Dbms_Network_Acl_Admin.Create_Acl('power_users.xml'
,'ACL that lets power users to connect to everywhere'
,'APEX_050000'
,True
,'connect');
Dbms_Network_Acl_Admin.Assign_Acl('power_users.xml'
,'*');
End;
/

Commit;

 

اجرای دستور زیر برای اعطای امتیازات اتصال به هر میزبان برای کاربر پایگاه داده APEX_050000 (اگر پایگاه داده oracle 12c باشد)

Declare
Acl_Path Varchar2(4000);
Begin
-- Look for the ACL currently assigned to '*' and give APEX_050000
-- the "connect" privilege if APEX_050000
--does not have the privilege yet.
Select Acl
Into Acl_Path
From Dba_Network_Acls
Where Host = '*'
And Lower_Port Is Null
And Upper_Port Is Null;
If Dbms_Network_Acl_Admin.Check_Privilege(Acl_Path
,'APEX_050000'
,'connect') Is Null Then
Dbms_Network_Acl_Admin.Add_Privilege(Acl_Path
,'APEX_050000'
,True
,'connect');
End If;
Exception
-- When no ACL has been assigned to '*'.
When No_Data_Found Then
Dbms_Network_Acl_Admin.Create_Acl('power_users.xml'
,'ACL that lets power users to connect to everywhere'
,'APEX_050000'
,True
,'connect');
Dbms_Network_Acl_Admin.Assign_Acl('power_users.xml'
,'*');
End;
/

Commit;


نکته :
پروسیجر CREATE_ACL، ASSIGN_ACL، ADD_PRIVILEGE و CHECK_PRIVILEGE در DBMS_NETWORK_ACL_ADMIN در پایگاه داده اوراکل 12C توصیه نمی شوند. اوراکل توصیه می کند استفاده کنید از APPEND_HOST_ACE در نسخه 12c .

روش استفاده در oracle 12c :

 

BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '*',
ace => xs$ace_type(privilege_list => xs$name_list('connect'),
principal_name => 'APEX_050000',
principal_type => xs_acl.ptype_db));
END;
/

 

 

6- استقرار Deploying ORDS :
توجه: شما باید مطمئن شوید که نسخه جاوا 7 یا بالاتر را نصب کرده اید و در متغیرها variable) PATH) ایجاد شده است .

اضافه کردن مسیر جاوا در پوشه bin در شکل زیر :

 

ادامه بحث استقرار ORDS :
فایل دانلود شده ORDS****.zip را از حالت فشرده خارج کنید.

شما می توانید در پوشه که از حالت فشرده خارج کرده اید فایل ords.war را ببینید.


لطفاً پوشه image موجود در مسیر apex خود را در مسیر ords کپی کنید.


در حال حاضر، ما oracle ORDS را می خواهیم به طور مستقل نصب کنیم.و فعلاً نیازی به استفاده و deploy کردن در سرور weblogic , tamcat یا دیگر وب سرور ها نیست.


در ادامه cmd را باز کرده و به مسیر ords می رویم


بعد ، وارد sqlplus می شویم با دسترسی sysdba

 

در حال حاظر oracle apex شما به وسیله XML DB HTTP Server در حال اجرا می باشد پس شما باید با دستور زیر آن را غیر فعال کنید.


دستور غیر فعال کردن Oracle XML DB HTTP Server در oracle apex :

EXEC DBMS_XDB.SETHTTPPORT(0);

همچنین شما می توانید آن را با دستور زیر فعال کنید :

EXEC DBMS_XDB.SETHTTPPORT(8080);

از sqlplus خارج شوید و به مسیر ords بروید :
در آن مسیر دستور زیر را اجرا کنید :

java -jar ords.war

# Or:

java -jar ords.war install

آدرس از دستگاه که پایگاه داده روی آن می باشد (پیشفرض localhost ) را وارد کنید:

 


پورت دیتابیس (پیشفرض 1521) را وارد کنید :

 


نام سرویس یا همان sid دیتابیس را وارد کنید :

 


برای کاربر ORDS_PUBLIC_USER پسورد مناسب وارد کنید :

 


یک باره دیگر اطلاعات پسورد sysdba را وارد کنید (پسورد sys را وارد کنید).

 


در اینجا sqlplus می پرسد که آیا شما از oracle apex استفاده می کنید اگر بله عدد یک را وارد کنید .


وارد کردن رمز عبور برای کاربر APEX_PUBLIC_USER :

 


در ادامه ، عدد یک را وارد کنید برای وارد کردن پسورد دو کاربری که به تازگی ایجاد شده است

 


(APEX_LISTENER, APEX_REST_PUBLIC_USER)

 


عدد یک را وارد کنید برای استارت شده ORDS در حالت standalone

 


شما در اینجا با موفقیت ORDS را پیکربندی کرده اید.cmd خود را ببندید.

 

اجرا کردن ORDS
توجه: شما می توانید از دستور زیر برای دیدن مراحل اجرای کمک بگیرید :

java -jar ords.war help standalone

 

به مسیر ORDS بروید و دستور زیر را اجرا کنید.

java -jar ords.war standalone --port 8080 --apex-images C:/DevPrograms/ords/images

برای اجرا اولین بار ، از شما میسر فایل پیکربندی را خواهد پرسید .

 


در اینجا ORDS شما با موفقیت استقرار یافته است.

 

توجه داشته باشید ک اگر خطا زیر را دریافت کردید , کاربر APEX_PUBLIC_USER را unlock کنید.

 



Column username format a25;
Column account_status format a25;

 

نمایش یوزرهای unlock می باشند.

select username,account_status from dba_users
where lock_date is not null
and username like 'APEX%';

 

دستور زیر را اجرا کنید :

Alter user APEX_PUBLIC_USER account unlock;

 

فایل پیکربندی همچنین پس از استقرا ORDS ایجاد می شود .

 


شما می توانید APEX با آدرس جدید استفاده کنید:

 

http://localhost:8080/ords

 

 شما می توانید از این لینک ، اوراکل اپکس را آموزش ببینید.