Hi All. We are trying to make our application connect to Sybase Anywhere that is started dbsrv11 -ec TLS_RSA parameters. We can connect and do normal queries using isql (unixODBC) and dbisql (linux). Some of our processes are mission critical that we must scheduled it as real time. Because of this, we always get this message: TLS handshake failure in odbc log. Our question. Do sybase anywhere certificate/rsa/tls libraries execute any process?If it is not does it execute any thread during connection initialization ? Does those executed process priority have its priority set ? In gdb we got this function "OS_WaitOnThreadTermination" waiting. We are really appreciate your information. regards, hb |
The SQL Anywhere client libraries do not spawn any processes for any purpose related to certificates, RSA, or TLS. The only time a process is spawned is when a database server needs to be autostarted during a connection attempt (if needed) or when explicitly requested via a call to db_start_engine() function in dblib. If you are using the multithreaded client libraries on linux (which I suspect you are) then the SQL Anywhere client code will create additional threads to manage and monitor the connections to the server(s). No special code exists when creating these threads to set the priority on these threads. The function OS_WaitOnThreadTermination does what you might expect it to do given its name - it causes the executing thread - the thread that called this function - to wait for another thread (specified as a parameter) to terminate. This is normal in cases that the ODBC client has disconnected from the server and is in the process of destroying its ODBC environment (since this is when the client code will terminate the threads that it has created when the ODBC environment was created). It is not normal for this call to take a prolonged amount of time. Thank you Mark. By moving the connection attempt call (using TLS_RSA certificate) prior to scheduling calling process as real time, we are able now to connect to database and do normal query. But since applying this change will be a major restructuring to our codes than we will not apply it in this short time. Some questions Mark. 1. Is there any possibility that SA11 implementation of ODBC SQLConnect calls db_start_engine or force autostart the database server?(We never set FORCE/ForceStart in unixODBC parameters) 2. We cannot see the user id and password transmitted during connection attempt, either with TLS_RSA encryption or with None encryption in plain text. Are user id and password encrypted during connection attempt transmission and what is the encryption method? regards, henky
(08 Mar '13, 01:04)
henky
Never mind Mark, we can do some experiment corresponds to my first question. The second question is also has been answered by another good guy in another question. Warm regards, henky
(08 Mar '13, 08:54)
henky
Replies hidden
I can't tell for Linux and whether db_start_engine() is called, but of course a SQL Anywhere client can start a local database engine (or load a database on a running engine) if the desired database is not already running... - that's one of the basics of SQL Anywhere as an embedded database product...
(08 Mar '13, 13:02)
Volker Barth
That helps. Thank you Barth. regards, hb
(16 Mar '13, 07:11)
henky
|