Upgrade custom modules in 7.9 to 8.0

Hi,

We have an Ignition 8 gateway in our development environment and we are trying to install modules we developed / generated for Ignition 7.9 …. No surprise, we didn’t succeed. Those modules use jdbc to connect to MSSQL. So we basically followed these steps:

1- We copied sqljdbc4.jar from an existing Ignition 7.9 development gateway picking the jar from C:\Program Files\Inductive Automation\Ignition\user-lib\jdbc folder.
2- We created database translator based on MSSQL database translator in mentioned 7.9 gateway.
3- We created database JDBC driver in gateway using same information available in 7.9 gateway, and pointed it to C:\Program Files\Inductive Automation\Ignition\user-lib\jdbc\sqljdbc4.jar
4- We created and properly configured database connection.
5- We modified module.xml file and updated requiredignitionversion to 8.0.0 and generated a signed module exactly as it’s required by 7.9 (using SDK JARS for 7.9, following the proper signing procedure which works in 7.9)
6- When trying to install the modules server page does not finish loading process (it keeps in a never ending loading status). So I click on Modules link again and new module is there but with LOADED status (that is, it’s not RUNNING)
7- If you restart gateway, it does not start up as it seems to keep waiting for the modules to run, which never happens. When getting into this status we go to check Wrapper log and the last message save din log file is one indicating gateway was entering custom module’s startup (in module’s gateway hook).

Clearly we need something else to be able to install our custom modules in Ignition 8, for example a new SDK to compile/generate modules ready for Ignition 8 (and probably other things too). Do you have a module development guide for Ignition 8 SDK you can share? Each new version has had its own particularities (we have versions for these modules for Ignition 7.6, 7.7 and 7.9). Thanks in advance!

Carlos

You probably need to adjust the classes your various hooks are using as parameters. There are 8.0 examples available here: https://github.com/inductiveautomation/ignition-sdk-examples/tree/dev/8.0

Hi Paul,

thanks, it turned out to be a library version issue… Now I’m facing an issue related to reading tags values. Before I used SQLTagsManager which is not available anymore and instead readAsync seems to be needed. What is the proper way in a java module for reading a tag’s value in Ignition 8 considering I have a com.inductiveautomation.ignition.gateway.tags.model.GatewayTagManager and that the tag I need to read is already in a com.inductiveautomation.ignition.common.tags.model.TagPath ArrayList?

Thanks in advance,

Carlos

From the GatewayTagManager, just call readAsync with your list of tagpaths. That will return a CompletableFuture with your results, allowing you to perform asynchronous operations. If you don’t actually care about async, then just immediately call get() on the future object, although it’s definitely recommended to have a timeout on the get() so your code doesn’t indefinitely hang if something goes wrong.

Nice. Will have a go at that. Thanks!