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

本文介绍了如何通过PL/SQL调用BIEE WebServices来主动清理BI Server缓存,详细阐述了配置数据源、设置Web Services安全策略、使用SoapUI测试以及编写PL/SQL代码的过程。通过调用SAPurgeCache系列存储过程,实现高效的数据缓存管理。
最低0.47元/天 解锁文章
9870

被折叠的 条评论
为什么被折叠?



