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

asked 07 Mar '13, 08:17

henky's gravatar image

henky
96237
accept rate: 0%


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.

permanent link

answered 07 Mar '13, 11:46

Mark%20Culp's gravatar image

Mark Culp
22.9k9129269
accept rate: 41%

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

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)

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
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×125

question asked: 07 Mar '13, 08:17

question was seen: 854 times

last updated: 16 Mar '13, 07:11