为了提高性能,让服务器一启动时就把数据库的数据一次加载到内存“有点像内存数据库”(本人已通过数组和hashmap实现),我已实现了在java web条件下通过一个jsp页面插入一条记录,另一个jsp页面把它读出来,但是通过一个jsp页面插入一条记录再通过java application就读不到这条记录,我估计是java应用程序服务器跟web程序服务器的差别,它们是独立的两个进程。公司原来有一个java application和一个web 程序,要是都改成web形式那成本很高,望大虾们能提供一个可用的解决方案,能让这两个不同方式系统可共用同一个内存。或是提供其它可用的解决方案。
我感觉到不理解的是楼主说“ava web条件下通过一个jsp页面插入一条记录,另一个jsp页面把它读出来,但是通过一个jsp页面插入一条记录再通过java application就读不到这条记录”。如果是访问同样的库,没出错应该不会这样。
最终的目的,就是web page修改数据库后,使用同样数据的application能够知道。据我所知,这样的问题在ASP平台上可以通过COM技术实现。但不知道Java平台上有没有类似的技术。还望高手指教。
不过我想可以通过Socket实现。jsp修改数据库以后,通过Socket给application发一个修改消息。
也可以通过application定时轮询数据库完成。不过这样做以后,就不是“实时”的了,延迟最长为“轮询间隔+一次轮询操作的时间开销+轮询后数据处理时间”。
我公司是门户网站,后台服务器已经很强大了。不过身为门户网站对性能的要求实在是很高。要是没有把这个问题解决掉,公司在性能方面就没有前景。实在没法子也只能把原来的java
application改掉了,不过最理想还是不改。因为那样就要花大量精力和大量时间,整个后台都要改。
根据系统性能调整合适的轮询时间
同时也可以当作内存的backup,以至于掉电后不丢所有的数据
你的application应该是不需要时间性能要求很高的
所以可以考虑一定的轮询时间牺牲