How deploy my application without updating of camunda.bpmn scheme.

Hi,
I am using spring boot app to deploy camunda. Since I’m using 2 camunda nodes with 1 database, I set “deployment.aware=true”. But now, every time I deploy the application, but do not touch the logic of the camunda schema, I get an error:

“Cannot correlate message : No process definition or execution mathces the parameter”.

I can repair this by changing the scheme and update deployment version, i.e. schema update, but, as I think, it shouldn’t work like that.
How can that be avoided, i.e. do not update the schema with each deployment of the Spring boot application.

Can you show more about the code you’re running to correlate the message?

Nial, thank you for answer.

I’m using:
RuntimeService.createMessageCorrelation(String msgName).processInsanceId(“created with process starting and our fronted send it”).correlate();

Then have above described error with “Cannot correlate message msgName: No process definition or execution matches the parameters”

But after redeploying with any change in .bpmn file error disapear.

Using a process instance id is not a great idea for message correlation, as those can change when you do thinks like migration or restarting an instance.

If it’s possible I’d suggest you use a business key or a known process variable.

1 Like

But it should be changed after restarting, because we start new process.We don’t want to use any before declared process definitions.

Are the two server nodes configured the same?
deployment_aware is really difficult to manage, as any time the engine is restarted, it needs to register the processes that it knows about (which is one of the steps included in the deployment process).

If something has happened on the node that you’re trying to correlate the message to (I’m assuming you’re wanting to use MessageStart), then it might not be aware of the BPMN that contains the message start, therefore it won’t attach a message listener for that message.

If the nodes have the same software on them, same BPMN, same jars, etc, then I’d strongly recommend setting deployment_aware to false.

1 Like

GotnOGuts, thank you for your answer!

We have 2 apps (services) with the same configured camunda bpmn, they use one bd for camunda operations. When ‘deployment.aware=false’ then we had another problem: camunda instance of 2nd app sometimes try to catch processes (like timer catch events) of the first app and ofc shutting down with exception. How then we can avoid problems like I described without ‘deployment.aware=true’?

Yes, it sounds like you have exactly the issue I was wondering if you described.

Heterogeneous Cluster with 2 nodes.
In order to have a heterogeneous cluster, you need to have deployment_aware as true, however when each node starts up, you need to register the deployments that are already on that node to the engine. I don’t recall the steps. I think @Ingo_Richtsmeier or @Niall documented them on one of the threads

1 Like

Thank you!
For now I’ll try to change correlation method from processId to business key as @Niall advised. If it don’t work then would try smthing else…

1 Like

@Niall, @GotnOGuts

I have little bit researched my problem and understand that after redeployment and no changes in scheme.bpmn my process instances just stucked in the Start process and don’t proceed to Event based Gateway (wait there just after start like it do in normal process). Then, ofc, when I try to correlate msg after Gateway I have the error. (IDK why, but I can’t attach screenshot of the process.)

it Looks like:
Start event (stucked here in described problem scenario) → Event Based Gateway (should wait here) → Message Intermediate catch event (go through after Message correlation)

Do you have any idea about that?

Process Stuck in Start - #9 by Ingo_Richtsmeier I think this is a solution for my problem, but I think that I can’t reach it in my situation