PL/SQL调用BIEE WebServices清理BI Server缓存
Posted lele5000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL/SQL调用BIEE WebServices清理BI Server缓存相关的知识,希望对你有一定的参考价值。
BIEE自身提供了几种缓存管理的方法,事件表或者是在物理层设置缓存的失效时间,又或者是调用SAPurgeAllCache()过程。
前两种方法都是被动的管理策略(事件表是定时轮询,失效时间是指定有效时长),比较低效;个人更中意主动的缓存管理策略。即一旦数据发生变化就主动清理缓存。
最佳的作法就是在etl结束的时候通过调用API完成缓存的清理,要实现这种方式就需要调用BI Server提供的缓存管理存储过程,BI Server提供如下缓存管理过程:
SAPurgeCacheByQuery
SAPurgeCacheByTable
SAPurgeCacheByDatabase
SAPurgeAllCache
有关ODBC过程的介绍可以参阅Oracle BIEE BI Server ODBC 存储过程指南
每个过程的用途从名称都可以看出来,现在的问题来了,怎么在程序中调用这些过程呢?
有两种方法,一种是使用jdbc连接到bi server然后调用,另一种就是本文中要介绍的通过web services的方法。
这里要用到之前介绍的BI Server Metadata Web Services,有关BIEE Web Services的介绍请参阅BIEE 11g WebService指南
在使用BI Server Metadata Web Services之前我们需要先进行一些配置,步骤如下:
注:本文基于biee 11g 11.1.1.7
1、配置数据源
为了让web services能连接到bi server,我们需要先在console中配置数据源,登录weblogic console:
http://xxxxx:port/console 点击左侧的Services,然后在新出来的页面点击Data Sources ,然后点击“New”按钮(如果按钮不可用,请先点击左上角的Lock & Edit,)选择“Generic Data Source”,如下图所示:
打开Create a New JDBC Data Source页面,分别填写如下信息:
Name : BIServer (此名称可以自定义)
JNDI name: jdbc/bi/server
Database Type:Other 然后点击Next ,Database Driver也选择为Other,继续Next;在接下来的Transaction Options 页面选择
Supports Global Transactions 及t One-Phase Commit. 然后Next
在接下来的Connection Properties 页面填写相关信息:
Database Name:随便填写,比如abc
Host Name:BI server主机名(此处可以先填localhost占位,后面我们还更改)
Port:BI Server端口
Database User Name: weblogic
Password:weblogic的密码
Confirm Password:在次重复输入weblogic的密码
填完之后Next,在Test Database Connection页面填写如下信息
Driver Class Name: oracle.bi.jdbc.AnaJdbcDriver
URL: jdbc:oraclebi://Host Name:9703/
Properties: user=weblogic
Test Table Name: SQL {call NQSGetSQLCatalogs()}
然后点击Test Configuration按钮,提示Connection test succeeded. 然后继续Next
在Select Targets 页面选择我们需要将数据源部署到哪个目标上,这里选择bi_cluster,因为web services的应用是部署在Managerd Server上的。
然后点击Finish。在接下来的Data Sources 页面点击刚才配置的BIServer数据,进入BIServer数据源的设置页面,切换到Connection Pool标签页,
将Statement Cache Size设置为0,然后点击下方的 Advanced 按钮展开高级设置,将Connection Creation Retry Frequency 设置为10,然后点击Save保存设置,
最后不要忘了点击左上角的Activate Changes激活更改。
2、配置Web Services安全策略
默认情况下,metadata services没有安全策略,谁都可以调用,当然这样不符合我们的要求,下面以添加oracle/wss_http_token_service_policy这种最基本的安全策略
为例讲解配置过程。这是一种通过HTTP传递用户名和密码完成认证的方式。
登录em,然后按下图所示操作
从Available Policies中选择oracle/wss_http_token_service_policy然后点击Attach按钮即可。
配置结束之后,我们需要测试一下Web Serives是否正常工作,这里我们采用SoapUI这款图形化软件来完成Web Services的测试。
3、利用SoapUI测试Web Services
从SoapUI官网下载开源免费版SoapUI OpenSource(https://www.soapui.org/downloads/soapui.html)并安装,然后打开程序File-New SOAP Project
填入WSDL :http://xxxxxx:port/AdminService/AdminService?WSDL 注:port与analytics应用的端口相同
点击OK,出现如下界面,然后下图所示步骤操作
点击执行之后,出现下图未认证的提示
这是因为我们对web services配置了安全策略,所以我们必须提供用户名和密码,如下图所示:
点击OK,在次执行,成功!
以上是关于PL/SQL调用BIEE WebServices清理BI Server缓存的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE PL/SQL:以最大执行时间调用外部 Oracle PL/SQL 过程
Oracle笔记4-pl/sql-分支/循环/游标/异常/存储/调用/触发器