I have to store the request xml in to database. I was using header variable to do that.
exchange.getIn().setHeader(\"inputRequestXml\", body);
Exchange properties have no limit, its just a HashMap that stores key/values in the memory of the JVM.
Message headers is also just a HashMap, but headers are part of the message contract, and depending on which Camel components (transports) you use then these headers may be in use, eg HTTP headers, SOAP headers, JMS headers etc. And when so you may have header limitations that are caused by these transports.
You can find more details and it can be a good idea to read the free chapter 1 of the Camel in Action 2nd edition book which explains the important Camel concepts.