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,在次执行,成功!