It isn't specifically limited but setting it unreasonably high might let a process cause the kernel to eat up all available memory. It is a per-process limit and is there to safeguard a runaway process opening file handles from starving the entire system of RAM.
Sorry, I'm not sure on that. As long as you set -Xmx (which it seems you have) you should be good. (could also try setting -Xms to the same value) Maybe there is a memory leak in your version of the code? Has it been updated lately?
The two numbers represent soft and hard limits. When the soft limit is reached, the process may receive a signal but will be allowed to continue. When it reaches the hard limit, it will be blocked.
Compare your file to http://anders.com/1offs/asound.h - that should define uint32t
@johnson You sure it's still there when during your compile? It might get stripped in some cases during compile.
IF EXISTS doesn't work for CREATE OBJECT so for that I was testing for duplicate object: