현재 내가하고있는 작업은 타임 스탬프 및 기타 매개 변수가있는 GPS 데이터를 원격 MSSQL 데이터베이스로 보냅니다. 처음에는 ksoap2를 통해 SOAP WebService로 보냈습니다. 엄청난 오버 헤드 때문에 대안을 찾은 다음 JTDS를 통해 데이터 전송을 구현하여 직접 삽입했습니다. 두 메서드를 모두 성공적으로 구현 한 후에 비교를 시작했습니다. 어느 것이 더 많은 트래픽을 유발하는지 알아 내려고 노력했습니다. 네트워크 트래픽을 분석 한 결과 놀랍게도 SOAP은 JTDS보다 저렴했습니다. 이 이상하지 않니? 동일한 데이터를 보냈습니다. JTDS 1.2.7 드라이버를 사용하고 있습니다. ksoap으로 인해 ca가 발생합니다. 1.8 kByte 트래픽 및 비교를 위해 JTDS는 ca. 2.1 kByte.Android : SOAP 및 JTDS 오버 헤드
누구나 동일한 경험을하거나 나에게 무엇을 바꿀 수 있는지 말할 수 있습니까?
het the JTDS code. 어쩌면 누군가가 트래픽의 원인이 무엇을 말해 줄 수 :
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String connString = "jdbc:jtds:sqlserver://192.XXX.X.XX/xxxx;encrypt=false;user=XX;password=XX;instance=SQLEXPRESS;";
conn = DriverManager.getConnection(connString);
} catch (Exception ex){
ex.printStackTrace();
}
try {
Log.w("Connection", "open");
CallableStatement cs = conn.prepareCall("{ call SetGPS(?, ?, ?, ?, ?, ?, ?)}");
cs.setString(2, latitude);
cs.setString(3, longitude);
cs.setInt(4, ID);
cs.setString(5, timestamp);
cs.setString(6, IMEI);
cs.setInt(7, userID);
cs.registerOutParameter(1, Types.VARCHAR);
cs.execute();
String response = cs.getString(1);
Log.i("GPS Response:", response);
conn.close();
} catch (Exception ex){
ex.printStackTrace();
}