Upgrading a node to a minor version of Corda Enterprise Edition 4.9
Follow these steps to upgrade a node from Corda Enterprise Edition 4.9 to Corda Enterprise Edition 4.9.x.
Most of the Corda 4 public, non-experimental APIs are stable. See the full list of stable APIs. If you are working with a stable API, you don’t need to update your CorDapps. To upgrade:
Step 1: Drain the node
Node operators must drain nodes (or CorDapps on nodes) before they can upgrade them. Draining brings all flows that are currently running to a smooth halt. The node finishes any work already in progress, and queues any new work. This process frees CorDapps from the requirement to migrate workflows from an arbitrary point to another arbitrary point—a task that would rapidly become unfeasible as workflow and protocol complexity increases.
To drain a node, run gracefulShutdown
. This waits for all running flows to be completed and then shuts the node down.
The length of time a node takes to drain varies. It depends on how your CorDapps are designed and whether any CorDapps are communicating with network peers that are offline or slow to respond. If the CorDapps are well-written and the required counterparties are online, drains may only take a few seconds.
For a smooth node draining process, avoid long-running flows.
Step 2: Replace corda.jar
with the new version
Replace the corda.jar
with the latest version of Corda.
Download the latest version of Corda from the Customer Hub. Make sure it’s available on your path, and that you’ve read the Corda release notes. Pay particular attention to which version of Java the node requires.
Step 3: Start the node
Start the node in the normal way.
The node performs any required automatic data migrations, which may take some time. If the migration process is interrupted, restart the node to continue. The node stops automatically when migration is complete.
Step 4: Undrain the node
Run this command in the shell:
run setFlowsDrainingModeEnabled enabled: false
Your upgrade is complete.
Notes
Was this page helpful?
Thanks for your feedback!
Chat with us
Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.
Propose documentation improvements directly
Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.
We're sorry this page wasn't helpful. Let us know how we can make it better!
Chat with us
Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.
Create an issue
Create a new GitHub issue in this repository - submit technical feedback, draw attention to a potential documentation bug, or share ideas for improvement and general feedback.
Propose documentation improvements directly
Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.