What are the processor affinity rules on a Solaris machine? On both Windows and Linux, by default the JVM will use all available processors (we have used up to 32, but recommend not going beyond 4), and one has to change the affinity to get it to run on a single (or 4) processor(s). Sounds like there is something in Solaris (or in the configuration of your server) that has affinity set the other way around.
My late reply: Typically if a multi-threaded app only runs on a single processor, it is possible your application has a high degree of resource contention. Or simply you aren't executing work in multiple threads.