和老婆的雷人对话
七月 19, 2009 in 生活点滴/Enjoy Life
晚上准备和同事出去FB一下,于是通知LP一声,下面记录了雷人的对话:
我:老婆,晚上我不回家吃饭了,你回家吃。
LP:你们干什么去?
我:泡妞(和LP经常这样开玩笑)
LP:我也去!!!
我:我们去吃小肥羊,都是男同事,就不带你了
LP:原来是去泡洋妞啊。
我:(我愣了一下才反应过来)我们还去泡肥洋妞呢。
七月 19, 2009 in 生活点滴/Enjoy Life
晚上准备和同事出去FB一下,于是通知LP一声,下面记录了雷人的对话:
我:老婆,晚上我不回家吃饭了,你回家吃。
LP:你们干什么去?
我:泡妞(和LP经常这样开玩笑)
LP:我也去!!!
我:我们去吃小肥羊,都是男同事,就不带你了
LP:原来是去泡洋妞啊。
我:(我愣了一下才反应过来)我们还去泡肥洋妞呢。
七月 19, 2009 in Oracle 融合中间件
在将LWAP开发的应用迁移为Oracle ADF来开发的过程中,LWAP和ADF应用都部署在同一个Weblogic服务器的两个Domain下,
当在IE中首先访问ADF应用,然后再另外一个标签页中访问LWAP应用,就会发现ADF应用出现问题,就会发现session丢失。
问题是由于客户端访问ADF应用时,对应的Weblogic域会保留一个名为JSessionId的Cookie,记录ADF域的信息,JSessionId为
Weblogic cookie-name的默认值,而当再次访问LWAP时,客户端Cookie中的JSessionId的值被LWAP的域修改了,此时再次访问
之前的ADF应用就会导致Session丢失。
网上可以找到关于这个问题的解决方案:
1,设置web应用的Cookie名称,让它们拥有不同的JSessionId
在LWAP和ADF的weblogic.xml文件添加如下属性
<session-descriptor>
<session-param>
<param-name>CookieName</param-name>
<param-value>HADFCookie</param-value>
</session-param>
</session-descriptor>
2,一个应用使用IP来访问,另外一个应用使用域名来访问
本文解决方案由HADF小组提供,特别感谢kent2066。
七月 18, 2009 in Oracle 融合中间件
在Oracle Fusion Web应用开发中,如果采用Task Flow来进行应用流的控制,默认只要创建一个task flow就是一个新的事物开始,
如果在流中需要回滚,只需要添加一个restoreSavepoint活动就可以实现事物的回滚,但如果需要在程序中实现保存点的创建和回滚,使用下面的代码:
1、创建保存点
1 2 3 4 | DCBindingContainer binding = ADFUtils.getDCBindingContainer(); DCDataControl dcDataControl = binding.getDataControl(); String sph = (String) dcDataControl.createSavepoint(); JSFUtils.setExpressionValue("#{pageFlowScope.AdfmSavePoint}",sph); |
创建保存点时,ADF将AM中的对象实例序列化保存到PS_TXN表中,因此如果AM中包括了太多的对象,那创建保存点时就会有太多的信息保存到后台表,
意味着AM粒度的划分直接影响 到保存点的创建。关于相关的详细信息可以查看OTN的技术文章Overview of Temporary Tables Created By BC4J
2、恢复保存点
1 2 3 4 | String sph = (String)JSFUtils.resolveExpression("#{pageFlowScope.AdfmSavePoint}"); DCBindingContainer binding = ADFUtils.getDCBindingContainer(); DCDataControl dcDataControl = binding.getDataControl(); dcDataControl.restoreSavepoint(sph); |
本文解决方案由HADF小组提供,特别感谢kent2066 。
七月 18, 2009 in Oracle商业智能
1.通过Answers设置精度
在BIEE的Answers中,创建数据透视图,假如使用百分比来显示分析项,默认只能精确到小数点后面一位。
这个精度有时不能满足我们的需求,但是界面上并没有可以修改精度的选项。可以通过修改XML的代码来指定特定的精度。在Answers中切换到高级Tab页,在请求XML的代码中,找到对应百分比列的代码:
<saw:columnHeading>
<saw:displayFormat/>
<saw:caption>
<saw:text>Amount Sold %</saw:text></saw:caption></saw:columnHeading>
<saw:showAs type=”percentOfAxis” axis=”row”>
<saw:displayFormat>
<saw:dataFormat xsi:type=”saw:percent” minDigits=”1″ maxDigits=”1″ scale=”2″/>
</saw:displayFormat>
</saw:showAs>
默认的minDigits和maxDigits都是1,修改成2就是两位小数,点击设置XML按钮,回到结果
2.通过修改后台JS文件设置精度
如果想要彻底修改数据透视图,可以通过修改后台的jsp实现,本例中,对应的js文件在
{OracleBI}\oc4j_bi\j2ee\home\applications\analytics\analytics\res\b_mozilla\views\pivotvieweditor.js
找到方法function PTCreatePercentOf
if(!bIndexOf)
{
XUISetXsiType(tDF, saw.xml.kSawNamespace, ‘percent’);
// alter by alther.cai 2009-7-18
tDF.setAttribute(‘minDigits’,’2′);
tDF.setAttribute(‘maxDigits’,’2′);
tDF.setAttribute(‘scale’, ’2′);
tCF.appendChild(tDF);
} else{
XUISetXsiType(tDF, saw.xml.kSawNamespace, ‘number’);
tDF.setAttribute(‘minDigits’,’2′);
tDF.setAttribute(‘maxDigits’,’2′);
tCF.appendChild(tDF);
}
红色部分的minDigits和MaxDigits默认是1,这里将其修改为2,重启Oracle BI Presentation Server和Java Host服务,重启OC4J,就可以了。
七月 18, 2009 in Oracle 融合中间件
基于Oracle ADF开发的Fusion Web应用中,应用重新发布后,每个JSPX页面第一次被访问的时候都需要进行编译,导致应用发布后第一次访问页面速度与之后访问的速度差距很大,
用户无法接受这样的显示,在Weblogic应用服务器下,Oracle提供了2中解决方案来避免Weblogic重新编译JSP和JSPX。