熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle webserver中文介紹-第三章

2013-11-13 22:18:13  來源: Oracle 

  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
From:http://tw.wingwit.com/Article/program/Oracle/201311/18724.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.