We're using SQL Anywhere 10 on a Windows 2008 R2 server. There's an application running on the server that creates connections to the database when it initializes. The Sql Anywhere documentation states that these local connections using shared memory aren't subject to the 240 minute default timeout, but these connections close after the 240 minutes have elapsed.

This same application is running on a Windows 2003 server and the same version of SQL Anywhere with no problems. There are local connections that have been active for several days.

My question - Are local database connections subject to the database timeout running under Windows 2008 Server R2?

asked 10 Aug '11, 16:26

Fripco's gravatar image

Fripco
31113
accept rate: 0%

Just a wild guess: There might be differences in the treatment of the communication between same-machine server and client between Win 2000/XP/20003 vs. Vista and newer as far as services or terminal services are concerned. - At least for v12, this is documented here.

Is there a chance that the clients use TCP/IP instead of shared memory in the 2008 R2 server? (sa_conn_link() will tell...)

(10 Aug '11, 17:03) Volker Barth

I can confirm that shared memory connections in SA 10 are not subject to the idle timeout. As of version 12 they can be if requested by the client application, though the default is still off.

Idle timeout on TCP connections in version 10 and later (actually version 6 and later) does default to 240 minutes, so it is likely that you are actually connecting over TCP/IP as Volker and Mark said. Do select connection_property('CommNetworkLink') to be sure.

permanent link

answered 10 Aug '11, 17:28

Graeme%20Perrow's gravatar image

Graeme Perrow
8.5k371108
accept rate: 51%

I just ran sa_conn_properties on our 2003 Server and CommNetworkLink = "SharedMemory", so that is the difference. Thanks for the help!

(11 Aug '11, 08:33) Fripco

There are big differences to the security model between Windows 2003 and Windows 2008 R2. One of these differences is that processes run in different namespaces (sessions) so that processes that have been created by different remote desktop sessions cannot directly "see" each other. As a result I suspect, like Volker has suggested in his comment, that your client is connecting via TCP/IP rather than shared memory.

permanent link

answered 10 Aug '11, 17:13

Mark%20Culp's gravatar image

Mark Culp
22.6k9129265
accept rate: 40%

Thanks for the input. sa_conn_info reports CommLink as 'local' and the NodeAddr is blank. sa_conn_properties reports CommNetworkLink as 'TCPIP'. These 2 properties seem to contradict each other.

I'm not a DBA and am learning as I go, so I appreciate the input!

Alan.

(11 Aug '11, 08:25) Fripco
Replies hidden
1

Yes, at first it would appear to be contradictory... but CommLink will report 'local' if the connection is to a process that resides on the same host as the server.

(11 Aug '11, 08:40) Mark Culp

Yep - just after I posted that response I discovered that CommNetworkLink was 'TCPIP' on the 2008 server. We can adjust our programs to allow for that - now that we know what the real situation is.

(11 Aug '11, 09:41) Fripco
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:

×113

question asked: 10 Aug '11, 16:26

question was seen: 1,695 times

last updated: 11 Aug '11, 09:41