all groups > sql server connect > june 2006 >
You're in the

sql server connect

group:

Multiple Threads and Licensing


Multiple Threads and Licensing Patrick Brand
6/22/2006 2:33:02 PM
sql server connect:
Hello,

I am working on a project that will require the use of SQL Server 2005
Workgroup Edition. We were planning to use the version that comes with
5 CALs instead of the version that is licensed based on processors due
to the enormous cost difference.

The application I am working on is using c#. This program will spawn
multiple threads to communicate with instruments attached on the network
Each of these threads will have a connection to the db to save data. I
am being told that each thread will require a CAL. Is that correct? I
can not find anything in the licensing information that explicitly
states this. It was my understanding that a CAL is based on user or
device and could make as many connections to the db as needed.

Re: Multiple Threads and Licensing Roger Wolter[MSFT]
6/22/2006 8:05:00 PM
If you have only 5 instruments then you should be OK. Each instrument is a
user and can spawn multiple connections although I don't understand why it
would need to.

--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

[quoted text, click to view]

Re: Multiple Threads and Licensing Patrick Brand
6/23/2006 9:59:39 AM
Hi Roger,

Thanks for replying.

I want to make sure I understand how this works. My program will be
running on the same computer as the SQL server. It will collect data
from up to 32 instruments in 32 threads. Based on this data, I will
save information to the database, 1 record for each instrument. Is this
considered multiplexing or pooling and that is why I would need 32 CALs?
If I used just 1 connection would 1 CAL be sufficient?

I will also have a couple of other computers that connect to this main
computer and view and edit the data. I know these will require separate
CALs.

I called MS Volume Licensing and was told that for each connection to
the database I needed a CAL period. If I have 1 user that opens up 5
connections (example 5 different programs) to the database that would
use 5 CALs. If I took 1 program that made a connection to the db and
ran it twice on the same computer that would require 2 CALS. Any
program I write needs a CAL for each connection to the database. To me
this seems like the CALs are based on connections and not users or
devices. Is that correct?

So I guess my real question is: Is a user or device CAL is only good
for 1 connection to the database? If the program this user is running
for whatever reason makes 2 connections to the database it requires 2
CALs even though its coming from the same user or device?

I have searched MS's website and have not found any solid information on
how this licensing is really suppose to work.

Thanks again

[quoted text, click to view]
Re: Multiple Threads and Licensing Arnie Rowland
6/23/2006 3:21:08 PM
First, (disclaimer) I'm not a licensing expert.

As I understand your problem, you have one client program (where it executes
is immaterial -standalone or server).

That one client application has multiple threads connecting to various
input/output devices -including keyboard, mouse, etc.

That one client application obtains information from those input/output
devices, and then that one client saves data in SQL Server.

I believe you have one client requiring one CAL.

The various input/output devices are not connecting to SQL Server.

Consider other various input/output devices. Should you have a separate CAL
for keyboard, mouse, PLC, barcode reader, digital tablet, etc. I think you
can see where I'm going. If your various 'instruments' directly connected to
SQL Server, (and had the intelligence to use that connection) they would
require CALs -but they do not. You application is not serving as a 'proxy'
for these input/output devices (as a web server serves as proxy to
individual client sessions.)

If I have 10 (or whatever number) of client applications running on a single
computer, each running in its own thread, each connected to SQL Server, I
only need a single CAL (either device or user). Except of course, if by
using terminal services, or Citrix, my computer is serving as a proxy for
other computers -then each proxied connection requires its own CAL.

Let me know if this helps,

--
Arnie Rowland, YACE*
"To be successful, your heart must accompany your knowledge."

*Yet Another Certification Exam


[quoted text, click to view]

Re: Multiple Threads and Licensing Roger Wolter[MSFT]
6/23/2006 3:36:17 PM
My interpretation is that you would need 32 CALs to cover your 32 devices
but I'm not a lawyer so you need to go with what the licensing people say.
To me, your situation is the same as 32 users connecting to a middle tier
application that opens up one or more connections to the database. In that
case you pay for 32 CALs because what counts is users of the database not
connections. Conversely, those same 32 users could each open 2 connections
to the database and still only require 32 CALs. I don't know if there's a
different policy if your users are really inanimate objects (I've had users
that were pretty inanimate but that's a different story) so you need to talk
to the licensing people.

--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

[quoted text, click to view]

Re: Multiple Threads and Licensing Arnie Rowland
6/23/2006 4:38:14 PM
As I said before, I'm not a licensing expert. I have engaged in lengthly
conversations with legal staff at several major manufacturing 'partners'
about my concerns in regards to licensing. I'm relating to what I have been
told and observed to be in actual practice.

There are a number of products in the process control field that serve to
collect input from PLC devices in manfacturing, and then store that input in
database servers such as SQL Server. Those products collect the data,
perhaps 'massage' it in some way, and then save the data in a data server.
Logically, it's really not much different than using a keyboard as an input
device -and often with as little 'intelligence' as a keyboard.

According to your logic, every major manufacturer is out of complicance
since they are not buying a CAL for each and every production line input
device. (Of course, Microsoft would like that, but the very large
manfacturing user base would be extremely uncomfortable with that analysis.)

I think the key is "Can (or) Does the device directly use the connection
with or without the 'middleman' application? If so, as in the case of any
middle tier (COM server, Web server, etc.) application, a CAL is required.
It seems that if the device could never use a connection with/or without the
'middleman' application, it 'may' not require a CAL. (Note the
equivocation -I'm not a licensing specialist. And sometimes when chatting
with VL phone folks, it takes a bit of explaining (sometimes over and over)
to be clearly understood -after all, their job is to sell licenses -not help
the customer avoid unneeded licenses!)

Perhaps Patrict needed assistance in understanding how to more clearly
communicate the issues to the VL folks. If so, I hope I helped. If I muddied
the waters, I offer my regrets.

However, as always, since everything changes so fast and so much, I am open
to my continued education...(And I'm backing out of this conversation
leaving it to more learned hands.)

--
Arnie Rowland, YACE*
"To be successful, your heart must accompany your knowledge."

*Yet Another Certification Exam


[quoted text, click to view]

Re: Multiple Threads and Licensing Patrick Brand
6/26/2006 8:01:35 AM
Thanks Arnie, Roger

You have been very helpful. I am going to call MS again and see if I
can clarify my situation better. This whole processor/cal license
scheme would not really be that big of a deal except for the fact that
the customer who will be using this software gets charged ~$800 for the
workgroup version with 5 CALs and ~$20000 for the per processor version.



[quoted text, click to view]
AddThis Social Bookmark Button