`
grandsea
  • 浏览: 54307 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
从修改一个功能点尽可能减少影响范围考虑,按模块划分比分层划分优越

Jbpm4定时器

Jbpm4的jobexecutor在开发时会出现竞争问题。场景如下 开发人员A启动了tomcat,开发人员B也启动了Tomcat,他们连接到同一个数据库使用jbpm4做开发。A启动了一个定时任务,调用了在项目中添加了新的代码,待定时器到时间后被B优先获得这个定时器并锁定,执行时必然出错,因为没有找到调用的代码。 在人员多的时候情况更加严重。会造成定时器不起作用或者偶尔起作用的假象。
将源代码或者类源代码放置在数据库或者其他无法被版本管理工具管理的地方是悲剧的开始。例如在线的流程设计。 源代码应该是人工可读的未经过编译的。
异常现象总结 1.  NumberFormatException之前大多出现在压力测试接近结束的时候,这时候是最有可能出现待办任务没有的时候。 2.  数据库操作出现大量异常,spring报Transaction rolled back because it has been marked as rollback-only,可能就是事务嵌套造成的原因。因为里面的事务已经标记事务必须回滚而外部事务还尝试提交。 3.  当出现大量事务rollback异常后,会有很多线程被阻止在需要启用事务的方法上,比如控制层调用一个服务层的方法,但始终进步了这个方法体内,一直到OutOfMemory。初步分析 ...
现在有个系统在做压力测试的时候出现OutOfmemory异常。期间有很多相同的 Transaction rolled back because it has been marked as rollback-only。 这个OutOfMemory异常的位置在springMvc层调用service层的方法的时候,而且异常不是从service里面跑出,就在service的调用时抛出,初步猜想是在进入这个方法是spring要初始化一些环境的时候出问题了。   之前也出现过类似的进不了service方法的异常,当时是给dao层得find方法额外配置了Propagation_requireNew引起的 ...
扩展周期的session和自动版本化 核心概念:长会话、数据合并、版本检测。 核心实现:session断开连接和重新连接、持久化对象知道其是由哪个session加载的。 通常Session上设置FlushModel.NEVER,在最后一次提交的时候调用flush和close真正将这个session中从头到尾的修改发送到数据库,中间步骤只调用transaction.commit()。   现在hibernate在打开事务时会自动重连。 设置了FlushModel.NEVER如果不调用session.flush()所作的操作不会提交? 其他:这个session不能保存在https ...
公司自己写了一个框架来管理事务,因为需要处理和hibernate一起时的事务问题。通过阅读hibernate的资料和源码,找到了一下几个思路。 1、参考hibernate的jta事务托管方式,定制ConnectionProvider和TransactionFactory,在ConnectionProvider中提供我们的数据库连接,TransactionFactory中定制我们的事务提交。后来发觉我们的事务用spring管理,而公司的框架和spring之间间隙较大,不好配置事务切面。 第二个方案否决,OpenSessionInView是延迟关闭,不是延迟提交 2、参考openSessionI ...

字段命名

对于外键的命名,建议不要加Id两字,因为外键本来就是id,何必徒增字段长度
错误现象: 想研究下guice的源码,下来后发现要用mvn3,mvn3下运行 mvn eclipse:eclipse包错,意思是找不到guice顶层的pom文件。 解决思路及方法: 联想到公司mvn 的管理人员说mvn3寻找间接依赖是搜索本地库中的pom文件,运行mvn install 再运行 mvn eclipse:eclipse 一切ok 问题根源: maven3依赖查找和maven2有所不同,特别是对间接依赖的查找是以本地库中的pom为准。
Unable to locate the Javac Compiler in:   C:\Program Files\Java\jre1.5.0_07\..\lib\tools.jar 如果在jdk中没有lib目录而只有jre目录,那么说明只安装了jre而没有安装jdk

速度与价值

如果时间最具价值,快速实现和使用或许是最有价值的

修改环境变量

方法一:修改全局环境变量/etc/environment sudo vi /etc/evnvironment 添加 M2_HOME="/home/user/.." 添加 PATH="$PATH:$M2_HOME/bin" 保存文件 运行 source /etc/environment 方法二:修改全局环境变量 /etc/profile sudo vi /etc/profile export M2_HOME="/home/user/.." export PATH="$M2_HOME/bin:$PATH" 保存 方法 ...
SimpleTraceInterceptor transaction的propagation context:companent-scan lookup-method lookup-method将spring的一个bean作为方法的返回值,重写了这个方法,在类里面这个方法可以使abstract的。通常返回的bean的scope不是singleton的,可能是带了状态的。 springmvc里面的配置可能会覆盖基础里面的配置,尤其注意context:companent-scan不要重叠了。所以一直的命名规范是很重要的。
基本使用 http://www.blogjava.net/AstroQi/archive/2008/06/26/210781.html 连接外部网络 http://www.5dmail.net/html/2006-10-19/20061019232143.htm
功能点引入的背景、原因或则作用。 如何到达这个功能。 这个功能的出口。 这个功能可以做哪些事情。 输入有什么限制。 输入有什么效果。 输出有什么特点。
Global site tag (gtag.js) - Google Analytics