Hi David,

This is a known problem with the .Net "remoting" infrastructure used by Alchemi. There is a limit (I am not sure what that is exactly, though...) to how big the thread can be. Each thread is actually serialised to a byte stream and sent over the network to an Executor.

Since the strings, in your case, would still be part of the byte stream, whether or not they are a single string or set of strings in an array, you see the problem hitting the upper limit. Again, since it is an issue with communication framework itself, you see the problem irrespective of the number of threads.

We are looking into the problem currently and are thinking of having a seperate file-transfer service to workaround passing huge chunks of data. Meanwhile, this issue remains a bug. Please check back at source-forge to see if it has been fixed. I will put this down formally as a bug in sourceforge, so you can track its status.

Of course, if you find a workaround / would like to propose a solution, you are most welcome.

Cheers
Krishna


David Mitchell wrote:

Hi Krishna,

I'm experimenting with Alchemi and so far it is very impressive. I've quickly run into a stumbling block though. I have a string field on my Thread class which typically will have very long threads in it (of the order of tens of megabytes). When I run my application I get the exception below. I have tried with hundreds of threads, as well as only 20. It fails either way. I've also tried splitting my strings up so the Thread object has a string array of strings of length ~100,000. This still fails though. Do you have any ideas? How do you recommend getting large amounts of data to the executors?

Cheers
David

Error here:

ERROR: System.Net.Sockets.SocketException: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue
was full

Server stack trace:
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size,
 SocketFlags socketFlags)
at System.Runtime.Remoting.Channels.SocketStream.Read(Byte[] buffer, Int32 of
fset, Int32 size)
at System.Runtime.Remoting.Channels.SocketHandler.ReadFromSocket(Byte[] buffe
r, Int32 offset, Int32 count)
at System.Runtime.Remoting.Channels.SocketHandler.Read(Byte[] buffer, Int32 o
ffset, Int32 count)
at System.Runtime.Remoting.Channels.Tcp.TcpFixedLengthReadingStream.Read(Byte
[] buffer, Int32 offset, Int32 count)
   at System.IO.BinaryReader.ReadBytes(Int32 count)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadArrayAsB
ytes(ParseRecord pr)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadArray(Bi
naryHeaderEnum binaryHeaderEnum)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(He aderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAp
pDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCr
ossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryResponseMess age(Stream inputStream, IMethodCallMessage reqMsg, Boolean bStrictBinding) at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMess
age(IMessage msg)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
Msg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
ta, Int32 type)
at Alchemi.Core.IManager.Executor_GetThread(SecurityCredentials sc, ThreadIde
ntifier ti)
   at Alchemi.Executor.GExecutor.ExecuteThreadInAppDomain()



--
Krishna Nadiminti
Research Programmer,
GRIDS laboratory,
Department of Computer Science and Software Engineering,
The University of Melbourne.
e: [EMAIL PROTECTED]
p: +61 3 8344 1347



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Alchemi-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alchemi-developers

Reply via email to