之前的一篇文章《业务事件之Java Rule Function》简单介绍了Java Rule Function的使用。在Oracle Workflow 2.6.x体系中,针对Function Activity的External Java也是非常有用的,同样的,也提供了接口以供编写应用程序。这两种方式,对于在应用层和异构系统交互或者处理其他一些PL/SQL无法完成的事务时,是绝对的利器。 在利用业务事件做实际应用时,根据经验,需要注意下面几点: 不要对JDBC Connection做close或release之类的操作。 Java Deferred Agent Listener一旦起来后,如果某个Java Rule Funtion中做了关闭数据库链接的操作,则会导致相应的队列(wf_java_deferred)中数据无法被处理,你甚至无法再单独重启该listener。 当然,你依然可以通过重启 Workflow Agent Listener Service 来使Java Deferred Agent Listener重新运作。 分步诊断 只有了解业务事件的整体架构后,才能更有效的找到问题真实症结所在。这里主要有三部分需要留意: 数据首先是被插入queue,此时可以使用预置文件FND: Debug Log Enabled和FND: Debug Log Level打开日志记录。Workflow用的是标准的FND_LOG包来记录日志的。 在调用Java程序时,系统首先去检查缓存,如果缓存中已经存在该对象,则不再从硬盘中读取。因而如果Java程序被调用过又有更新的话,需要重启应用才能生效。如果不重启,一些异常信息可能并不完整,比如NoClassDefFoundError,可能并不提供未找到的类名。 针对Java Deferred Agent Listener有单独的日志记录,需要进workflow manager中设置log level。诊断完毕后千万记得重新将log level设置回原先的值。Java程序中的log也会记录到这里。 标准的Log代码: private void log(String s, int i) { AppsLog appslog = [...]
Archives for March 2009
推荐:IT++技术社区
虽然拥有一个很怪异的域名,但是IT++技术社区却拥有和其他论坛不同的背景,它是一个专注于企业信息化领域的论坛,由汉得一行人维护运营,里面集中了小圈内的诸多有名号的人物,因而对于圈内人士而言,这里还是值得一逛的。 该论坛创建不久,目前看上去还主要由汉得自己人在积聚人气。论坛话题主要集中在Oracle ERP和SAP两大产品领域,也辐射涵盖了CRM、HR及相关产品和技术领域。除了数据库技术以外,这里相关版面都相对有一定闲逛价值
Oracle Fans Wiki
因为工作内容的变动和记忆力方面的一些关系,前几天翻以前的文章,发现一些知识已经生疏了。但是在工作中,却偶尔的,需要用到这些知识,而很多时候,发现这些知识只是存在于自己以前的旧纸篓里。 现在的工作有一点点的特殊性,虽然从业人员也不算少,可是在网上却几乎无法直接搜到相关的内容。很多懂的人不去写,很多写的人却又不懂,或者只是挠痒痒无法解决实际问题,于是自己知识的积累便显得相当重要。往往,Google到的解决办法,都是以往自己曾经摸索到的。没有很好的知识分享现状,可能便是目前各自孤立的原因之一。我相信很多采用Oracle ERP的公司的内部顾问们,都有类似的感受。 尝试建立一个Wiki来记录一些知识,这是为了更好的管理知识,也是为了更好的分享知识。我相信如果网络上可以很容易的找到对症的解决办法,甲方对乙方的依赖心理便可稍稍减轻一些。 目前无从下手,暂时点滴积累。 Update: 2011-10-11 不用Wiki了,个人使用Evernote更方便一些。