Joy Conner
19th April 2012, 18:35
I am getting the following error and could use some help understanding this.

2012-04-19[11:01:06]:E:connerj: ******* S T A R T of Error message *******
2012-04-19[11:01:06]:E:connerj: Log message called from /view/port.6.1c.14/vobs/tt/mir/mir/mul_fun.c: #470 keyword: Process state:
2012-04-19[11:01:06]:E:connerj: Pid 8858 Uid 109 Euid 109 Gid 125 Egid 125
2012-04-19[11:01:06]:E:connerj: user_type N language 2 user_name connerj tty ote locale ISO88591/NULL
2012-04-19[11:01:06]:E:connerj: Errno 0 bdb_errno 2223 (bdb_errno 2223)
2012-04-19[11:01:06]:E:connerj: FATAL ERROR: Error 2223 (bdb_errno 2223) on tcjco009600 in db_update(51)
2012-04-19[11:01:06]:E:connerj: Can not continue in tcjco0109m000 in DLL: ottstpstandard (get.company)[db.update]


Is the error comming from the ottstpstandard (get.company)?

Does bdb_errno 2223 mean a transaction was on and did not write?

I have stepped through this code as this was custom development and the error occurs in the main.table.io, before.rewrite section. Here are the 2 lines leading up to the error


tcjco009.date = date.num()
tcjco009.edby = user.name


Thanks in advance for help.
- Joy Conner

BaanInOhio
19th April 2012, 18:59
Since the error is over 1000, it is probably generated by the database. Therefore, the error depends on the database being used. If Informix (in your title), the 2223 would be 1223, which means that the value doesn't fit in the variable.

You could try to check the database log to get more details. I would check all variables in that table (especially doubles and floats) before the update to see if something doesn't look right.

Joy Conner
19th April 2012, 19:20
Thank you BaaNInOhio. I am running Informix and looked up the meaning of this error and it is as you suspected. I got this off their web site.

-1223 Value will not fit in a FLOAT.

The FLOAT data type can accept numbers within a certain range of
exponents. The maximum and minimum exponent values are different
depending on the host operating system (the range is the same as that
supported by the C compiler for double values in this host system). In
the current statement, a constant number is being converted for storage
in a FLOAT variable or column, and the exponent is too large or too
small.

So my next question is how do you know which field/value is the problem?

- Joy Conner

BaanInOhio
19th April 2012, 20:24
Debug and step to the offending statement. Check each table field variable, especially doubles and floats to see if anything looks strange. I have seen these type of errors after dividing by zero or as a result of a date.to.num call that returns garbage (month zero or greater than 12, day zero, etc.) done directly to the table field.

Joy Conner
19th April 2012, 22:50
I found a possible division by zero. I'll share with my partner when she returns tomorrow.

Thanks for the help.