One thing would be to understand what is using the CPU.
You mentionned when ThignWorx run the CPU is high and a lot of postgre.exe processes are running, what process is using the CPU: is it Tomcat or is it Postgres ?
If it is Tomcat, it probably would be useful to enable JMX and check the state of the threads in the Java Mission Control.
1) To enable JMX, you can start by adding the following parameter tot he Tomcat Java startup command
-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl.need.client.auth=false -Dcom.sun.management.jmxremote.ssl=false
2) Restart Tomcat
3) In Java Mission Control you should be able to create a new connection to the server on port 9999.
4) Access the Mbeans Server, go to threads and tick CPU Profiling
You can then observe for some time to see which thread is using the cpu and check what it is doing.
That should give you some clues on what operation is triggering this cpu usage.
More info on Java Mission Control (should be automatically install with a JDK I think): Java Mission Control
Hope this helps