Question
· Jul 10

Seeking Guidance on System Upgrade from Caché to IRIS using ECP

Hello Community,

I'm currently planning a system upgrade from Caché (2018.1.8.766) to InterSystems IRIS (2024.1). The environment consists of one database server and three application servers connected via ECP.

I’m considering two possible upgrade approaches:

  1. Upgrade the application servers to IRIS first.
    Since IRIS is expected to be backward-compatible with Caché over ECP, the database server would remain on Caché temporarily.
  2. Upgrade the database server first,
    followed by upgrading the application servers, as they don’t store data.

Could you please advise on the recommended approach, including any pros and cons of each?

Thank you in advance for your insights.

Product version: IRIS 2024.1
$ZV: IRIS for Windows (x86-64) 2024.1 (Build 267_2_24001U) Mon Jan 13 2025 14:19:22 EST
Discussion (5)2
Log in or sign up to continue

Hello Infant,

I would never upgrade a system in parts unless I want to face (and solve) some extra problems. Why?

1) Upgrade the application servers to IRIS first
If your code is stored in networked database on DB server, now you could not use it on APP servers as your code should be recompiled in IRIS - but you can't unless you upgrade DB server to IRIS... so you have no option but duplicating your code base on each APP server.
2) Upgrade the database server first
If your code resides on data server, your code can be easily prepared for IRIS, but APP servers are still running Caché.

So, I would start from the testing environment which you probably have, upgrading to IRIS data and APP server(s) at once. If it's not an option, I would prefer approach #1, because if you continue using Caché on APP servers having IRIS on DB server only (as to approach #2), you most likely will not feel any performance difference and will not face any potential problem with your code as it's still in Caché.

As Alexey said, the issue could be with code, not ECP (as usually ECP is backward compatible)
Make sure that code on app. servers in not mapped (no routine, package mapping) to a remote DB (on database server) - all code should be local to app. server

If your 3 app. servers are identical (for HA, LB reasons) then if you can disable access to 1 app. server and still working with other 2 - it will give you an option to to the app. servers one by one without downtime.

Another issue to concern is cached queries - on such upgrades its good to have all cached queries "un-freeze" to make sure all are compiled.
 

Great to hear your upgrade went smoothly.

We also upgraded the data servers first without issues. However, the app servers aren't responding — they’re still pointing to the old Caché database path.

We're currently evaluating two options:

  1. Roll back Caché and do a clean IRIS install.
  2. Do an in-place “patch-style” upgrade, which is causing issues.

Which approach did you use for the app servers — clean install or patch-style?