Showing posts with label connect. Show all posts
Showing posts with label connect. Show all posts

Friday, March 30, 2012

Profiler 2005 issue

Hi!

When I try to run profile 2005 ... as soon as i hit the connect button (authentication dialog) I get this error:

The procedure entry point lstrcpynI could not be located in the dynamic link library MSDART.DLL

any ideas?

Everything is up to date on my system. my configuration:

SQL Server 2000 enterprise (can't wait till next week to get EE for 2005)
WS 2003 w/SP1
.NET 1.1/2.0 (2.0 was installed with SQL 2005)
VS.NET 2003 (going to install 2005 later)

Office 2003 with SP2anyone?

Wednesday, March 28, 2012

Professionally Handling ADO Logins

Hello -- I'm curious to know how most folks write VB code to connect to
their database using ADO without hardcoding the values in the application.
I frequently see books that allow the user to enter a username/password
within a login form and pass this information to the Conneciton object
Open() method. However, they then turn around and hardcode the server
name!!!
It would appear even attempting to use ADO Bound Controls in a professinoal
application is totally out of the question; since you must set the
connection info at design-time within its properties.
I was wondering if it made sense to display a logon form requesting the
login name/password, and then having a combo box that enumerated all the SQL
Servers on the network using SQLDMO. The users selection can be saved to
the registry or to an INI file and pre-filled in the box the next time the
application is executed...
Any help, ideas, or feedback would be appreciated.
--
...david
I you wish to reply to me personnally, please remove
the "underline" from scandal_123@.cox.net. The is done to avoid SPAM!I think there are multiple options you have for making the connection to the
database transparent to your application.
(1) You could use a DSN name in your code and possibly show the user the
list of configured DSN's in the system and then connect based on the user
selection.
(2) You could use a UDL file that contains information regarding the login
information.
(3) You could collect user-name, password and also show the list of servers
in the network for the the user to select and then form the connection
string yourself based on the input parameters and then connect.
In my experience, I've found (1) and (3) to be most popular.
--
HTH,
SriSamp
Please reply to the whole group only!
http://www32.brinkster.com/srisamp
"DavidM" <scandal_123@.cox.net> wrote in message
news:%234KT5atoDHA.2216@.TK2MSFTNGP12.phx.gbl...
> Hello -- I'm curious to know how most folks write VB code to connect to
> their database using ADO without hardcoding the values in the application.
> I frequently see books that allow the user to enter a username/password
> within a login form and pass this information to the Conneciton object
> Open() method. However, they then turn around and hardcode the server
> name!!!
> It would appear even attempting to use ADO Bound Controls in a
professinoal
> application is totally out of the question; since you must set the
> connection info at design-time within its properties.
> I was wondering if it made sense to display a logon form requesting the
> login name/password, and then having a combo box that enumerated all the
SQL
> Servers on the network using SQLDMO. The users selection can be saved to
> the registry or to an INI file and pre-filled in the box the next time the
> application is executed...
> Any help, ideas, or feedback would be appreciated.
>
> --
> ...david
> I you wish to reply to me personnally, please remove
> the "underline" from scandal_123@.cox.net. The is done to avoid SPAM!
>

Friday, March 23, 2012

Proclarity

I log into a terminal services machine using domain\userid. When I try to connect to Proclarity it prompts me to log in again. I re-enter domain\userid and Proclarity connects to the AS cubes.

Is there an authentication problem with terminal services and the Proclarity client?

If you are using the professional, windows, client you should be able to only enter the server name, when promted at logon. If you use webaccess with a browser or connect with the windows client by using http, you can be promted for login information. Probably you have a webserver that uses basic authentication.

I use TS with ProClarity Professional(installed on the server) daily without any login requirements.

Regards

Thomas Ivarsson

|||It think it can also depend if you have proclarity and AS on two machines, I'm required to logon to both proclarity and the AS cubes when using the professional product, although this is the web prefessional product.|||

Everyone is on the right path here. ProClarity has three different "client" tools:

ProClarity Standard - Thin client requiring no client install accessed through the ProClarity Analytics Server (PAS) URL

ProClarity Web Professional - COM components required on client. User must access PAS to retrieve a Briefing Book. After a Briefing Book is retrieved from PAS this client operates exactly like ProClarity Desktop Professional.

ProClarity Desktop Professional - Standard "Setup.exe" install on client. Can open Desktop Professional and access a cube directly withouth having a PAS server involved.

If you are using ProClarity Standard, then you do not connect directly to an AS server. The connection to the AS server is made by the PAS server. When you execute an MDX statement, the PAS server sends the MDX to the server, renders the resulting view and then passes back DHTML to the client. In this case, as was correctly pointed out, if the PAS server and AS server are on different servers then you will have to use either Basic Authentication or implement Kerberos to allow the PAS server to delegate user credentials to the AS server.

If you are using either Web Professional or Desktop Professional, then you are connecting from the client directly to the AS server and there should be no need to do anything special.

HTH,

Steve

Monday, March 12, 2012

Processes seen in enterprise manager

Hi,
We are using a new third party application that has SQL Server 2000 as the
database. It is an ASP page front end and uses ODBC to connect. There are
about 20 people who use it during the day. When I look in EM at the
processes there are well over 100. Even in the morning after everyone has
logged out the night before. All the processes are sleeping so they aren't
using any resources. I feel kind of dumb here but is there a server
property setting where I can set a value for these to expire? Looked in BOL
and in my other books but this doesn't seem to be available. Only timeout
settings when waiting for a connection or running a query. I wasn't worried
about these thinking SQL Server was managing them but then I noticed that
our in house application that uses the same type of setup doesn't have this
problem.
Thanks,
Wayne
I have worked with one third party application whose idea of connection
pooling was to open up 100 connections on start-up, even though it never
used more than 2 during the time we used it. Your third party application
might have been designed by a similarly brilliant and knowledgeable
developer.
You can't set a timeout for the connections, but you can schedule a job to
run the following script on a regular basis. This example kills all
connections that have not been used for 6 hours:
DECLARE @.sql varchar(4000)
WHILE 1=1
BEGIN
SET @.sql = (SELECT TOP 1 'KILL ' + CAST(spid AS VARCHAR(10))
FROM master.dbo.sysprocesses WHERE DATEDIFF(hh, last_batch,
GETDATE()) >= 6
AND spid <> @.@.spid AND spid >= 50)
IF @.sql IS NULL BREAK
EXEC (@.sql)
END
Jacco Schalkwijk
SQL Server MVP
"Wayne Antinore" <wantinore@.veramark.com> wrote in message
news:OPecmwqLEHA.1340@.TK2MSFTNGP12.phx.gbl...
> Hi,
> We are using a new third party application that has SQL Server 2000 as the
> database. It is an ASP page front end and uses ODBC to connect. There
are
> about 20 people who use it during the day. When I look in EM at the
> processes there are well over 100. Even in the morning after everyone has
> logged out the night before. All the processes are sleeping so they
aren't
> using any resources. I feel kind of dumb here but is there a server
> property setting where I can set a value for these to expire? Looked in
BOL
> and in my other books but this doesn't seem to be available. Only timeout
> settings when waiting for a connection or running a query. I wasn't
worried
> about these thinking SQL Server was managing them but then I noticed that
> our in house application that uses the same type of setup doesn't have
this
> problem.
> Thanks,
> Wayne
>
|||Thanks Jacco,
I'll give the script a try. Based on other things I've seen with this app I
would not be surprised if they are doing something similar.
Thanks again,
Wayne
"Jacco Schalkwijk" <NOSPAMjaccos@.eurostop.co.uk> wrote in message
news:%23m6mO%23qLEHA.3516@.TK2MSFTNGP11.phx.gbl...[vbcol=seagreen]
> I have worked with one third party application whose idea of connection
> pooling was to open up 100 connections on start-up, even though it never
> used more than 2 during the time we used it. Your third party application
> might have been designed by a similarly brilliant and knowledgeable
> developer.
> You can't set a timeout for the connections, but you can schedule a job to
> run the following script on a regular basis. This example kills all
> connections that have not been used for 6 hours:
> DECLARE @.sql varchar(4000)
> WHILE 1=1
> BEGIN
> SET @.sql = (SELECT TOP 1 'KILL ' + CAST(spid AS VARCHAR(10))
> FROM master.dbo.sysprocesses WHERE DATEDIFF(hh, last_batch,
> GETDATE()) >= 6
> AND spid <> @.@.spid AND spid >= 50)
> IF @.sql IS NULL BREAK
> EXEC (@.sql)
> END
>
> --
> Jacco Schalkwijk
> SQL Server MVP
>
> "Wayne Antinore" <wantinore@.veramark.com> wrote in message
> news:OPecmwqLEHA.1340@.TK2MSFTNGP12.phx.gbl...
the[vbcol=seagreen]
> are
has[vbcol=seagreen]
> aren't
> BOL
timeout[vbcol=seagreen]
> worried
that
> this
>
|||Ok, don't be surprised though if the application either fails to work when
it's 100 or so connections aren't there, or just recreates them on a regular
basis after you have killed them....
Jacco Schalkwijk
SQL Server MVP
"Wayne Antinore" <wantinore@.veramark.com> wrote in message
news:uJQkvJrLEHA.3904@.TK2MSFTNGP09.phx.gbl...
> Thanks Jacco,
> I'll give the script a try. Based on other things I've seen with this app
I[vbcol=seagreen]
> would not be surprised if they are doing something similar.
> Thanks again,
> Wayne
>
> "Jacco Schalkwijk" <NOSPAMjaccos@.eurostop.co.uk> wrote in message
> news:%23m6mO%23qLEHA.3516@.TK2MSFTNGP11.phx.gbl...
application[vbcol=seagreen]
to[vbcol=seagreen]
> the
There[vbcol=seagreen]
> has
in
> timeout
> that
>

Friday, March 9, 2012

Processes seen in enterprise manager

Hi,
We are using a new third party application that has SQL Server 2000 as the
database. It is an ASP page front end and uses ODBC to connect. There are
about 20 people who use it during the day. When I look in EM at the
processes there are well over 100. Even in the morning after everyone has
logged out the night before. All the processes are sleeping so they aren't
using any resources. I feel kind of dumb here but is there a server
property setting where I can set a value for these to expire? Looked in BOL
and in my other books but this doesn't seem to be available. Only timeout
settings when waiting for a connection or running a query. I wasn't worried
about these thinking SQL Server was managing them but then I noticed that
our in house application that uses the same type of setup doesn't have this
problem.
Thanks,
WayneI have worked with one third party application whose idea of connection
pooling was to open up 100 connections on start-up, even though it never
used more than 2 during the time we used it. Your third party application
might have been designed by a similarly brilliant and knowledgeable
developer.
You can't set a timeout for the connections, but you can schedule a job to
run the following script on a regular basis. This example kills all
connections that have not been used for 6 hours:
DECLARE @.sql varchar(4000)
WHILE 1=1
BEGIN
SET @.sql = (SELECT TOP 1 'KILL ' + CAST(spid AS VARCHAR(10))
FROM master.dbo.sysprocesses WHERE DATEDIFF(hh, last_batch,
GETDATE()) >= 6
AND spid <> @.@.spid AND spid >= 50)
IF @.sql IS NULL BREAK
EXEC (@.sql)
END
Jacco Schalkwijk
SQL Server MVP
"Wayne Antinore" <wantinore@.veramark.com> wrote in message
news:OPecmwqLEHA.1340@.TK2MSFTNGP12.phx.gbl...
> Hi,
> We are using a new third party application that has SQL Server 2000 as the
> database. It is an ASP page front end and uses ODBC to connect. There
are
> about 20 people who use it during the day. When I look in EM at the
> processes there are well over 100. Even in the morning after everyone has
> logged out the night before. All the processes are sleeping so they
aren't
> using any resources. I feel kind of dumb here but is there a server
> property setting where I can set a value for these to expire? Looked in
BOL
> and in my other books but this doesn't seem to be available. Only timeout
> settings when waiting for a connection or running a query. I wasn't
worried
> about these thinking SQL Server was managing them but then I noticed that
> our in house application that uses the same type of setup doesn't have
this
> problem.
> Thanks,
> Wayne
>|||Thanks Jacco,
I'll give the script a try. Based on other things I've seen with this app I
would not be surprised if they are doing something similar.
Thanks again,
Wayne
"Jacco Schalkwijk" <NOSPAMjaccos@.eurostop.co.uk> wrote in message
news:%23m6mO%23qLEHA.3516@.TK2MSFTNGP11.phx.gbl...
> I have worked with one third party application whose idea of connection
> pooling was to open up 100 connections on start-up, even though it never
> used more than 2 during the time we used it. Your third party application
> might have been designed by a similarly brilliant and knowledgeable
> developer.
> You can't set a timeout for the connections, but you can schedule a job to
> run the following script on a regular basis. This example kills all
> connections that have not been used for 6 hours:
> DECLARE @.sql varchar(4000)
> WHILE 1=1
> BEGIN
> SET @.sql = (SELECT TOP 1 'KILL ' + CAST(spid AS VARCHAR(10))
> FROM master.dbo.sysprocesses WHERE DATEDIFF(hh, last_batch,
> GETDATE()) >= 6
> AND spid <> @.@.spid AND spid >= 50)
> IF @.sql IS NULL BREAK
> EXEC (@.sql)
> END
>
> --
> Jacco Schalkwijk
> SQL Server MVP
>
> "Wayne Antinore" <wantinore@.veramark.com> wrote in message
> news:OPecmwqLEHA.1340@.TK2MSFTNGP12.phx.gbl...
the[vbcol=seagreen]
> are
has[vbcol=seagreen]
> aren't
> BOL
timeout[vbcol=seagreen]
> worried
that[vbcol=seagreen]
> this
>|||Ok, don't be surprised though if the application either fails to work when
it's 100 or so connections aren't there, or just recreates them on a regular
basis after you have killed them....
Jacco Schalkwijk
SQL Server MVP
"Wayne Antinore" <wantinore@.veramark.com> wrote in message
news:uJQkvJrLEHA.3904@.TK2MSFTNGP09.phx.gbl...
> Thanks Jacco,
> I'll give the script a try. Based on other things I've seen with this app
I
> would not be surprised if they are doing something similar.
> Thanks again,
> Wayne
>
> "Jacco Schalkwijk" <NOSPAMjaccos@.eurostop.co.uk> wrote in message
> news:%23m6mO%23qLEHA.3516@.TK2MSFTNGP11.phx.gbl...
application[vbcol=seagreen]
to[vbcol=seagreen]
> the
There[vbcol=seagreen]
> has
in[vbcol=seagreen]
> timeout
> that
>

Processes seen in enterprise manager

Hi,
We are using a new third party application that has SQL Server 2000 as the
database. It is an ASP page front end and uses ODBC to connect. There are
about 20 people who use it during the day. When I look in EM at the
processes there are well over 100. Even in the morning after everyone has
logged out the night before. All the processes are sleeping so they aren't
using any resources. I feel kind of dumb here but is there a server
property setting where I can set a value for these to expire? Looked in BOL
and in my other books but this doesn't seem to be available. Only timeout
settings when waiting for a connection or running a query. I wasn't worried
about these thinking SQL Server was managing them but then I noticed that
our in house application that uses the same type of setup doesn't have this
problem.
Thanks,
WayneI have worked with one third party application whose idea of connection
pooling was to open up 100 connections on start-up, even though it never
used more than 2 during the time we used it. Your third party application
might have been designed by a similarly brilliant and knowledgeable
developer.
You can't set a timeout for the connections, but you can schedule a job to
run the following script on a regular basis. This example kills all
connections that have not been used for 6 hours:
DECLARE @.sql varchar(4000)
WHILE 1=1
BEGIN
SET @.sql = (SELECT TOP 1 'KILL ' + CAST(spid AS VARCHAR(10))
FROM master.dbo.sysprocesses WHERE DATEDIFF(hh, last_batch,
GETDATE()) >= 6
AND spid <> @.@.spid AND spid >= 50)
IF @.sql IS NULL BREAK
EXEC (@.sql)
END
Jacco Schalkwijk
SQL Server MVP
"Wayne Antinore" <wantinore@.veramark.com> wrote in message
news:OPecmwqLEHA.1340@.TK2MSFTNGP12.phx.gbl...
> Hi,
> We are using a new third party application that has SQL Server 2000 as the
> database. It is an ASP page front end and uses ODBC to connect. There
are
> about 20 people who use it during the day. When I look in EM at the
> processes there are well over 100. Even in the morning after everyone has
> logged out the night before. All the processes are sleeping so they
aren't
> using any resources. I feel kind of dumb here but is there a server
> property setting where I can set a value for these to expire? Looked in
BOL
> and in my other books but this doesn't seem to be available. Only timeout
> settings when waiting for a connection or running a query. I wasn't
worried
> about these thinking SQL Server was managing them but then I noticed that
> our in house application that uses the same type of setup doesn't have
this
> problem.
> Thanks,
> Wayne
>|||Thanks Jacco,
I'll give the script a try. Based on other things I've seen with this app I
would not be surprised if they are doing something similar.
Thanks again,
Wayne
"Jacco Schalkwijk" <NOSPAMjaccos@.eurostop.co.uk> wrote in message
news:%23m6mO%23qLEHA.3516@.TK2MSFTNGP11.phx.gbl...
> I have worked with one third party application whose idea of connection
> pooling was to open up 100 connections on start-up, even though it never
> used more than 2 during the time we used it. Your third party application
> might have been designed by a similarly brilliant and knowledgeable
> developer.
> You can't set a timeout for the connections, but you can schedule a job to
> run the following script on a regular basis. This example kills all
> connections that have not been used for 6 hours:
> DECLARE @.sql varchar(4000)
> WHILE 1=1
> BEGIN
> SET @.sql = (SELECT TOP 1 'KILL ' + CAST(spid AS VARCHAR(10))
> FROM master.dbo.sysprocesses WHERE DATEDIFF(hh, last_batch,
> GETDATE()) >= 6
> AND spid <> @.@.spid AND spid >= 50)
> IF @.sql IS NULL BREAK
> EXEC (@.sql)
> END
>
> --
> Jacco Schalkwijk
> SQL Server MVP
>
> "Wayne Antinore" <wantinore@.veramark.com> wrote in message
> news:OPecmwqLEHA.1340@.TK2MSFTNGP12.phx.gbl...
> > Hi,
> > We are using a new third party application that has SQL Server 2000 as
the
> > database. It is an ASP page front end and uses ODBC to connect. There
> are
> > about 20 people who use it during the day. When I look in EM at the
> > processes there are well over 100. Even in the morning after everyone
has
> > logged out the night before. All the processes are sleeping so they
> aren't
> > using any resources. I feel kind of dumb here but is there a server
> > property setting where I can set a value for these to expire? Looked in
> BOL
> > and in my other books but this doesn't seem to be available. Only
timeout
> > settings when waiting for a connection or running a query. I wasn't
> worried
> > about these thinking SQL Server was managing them but then I noticed
that
> > our in house application that uses the same type of setup doesn't have
> this
> > problem.
> >
> > Thanks,
> > Wayne
> >
> >
>|||Ok, don't be surprised though if the application either fails to work when
it's 100 or so connections aren't there, or just recreates them on a regular
basis after you have killed them....
--
Jacco Schalkwijk
SQL Server MVP
"Wayne Antinore" <wantinore@.veramark.com> wrote in message
news:uJQkvJrLEHA.3904@.TK2MSFTNGP09.phx.gbl...
> Thanks Jacco,
> I'll give the script a try. Based on other things I've seen with this app
I
> would not be surprised if they are doing something similar.
> Thanks again,
> Wayne
>
> "Jacco Schalkwijk" <NOSPAMjaccos@.eurostop.co.uk> wrote in message
> news:%23m6mO%23qLEHA.3516@.TK2MSFTNGP11.phx.gbl...
> > I have worked with one third party application whose idea of connection
> > pooling was to open up 100 connections on start-up, even though it never
> > used more than 2 during the time we used it. Your third party
application
> > might have been designed by a similarly brilliant and knowledgeable
> > developer.
> >
> > You can't set a timeout for the connections, but you can schedule a job
to
> > run the following script on a regular basis. This example kills all
> > connections that have not been used for 6 hours:
> >
> > DECLARE @.sql varchar(4000)
> > WHILE 1=1
> > BEGIN
> > SET @.sql = (SELECT TOP 1 'KILL ' + CAST(spid AS VARCHAR(10))
> > FROM master.dbo.sysprocesses WHERE DATEDIFF(hh, last_batch,
> > GETDATE()) >= 6
> > AND spid <> @.@.spid AND spid >= 50)
> > IF @.sql IS NULL BREAK
> > EXEC (@.sql)
> > END
> >
> >
> > --
> > Jacco Schalkwijk
> > SQL Server MVP
> >
> >
> > "Wayne Antinore" <wantinore@.veramark.com> wrote in message
> > news:OPecmwqLEHA.1340@.TK2MSFTNGP12.phx.gbl...
> > > Hi,
> > > We are using a new third party application that has SQL Server 2000 as
> the
> > > database. It is an ASP page front end and uses ODBC to connect.
There
> > are
> > > about 20 people who use it during the day. When I look in EM at the
> > > processes there are well over 100. Even in the morning after everyone
> has
> > > logged out the night before. All the processes are sleeping so they
> > aren't
> > > using any resources. I feel kind of dumb here but is there a server
> > > property setting where I can set a value for these to expire? Looked
in
> > BOL
> > > and in my other books but this doesn't seem to be available. Only
> timeout
> > > settings when waiting for a connection or running a query. I wasn't
> > worried
> > > about these thinking SQL Server was managing them but then I noticed
> that
> > > our in house application that uses the same type of setup doesn't have
> > this
> > > problem.
> > >
> > > Thanks,
> > > Wayne
> > >
> > >
> >
> >
>

Process Used by Client to Connect to SQL Server

Hi,
By Using which process in SQL Server does the Client Communicates to SQL
Server.
Thanks,
HerbertHerbert,
Could you rephrase the question? Clients connect to port 1433 using
TCP/IP, but can also connect using Named Pipes. Is this what you're
after? What do you mean by process?
--
Mark Allison, SQL Server MVP
http://www.markallison.co.uk
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602m.html
Herbert wrote:
> Hi,
> By Using which process in SQL Server does the Client Communicates to SQL
> Server.
> Thanks,
> Herbert|||Hi,
thanks for imme reply
the process which handles all the client requests
Thanks,
Herbert
"Mark Allison" wrote:

> Herbert,
> Could you rephrase the question? Clients connect to port 1433 using
> TCP/IP, but can also connect using Named Pipes. Is this what you're
> after? What do you mean by process?
> --
> Mark Allison, SQL Server MVP
> http://www.markallison.co.uk
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602m.html
>
> Herbert wrote:
>

Process Used by Client to Connect to SQL Server

Hi,
By Using which process in SQL Server does the Client Communicates to SQL
Server.
Thanks,
HerbertHerbert,
Could you rephrase the question? Clients connect to port 1433 using
TCP/IP, but can also connect using Named Pipes. Is this what you're
after? What do you mean by process?
--
Mark Allison, SQL Server MVP
http://www.markallison.co.uk
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602m.html
Herbert wrote:
> Hi,
> By Using which process in SQL Server does the Client Communicates to SQL
> Server.
> Thanks,
> Herbert|||Hi,
thanks for imme reply
the process which handles all the client requests
Thanks,
Herbert
"Mark Allison" wrote:
> Herbert,
> Could you rephrase the question? Clients connect to port 1433 using
> TCP/IP, but can also connect using Named Pipes. Is this what you're
> after? What do you mean by process?
> --
> Mark Allison, SQL Server MVP
> http://www.markallison.co.uk
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602m.html
>
> Herbert wrote:
> > Hi,
> >
> > By Using which process in SQL Server does the Client Communicates to SQL
> > Server.
> >
> > Thanks,
> > Herbert
>

Process Used by Client to Connect to SQL Server

Hi,
By Using which process in SQL Server does the Client Communicates to SQL
Server.
Thanks,
Herbert
Herbert,
Could you rephrase the question? Clients connect to port 1433 using
TCP/IP, but can also connect using Named Pipes. Is this what you're
after? What do you mean by process?
Mark Allison, SQL Server MVP
http://www.markallison.co.uk
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602m.html
Herbert wrote:
> Hi,
> By Using which process in SQL Server does the Client Communicates to SQL
> Server.
> Thanks,
> Herbert
|||Hi,
thanks for imme reply
the process which handles all the client requests
Thanks,
Herbert
"Mark Allison" wrote:

> Herbert,
> Could you rephrase the question? Clients connect to port 1433 using
> TCP/IP, but can also connect using Named Pipes. Is this what you're
> after? What do you mean by process?
> --
> Mark Allison, SQL Server MVP
> http://www.markallison.co.uk
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602m.html
>
> Herbert wrote:
>

Saturday, February 25, 2012

process could not connect to Distributor

Sql Server SP4 on the publisher/distributer.
MSDE SP4 on the subscriber
Merge Replication
Anonymous Pull Subscriptions
TCP/IP only - removed Named Pipes
Windows Authent only - removed SQL Server
Setup an alias on the subscriber to the publisher.
Running on same network but different workgroups. Can not use Windows
Authentication as moving to Internet model.
Followed
http://support.microsoft.com/default...&Product=sql2k
So I setup the publisher to use an SA user and gave that SA user ownership
and admin rights to the publisher database.
I keep getting this error from the ActiveX component in VB.NET on the
subscriber: The process could not connect to Distributor 'W2KSERVER'.
SQL Server does not exist or access denied.
I had these guys working when it was SP3a, still had named pipes, and using
Windows Authentication passthrough.
Thanks,
Buzz
configure distributornetwork for tcpip, use the fqdn for the
distributoraddress (ie sqlserver.mydomainname.com).
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Buzz" <buzz@.online.nospam> wrote in message
news:EC950BD0-5245-47EB-8320-06D6633633BA@.microsoft.com...
> Sql Server SP4 on the publisher/distributer.
> MSDE SP4 on the subscriber
> Merge Replication
> Anonymous Pull Subscriptions
> TCP/IP only - removed Named Pipes
> Windows Authent only - removed SQL Server
> Setup an alias on the subscriber to the publisher.
> Running on same network but different workgroups. Can not use Windows
> Authentication as moving to Internet model.
> Followed
>
http://support.microsoft.com/default...&Product=sql2k
> So I setup the publisher to use an SA user and gave that SA user ownership
> and admin rights to the publisher database.
> I keep getting this error from the ActiveX component in VB.NET on the
> subscriber: The process could not connect to Distributor 'W2KSERVER'.
> SQL Server does not exist or access denied.
> I had these guys working when it was SP3a, still had named pipes, and
using
> Windows Authentication passthrough.
> Thanks,
> Buzz
>
>
|||Hello,
Name resolution must be working between all machines involved in
replication. Otherwise, you may receive the error message.
I suggest that you perform the following steps to narrow down the issue:
* Drop the subcription and then drop the publication.
* Setup name resolution both ways between the machines. There are several
options for achieving name resolution. You can use CNU aliases
(cliconfg.exe), hosts files, WINS, and/or DNS.
* On the publisher reregister in publisher and subscriber in Enterprise
Manager by netbios name instead of by IP address.
* On the remote server, register the publisher and the subscriber in
Enterprise Manager by netbios name (@.@.servername).
* Recreate the publication and then recreate the subscription.
* Run the Merge agent. Check the issue.
The following information is for your reference:
Potential causes of the "SQL Server does not exist or access denied" error
message
http://support.microsoft.com/?id=328306
324992 How to use replication with SQL Server 2000 Desktop Engine (MSDE
2000)
http://support.microsoft.com/?id=324992
I hope the information is helpful.
Sophie Guo
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
================================================== ===
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
================================================== ===
This posting is provided "AS IS" with no warranties, and confers no rights.
|||All that and it turns out it was a software firewall issue with XP on the
subscriber laptop.
However, now I am stuck with the next issue. Part of replicating over
untrusted domains or the internet means I need to use FTP. On the subscribers
I use the ActiveX merge module.
I specify the FTP address:
_merge.FileTransferType = FILE_TRANSFER_TYPE.FILETRANSFERFTP
If Me.txtFtpAddress.Text.StartsWith("ftp://") = False Then
Me.txtFtpAddress.Text = "ftp://" & Me.txtFtpAddress.Text
End If
Me.txtFtpAddress.Text = Me.txtFtpAddress.Text.Replace("\", "/")
_merge.FTPAddress = Me.txtFtpAddress.Text
But it keeps erroring out saying it cannot find the FTP location specified
at the value I have for _merge.Publisher?
The value for the Ftp is ftp://192.168.1.2/repldata.
The value for the Publisher is server909.
I put an LMHOSTS entry to route the 192.168.1.2 to server909 it works.
But I'm not going to be doing LMHOSTS management on 500+ production laptops
and we plan on using different FTP servers that are different than the SQL
Server.
"Sophie Guo [MSFT]" wrote:

> Hello,
> Name resolution must be working between all machines involved in
> replication. Otherwise, you may receive the error message.
> I suggest that you perform the following steps to narrow down the issue:
> * Drop the subcription and then drop the publication.
> * Setup name resolution both ways between the machines. There are several
> options for achieving name resolution. You can use CNU aliases
> (cliconfg.exe), hosts files, WINS, and/or DNS.
> * On the publisher reregister in publisher and subscriber in Enterprise
> Manager by netbios name instead of by IP address.
> * On the remote server, register the publisher and the subscriber in
> Enterprise Manager by netbios name (@.@.servername).
> * Recreate the publication and then recreate the subscription.
> * Run the Merge agent. Check the issue.
> The following information is for your reference:
> Potential causes of the "SQL Server does not exist or access denied" error
> message
> http://support.microsoft.com/?id=328306
> 324992 How to use replication with SQL Server 2000 Desktop Engine (MSDE
> 2000)
> http://support.microsoft.com/?id=324992
> I hope the information is helpful.
> Sophie Guo
> Microsoft Online Partner Support
> Get Secure! - www.microsoft.com/security
> ================================================== ===
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
> ================================================== ===
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
|||Not sure if the following will help, but let me try to clarify a few things:
1) Ftp support in SQL replication applies only to transfer of snapshot
files, movement of SQL changes would require a regular connection to SQL
server (Publisher and Distributor).
2) The Ftp* properties on the Merge\Distribution ActiveX control have
actually been deprecated in SQL2000, configuration of FTP snapshot support is
done at the publication level (right-click publication for properties). Once
that is confiigured, you will need to regenerate a new snapshot for the
settings to take effect. And when you start the merge control, all you need
to do is to specify a FileTransferType of FTP. In hind-sight, it was probably
a mistake not to take out the FTP* properties completely.
3) There is still the all important task of getting the merge activeX
control to establish a regular connection to SQL Server from an untrusted
domain in the first place. This typically means that either 1) to expose
whatever port that the distributor and publisher are listening on (default
SQL Server port is 1433) to the outside world (or accessible from the
laptops) and then use the Distributor|PublisherNetwork|Address properties to
point to the exposed IP address\port configuration, or 2) (recommended) to
configure VPN between the laptops and the Publisher\Distributor machines so
regular SQL Server connections can be established. If you decide to use the
VPN approach, there really is no need to configure FTP for the snapshot files
as regular UNC shares should be accessible by the laptops.
HTH
-Raymond
"Buzz" wrote:
[vbcol=seagreen]
> All that and it turns out it was a software firewall issue with XP on the
> subscriber laptop.
> However, now I am stuck with the next issue. Part of replicating over
> untrusted domains or the internet means I need to use FTP. On the subscribers
> I use the ActiveX merge module.
> I specify the FTP address:
> _merge.FileTransferType = FILE_TRANSFER_TYPE.FILETRANSFERFTP
> If Me.txtFtpAddress.Text.StartsWith("ftp://") = False Then
> Me.txtFtpAddress.Text = "ftp://" & Me.txtFtpAddress.Text
> End If
> Me.txtFtpAddress.Text = Me.txtFtpAddress.Text.Replace("\", "/")
> _merge.FTPAddress = Me.txtFtpAddress.Text
> But it keeps erroring out saying it cannot find the FTP location specified
> at the value I have for _merge.Publisher?
> The value for the Ftp is ftp://192.168.1.2/repldata.
> The value for the Publisher is server909.
> I put an LMHOSTS entry to route the 192.168.1.2 to server909 it works.
> But I'm not going to be doing LMHOSTS management on 500+ production laptops
> and we plan on using different FTP servers that are different than the SQL
> Server.
> "Sophie Guo [MSFT]" wrote:

Process cannot connect to distributor error !!!

Hey guys. I am creating an app that uses the RMO Merge Replication objects.
So far it can subscribe and unsubscribe just fine but when it comes to the syncing process it gets a little weird, here's why.

- If I run the SQL GUI Sync tool, it sinks fine. So that setup is working.

- When I run the C# App it blows up witht the error: "Process cannot connect to Distributor"

- Here's the weird part: When I set a breakpoint on my custom method SyncData (this method sets up the connection info and properties and then calls Syncronize( ) ) and step through the code when it gets to Syncronize( ) it runs perfectly fine, no execeptions.

I thought that maybe the Syncronize( ) method was being called too fast before the connection properties got to fully setup and connect, so I added a Thread.Sleep( ) method for 10 secs after each connection call and just before calling Syncronize( ). It still didn't work. My class is a static class by design, however, I changed it into an ordinary class and then placed the connection info in the constructor hoping it would do it's connection when the object gets initialized, that didn't work either.

If someone could please help me out with this I would greatly appreciate it.

Here's my code:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Replication;
using Microsoft.SqlServer.Replication.BusinessLogicSupport;
using Microsoft.SqlServer.Management.Common;
using System.Windows.Forms;
using System.Threading;

namespace Emds.Briefcase.BriefcaseSubscriber.BLL
{
public class SyncDataClass
{
#region Members

private static string m_statusMessage = string.Empty;
private static byte m_percentComplete;
public delegate void StatusTextChangeHandler(int percent, string status);
public static event StatusTextChangeHandler OnStatusChange;

#endregion Members

#region Methods

public static string SyncData()
{

//Delay();

// Define the server, publication, and database names.
string publicationName = "Chart";
string publisherName = @."JSMITH\SQL2005";
string subscriberName = @."JDOE\SQL2005";
string subscriptionDbName = "DataSubscriber";
string publicationDbName = "DataPublisher";
string message = string.Empty;

// Create a connection to the Subscriber.
ServerConnection conn = new ServerConnection(subscriberName);

MergePullSubscription subscription;

try
{
// Connect to the Subscriber.
conn.Connect();
// Delay();

// Define the pull subscription.
subscription = new MergePullSubscription();
subscription.ConnectionContext = conn;

//Delay();

subscription.DistributorSecurity.WindowsAuthentication = false;
subscription.DistributorSecurity.SqlStandardLogin = "sa";
subscription.DistributorSecurity.SqlStandardPassword = "russell";

// Delay();
subscription.PublisherName = publisherName;
subscription.PublicationDBName = publicationDbName;
subscription.PublicationName = publicationName;
subscription.PublisherSecurity.SecurityMode = ReplicationSecurityMode.SqlStandard;
subscription.PublisherSecurity.SqlStandardLogin = "sa";
subscription.PublisherSecurity.SqlStandardPassword = "russell";

// Delay();
subscription.DatabaseName = subscriptionDbName;
subscription.SubscriberSecurity.WindowsAuthentication = false;
subscription.SubscriberSecurity.SqlStandardLogin = "sa";
subscription.SubscriberSecurity.SqlStandardPassword = "russell";

// Delay();

// If the pull subscription exists, then start the synchronization.
if (subscription.LoadProperties())
{

// Check that we have enough metadata to start the agent.
if (subscription.PublisherSecurity != null || subscription.DistributorSecurity != null)
{
// Synchronously start the Merge Agent for the subscription.
subscription.SynchronizationAgent.Status += new AgentCore.StatusEventHandler(SynchronizationAgent_Status);
// Delay();

subscription.SynchronizationAgent.Synchronize();
message = "Data Syncronization is a success!";
}
else
{
throw new ApplicationException("There is insufficent metadata to " +
"synchronize the subscription. Recreate the subscription with " +
"the agent job or supply the required agent properties at run time.");
}
}
else
{
// Do something here if the pull subscription does not exist.
throw new ApplicationException(String.Format(
"A subscription to '{0}' does not exist on {1}",
publicationName, subscriberName));
}
}
catch (Exception ex)
{
// Implement appropriate error handling here.
throw new ApplicationException("The subscription could not be " +
"synchronized. Verify that the subscription has " +
"been defined correctly.", ex);
}
finally
{
conn.Disconnect();
}
return message;
}

static void SynchronizationAgent_Status(object sender, StatusEventArgs e)
{
m_percentComplete = e.PercentCompleted;
m_statusMessage = e.Message;

//Fire custom event
if (OnStatusChange != null)
{
OnStatusChange(m_percentComplete, m_statusMessage);
}
}

#endregion Methods
}
}Moved to SQL Server Replication forum.|||

You may want to try setting the distributor security on the Agent object directly before calling subscription.SynchronizationAgent.Synchronize() like so:

subscription.SynchronizationAgent.DistributorSecurityMode = SecurityMode.Standard

subscription.SynchronizationAgent.DistributorLogin = "sa"

subscription.SynchronizationAgent.DistributorPassword = "russell"

Hope that helps,

-Raymond

|||Raymond,

Thanks for your response. If you look at my code listing I think you will see that I am already doing that, unless I missunderstood what you were suggesting.

Thanks again,

Chris|||

There is actually a subtle difference: I believe your code is setting the security info on the subscription object, whereas my code is setting it on the SynchronizationAgent object.

-Raymond

|||Ok, I will give it a shot. Thank you again!!|||That was it!!! Thank you very, very much!!!!!

Take care!!!