开发运维经验总结
- DBAdapter在Insert记录时,所选的Sequence是不可靠的。
- 使用while循环时,索引从1开始,不是0。
- While中循环条件设置:指向’…Collection/ObjectT[$i]’!=’null’。
- DBAdapter的命名直接取表名(对象名)即可。Invoke时可指定操作。
- DBAdapter可同时支持Select/update/merge/delete等操作,通常返回集合,在selectByKey时返回单个对象
- While的分支条件命名可以有空格,而Assign却不行。
- 在SOA运行时遇到死循环时,会以找不到对象的异常结束。
- 找不到对象的异常,不止在死循环时出现
- SOA消耗资源较大,应部署在独立的Server上,与BPM同时使用时内存最好大于15G
- 单独搭建一套实验环境,以防触发bug
- 同步/异步方法,可在Insert BPEL Process时指定
- SOA可以做多个数据库间的数据迁移,可实现单表对多表,字段转换,内容转换等操作。
- SOA做数据迁移,可避免建大量临时表,避免DBLink
- DBAdapter的JNDI name在weblogic console——>部署àDBAdapter—>出站连接上配置,首次配置时需要指定一个Plan.xml(部署计划)。
- 集群环境需要手动同步Plan.xml
- Assign在赋值时,即使from的collection中只有一个记录,也要指定[1]
- Update时,需要指定To的id,以确认更新的是哪条记录
- Assign的append操作不可用于String
- DBAdapter尽量使用Import Table,防止Assign时找不到schema
- 修改DBAdapter后需要重启SOA Server
- 如果使用DBProvider做Authencitator,确保可访问到weblogic用户,且处于Administrator组
- SOA服务的加载,是在SOA启动后(Server处于Running状态)逐个加载的。
- 当部署了较多SOA服务后(如50个),SOA Server的启动大概需要10分钟,加载服务10分钟。
- 切勿在服务未完全加载成功后在控制台操作SOA,会触发bug导致所有SOA无法启动,可打补丁解决。
- Oracle Support派来的人最大的优势不是更熟悉产品,而是他们有源码,可以用debug的方式查找问题。
--by http://muhongdi.blog.163.com