my solution has gone nuts

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

As an added bonus, my original complaint, that methods are being automatically and randomly fired is also happening.

Bevil, this is sooo strange!

Have you contacted Servoy for support?
I can not imagine that this happens ‘just like that’.
There must be a reason, maybe they can point you into the right direction

Hey Marcel

Yeah, it is very weird… I also don’t believe that it can ‘Just’ be happening. I know that Servoy / Sybase does not work like that… Problem is that I can see it happening. As we speak I am manually copy / pasting 294 notes fields which have been erased by a method that I wrote for looping to pick up notes fields months ago. This method is on a form that is not accessible to the client. It is simply not available… Somehow this method has been triggered - autonomously… The database also deletes records when it can’t, it also changes a unique id field when there is NO mechanism to do that. I have built many solutions. None have this trouble apart from this one, and there is no part of it that wasn’t built with my input so there is no stuff that I don’t understand. The problems ALL stem from moving Servoy from 2.2 to 3.5.

I have been trying to get the servoy system to help, but it is difficult to send them a 55GB database. In fact the size of the system and number of concurrent users makes it difficult to do anything with it…

Hope all is well with you

Bevil

I know you are either going to swear on me or laugh at me but wouldn’t you be better of, considering where you are at right now, to rewrite the thing?

BTW 55 gig can’t be an export of your solution with sample data… I would create that export and ask for help.

Alternative is that you ask one of your fellow -Londonish- developers to help you out here…

Hi Bevil,

Any chance that the user is adding a related record and you have some bug which means the foreign key is not set? This would result in data being saved but inaccessible from the record where it was added…

Hey Christian

The records are created locally, by the form that the create method button is actually on. I do not create or delete related records…

Do you see actual delete statements in the Performance log on the admin pages? Maybe the records are never saved to the database?

Have you tried checking your database log to see if there are delete statements (assuming you have turned on such a logging level so you can see the statements)?

If you would like support on this topic, please create a case and attach your solution including some sample data (not the full 55Gb please…)

Paul

was the problem with unique_id only one record? I noticed you upgraded from one version to another, so did this involve a data import? I once did something like this when I forgot to add +1 to a counter during data import, so I ended up with two records with the same number. This was my fault in not checking both before and after the data import that the field remained unique. Just a thought. good luck finding the problem.

Hi Bevil,
when we talked at Servoy World I had forgotten this post.
It would be nice to know the end result, the fix or whatever you did.
Or did you escape to Las Vegas so that your customers could not find you?
Tom

do you use database triggers on your tables in the sybase database? These can sometimes give strange errors if they are incorrectly programmed.

This problem has reared up again.

Servoy is randomly changing my unique_id field (not the PK, ) to another unique_id with no method or user action causing it… I now have a log of the time / changes, and have the servoy, sybase and server logs for the same time. No errors in the logs that I can see… I have no methods that change that field, the field that is changing is entirely uneditable, and the user reports no strange behaviour. She was saving images from blobs to her desktop at the time this error happened (at 11:03 and 11:05 on 12th April 2011) using the Usermanager Pro plugin. I don’t think it is that plugin though since this problem was first identified before we started using the UsermanagerPro plugin about 6 months ago.

The method I use to stream images from the database is this:

 {

if (!imported_filename && export_to_file)
	{
   	var f = plugins.file.convertToJSFile(export_to_file);	

	imported_filename = f.getName()
	}
if (!imported_filename && import_from_file)
	{
   	var f = plugins.file.convertToJSFile(import_from_file);	
	imported_filename = f.getName()
	
	}
	application.setStatusText("")
	
	var vRecord = foundset.getRecord(foundset.getSelectedIndex())
	var vBlobName = 'image'
	//var vReadOnly = true //set the file readonly
	
var defdir = plugins.file.getDesktopFolder();
var vFilePath = plugins.file.showFileSaveDialog(imported_filename, defdir);
	
	application.setStatusText('<html><b>Opening file: ' + vFilePath + ' Please wait....</b></html>')
	application.updateUI()


	plugins.UserManager.downloadFileFromDB(vFilePath, vRecord, vBlobName, fcall_when_done) //, null, [], vRecord.import_from_file, vRecord.hasmedia)
}

Screenshot 13:45:17.png which I will post in a minute shows the audit log of the changes that were made to the system, and by whom. The relevant problem is every instance where unique_id has been changed.
1234 and 1235 were changed to null within 1 second of one another, and then the two nulls were changed to 6382 and 6522 in the same second, but 2 minutes after they were changed to null.

All four of these changed unique_id records were in a found set which was being clicked through, one by one, and a button to retrieve images was clicked for each one. The retrieval of all of the images (in a total foundset of about 10 records) was successful, and there were no immediate or apparent errors at the time.

The issue is that some of the records unique_id field was changed to null and then about 2 minutes later, to the unique_id field of two other records in the foundset containing a total of 10 records.

I am at a loss as to why this is happening STILL - after 2 years…

Is there any way to know what - if any method was triggered at precisely that time?

Thanks …

Bevil

servoy_log(exerpt).txt (5.58 KB)

sybase_log(exerpt).txt (2.36 KB)

server_log(exerpt).txt (4.57 KB)

Screenshot of my audit log

what should those log file show us? Thats just usermanager output (the servoy logs) that has nothing to do with the updates you see happening on the server.

As far as i see has the user with uid 224 (fabienne williams i guess) really send out a update statement which just update 2 record as far as i can see 1632 and 1633
and it updated there quite some columns including the unique_id … But that just has to happen somewhere in the solution, also medium and medium_type and aka columns are all set to null, do you expect that?

Hi Johan

Thank you for the reply.

I think I have solved the problem. I did have one new form which had the unique_id field editable. Schoolboy error on my part. I didn’t think it was anything on that form (and therefore didn’t check) because the problem seems to have existed before this form (the form was added less than a week ago).

I am fairly sure now though that the problem was caused somehow by my mistake…

Sorry to trouble you all… :)

Bevil

Thunder:
Sorry to trouble you all… :)

Jeez Bevil…always out causing trouble :P

haha, James, you would know…

STOP THE CAR!!!