I had the same problem using Blazeds and Glassfish. After a bit of debugging i found the problem.
Blazeds creates the consumer in one thread and then starts a second thread to check periodically for messages. With the LOCAL configuration for JMS in glassfish the consumer created in the first thread is automatically closed when this request to this thread terminates meaning that when the second thread starts to poll the server it gets these C4063 consumer closed errors.
I'm not sure exactly why this happens but it seems to be something to do with JMS transactions. I read that the LOCAL configuration executes messaging in a separate instance of the VM.
The quick fix that i have found has been to change the definition of my Connection Factory to not execute in a transaction.
This can be done from the Glassfish administrative console: Resources > JMS Resources > ConnectionFactories > [ConnectionName] > TransactionSupport = NoTransaction.
If anyone can explain in more detail why this is necessary or how to create a consumer that can handle transactions in a local context i would be very interested.
Hope that this solves your problem.
[Message sent by forum member 'maxmil' (maxmil)]
http://forums.java.net/jive/thread.jspa?messageID=286455