Informix Error -9451
-9451 Error instantiating user-defined-type mapping class (%s).
Make sure that the Java class specified has the proper access permissions for instantiation. Check the instantiation rules for the Java language.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-9451 fires when the database server can't instantiate the Java class mapped to a user-defined type — per the official guidance.
- The mapping class lacking the proper access permissions for instantiation, per the official guidance — the direct, only cause (e.g. no accessible no-argument constructor).
Solutions / Resolution
- Make sure the Java class has the proper access permissions for instantiation, per the official guidance.
- Check the instantiation rules for the Java language, per the official guidance.
Examples
A mapping class with no public no-arg constructor
class MyUDT {
private MyUDT(int x) { ... } // -9451: no public no-arg constructor
}
Corrected
public class MyUDT {
public MyUDT() { ... }
}
Diagnostic Checks
- Check the mapping class's constructors and access modifier, and make sure a public, accessible no-argument constructor exists.
Related Errors / Related Topics
- -9443 — "Cannot find class for type (%s)." A related Java-type-mapping error, on the class being unfindable rather than uninstantiable.
The Java class mapped to a UDT couldn't be instantiated, usually a missing accessible constructor — check the class's constructors and access modifier.