Looking at the stack the server is failing to do a select and returns an error to the client when it tries to retrieve the list of primary keys:
java.sql.SQLException: The cursor has been previously released and is unavailable.
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408)
at com.informix.jdbc.IfxSqli.addException(IfxSqli.java:3187)
at com.informix.jdbc.IfxSqli.receiveError(IfxSqli.java:3467) <--- means error ;)
at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2378)
at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2303)
at com.informix.jdbc.IfxSqli.executeFetch(IfxSqli.java:2037)
at com.informix.jdbc.IfxSqli.getaRow(IfxSqli.java:4077)
at com.informix.jdbc.IfxResultSet.next(IfxResultSet.java:494)
at com.informix.jdbc.IfxDatabaseMetaData.getImportedKeys(IfxDatabaseMetaData.java:5524)
I did a quick test with 4.10.JC8 in one of my servers against the stores_demo database and it completed without a glich:
d:\JJTMP>java -jar \jjtmp\schemaSpy_5.0.0.jar -t informix -db stores7 -s informix -u informix -p password -o \jjtmp -host 420ito:9088 -server ids1210 -dp \infx\jdbc410jc8x\lib\ifxjdbc.jar
Using database properties:
[\jjtmp\schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/informix.properties
Gathering schema details....................................................................(4sec)
Writing/graphing summary..............(7sec)
Writing/diagramming details.................................................................(6sec)
Wrote relationship details of 65 tables/views to directory '\jjtmp' in 19 seconds.
View the results by opening \jjtmp\index.html
d:\JJTMP>
If you get a SQLI trace you should be able to see why that particular SQL is failing.
Add the SQLIDEBUG property to the connection string in the schemaSpy command line to generate one.
Something like this:
d:\JJTMP>java -jar \jjtmp\schemaSpy_5.0.0.jar -t informix -db stores7 -s informix -u informix -p password -o \jjtmp -host 420ito:9088 -server ids1210 -dp \infx\jdbc410jc8x1\lib\ifxjdbc.jar -connprops SQLIDEBUG\=trace
Using database properties:
[\jjtmp\schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/informix.properties
Gathering schema details....................................................................(4sec)
Writing/graphing summary..............(7sec)
Writing/diagramming details.................................................................(6sec)
Wrote relationship details of 65 tables/views to directory '\jjtmp' in 18 seconds.
View the results by opening \jjtmp\index.html
d:\JJTMP>dir trace*
Volume in drive D is Data750
Volume Serial Number is F0B7-2E46
Directory of d:\JJTMP
17/08/2017 11:10 2,008,706 trace1502964639886.0
1 File(s) 2,008,706 bytes
0 Dir(s) 284,868,997,120 bytes free
Then you can decode the trace file using the sqliprint/sqliprt CSDK tool (it should be on the engine bin directory)
d:\JJTMP>sqliprt -notimestamp trace1502964639886.0 > trace.txt
d:\JJTMP>
But as everyone said, it may be a good idea to open a ticked with tech support. It could be specific to your database/schema (wonder if it fails against other databases) but even so getImportedKeys() shouldn't fail with that error no whatever the application does.