I am really struggling with this issue. Servoy is randomly deleting and changing records still and there is NOTHING NOTHING NOTHING in my methods that allow this.
I have now disabled the ability for records to be deleted by putting an ondelete on all of the forms. My method is as follows:
var thePressedButton = plugins.dialogs.showWarningDialog(‘Error’, ‘Are you sure you want to delete this\nrecord. This cannot be undone’,‘OK’, ‘Cancel’);
if (thePressedButton == ‘OK’)
{
plugins.dialogs.showErrorDialog(‘Disabled’, ‘Sorry, this feature is disabled’,‘OK’);
}
else
{
}
There is one relation TO the table in question (data is disappearing from all sybase tables but I’m looking at just one specific record now which I know was deleted between 14:05 and 15:03 on 31/03/2008). On the form which relates TO my table with missing data, there is only one method which is:
forms.dh_purchase_order_print.controller.loadRecords(dh_po_to_po_line_items);
forms.dh_purchase_order_print.controller.print()
This is fairly tame and won’t do anything bad that I can see
The servoy log for that time on that date says:
2008-03-31 13:59:17,814 ERROR [ClientExportNotifyListner[327]] com.servoy.j2db.util.Debug - Signalling channel lost when reading pings or client export notifies, removing ports: [3326]
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:358)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:15:14,886 ERROR [TaskExecuter[8]] com.servoy.j2db.dataprocessing.ClientManager - Error flushing message buffer to client 553b2a12-5e59-4d20-b706-5ac00efe756b, Exception creating connection to: 10.0.0.21; nested exception is:
java.io.InterruptedIOException: The socket pool for a client 10.0.0.21:3325 did not recieve a callback socket from the client within 60000ms, pool still empty
2008-03-31 14:15:14,887 ERROR [TaskExecuter[8]] com.servoy.j2db.dataprocessing.ClientManager - java.rmi.ConnectIOException: Exception creating connection to: 10.0.0.21; nested exception is:
java.io.InterruptedIOException: The socket pool for a client 10.0.0.21:3325 did not recieve a callback socket from the client within 60000ms, pool still empty
2008-03-31 14:22:44,007 ERROR [ClientExportNotifyListner[326]] com.servoy.j2db.util.Debug - Signalling channel lost, removing ports: [3325]
java.net.SocketException: Operation timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:22:44,008 ERROR [ClientExportNotifyListner[326]] com.servoy.j2db.util.Debug - Signalling channel lost when reading pings or client export notifies, removing ports: [3325]
java.net.SocketException: Operation timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:22:54,234 ERROR [RMI TCP Connection(12664)-81.133.190.186] com.servoy.j2db.util.Debug - Throwable
com.sybase.jdbc2.jdbc.SybSQLWarning: TDS: The specified date is invalid
at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2630)
at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1996)
at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)
at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:204)
at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:187)
at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1615)
at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate(SybStatement.java:1598)
at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate(SybPreparedStatement.java:89)
at sun.reflect.GeneratedMethodAccessor230.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.servoy.j2db.persistence.datasource.p.invoke(Unknown Source)
at $Proxy1.executeUpdate(Unknown Source)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207)
at com.servoy.j2db.dataprocessing.SQLEngine.performUpdates(Unknown Source)
at sun.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:613)
2008-03-31 14:37:01,678 ERROR [TaskExecuter[18]] com.servoy.j2db.dataprocessing.ClientManager - Error flushing message buffer to client 1d08cb51-3374-43c4-a4ee-4fba01dcb5be, Exception creating connection to: 10.0.0.31; nested exception is:
java.io.InterruptedIOException: The socket pool for a client 10.0.0.31:3332 did not recieve a callback socket from the client within 60000ms, pool still empty
2008-03-31 14:37:01,679 ERROR [TaskExecuter[18]] com.servoy.j2db.dataprocessing.ClientManager - java.rmi.ConnectIOException: Exception creating connection to: 10.0.0.31; nested exception is:
java.io.InterruptedIOException: The socket pool for a client 10.0.0.31:3332 did not recieve a callback socket from the client within 60000ms, pool still empty
2008-03-31 14:37:40,748 ERROR [ClientExportNotifyListner[308]] com.servoy.j2db.util.Debug - Signalling channel lost, removing ports: [3307]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:37:40,749 ERROR [ClientExportNotifyListner[308]] com.servoy.j2db.util.Debug - Signalling channel lost when reading pings or client export notifies, removing ports: [3307]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:38:01,862 ERROR [SocketAccepter[4]] com.servoy.j2db.util.Debug - SocketAcceptor failure for socket: c38d1c[SSL_NULL_WITH_NULL_NULL: Socket[addr=/81.133.190.186,port=49395,localport=1099]]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1030)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:678)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$b.run(Unknown Source)
at com.servoy.j2db.util.as.run(Unknown Source)
at java.lang.Thread.run(Thread.java:613)
2008-03-31 14:38:06,812 ERROR [ClientExportNotifyListner[333]] com.servoy.j2db.util.Debug - Signalling channel lost, removing ports: [3332]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:38:06,812 ERROR [ClientExportNotifyListner[333]] com.servoy.j2db.util.Debug - Signalling channel lost when reading pings or client export notifies, removing ports: [3332]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:38:33,375 ERROR [ClientExportNotifyListner[317]] com.servoy.j2db.util.Debug - Signalling channel lost, removing ports: [3316]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:38:33,375 ERROR [ClientExportNotifyListner[317]] com.servoy.j2db.util.Debug - Signalling channel lost when reading pings or client export notifies, removing ports: [3316]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:38:33,376 ERROR [TaskExecuter[0]] com.servoy.j2db.dataprocessing.ClientManager - Error flushing message buffer to client 7ff86eee-d5e0-4729-8f5e-1c71671b8a27, Exception creating connection to: 10.0.0.23; nested exception is:
java.io.InterruptedIOException: SocketPool is closed
2008-03-31 14:38:33,376 ERROR [TaskExecuter[0]] com.servoy.j2db.dataprocessing.ClientManager - java.rmi.ConnectIOException: Exception creating connection to: 10.0.0.23; nested exception is:
java.io.InterruptedIOException: SocketPool is closed
2008-03-31 14:39:08,991 ERROR [ClientExportNotifyListner[305]] com.servoy.j2db.util.Debug - Signalling channel lost, removing ports: [3304]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:39:08,991 ERROR [ClientExportNotifyListner[305]] com.servoy.j2db.util.Debug - Signalling channel lost when reading pings or client export notifies, removing ports: [3304]
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:680)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.servoy.j2db.util.rmi.d$1.run(Unknown Source)
2008-03-31 14:39:08,991 ERROR [TaskExecuter[1]] com.servoy.j2db.dataprocessing.ClientManager - Error flushing message buffer to client 5d061683-5099-4e95-bf2c-3507b8ee9adb, Exception creating connection to: 10.0.0.55; nested exception is:
java.io.InterruptedIOException: SocketPool is closed
2008-03-31 14:39:08,991 ERROR [TaskExecuter[1]] com.servoy.j2db.dataprocessing.ClientManager - java.rmi.ConnectIOException: Exception creating connection to: 10.0.0.55; nested exception is:
java.io.InterruptedIOException: SocketPool is closed
2008-03-31 14:40:23,812 ERROR [TaskExecuter[12]] com.servoy.j2db.dataprocessing.ClientManager - Error flushing message buffer to client af454ca8-3481-4bd2-9d6b-c76316b76985, Connection refused to host: 10.0.0.49; nested exception is:
java.net.ConnectException: Operation timed out
2008-03-31 14:40:23,812 ERROR [TaskExecuter[12]] com.servoy.j2db.dataprocessing.ClientManager - java.rmi.ConnectException: Connection refused to host: 10.0.0.49; nested exception is:
java.net.ConnectException: Operation timed out
2008-03-31 14:40:33,815 ERROR [TaskExecuter[20]] com.servoy.j2db.dataprocessing.ClientManager - Error flushing message buffer to client 5d061683-5099-4e95-bf2c-3507b8ee9adb, Connection refused to host: 10.0.0.55; nested exception is:
java.net.ConnectException: Operation timed out
2008-03-31 14:40:33,815 ERROR [TaskExecuter[20]] com.servoy.j2db.dataprocessing.ClientManager - java.rmi.ConnectException: Connection refused to host: 10.0.0.55; nested exception is:
java.net.ConnectException: Operation timed out
2008-03-31 14:41:26,332 ERROR [RMI TCP Connection(12095)-87.224.73.3] com.servoy.j2db.dataprocessing.ClientManager - java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.net.SocketException: Operation timed out
2008-03-31 14:58:41,706 ERROR [TaskExecuter[10]] com.servoy.j2db.dataprocessing.ClientManager - Error flushing message buffer to client 946d44e2-7556-42eb-b330-c81ebbb75caf, Exception creating connection to: 10.0.0.21; nested exception is:
java.io.InterruptedIOException: The socket pool for a client 10.0.0.21:3337 did not recieve a callback socket from the client within 60000ms, pool still empty
2008-03-31 14:58:41,706 ERROR [TaskExecuter[10]] com.servoy.j2db.dataprocessing.ClientManager - java.rmi.ConnectIOException: Exception creating connection to: 10.0.0.21; nested exception is:
java.io.InterruptedIOException: The socket pool for a client 10.0.0.21:3337 did not recieve a callback socket from the client within 60000ms, pool still empty
2008-03-31 15:06:10,762 ERROR [ClientExportNotifyListner[338]] com.servoy.j2db.util.Debug - Signalling channel lost, removing ports: [3337]
java.net.SocketException: Operation timed out
and the sybase log for that period says:
I. 03/26 18:34:26. Cache size adjusted to 153460K
I. 03/28 14:58:26. Cache size adjusted to 154000K
I. 03/31 13:13:27. Cache size adjusted to 154136K
I. 03/31 13:14:16. Connection terminated abnormally
I. 03/31 13:14:16. Connection terminated abnormally
I. 04/01 12:10:16. Cache size adjusted to 154212K
This data is just vanishing into thin air. I have a foundsetfilterparam on the form so I have looked at the data in Sybase. The record is definitely gone.
The user doesn’t report any errors, just that she added a record (which has consumed a pk), added data to it, reloaded it after doing something else on the database, and found it was gone, then tried on another machine, found it was gone, then went back to her machine and still found that it was gone.
In the whole solution (of 180 forms) I only have 25 instances of the methods containing the words controller.deleteRecord() and every one of these are on other tables and forms (in the format formname.controller.deleteRecord())
I cannot see how it is a method that is deleting these records. I don’t think it is a form that is deleting these records (as the forms are ALL prevented from deleting data (to try to solve this problem)). It cannot be a user that is deleting data as they’re prevented from doing so by the forms, and nothing else externally touches Sybase. I am absolutely stumped, and months down the line, now that lots of data has been lost, am still no closer to a solution to this… Anyone with any fresh ideas?
Bevil
