For production mode it makes sense to set initalSize = maxSize. Also, size of the pool should be equal at least maximum number of simultaneous requests (there is a config parameter in tomcat's server.xml connector stanza, maxProcessors.
1) You may try to upgrade to the latest SP or version of the server - this problem may be fixed already. 2) Contact BEA support (please check this: http://www.viewtier.com/newsgroups/thread.jspa?threadID=4&tstart=0) 3) Write a shell script that tries to shutdown weblogic gracefully using SHUTDOWN, waits for some time and then issues kill.
Though you may obtain heap information using JVMPI, I don't think raw heap dump would be of any help. You may want to look at run-time J2EE monitoring tools from Borland or Quest - they may provide more readable information.
Also it makes a lot of sense to run load tests of your application under profiler in QA environment. Please check this as well: http://jroller.com/page/imeshev/20040204
I'd rather call a black-box magic. I don't think that describing the lower level details of this process would feet into format of this forum. Do you have any specific questions/problems?
In case of SLSB EJBObject serves as a facade to a pool of SLSB instances. Binding between EJBObject and an instance exists only for duration of a method call. So, yes, next call to a method will/may go to any arbitrary SLSB instance. That's what spec says and that's what weblogic does for you.
In case of SFSB EJBObject is bound to an instance for duration of a session and will become invlaid if runtime exception is thrown.