This article applies to BlackBerry® wireless devices based on Java™.
The Java Virtual Machine (JVM), implemented for BlackBerry devices, has a maximum number of 48 concurrent processes. If the JVM finds itself in a state where an additional process would exceed the number of maximum processes, you receive the JVM 200 error. The eventlog will contain lines similar to the following:
app:System data:JVM Error 200 app:System data:Application Manager threw net.rim.vm.TooManyProcessesError
Many developers experience this issue on startup especially if their application (or multiple applications) is set to Auto run on startup.
To alleviate this problem, enable one library to serve as the only item that runs on startup. In the library libMain method, the implementation performs all of the startup initialization required from within the library. If some of the libraries are optional, the main initialization library should use the Class.forName() construct to continue maintaining the initialization code inside one library.
By having one library serve as the only initialization module for your suite of applications, you are unlikely to run into this issue.