FAQ's

Infinite has performed thousands of successful AS/400 migrations since its founding. Since that time, Infinite has developed and released many successful products and services packages designed to migrate AS/400-based applications written in RPG and COBOL.

What is Infinite i?

Infinite i migrates RPG and COBOL legacy applications developed for the IBM i / AS400 so they can run on other operating systems, specifically Windows and Linux. In order to use Infinite i you must have a complete set of source code. Unfortunately, not having source will not allow us to recompile the AS/400 code and execute it on an alternate platform. Applications run on the new platform very similarly to the way they run on the AS/400. Infinite i supports physical and logical files, subfiles, command language, stored procedures, etc.

What languages does Infinite i support?

Infinite i has compilers to support RPG/400, ILE RPG, SQL RPG/400, COBOL/400, SQL COBOL/400, COBOL ILE, CL/400, CMD/400, DDS/400 (pf, lf, dspf, prtf).

Does Infinite i convert my source code into another language?

No. We believe that maintaining the integrity of the initial software is important. Your native COBOL or RPG source code remains intact and is recompiled into object code that executes natively under Windows or UNIX. Your investment in development and support staff, documentation and training remain secure.

Is it possible to continue development once an application has been re-hosted?

Infinite i offers the developer options for future development. If an ISV plans to offer the same application on multiple platforms, they may prefer to develop on the AS/400 where they are more comfortable and recompile on Infinite i. Infinite i includes development tools to allow changes to be made, built and tested. The SEU, PDM and the language compilers implement full source validation. Or the developer may choose to use other toolsets for development in Java or .NET. Infinite has a suite of plug in middleware for use with development tools from the WebSphere family, the WebLogic family the JBoss family or the Microsoft family of products. Once migrated, RPG or COBOL applications can be executed in the Cloud using the Infinite Cloud family of products which are integrated with Infinite i. The Infinite Cloud family plug into JBoss, WebSphere and Web Logic. So, you can develop in RPG, COBOL or use other industry standard tools in Java or .NET and easily integrate new programs or modules into your newly re-hosted RPG or COBOL programs.

Does Infinite i require an AS/400 host at any stage (other than migrating source)?

No, once the application and data are migrated, Infinite i provides a platform for the High Level Language source code and is entirely independent of the AS/400. During the initial migration, the entire content of the libraries are downloaded from the AS/400 to Infinite i, including the objects (compiled programs, files, etc) that provide additional migration information.

Is it possible to transfer RPG source from Infinite i to AS/400 host? If yes, will source be compatible in the AS/400?

Yes, the source stays in AS/400 format. When an ISV or end-user plans to offer the same application on multiple platforms, some developers prefer to develop on the AS/400 where they are more comfortable and recompile on Infinite i. All the source and data transfer back and forth between the AS/400 and Infinite i is accomplished by simple Save Files and FTP Transfers.

What does an end-user or ISV have to provide Infinite so they can begin migrating AS/400 code?

The Infinite Project Manager will send instructions to the client in how to create a Save File (SAVF) on the AS/400. The Infinite team will then move it to the new system and begin recompiling it into native executables for the target platform. The Infinite i compilers and toolsets handle most of the migration themselves. The remediation comes from testing and interactive project management between the Infinite team and the client team.

How does a developer debug an application that encounters an error on the target platform but works on the AS/400?

Debugging is managed similarly to debugging on the AS/400. Compiled listings include the same error codes as the compilers on the AS/400, including references to missing dependent objects, syntax errors, data type errors, etc. In the event of failures that are not programming errors, Infinite Software support should be contacted to determine if a product bug exists.

Do the compiler licenses include the ability to rerun the conversion at any time?

Yes, the compiler licenses will allow for the re-running of conversions and at any time.

How is your performance versus the AS/400?

Customers who have done proprietary testing and benchmarking on a comparable system (processor speed, memory, disk response time) found performance as good as or better than their application running on an AS/400. Obviously the performance of Infinite cannot be isolated from other factors – system, network throughput and application architecture.

What version of Linux does Infinite i Support

Infinite i has been tested and certified on the following operating systems: Windows Enterprise Server 2016 and Linux Red Hat Enterprise Linux 7.2

What version of Oracle does the Infinite i Deployment Environment support?

Infinite i has been tested and certified on the following databases: Oracle: 11g MS SQL: 2008. Infinite i (Version 9.2) also fully support’s Oracle Exadata Database Machine, Oracle Exalogic elastic Cloud, SPARC SuperCluster , Oracle Database11g R2, Oracle Solaris 11, Oracle Web logic Server 11g R1 and SPARC SuperCluster.

Does Infinite i support OS/400 API's?

Infinite i supports most OS/400 APIs. In the typical selling cycle, the prospect will engage us to do a sample migration. We take a representative module of your software with test data and actually migrate it to your target platform ( Windows or Linux). You will be able to see any exceptions and we will work with you to resolve each one of them.

Are there any limitations to the RPG Compiler?

Infinite i supports the commonly used commands and there are usually workarounds for the less commonly used ones. Most issues arise because of AS/400 hardware references that no longer exist. For example communication commands referencing controllers and line descriptions are not supported, however communication protocols on the new platform usually provide a solution.

Are there any limitations to the COBOL/400 compiler?

The COBOL/400 compiler in Infinite i is consistent with the IBM COBOL/400 compiler in terms of features and functionality. The only limitation is partial support for DISPLAY / ACCEPT with ROW / COLUMN.

Can the definition of PIC X(250000 be used to work around the OPM COBOL limitations of field size?

It is possible to use this definition in the COBOL programs. It is however not possible to define the same field length in a file.

Are there any limitations to the ILE COBOL compiler?

The COBOL/ILE compiler in Infinite i is consistent with the IBM COBOL/ILE compiler in terms of features and functionality.

Is there support in the Infinite i for 'C'?

Infinite i provide C-APIs that allow an interface with the environment when writing standard C-programs. These C programs are compiled using the CRTCPGM command to create a C program in the environment from where the C program can then be called from a COBOL, RPG or CL program or vice versa.

How long does it take to migrate an application?

Timing can vary based on the amount of code to be converted. A typical migration consisting of 12,000 objects – 3,000 programs combined with physical and logical files, display files and command language – may take less than four weeks to complete including migration, analysis, testing and validation. On average, the re-hosting and modernization process takes about 90 days.

How does Infinite i migrate, store and access DB2/400 data?

The Infinite i re-hosting components include a complete replication of the AS/400 DB2/400 database. This database resides on the new host and operates just like the database you are accustomed to. The end user may elect to use Oracle or SQL Server in place of the internal database. All three options include support for specific DB2/400 features like Physical Files, Logical Files, Joined Files, Triggers, Referential Integrity, Commitment Control and Journaling.

Can Infinite i work along with/support other tools or software, for example MQSERIES (MSMQ)?

Infinite i can interface with MQSERIES or MSMQ via C API calls. The underlying runtime support within Infinite i allows any HLL program (written in ILE RPG, RPG/400 or COBOL/400) to invoke external C programs. This generic mechanism allows also calling MQSERIES or MSMQ API functions to send or receive transactional messages and communicate with any type of host that runs these products.

Does Infinite i support Journaling and Commitment Control?

Yes.

Our source for RPG and CL programs is in git, everytime we update/recompile would we need to transfer the source to the linux OS and then run your conversion process?

Infinite i supports integration with Git. If new development and/or maintenance is going to take place on the IBM i, every time code additions or changes are pushed to Git, it can be then pulled into the Infinite i environment and recompiled using the native Infinite i compilers. This process can be done manually, or it can be automated using a CI/CD pipeline.

How would we transfer user profiles?

The command DSPUSRPRF USRPRF(*ALL) TYPE(*BASIC) OUTPUT(*OUTFILE) OUTFILE(LIBRARY/ALLUSRPRFS) is used on the IBM i to capture all the information about user profiles (except passwords). This file is then transferred to the Infinite i server and processed with a bash script that creates the same user profiles on the new environment. The passwords would have to be reset.

How would we transfer custom system settings on libraries, commands, etc?

Infinite i supports system values like the IBM i. System commands can be changed to alter default values. User commands will be recompiled in Infinite i with the same values they have on the original environment.

Does it support iNavigator options (managing the IFS via iNetserver and various TCP servers/services)?

IBM i Navigator is not supported and not needed. IFS is supported by the underlying Linux File System and any path in any file system can be used as an IFS location. TCP servers and services (HTTPD, DNS, DHCP, VPN, etc) are supported by the underlying Linux operating system.

Does it support integrated services such as DCM and WAS?

DCM and WAS are handled in conjunction with the Linux operating system. In the case of WAS, Apache Tomcat or WAS for Linux can be integrated with applications running on Infinite i

Does it support all spooled file functions including IPDS?

Yes, all IBM i Spool File functions are supported by Infinite i, including IPDS.

Is data encryption at rest possible for local and external sql databases?

Data encryption at rest is not possible for the internal DB, but it's possible when Infinite i is configured to use an external database.

Our largest table has almost 80 million records and a record length of 405 characters, is that an issue and how would we size the sql server to mitigate any performance concerns?

With proper system sizing, very large files can be handled by Infinite i and the external DB. The files are migrated to Infinite's internal DB first and then converted to the external DB. After this, the applications (batch and interactive) are executed, and the system is tuned to achieve optimal performance (i.e., creating additional indexes, increasing server memory, etc).

With an external/sql DB, how does it handle libraries being renamed or deleted?

The Infinite i runtime automatically keeps track of library and file (PFs / LFs) creation and the synchronization with an external database.

With an external/sql DB, how do we handle security/access?

Security can be handled at global level, with 1 set of connection parameters (host / user / pass / permissions) for all the users, or at user level with connection parameters for each user. In this case, connection information is stored on the user profile and it's encrypted.

With an external/sql DB, how would we handle multiple libraries with tables of the same name?

When PFs and LFs are converted to tables and views (respectively), if a PF or LF exists with the same name in more than one library, the name of the table or view created in the external database will be appended with a numeric suffix (i.e., filename_1, filename_2).

We currently have a centralized data library that has logicals referencing data from other data libraries, how might that be handled in an SQL db?

When using Infinite i with an external database, physical files are created as tables and logical files are created as views. If a LF references PFs from multiple libraries, when converted to an external DB the view will reference tables that correspond to the original PFs.