数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle webserver中文介绍-第三章


发布日期:2020年08月08日
 
Oracle webserver中文介绍-第三章

Oracle Web Agent是当Web Listener收到一个动态文档请求时执行的CGI程序此程序登录进数据库并执行作为URL的一部分而指定的PL/SQL存储过程

作为开发Web Agent的PL/SQL工具WebServer Developers Toolkit包括以下包

HTP (超文本过程)和 HTF(超文本函数) 简化了在用户的PL/SQL代码里 生成HTML标记的工作HTP和HTF自动生成由Oracle Web检索的HTML标记

OWA_UTIL 包含了能使程序员更快速构造HTML输出的实用函数

注意: Web Agent 也包括一些叫OWA的PL/SQL包它包括一些由Web Agent调用的进行诸如设置CGI环境变量和从PL/SQL表中提取由PL/SQL代码生成的输出等实用功能一个PL/SQL开发员不能直接调用OWA包虽然它可以用用户通过URL直接调用

Oracle WebServer Developers Toolkit的进一步信息见第四章

谁使用Oracle Web Agent

Oracle Web Agent 可以被以下人使用:

想开发与oracle互操作的Web应用的程序员Oracle Web Agent允许程序员创建 PL/SQL过程来进行数据库操作并将结果格式化为HTML文档这些文档被返回Web 客户端所以程序员需要了解以下知识

用于生成HTML格式文档的超文本函数和超文本过程

PL/SQL过程语言的基础

另外以下知识对于程序员也非常重要

哪些公共网关接口的变量 对于 PL/SQL应用是有效的以及如何存取它们

Web Agent如何处理参数 (本章介绍)

如何使用OWA_UTIL PL/SQL实用包 ( The WebServer Developers Toolkit中介绍)

想安装和设置Oracle Web Agent并用管理员工具维护Web Agent的系统管理员

管理员需要了解以下知识

如何创建修改和删除Web Agent服务

在哪里安装由Web Agent提供的开发工具PL/SQL包

下述信息对管理员也十分有用

Oracle Web Agent如何工作 (本章讲述)

Web Agent如何处理错误 (本章讲述)

Oracle Web Agent如何工作

Oracle Web Agent使你能用开发工具箱创建PL/SQL存储过程来存取Oracle的数据动态生成来自那些数据的HTML文档并将文档返回给客户端

下面描述一下Oracle Web Agent是如何一步一步工作的

用户从浏览器提交一个URL

用户以下列方法之一提交URL

通过从HTML页面上选择一个链接

在其浏览器的打开URL框中指定一个URL

提交HTML表格

此动作触发了一个与URL相关的GET或POST请求方法操作请求方法使用HTTP协议传给了Web Listener

Web Listener 启动了 Web Agent

Web Listener判断此URL是否与Oracle Web Agent有关(通过抽取URL的/owa部分)并调用Web Agent为与CGI标准兼容Web Listener使几个环境变量对Web Agent有效

Web Agent连接到Oracle Server

为连接到Oracle ServerWeb Agent要求一些诸如连接到哪个服务器使用什么用户名和口令等信息这些信息作为Web Agent的一部分存储在位于OWS管理目录下的文件owacfg 中Web Agent通过解析环境变量SCRIPT_NAME来决定使用哪个服务环境变量SCRIPT_NAME是由Web Listener根据CGI 说明书设定的

Web Listener从URL中/owa 前面的路径段推出这个环境变量的值例如如果/owsbin/hr/owa是URL的前边部分那么hr就是要使用的服务

有关如何设置Web Agent service的进一步的内容 请见本章后面的Web AgentService一节

PL/SQL 过程被调用

连接到数据库后Web Agent调用相应的PL/SQL过程其名字通过解析环境变量PATH_INFO获得

如果PL/SQL过程要求参数这些参数已经由Web Listener通过环境变量QUERY_STRING或标准输入(这依赖于请求方法是GET还是POST)传给了WebAgentWeb Agent将把这些参数传给PL/SQL过程

有关PATH_INFO SCRIPT_NAME和QUERY_STRING 以及Oracle Web Agent如何使用他们的内容 请见本章后面的Web Agent如何使用CGI环境变量一节

PL/SQL过程执行 生成 HTML 文档

在Developers Toolkit的帮助下PL/SQL过程从Oracle数据库中提取出数据并在PL/SQL表中生成了HTML文档

有关Developers Toolkit的内容请见第四章Oracle WebServer Developers Toolkit

Web Agent将生成的HTML文档传给Oracle Web Listener

如果PL/SQL过程成功结束Web Agent将从PL/SQL表里取出生成的HTML文档并把它发送到标准输出那里是Web Listener期望CGI应用把他们的输出发送到的地方

如果PL/SQL过程返回错误Web Agent则把程序定义的出错页面发送到标准输出

有关如何处理错误的内容请见Oracle Web Agent Error Handling一节

Web Listener把 HTML文档发送回原发出请求的浏览器

Web Listener使用HTTP将HTML文档发还浏览器浏览器并不知道请求的文档是在飞行中生成的把它象任何其他HTML一样显示在屏幕上

Web Agent服务 Service

因为人们希望单个Web Listener能够访问多个数据库或一个数据库里的多个模式Oracle Web Agent支持服务的概念我们用下面的例子描述一下服务的概念

公司A想让他们存储在Oracle数据库中的数据可以被公众通过Oracle Web Listener访问然而公司内不同部门对数据库以用户名为分割的不同部分(模式)有访问权限

所以人力资源部和财务部使用不同的用户名/口令组合来登录数据库如果他们都想用使用Oracle Web Agent的CGI应用访问他们的数据Web Agent需要使用正确的用户名/口令来登录数据库采用这种方案含有配置信息的owacfg文件中包含两个服务HR 服务和AP服务每个服务有相关的用户名/口令ORACLE_HOME参数和ORACLE_SID参数当一个来自浏览器的请求到来时Web Listener从URL中抽取出服务名并读取owacfg文件找出将使用的参数

为连接到Oracle服务器Web Agent需要在Web Agent服务中指明以下信息

username 用户名

password 口令

ORACLE_HOME

ORACLE_SID (仅对本地数据库)

SQL*Net V Service Name or Connect String (仅对远程数据库)

Administration Utility允许管理员显示创建修改或删除Web Agent服务用创建

Web Agent的表格你不需要直接修改配置文件owacfg参见 Creating or Modifying Web Agent Services

下面是一个owacfg文件中Web Agent服务项的例子每个参数有相应的解释

Developers T#

(

owa_service = es

(

owa_user = www_es

)

(

owa_password = tiger

)

(

oracle_home = /opt/oracle

)

(

oracle_sid = esprod

)

(

owa_err_page = /l

)

(

owa_valid_ports =

)

(

owa_log_dir = /opt/oracle/ows/log

)

(

owa_nls_lang = AMERICAN_AMERICAUSASCII

)

)

owa_service

Web Agent 服务的名字

owa_user

Web Agent连接数据库用的数据库用户名

owa_password

Web Agent连接数据库用的数据库口令

oracle_home

Oracle代码树在文件系统中的位置它应该是Web Agent服务连接到的数据库的ORACLE_HOME除非Web Agent设置为通过SQL*NET连接到一个远程数据库这种情况下指定Web Agent所在的ORACLE_HOMEWeb Agent总是安装在ORACLE_HOME目录或其子目录下

oracle_sid

将连接到的数据库的系统ID名连接到远程数据库时不要使用

owa_err_page

Web Agent调用的PL/SQL过程发生错误时Web Agent返回的HTML文档的路径这是个实际路径而非Web Listener配置中的那种虚拟路径

owa_valid_ports

Web Agent将服务的有效的Web Listener网络端口

owa_log_dir

Oracle Web Agent写出错文件的目录出错文件的名字为service_nameerr

owa_nls_lang

Web Agent连接的Oracle数据库的NLS_LANG若不指定Web Agent管理程序当服务执行时寻找数据库的NLS_LANG

Web Agent如何使用CGI环境变量

Web Agent使用的环境变量见表:

变量 包含

REQUEST_METHOD GET 或 POST

PATH_INFO 将调用的PL/SQL过程的名字

SCRIPT_NAME 包含登录Oracle时用的Web Agent和服务

QUERY_STRING PL/SQL过程的参数(仅对GET方法POST方法的参数通过标准输入传递

Oracle Web Agent使用的CGI 变量

下面是一个典型的URL如何被与CGI 说明书兼容的Web Listener解析的例子

子串 表明Web浏览器要用HTTP协议连接到主机的端口

当运行在上的Oracle Web Listener接收到请求子串/owsbin/nh

上一篇:oracle将数据导入指定表空间

下一篇:Oracle和SUNSolaris内核参数