Oracle BAM监控程序中,其中有一个报表功能需要做状态显示,即通常在weblogic中可以看到饼图表示服务器的Up和Down.红色代表服务器Down,绿色代表服务器Up.项目中也有类似的需求,因此也采用了饼图实现.初步实现时,一切都正常,但是发布到生产环境后,客户说服务器的状态是正常的,但是饼图显示不正常.如下图:
按照原来的设计,全部都是正常数,按理饼状图应该显示为绿色,但实际却相反.
花了半天时间,终于重现了问题:
创建Test数据对象,该对象仅包含两个字段:ID和Value
预测的结果为:
Value的值仅有1和-1,当Value为1时,显示绿色,为-1时显示红色.
测试1:
1) 定义主题:
在DO中System文件夹下定义主题
2)应用主题,虽然只定义了两个color,系统默认会将后面的color补齐
3)当所有服务器的数据Value为1时,如下图
4)将所有的Value值变成-1,如下图,此时图显示是正常的:
5)将ID为Test的Value设置为1,变化如下图,,此时显示也是正常的:
6) 将ID为Test的Value设置为-1,如下图:
7) 将任意ID的值设置为1,此时pie图显示异常:
这是将所有Value为-1的设置为1,但是pie图已经显示异常了,即,数据正常,但是因为pie的原因,显示不正确。
结论:由于Oracle BAM的pie图颜色不可控,没有办法用制定颜色表示指定状态。
测试2:
主题:6个不同的color
测试步骤如下:
1) 当所有的服务器都是正常,Value为1时,如下图:
1) 当Test变成-1时,如下图:
3) 当Test的Value变成1时,显示正常
4) 当任意Value再次变成-1后,按照预测,pie图应该出现1个红色块,实际上出现了其它颜色的块,此处为Test主题的第三个color
结论:Oracle BAM中的pie图的颜色变化随着group by字段的值变化而变化,当group by的组少于主题指定的color时,每个组发生完全变化时,Pie的颜色会依次跟随color1~color7的次序发生变化,因此Pie图在BAM这里暂时还不能很好的用于展示Server状态,实在可惜。
这个人遇到的问题跟我的一样,从答复上看来,好像也是不能实现固定颜色的.
https://forums.oracle.com/forums/thread.jspa?messageID=4311979