我的spring/hibernate web应用程序有以下问题。在我的开发环境中,get请求需要+-1秒钟(web服务器是Tomcat8.5)。当我在生产服务器(deploying.war文件)上部署我的web应用程序并且我对同一个页面执行get请求时,需要+-4秒。。
在后端,我对mssql执行hibernate请求,并将所有请求推送到jsp页面。
我不知道为什么生产环境会耽搁这么久。。所以现在是我的问题。。有人能告诉我搜索的方向吗?
我看了服务器的规格,这些都很好。运行在4%内存上的cpu也只占用了20%的内存。生产服务器和数据库之间没有防火墙或防病毒
休眠配置
Configuration cfg = new Configuration();
cfg.getProperties().setProperty("hibernate.connection.driver_class", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
cfg.getProperties().setProperty("hibernate.c3p0.min_size", "5");
cfg.getProperties().setProperty("hibernate.c3p0.max_size", "20");
cfg.getProperties().setProperty("hibernate.c3p0.timeout", "3000");
cfg.getProperties().setProperty("hibernate.c3p0.max_statements", "150");
cfg.getProperties().setProperty("hibernate.c3p0.idle_test_period", "3000");
cfg.getProperties().setProperty("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");
cfg.getProperties().setProperty("hibernate.show_sql", "true");
cfg.getProperties().setProperty("hibernate.current_session_context_class", "thread");
cfg.getProperties().setProperty("hibernate.connection.username", "sa");
cfg.getProperties().setProperty("hibernate.connection.password", "test");
cfg.getProperties().setProperty("hibernate.generate_statistics", "true");
cfg.getProperties().setProperty("hibernate.connection.url", "jdbc:sqlserver://10.13.1.84\\GSQLVS03;databaseName=toolboxdb;instanceName=WHD");
cfg.addAnnotatedClass(FunctionClasses.class);
cfg.addAnnotatedClass(ApplicationClasses.class);
cfg.addAnnotatedClass(AssetType.class);
cfg.addAnnotatedClass(Assets.class);
cfg.addAnnotatedClass(AssetFamily.class);
factory = cfg.buildSessionFactory();
代码获取请求
@GetMapping("/getAssets")
public String getAssets(Model theModel) {
Assets a = new Assets();
List<Assets> theAssets = new ArrayList<>();
List<AssetType> theAssetsType = new ArrayList<>();
List<AssetFamily> theAssetFamily = new ArrayList<>();
List<ApplicationClasses> theApplicationClasses = new ArrayList<>();
List<String> sizeFunctionClasses = new ArrayList<>();
List<String> sizeChildAssets = new ArrayList<>();
SessionFactory factory = a.factory();
Session session = factory.getCurrentSession();
try {
session.beginTransaction();
theAssets = session.createQuery("from Assets").getResultList();
for(int i = 0; i < theAssets.size(); i++){
if(theAssets.get(i).getFunctionClasses().size() == 0){
sizeFunctionClasses.add("0");
}
else{
sizeFunctionClasses.add("1");
}
if(theAssets.get(i).getChildAssets().size() == 0){
sizeChildAssets.add("0");
}
else{
sizeChildAssets.add("1");
}
}
theAssetsType = session.createQuery("from AssetType ").getResultList();
theApplicationClasses = session.createQuery("from ApplicationClasses ").getResultList();
theAssetFamily = session.createQuery("from AssetFamily ").getResultList();
session.getTransaction().commit();
} finally {
session.close();
factory.close();
}
theModel.addAttribute("assets", theAssets).addAttribute("assetTypes", theAssetsType).addAttribute("assetFamily", theAssetFamily)
.addAttribute("applicatieGroepen", theApplicationClasses).addAttribute("sizeFunctionClasses",sizeFunctionClasses).addAttribute("sizeChildAssets",sizeChildAssets);
return "list-assets";
}
暂无答案!
目前还没有任何答案,快来回答吧!