- 博客(18)
- 资源 (5)
- 收藏
- 关注
原创 Agile PLM: 批量快速删除Multlist重复值
文章主题Agile PLM在升级过程中,常常可能会出现MultiList出现重复值的情况,本人介绍最直观的分析方法和批量去重复值的函数加以快速解决。比如如下截图,TESTPART001的PageTwo页上的CM Access栏位出现多个重复值,且不止一个值。分析解决由于这个栏位定义在PageTwo上,因此需要在数据库中先查找对应的表和字段。查看JavaClient中
2012-10-30 15:15:36 1050
原创 MFC&CPlus: 在MFC中给程序注册热键
本文内容【本文源于一个实际项目应用,写于2009年,因网上有太多地址在引用本文,故重新贴出,供学习交流。】给程序注册一个热键相当简单,只需要调用Windows的API RegisterHotKey以及UnregisterHotKey即可,然后再创建一个函数来处理基于WM_HOTKEY的消息映像。API原型MSDN查看RegisterHotKey:BOOL RegisterHot
2012-10-09 22:02:45 1034 1
原创 Agile PLM: Agile PLM 9.3.1.2主程序升级失败的一个案例
文章主题有一客户,9.3.1.2升级database已经成功,当升级Application主程序时,一直报“patch_install_log.properties doesn't exist”错误。错误提示错误提示Patch-Installer.xml的482行有个Replace方法的错误。查看该行:patch_install_log.properties在此
2012-10-02 13:36:43 1188
原创 Agile PLM: 获取Agile PLM服务的Heap Dump
文章主题本文详细介绍如何使用jmap获取Agile PLM运行时的Java Heap Dump信息。-XX:+HeapDumpOnOutOfMemoryError强烈建议将-XX:+HeapDumpOnOutOfMemoryError 添加到jvm参数中,确保一旦内存溢出自动产生heap dump log。使用此参数,确保jdk使用的是 1.5.0_17以上版本Or
2012-10-02 13:29:44 957
原创 Agile PLM: 如何获取Agile PLM服务的Thread Dump
文章主题本文详细介绍如何获取Agile PLM运行时的Java Thread Dump信息。由于Thread Dump只是描述java线程瞬间的数据,因此在重现问题过程中,按照一定频率确保捕获3次以上的Thread Dump。Oracle WebLogic ServerWindows平台Weblogic前台运行方式编辑startAgile.cmd(或者集群下
2012-10-02 13:24:36 1146
原创 Agile PLM: 案例分析,9.3.0.2中无法创建创建新的Change
问题描述用户在使用了ACP做admin数据导入之后,在Web Client上创建某个subclass级别的Change,出现“Unable to save your changes. You have one error.”错误。 检查Server log,没有任何异常。只能通过Java Client的Java控制台输出必要的error,发现如下错误。java.lang.NullPoi
2012-10-02 13:20:17 1213
原创 Agile PLM: 9.3.0.2中MultiList attribute for User list的显示逻辑分析
本文内容在Agile PLM 9.3.0.2环境中,有用户反馈,自定义的MultiList for User在打开的时候有的用户能看到用户组,有的用户看不到,而有的用户看到的用户组还会动态的增加,而用户手册完全没有提到这个,因此怀疑是否agile的设计缺陷。本文通过一定的分析过程来揭示其中的来龙去脉。问题描述先看下面的两张图。第一个用户看不到下拉列表中有任何用户组可供选择。第二
2012-10-02 13:15:33 991
原创 Agile PLM: PPM的甘特图无法编辑Project属性
问题描述某客户的Agile PLM从早期的9.2版本升级到9.3.1版本之后,发现即使给用户分配了足够的权限,在Project用Gantt Chart打开后,无法编辑任何栏位。分析从现象上来看,属于权限分配问题,但即使重新分配权限,问题依旧。因此我们打开Java控制台,重新加载一次甘特图,获取错误如下。Exception in thread "AWT-EventQueue-
2012-10-02 13:11:40 1613
原创 Agile PLM: 9.3.0.2中ACS错误:Cannot move to Complete
问题描述在用户的ACS模块中,由于系统升级9.3.0.2导致ACS出现故障。ATO的历史记录错误显示为“Destination failed during an earlier extraction”,而系统log中却显示"Cannot move to Complete"错误。分析查看系统log,找出对应的错误如下。 Caught the following except
2012-10-02 13:06:01 1311
原创 Agile PLM: 启动时匪夷所思的的Node (18387 , 2490533) does not exist in the cache
问题描述Agile管理员配置一个Gate SubClass(ID为18401)级别的Page Three属性,ID为2490533,业务操作均无问题。偶然的一次重启服务后出现Node (18387 , 2490533) does not exist in the cache.然而并且2490533并不属于18387。本文从错误提示着手分析,到数据库中数据验证,最后到代码查看,提供了一个完整缜密
2012-10-02 12:59:18 1294
原创 PPM Object中对于Delegated Owner的错误图标指示问题
问题描述在用户的PPM模块中,很多PPM的object没有Delegated Owner,而General Info和Team标签依旧显示相应的图标表示存在Delegated Owner。分析在一个PPM对象中,当设置了Delegated Owner且对方还没有accept时,General Info的标签页会有一个小黑圆点,且Team标签有一个小红圆点,均指示当前对象存在一个没有
2012-10-02 12:53:55 995
原创 BOM添加Item的UpdateTable事件与性能分析
问题描述客户在为BOM添加Item过程中自定义了一个UpdateTable Event事件,该事件需要对新加入的Item修改某些属性值,但发现每次添加一个Item,耗费好几秒才能完成,其中某一次性加入10个Item,共耗时40秒,性能极差。分析Agile PLM 9.3版本中为SDK开发引入了Event事件机制,可以让用户对具体的操作进行基于Java或Groovy的自定义的二次开发,大
2012-10-02 12:45:38 1136
原创 IBM AIX平台的通用保护错误Thread Dump案例分析
问题描述某客户Oracle Agile PLM的集群服务器中的一个节点突然crash掉,在javacore(Thread Dump)中记录了GPF错误。问题分析系统环境如下:OS: AIX 5.3 64bitMiddleware: Weblogic 10.3.0.0JDK: IBM JDK pap6460sr5-20090529_04 (SR5)App: A
2012-10-02 11:53:48 2115
原创 IBM JDK6 SR2的Java Reflection在AIX平台的缺陷发现
问题描述华为Oracle Agile PLM运行过程中的一个严重平台问题。IBM JDK SR2在AIX 5.3 64位操作系统无法实现Java Reflection,由Jerry Chan在华为PLM故障(无法触发Inbox Notification)的系统分析中率先发现,Oracle开发团队直到6个月后才确认。问题背景Agile PLM的Inbox Notification能使
2012-10-02 11:50:03 1079
原创 Interpreter 解释器模式
模式定义给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 该模式比较复杂,且不常用。使用方法文法的定义一般由需求而决定。解释器即根据文法定义来设计。使用方法不具备通用性。使用范围* 需要自定义一个语言,由解释器来翻译文法。举例说明回忆在大学中学到的数学方面的逆波兰式,它遵循数学的运算法则。假设现在有一个逆波兰式
2012-10-02 11:10:51 603
原创 Proxy 代理模式
模式定义当客户类因为不适合、性能限制或者权限问题而无法(或性能较差)访问一种对象的时候,提供一种代理的机制,由代理来完成客户类的一系列请求。改代理能比较好地直接访问该对象。使用方法Proxy替Client来完成对RealSubject的直接访问。使用范围代理使用的范围比较多,如:远程代理,适合远距离的对象传输或不在同一个地址空间内而比较耗时的对象访问
2012-10-02 11:07:13 604
原创 Facade 外观模式
模式定义随着系统越来越复杂庞大,定义的类及其衍生的子类也会越来越多,系统的重用性也得到了加强。然而对于一些简单客户端来讲,过于复杂的子系统只会增加对他们的强耦合,一旦子系统变动,所有的客户端也必须跟着改动。外观模式在一定程度上解决了这个问题。它把客户端需要实现的功能包裹起来,客户端只需要访问它这么一个外观,无须窥探内部细节。而子系统的变动,只会影响外观模式本身做少量的变动。外观模式属于技巧性比
2012-10-02 11:02:43 628
原创 Decorator 装饰者模式
模式定义面向对象的其中一个重要概念就是继承。通过子类继承父类来扩充父类不具备的属性与方法,这个过程是在编译期完成的。假设我们现在需要一个不一样的功能,动态地扩充父类的方法,或者扩充其中一个子类的方法,或者组合各个子类的方法实现一个完整的功能,如果用继承的方式来实现,势必需要大量的不确定的定义类。因此可以采用装修者的模式在运行阶段动态的定义类。使用范围动态地扩充子类的功能
2012-10-02 10:57:31 605
Woodpecker for Oracle
2011-09-04
设计模式详解+Java源代码演示
2010-10-23
ZigzagClock 世界时钟软件
2008-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人