You are browsing the archive for 2009 七月.

和老婆的雷人对话

七月 19, 2009 in 生活点滴/Enjoy Life

晚上准备和同事出去FB一下,于是通知LP一声,下面记录了雷人的对话:

:老婆,晚上我不回家吃饭了,你回家吃。

LP:你们干什么去?

:泡妞(和LP经常这样开玩笑

LP:我也去!!!

:我们去吃小肥羊,都是男同事,就不带你了

LP:原来是去泡洋妞啊。

:(我愣了一下才反应过来)我们还去泡肥洋妞呢。

同一个WebLogic服务器的两个域冲突导致session失效

七月 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。

ADF应用程序中创建和恢复保存点

七月 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 。

BIEE修改数据透视图百分比精度

七月 18, 2009 in Oracle商业智能

1.通过Answers设置精度

在BIEE的Answers中,创建数据透视图,假如使用百分比来显示分析项,默认只能精确到小数点后面一位。

biee_pivot_precession1

这个精度有时不能满足我们的需求,但是界面上并没有可以修改精度的选项。可以通过修改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按钮,回到结果

biee_pivot_precession2

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,就可以了。


															

防止Weblogic重新编译JSPX

七月 18, 2009 in Oracle 融合中间件

 

基于Oracle ADF开发的Fusion Web应用中,应用重新发布后,每个JSPX页面第一次被访问的时候都需要进行编译,导致应用发布后第一次访问页面速度与之后访问的速度差距很大,

用户无法接受这样的显示,在Weblogic应用服务器下,Oracle提供了2中解决方案来避免Weblogic重新编译JSP和JSPX。

Read the rest of this entry →