I am working on a computer based application. In this application, there are many containers that communicate each other through RMI services that they provide to each other. At an assurance point, the connection to my container is lost due to an outgoing memory thread error, but all other RMI threads connected to my container are working properly.
Error stack tarrose here:
send exception call [655d565c: 11f1d5dbae2: -7ffb, -3259564578052694518] In the formula "RMI TCP Connection (21) -132.186. 96.179 "on Wed Jan 28 18:50:37 GMT + 05: 30 2009: java.lang.OutOfMemoryError: java.lang.reflect.Array.newArray (on java.lang.reflect.Array.newInstance on java.io.ObjectInputStream Native method) (unknown source) Java heap space KreadArray (unknown source) (JavakiokObjectInputStreamkreadObject0 on java.io.ObjectInputStream.defaultReadFields on java.io.ObjectInputStream.readSerialData on java.io.ObjectInputStream.readOrdinaryObject Unknown source) (unknown source) (unknown source) (unknown The source) (unknown source java.io.ObjectInputStream.readObject0) elds (Unknown Source java.io.ObjectInputStream.defaultReadFi) java.io.ObjectInputStream on java.io.ObjectInputStream.readObject0 on java.io.ObjectInputStream.readObject. JavakiokObjectInputStreamkreadSerialData (unknown source readOrdinaryObject) sun.rmi.server.UnicastRef.unmarshalValue (unknown source on (unknown source) (source unknown) (unknown source)) on sun.rmi.server.UnicastServerRef.dispatch (unknown source) sun.rmi.transport.Transport $ 1.run sun.rmi.transport (unknown source) .AccessController.doPrivileged (Native method sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler on java.security). Tcp.TCPTransport.handleMessages at sun.rmi.tr sun.rmi on AnsportkTransportkserviceCall (Unknown Source) (Unknown Source) at Krun0 (Unknown Source) java.util.concurrent.ThreadPoolExecutor $ WorkerkrunTask (unknown source java.util.concurrent.ThreadPoolExecutor $ workers). Transport.tcp.TCPTransport $ ConnectionHandler.run (unknown source) at Java.lang.Thread.ru.un (unknown source) N (unknown source)
to see this exception , I had to activate RMI specific logging This problem has occurred because every RMI call in this thread ended with some data attachment in my container They are and at some point its size emerges.
My question to you people is that if there is a memory out in the size of the pile of my container, then why are the other threads working? ? Pls let me know if you have any ideas.
is a failed call
java.lang. Reflect.Array.newArray (the original method)
which means that the failed RMI thread was trying to allocate an array. Unfortunately, it does not tell us that it was an array trying to allocate. It was trying to allocate an huge array, and was unsuccessful, then it would not hurt any other thread. Is there anything different about requesting to fail, which will have to allocate more memory to too much compared to other requests?
To expand ... we say that the reason for something is trying to allocate a 500 MH Array (and not enough memory on the heap) of this request. OK, that allocation request will fail But till the heap has ample memory for common allocation requests, there will be no problem in making another thread new object.
Comments
Post a Comment