Oracle'da bir tablonun bazı satırlarını okuyan ve daha sonra alınan her satır için bir web hizmetini çağıran bir Java uygulaması yaptım.
Bu işlem beklenenden daha uzun sürüyor. Saniyede yaklaşık 4 satır çalıştırılıyor, saniyede yaklaşık 50 satır beklerim.
Web servisine erişmek için dosyaları oluşturmak için wsimport aracını kullandım. Tüm süreç kütüphaneler slf4j ve Log4j ile kaydediliyor.
Tüm sürecin hızını artırmak için ne yapabilirim?
Bu durumda çok iş parçacığı yardımı olabilir mi? Satır işleme bağımsız olmasıdırWeb servisini çağırmak ve tüm süreci kaydetmek için Java kodunun hızı nasıl geliştirilir?
query = "select * from table name where to_char(DATE, 'hh24:mi:ss') >= '"+tMin+"' and to_char(DATE, 'hh24:mi:ss') < '"+tMax+"'";
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:"+connection_string);
stmt = con.createStatement();
rs = stmt.executeQuery(query);
while(rs.next()){
SomeBean n = new SomeBean();
n.setColumn1(rs.getString("Column1"));
n.setColumn2(rs.getString("Column2"));
n.setColumn3(rs.getString("Column3"));
n.setColumn4(rs.getString("Column4"));
n.setColumn5(rs.getString("Column5"));
v.add(n);
}
for(SomeBean s : v)
{
String Column1 = s.getColumn1);
String Column2 = s.getColumn2();
String Column3 = s.getColumn3();
String Column4 = s.getColumn4();
String Column5 = s.getColumn5();
someInfo1.setColumn1(Integer.parseInt(Column1));
someInfo1.setColumn2(Column2);
someInfo1.setColumn3(Column3);
someInfo2.setColumn4(Column4);
someInfo2.setColumn5(Integer.parseInt(Column5));
try
{
Result resultws = Webservice.webservice(someInfo1, someInfo2);
}
catch (Exception e)
{
//catch exception
}
}
Eğer darboğaz tanımlamak için JProfiler veya JVisualVM gibi bir profilleyici denediniz mi? –
Evet, VisualVM kullandım ama nereye bakacağımı ve bununla ilgili ne yapacağımı bilmiyorum. Bir ekran görüntüsü yayınladım. – Rodrick