I need to upgrade my IceBreak to the new version, however my production environment is heavy loaded - day and night - all the week. How can I upgrade with a minimal down-time?
Re: Upgrade IceBreak in a 24-7-365 environment
IceBreak is designed to high volume transaction and to always be available – even while being updated to new versions. If you follow the description below you can actually have your system up and running while doing an upgrade at the same time – with only a split second of a glitch.
Lets assume your IceBreak is installed in library ICEBREAK and the IFS as /IceBreak. What you need is to install a temporary icebreak that will have three purposes:
- To test if your new IceBreak works with you applications.
- To have a fallback environment if you have issues with the above.
- To run your website while you do the upgrade – in your own pace.
Note: You can have as many IceBreak installations in any versions you like on the same IBMi box without purchase any extra license. They will run in their own subsystems with there own library without interfeering with each other.
Lets get started:
1) Download IceBreak
Typically you will need the very bleeding edge version of IceBreak. You can find the latest build on the following directory page ( note it is not sorted):
http://install.icebreak.org/install/
On a windows PC download the IceBreakSetupXXXX.exe where XXXX is the build number. Look for the highest number or select a specific build you have been advised by technical support.
A complete download link in your browser will look similar to:
http://install.icebreak.org/install/IceBreakSetup0517.exe
2) Start the installation
When download is complete simply run the installation from a windows PC. You need FTP open on your IBMi and you need QSECOFR userid and password ready.
Click Next on the "Introduction", "License" etc. until you reach "Admin information" - here
- Select another port than the default – ex 6999
- Click advanced
- Select IceTmp for both library and IFS options
- Press "OK", "Next" and "Install"
- Let the installation finish
3) Migrate the running ICEBREAK to ICETMP
If you have shared resources – then reuse them with a symbolic link:
RNM OBJ('/IceTmp/system/shared') NEWOBJ('sharedOld')
ADDLNK OBJ('/IceBreak/system/shared') NEWLNK('/IceTemp/system/shared')
Now do the migration of the running environment – This will copy any running session (ILOB's, session vars etc) into ICETMP:
GO ICETMP
ENDICESBS WAIT(*YES)
MGRICELIB ICELIB(ICEBREAK)
STRICESBS
The temporary IceBreak is now ready to switch over, so terminate the current production environment:
GO ICEBREAK
ENDICESBS WAIT(*YES)
Now IceTmp is in charge. Test that everything is fine in this setup. If you have issues, you can still switch back by ending ICETMP and restart ICEBREAK.
We are good to go, the new version works as designed. Now lets upgrade the real ICEBREAK.
4) Upgrade the ICEBREAK while ICETMP is running
You are not in a hurry. ICETMP is handling your website.
Now - Run step 2 again. But with all the default parameter set ie. Adminport set to 7000.
When the installation is finished you have to migrate the ICETMP back to ICEBREAK. This will copy any running session (ILOB's, session vars etc) back into ICEBREAK
GO ICEBREAK
ENDICESBS WAIT(*YES)
MGRICELIB ICELIB(ICETMP)
STRICESBS
The real IceBreak is now i charge again, so terminate the temporary environment and delete it:
GO ICETMP
ENDICESBS WAIT(*YES)
DLTLIB ICETMP
Update completed – No clients noticed it :)
Best regards,
Niels Liisberg