Hi,
We have a Rich Client Application running on a remote Weblogic 9.2 server. Recently we noticed some sort of slowness on the first invocation of a command from the client. The first instance was taking somewhere around 55 seconds for the serializable data transfer between server and client.While the same Object being transferred took 2 seconds on second command invocation.When debugged, the serialized size of the object was around 25 kb.When debugged , we saw that the object graph contained lazy initialized proxy objects and the same was present on the client too.
We changed the object to remove the proxy objects and that solved the problem. The first command invocation took 2 seconds same as the subsequent calls.
For Further analysis,We looked at the Network Packets between the server and the client - noticed that the first command invocation transferred data around 1 MB (though object size was 25 kb) while second invocation transferred 25 kb.The network packets showed some cglib related classes transferred from the server.
I am not sure, why the data transfer on the network layer was huge and cglib classes- and also the subsequent caching mechanism which helps the second command to complete in 2 seconds.Does anyone has any idea on this slowness and caching? Is it something to do with RMI?
|