So, my questions:Try
1. how may I be sure the JVM is closed, or how may I check what is blocking JVM from closing?
2. is there any way to instruct java plugin to create a new JVM every time my applet is run?
See [https://jdk6.dev.java.net/plugin2/#SEPARATE_JVM]. I didn't try it but I I'd expect that everytime your applet gets loaded, a separate VM will be launched, and the old one(s) are closed behind the scenes.
<PARAM name="separate_jvm" value="true">
3. if the user is browsing a different page on a different window, will this share the same JVM as my applet?As far as I understand, if you dont specify the separate_jvm flag, the behaviour is not specified. See [http://forums.sun.com/thread.jspa?threadID=5396118].
Will this block any possibility to my applet to load again the twain.dll?Likely. Using the separate_jvm flag should avoid that, but you always have to load your application and .dll's each time the applet is started. Thus, caching of applet data among multiple started applets seems impossible right now...