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