Hello guys, We are using camel with multiple contexts that normally didn't communicate directly between themselves. But recently we had to add such possibility and used direct-vm for that. As we do not want to lose any of the exchanges during communication, on the producer side of direct-vm we set *block* property to *true* and add timeout of 10 minutes(for the case when the context with consumer will be reloaded or down for some time). That part is working fine. But there is a problem with the response in our case. In each exchange that is being generated across the system, in the properties section we store some information that is required for logging. But in case of direct-vm call, on the consumer side, a new exchange will be generated(and that is perfectly fine as it is separate context), and upon response original exchange(the one that was used by producer) will receive all the properties from the other exchange (that was processed by another context). And it breaks our logging functionality in this case. As per documentation for direct-vm there is also the property called *propagateProperties *and upon setting it to *false* it shouldn't copy properties section upon sending request/response. [image: image.png] And it would have resolved our case perfectly, but looks like it is not working when *block* property set to *true*. As per piece of code in camel(In DirectVmEndpoint class): [image: image.png] There are two types of producers. And it looks like DirectVmBlockingProducer *ignores *propagateProperties property of the endpoint, while DirectVmProducer is working just fine with it. But as I described earlier we need this blocking behavior in order to fail an exchange if no one is ready to pick it up. Testing configuration looks like that: *Producer* <toD uri="direct-vm:veryUniqueDirectVmName?block=true&failIfNoConsumers=false&timeout=60000&propagateProperties=false"/> *Consumer* direct-vm:veryUniqueDirectVmName?propagateProperties=false
So, could someone please clarify following questions: 1. Is this true that for direct-vm endpoints we cannot use *block=true* and *propagateProperties=false* combined or I did something incorrect in the configuration? Or maybe this is a bug? 2. if true, than is there any other way to send something from one context to another and meets following expectations: - Producer will fail if there are no consumers in other contexts after some configurable timeout - Ignore properties of the request/response exchange(or at least response) If there is any other information required from me, please specify and I will gladly add it. Thanks in advance! Best regards, Viktor Kiricheiko