Oracle APEX 4.2安装与配置 select dbms_xdb.gethttpport from dual;
如果端口号是0,那么Oracle XML DB Protocol Server是禁用的。 4. 开启Oracle XML DB Protocol Server
sqlplus / as sysdba
EXEC DBMS_XDB.SETHTTPPORT(port); 例:EXEC DBMS_XDB.SETHTTPPORT(8080);
3.4.5 在Oracle 11g中开启网络服务
默认情况下Oracle 11g r1和r2的网络交互能力是禁用的。因而,如果在Oracle 11g上使用Oracle Application Express必须使用一个新的包dbms_network_acl_admin授权连接权限给所有主机针对于apex_040200数据库用户。授权失败将产生如下问题:
? Oracle Application Express发送邮件时。用户可以调用APEX_MAIL
发送邮件,但将发现问题;
? Oracle Application Express调用Web Services时 ? PDF/report打印时 3. 授权连接权限
接下来的例子展示了如何为数据库用户APEX_040200授权连接权限给任何主机。这个例子假定你已经使用sys用户以sysdba角色连接到安装了Oracle Application Express的数据库
DECLARE
ACL_PATH VARCHAR2(4000); BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_040200 -- the \ 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_040200', 'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_040200', 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',
23 / 51
Oracle APEX 4.2安装与配置 'ACL that lets power users to connect to everywhere', 'APEX_040200', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); END; /
COMMIT;
接下来的例子展示了如何提供更少的权限访问网络资源。这个例子开启Oracle Application Express Online Help指引和email,PDF printing ,如果这些服务在本地主机时。
DECLARE
ACL_PATH VARCHAR2(4000); BEGIN
-- Look for the ACL currently assigned to 'localhost' and give APEX_040200 -- the \ SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200', 'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_040200', TRUE, 'connect'); END IF; EXCEPTION
-- When no ACL has been assigned to 'localhost'. WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml', 'ACL that lets users to connect to localhost', 'APEX_040200', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost'); END; /
COMMIT;
4. 无效的ACL错误疑难解答
如果在运行之前脚本后收到ORA-44416: Invalid ACL error,使用下列查询定位无效的ACL
REM Show the dangling references to dropped users in the ACL that is assigned REM to '*'.
SELECT ACL, PRINCIPAL
24 / 51
Oracle APEX 4.2安装与配置 FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND NACL.ACLID = ACE.ACLID AND
NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);
下一步,运行下列代码修复ACL
DECLARE
ACL_ID RAW(16); CNT NUMBER; BEGIN
-- Look for the object ID of the ACL currently assigned to '*' SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- If just some users referenced in the ACL are invalid, remove just those -- users in the ACL. Otherwise, drop the ACL completely. SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE WHERE ACLID = ACL_ID AND
EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL); IF (CNT > 0) THEN
FOR R IN (SELECT PRINCIPAL FROM XDS_ACE WHERE ACLID = ACL_ID AND
NOT EXISTS (SELECT NULL FROM ALL_USERS
WHERE USERNAME = PRINCIPAL)) LOOP
UPDATE XDB.XDB$ACL SET OBJECT_VALUE =
DELETEXML(OBJECT_VALUE,
'/ACL/ACE[PRINCIPAL=\ WHERE OBJECT_ID = ACL_ID; END LOOP; ELSE
DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID; END IF; END; /
REM commit the changes.
25 / 51
Oracle APEX 4.2安装与配置 COMMIT;
3.4.6 安全考虑
Oracle强烈推荐使用Secure Sockets Layer (SSL)确保密码和其他敏感信息不会在传输过程存在潜在的暴露可能。
3.4.7 管理JOB_QUEUE_PROCESSES
JOB_QUEUE_PROCESSES确定并行运行的工作数。在 Oracle Application Express Release 4.2中事务与SQL脚本都需要job支持,JOB_QUEUE_PROCESSES如果未启用或正确的工作,那么不能成功的执行脚本。
3. 检查JOB_QUEUE_PROCESSES参数
登录Oracle Application Express,查看About Application Express页面,或使用sqlplus连接到数据库
sqlplus / as sysdba
show parameter JOB_QUEUE_PROCESSES
4. 设置JOB_QUEUE_PROCESSES参数
sqlplus / as sysdba
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=100;
3.4.8 使用其它语言运行Oracle Application Express
Oracle Application Express界面能转变为German, Spanish, French, Italian, Japanese, Korean, Brazilian Portuguese, Simplified Chinese, and Traditional Chinese。一个单实例的Oracle Application Express 能够安装一种或多种翻译版本。开发者能够在任何已安装的语言中选择一种运行Application Express开发环境,通过登录Application Builder主页简单的进行选择。
为了安装其它语言必须使用 apex_4.2.zip文件。如果你先前下载apex_4.2_en.zip,,那么不需要重新安装Oracle Application Express。仅需简单的下载apex_4.2.zip并解压文件到之前apex_4.2_en.zip时相同的目录。
The translated version of Oracle Application Express should be loaded into a database that has a character set that supports the specific language. If you attempt to install a translated version of Oracle Application Express into a database that does not support the character encoding of the language, the installation may fail or the translated Oracle Application Express instance may
26 / 51
相关推荐: