>插入或删除选项,有时如果一次超过两个用户调用插入或删除查询进入睡眠模式的任何行的服务,下次有人尝试获取他无法获取的服务.根据服务器日志记录,它说错误SQL锁定状态.如果我在MYSQL中检查Processlist它在Sleep中显示该查询,我必须杀死才能恢复.
> webservice的性能似乎没有达到标记,它需要时间更多的时间,因为我所经历的不应该.简单来说,如何通过服务获得更好的性能
>如何实现安全功能,以便在用户登录时,可以为他/她提供id并验证该id,以便可以防止未经授权的访问
或者只是指导我可以使用Java最合适和最优化的Web服务方法
对此问题的回答并非针对 Android.以下是我的调查,可能对您有用.关于MySQL连接进入睡眠模式的问题,您可以执行以下操作.
>调试Hibernate使用的数据源,尝试增加池大小&检查其中的任何问题.
>定义连接的超时时间. JBoss有几个与此相关的配置,如blocking-timeout-millis,idle-timeout-minutes等.
>声明一种机制,以定期验证池中的连接资源的活动性.您可以浏览OracleStaleConnectionChecker以获取选项.
>在池中配置miniumn连接.这很重要,因为当所有陈旧的连接被丢弃时,需要预先填充空池.准备好主动连接.
即将执行插入/删除操作& SQL锁定状态,请尝试在每次请求时重新排序您向DB发送的查询序列.这可能不是死锁情况,但正确排序DB查询肯定会导致更少的锁定时间和更好的性能.
这个答案可能对您有用. Hibernate: Deadlock found when trying to obtain lock
您开发的Web服务可能需要进行一些性能优化才能使其达到标准.以下是您可以采取的最初几个步骤,以提高性能.
>避免嵌套循环.迭代欲望中的每个额外参数都以指数方式增加lopp的阶数.
>删除对象的早期初始化.这可能导致长时间不需要的GC循环.
除了上述优化之外,还有几个框架&为您服务的工具,用于评估代码质量和它的表现. PMD,FindBugs,JMeter,Java profiler是其中的一小部分.
Shishir