一、数据源迁移:
①数据源配置在web容器还是在项目本身?
根据开发与生产分离原则选择配置到web容器,以免开发泄露数据库密码。
②数据库密码加密
原先was的数据源直接在console控制,密码是密文,较安全。改为tomcat正常的话是以明文配置,需改为密文。方案有两个:一是继承连接池工厂类BasicDataSourceFactory并重写一些方法;二是直接修改BasicDataSourceFactory源码。选择第一种方式。
新增一个jar包datasource.jar,与uppapi.jar一起部署到%tomcat%/lib下。
二、程序迁移
①为保持项目目录结构不改变,直接把JavaSource指为源码目录替代src,web根目录使用WebContent替代WebRoot。
②删除引入的ibm相关jar包的类。
③编译器时jdk版本要与原来版本一致。
④使用到jmx的基本全部要重新开发,因为tomcat基于jmx的扩展与was完全不同。
⑤使用了ibm的jsse用于ssl/tls安全通信的应改为sun的jsse。
⑥使用了ibm的jce的某些加密算法的比较麻烦,例如des,因为sun与ibm中key生产不同导致最后解密失败,做接口系统的应该尽可能不让销售系统改动密钥及jar包升级,不然会被他们叼死,所以要做的是把sun的jce的provider改用ibm的provider;
(1)关键的两行程序:
java.security.Security.addProvider(new com.ibm.crypto.provider.IBMJCE());
KeyGenerator kg = KeyGenerator.getInstance("DES","IBMJCE");
(2)java.security文件:security.provider.1=com.ibm.crypto.provider.IBMJCE
(3)%java%\lib\ext导入ibmjceprovider.jar、ibmpkcs.jar包
(4)security出口限制:%java%\lib\security替换local_policy.jar、US_export_policy.jar
⑦修改的配置文件及目录,并且要让配置人员同步程序库。
⑧根据tomcat加载class优先级可通过在WEB-INF/classes新建类替代原先jar包的类,以保持不改动jar包,类加载器优先加载web-inf/classes下的类。
三、参数设置
根据was生产数据配置tomcat参数。包括https配置。
四、Apache
ihs换为Apache,tomcat集群采用mod_jk模式,session共享。
五、一些性能参数收集
对一些数据采样,方便后期性能优化,TPS、吞吐量、并发量、事务响应时间、请求响应时间、cpu、磁盘、Avg Rps、成功请求、失败请求、数据库连接数、数据库响应时间、请求排队队列、线程池数据、持久连接、JVM各种参数、流量统计、apache吞吐率、并发连接数。