Hi Our PB (11.5.1 Built 4011) application connects to a SQL Anywhere 11 (11.0.0.1264) database server. From time to time it happend that the user get the error message '...authentication violation...' This happens during a update - statement. The server ist authenticated to this app and the app authenticat at start up time. Last time this happen a other user could reproduce the error message. After a few minutes and the restart of the application the problem had disappeard. Any sugguestion to came down with this problem? TIA Kurt |
You should only get this error on a connect, or 30 seconds after a connect is you are using an authenticated engine and have not authenticated. Is there code in your PB app that creates additional connections (possibly after being disconnected for some reason) that do not properly authenticate?
There is no other connection, but that in the open event of the application.
Is this still a problem? Can I confirm the error as -98 and not a -218 error.
It is still a problem. The error is -98. The problem became more serious. We have seen the error in a unattended application. Once the error occurred it never disappeared. We had to restart the application.
Please tell us whether you are using an OEM-authenticated database (otherwise -98 would be unexpected) and if you can authenticate both the database and connection accordingly - cf. this doc for v11.
FWIW, SQLCODE -98's problem cause desription is "You attempted to connect to a server that has been authenticated for exclusive use with a specific application.".
In my experience, this error is only reported if either the database or connection is not authenicated while running on an Authenticated Edition (aka OEM edition) engine. Generally when it is reported that the problem is sporatic, it is the result of secondary connections that are not authenticated. Is the problem in the unattended application also sporatic or does the -98 occur on the first statement that writes to the database after the 30 second grace period?
I tend to troubleshoot by enabling request level logging and running the application until the error is encounter. To enable request level logging, run the engine with -zr SQL -zo <file_name_and_path>. This option can also be enabled by calling the following SQL (can be done outside the application for example via DBISQL):
call sa_server_option( 'RequestLogFile', '<file_name_and_path>' ); call sa_server_option( 'RequestLogging', 'SQL' );
Reproducing this in a development environment would be ideal as request logging can be expensive. If you can capture this log, you can send it to first_name.last_name@sap.com and I can assist in identifying the connection that triggers the error and the statements that it was executing leading up to that error.
There is ony one connection in the app. if the connection is broken, it trys to reconnect; by using the authentication. In the unattended application as well it was error -98. The application ist started every morning. With a cycle period of one minute the app sends update statements to the db engin. When error -98 occurred, the app was already 9 hours running.
You may need to open a support case. There are many instances of authentication editions running and in my experience, the only time a -98 is reported is when the connection is in fact not authenticated. I am unable with the information provided to determine what is the cause of the behaviour you are seeing. Support can work with you to isolate the problem. It is most likely that they will be looking for a request level log or other logging of executed SQL as part of that effort.