Maximum Concurrency Of 2 For Outbound Network Connections From CLR-stored Procedure?
Jul 18, 2007
Hi
I've implemented an SQL-CLR stored procedure which makes an HTTP connection using the WebClient class to a server where the processing on the web server takes 10 seconds.
If I fire off a bunch of requests to the stored procedure, e.g. 80 in 1 second I noticed that SQL Server 2005 (Express Edition) only allows 2 concurrent network connections at a time.
I can confirm this by looking at the timing of the results when they come back, basically I get 2 results every 10 seconds and by doing a 'netstat -a' on the web server I notice that there are never more than 2 HTTP connections from the SQL Server at a time.
Is this some sort of sheduling policy in terms of the number of concurrent external network accesses allowed by CLR objects running in SQL Server? Or some side effect of the way the WebClient class blocks in terms of waiting for a network response?
I was expecting all 80 of the requests to block waiting on a network response almost immediately and then for all 80 of them to pretty much complete and return 10-11 seconds later.
[Microsoft.SqlServer.Server.SqlProcedure]
public static int CreditAuthorisation(string Name, decimal Amount)
{
WebClient client = new WebClient();
string result = client.DownloadString("http://someserver/Test.aspx");
I have two SQL 2005 clusters, one at a Corporate HQ and another at a hosting site. On each cluster there are several SQL instances each tied to a seperate Cluster Group meaning that there is a virtual cluster IP address assigned to the cluster group which should translate to the instance.
The issue that I am seeing is that in the connection manager, the IP addresses aren't listed correctly and there is sometimes just junk in there -- up to 10 IP addresses listed. There are many replication and service broker jobs running between the clusters all tied to specific IP addresses and ports which map to NAT and ACLs on the firewalls.
Here is the crux of it: While I can change the listening port and IP in the connection manager, how to I ensure that the outbound replication traffic is coming from the right source? If I add the correct IP address into the connection manager for the instance and disable the others, will it send from that IP address?
I have inherited this system and we are making the first strides into intagling this mess, but I am trying to surgically fix this rather than opening up all kinds of security holes in the interim.
I'm using Java to connect to a SQL Server 2000 database. I connect using the Driver Manager with Sun's odbc driver ( sun.jdbc.odbc.JdbcOdbcDriver ) or I can use the jdbc driver provided by Microsoft (com.microsoft.jdbc.sqlserver.SQLServerDriver)
The Java application makes 1 Connection.
Within the database there exists a stored procedure that updates 2 Tables. The tables have a fixed number of rows that get updated continuously by calls to this stored procedure.
The Java application has a thread pool of 15 threads that create 15 CallableStatements (1 per thread) using the same instance of the Connection object.
According the the Microsoft JDBC driver docs, 1 Connection with multiple calls to the Callable statements is how it's supposed to be done. The following is an excerpt from Microsoft's "SQL Server 2000 Driver for JDBC Users Guide and Reference" (page 86) regarding Connection Managment: Managing Connections
Connection management is important to application performance. Optimize your application by connecting once and using multiple statement objects, instead of performing multiple connections. Avoid connecting to a data source after establishing an initial connection. This is precisely what I'm doing, but I do not know if the the stored procedures are being run concurrently, the documentation does not tell me.
So my question: What is happening inside SQL Server 2000?
HI ALL, I AM USING SQL SERVER 2005. I HAVE RETURN A RECURSIVE FUNCTION TO FIND OUT WHETHER THE NEXT DATE DOES NOT FALL WITHIN HOLIDAYS BUT I AM GETING THIS ERROR Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).
THE CODE I USED IS
alter FUNCTION [dbo].[GetNextDay](@dt datetime , @empcode varchar(50) ) RETURNS datetime AS BEGIN DECLARE @zoneid VARCHAR(50) declare @lvlflag varchar(50) declare @utdt DATETIME DECLARE @RETDT DATETIME DECLARE @COMPDT DATETIME
Select @lvlflag= b.ulm_user_field_flag from bbraun_emis.dbo.emp_reference a join bbraun_emis.dbo.user_lvl_master b on b.ulm_user_lvl_id = a.ER_USER_LVL and a.er_emp_code = @empcode SELECT @zoneid = ZONECODE FROM bbraun_emis.dbo.VWREGIONLINK WHERE CITYCODE IN (SELECT DISTINCT HM_CITY_CODE FROM bbraun_emis.dbo.HOSP_MASTER WHERE HM_HOSP_CODE IN (SELECT HER_HOSP_CODE FROM bbraun_emis.dbo.HOSP_EMP_REL WHERE HER_EMP_CODE in(@EMPCODE))) select @compdt = holiday_date from oriffconnect.dbo.holiday_master where zone_code = @zoneid and field_staff = @lvlflag and holiday_date = @dt
if(@@ROWCOUNT = 0) begin
Select @utdt = DATEADD(dd,1,@utdt) SeT @utdt = ([dbo].[GetNextDay](@utdt , @empcode)) end IF(@@ROWCOUNT <> 0) begin set @utdt = @dt end Select @RETDT = @utdt RETURN @RETDT
We have a production server that is configured to 100 user connections. Without any reason, the maximum connections had been exceeded and users can no longer access the sql. But if you sp_who , it displayed only 4 user connections. Since, I have an open connection before this error happens, i was able to execute sp_who. This happened 4 times since we installed the sql server. the version is 6.50.422 sp5a with hotfix.
To all gurus out there, can you give light into this problem?
I have a Windows 2003 Server. Planning to use SQL Server to act as the main Database Server which needs to cater to over 100's of simultaneous connections.
Can anyone share with me the default maximum simultaneous connections and the maximum allowed simultaneous connections for the following versions:
- MSDE - 2000 - 2005 Express - 2005
Hope I can get more professional advice from you guys.
Newbie here.I've got my database set up in SQL 2000, and have started an Access adpfor a front end. I have 10 licenses, and at the moment the onlyaccesses are the server through Remote Desktop and one person into theADP. I started getting ODBC timeout errors when running a complexquery, so I started poking around. In the logs there's messages sayingthe maximum of 10 user connections has been reached, over and overagain. I'm not even certain that these problems are related, but itdoesn't look good.Why are all 10 connections used when there's only the server and oneclient? No one else has access to this server. And how can I stop theODBC timeout? That paticular complex query is the whole jsutificationfor using SQL over Access, so I kind of need it to work. :)Thanks in advance, maddman
I have writen a Function which call's the same function it self. I'm getting the error as below.
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32). Can any one give me a solution for this problem I have attached the function also.
CREATE FUNCTION dbo.GetLegsFor(@IncludeParent bit, @EmployeeID float) RETURNS @retFindReports TABLE (EmployeeID float, Name nvarchar(255), BossID float) AS BEGIN IF (@IncludeParent=1) BEGIN INSERT INTO @retFindReports SELECT MemberId,Name,referredby FROM Amemberinfo WHERE Memberid=@EmployeeID END DECLARE @Report_ID float, @Report_Name nvarchar(255), @Report_BossID float DECLARE RetrieveReports CURSOR STATIC LOCAL FOR SELECT MemberId,Name,referredby FROM Amemberinfo WHERE referredby=@EmployeeID OPEN RetrieveReports FETCH NEXT FROM RetrieveReports INTO @Report_ID, @Report_Name, @Report_BossID WHILE (@@FETCH_STATUS = 0) BEGIN INSERT INTO @retFindReports SELECT * FROM dbo.GetLegsFor(0,@Report_ID) INSERT INTO @retFindReports VALUES(@Report_ID,@Report_Name, @Report_BossID) FETCH NEXT FROM RetrieveReports INTO @Report_ID, @Report_Name, @Report_BossID END CLOSE RetrieveReports DEALLOCATE RetrieveReports
I am running this query "delete from ims_domains where id=61" and got the error Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)
Please let me know what should be the reason? Thanks, Ravi
I face this error when i try to run my store procedure. The sample of store procedure as following:
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE sp_addUserAccess with encryption AS SET NOCOUNT ON
DECLARE @COUNTER INT SET @COUNTER = 0
DECLARE @i_compId INT BEGIN DECLARE C1 SCROLL CURSOR FOR SELECT i_compId FROM ltd_cms_company WHERE (i_owner = 176 or i_owner = 268) AND ti_recStatus = 1 END
OPEN C1 FETCH ABSOLUTE @COUNTER FROM C1 INTO @i_compId
Hi all, I get this message when trying to update a tabel i have whichhas nested hierarchies.The current hierarchies beginning from root = 1 are up to the level 5.Before going into details and sample data with all the sql queries andprocedures, this limitation from Microsoft for nested levels .. isthere any way or trick to increase the level in generic?
I have created a delete trigger in Table1 and Table2. Once I delete a certain record in Table1 it will also delete that record in Table2 or vice versa. But once i delete certain record either in Table1 or Table2 it will create an error "Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).". Can you help me on this?
We have been running SQL Server 7 for the past 6 months, with no problems at all. All of a sudden, we have received the error message 17050, that the maximum limit for connections has been reached. We cannot now start Enterprise Manager or do anything. We have tried fiddling with licencing in control panel but to no avail. Does anyone have any idea why this has suddenly happened? Any tips would be great!
I have a Sqlserver 6.5 production server used for web based applications Compaq 5500 4 GIG RAM, 4 processor
Sql Memory config on that server is 1048576 (which is 2048 MB) and the run value is 640000 (which is 1250 MB). runvalue for user connections was 500
We have only 90 user connections may increase upto 100 depends on the connections. We don't have any overload on that server.
Error: I was seeing "unable to connect maximum no. of 500 configured user connections are already connected" in the error log.
Action Taken:
I increased the user connections to 600 and rebooted the server. Immediately the same error I can see in the error log. But we have only 20 user connections at that time. I can able to connect.
1. PhoneID is nothing but the participant in the call. PhoneID = 1 is twice from above. Which means 2 particpants (Same call )with 2 numbers with their callstarttime and callendtime. Similarly for PhoneID =2, there are 4 participants. And the list goes on for a day and then for a month.
2. For example a phone call P1 with 2 participants is going on for a particular day. We should not consider the same phone call having 2 participants involved. So that the concurrency would be 2. We have to ignore that here.
3. Only to be considered is other Phone calls for that day. Lets say P1 having call with 2 participants, P2 having some 4 participants which fall in the time period of P1. Then we should consider P1 and P2 the common period
4. In order to find number of concurrent calls happened for a day basing on callstarttime and callendtime. What would be the query?
5. Should consider the Timeperiod or the bucket with 1 hour as the period.
6. A Phone Call P1, Phone Call P2, should have matching (common) time ( keeping all the scenarios) is required for this query.
Result for Concurrent calls for a day should be like below. Should get all the concurrent connections happened for a particular day.
Date|TimePeriod/Bucket(hr part)|Concurrentconnections| Jan-01-2015|01 to 02|3 Jan-01-2015|11 to 12|2 Jan-02-2015|04 to 05|5 Jan-02-2015|12 to 13|13 ........
ii) So once the above is achieved.
Have to find the Maximum concurrent connections for day from the above.
For below Maximum Concurrent connections are '3' Date|TimePeriod/Bucket(hr part)|Concurrentconnections| Jan-01-2015|01 to 02|3 Jan-01-2015|11 to 12|2
Hence the Result for Maximum Concurrent Connections would be
Date|TimePeriod/Bucket(hr part)|MaxConcurrentconnections| Jan-01-2015|01 to 02|3 Jan-02-2015|12 to 13|13 .............
I get the following error in a log file created in the osql command:
Msg 3201, Level 16, State 1, Server KAC2KGS2, Procedure usp_Kaman_Full_SqlDB_Backup, Line 150 Cannot open backup device 'x:Servername_master_sqlbu_200703101930.bkf'. Device error or device off-line. See the SQL Server error log for more details. Msg 3013, Level 16, State 1, Server KAC2KGS2, Procedure usp_Kaman_Full_SqlDB_Backup, Line 150 BACKUP DATABASE is terminating abnormally.
The device is established in a CMD file right before the osql command is started that starts my stored procedure. The CMD in this file is:
for /f "tokens=15 delims=." %%i in ('ipconfig^|find "IP Address"^|find "192.168"') do set SUBNET=%%i
:loop if exist x: net use x: /del net use x: \192.168.%SUBNET%.1ackup if not ERRORLEVEL 1 ( goto continue ) else ( echo FAILED TO CONNECT TO BACKUP SERVER >> "%SystemDrive%LogFiles\%Computername%.log" sleep 60 goto loop )
:continue
echo IP ADDRESS OBTAINED
Echo delete old log file if it exists
if exist %3\%computername%_kaman_full_sqldb_backup_old.log del /Q %3\%computername%_kaman_full_sqldb_backup_old.log
In the stored procedure I try to use the x: drive and that does not work. I have tried obtaining the \192.168.x.x address and that only works on some of my servers. All are running SQL 2000, some are using Win2K and Win2003. It does not seem to matter. One of them that is using Win2003 only fails occationally.
I notice when I do a
exec master..xp_cmdshell 'x:'
The system cannot find the drive specified.
Yet, when I go to the server there is an x drive.
I am using the sqlserv user to run the job and that use is an administrator on the local machine. This is a virtual machine. We add the X before the osql and drop it after the command finishes.
I'll try and keep this brief so in a nutshell:I have large distributed java system running on a Windows 2003 server(4cpu 8Gb memory).Periodically the following exceptions occurs in the servers:java.net.SocketException: No buffer space available (maximumconnections reached?): recv failedI know for a fact we are not using too many TCPIP sockets or runningtoo many socket servers.I have googled this error and found very little to help me.What buffer space is this?What does recv failed mean?(Is it at all relevant that sql server is running on the same box?)Any advice appreciated.Thanks in advance.Dan
This has been driving me crazy for weeks and I can't seem to find any info on it... Here is the scenario: I've developed an intranet using ASP.NET 2 and SQL Express. I have the site running on my local development computer and also the production server (Windows Server 2003 running SQL Express). Fully functional connection string for database running on local development computer and running on production server: <add name="ASPNETDBConnectionString" connectionString="Data Source=.SQLEXPRESS;AttachDbFilename='|DataDirectory|ASPNETDB.MDF';Integrated Security=True;User Instance=True;Connect Timeout=30" providerName="System.Data.SqlClient" /> Once I roll the site out, I want to be able to develop (to some degree) against the production database. But when changing my connection string to point to the production server from my development computer... <add name="ASPNETDBConnectionString" connectionString="Data Source=LancelotSQLEXPRESS;Database='D:OfficenetApp_DataASPNETDB.MDF';Integrated Security=True;User Instance=True;Connect Timeout=30;" providerName="System.Data.SqlClient" /> ...I get the following error: User does not have permission to perform this action. I've found some documentation about not using the "User Instance=True;" command but without that I get: Cannot open database "D:OfficenetApp_DataASPNETDB.MDF" requested by the login. The login failed.Login failed for user 'WITTEGregL'. In regular SQL Server, (not Express), I just change the connection string to work against the Local or Production database and it's really easy. I just can't figure out the trick to do the same kind of thing using SQL Express. Can someone clear this up for me? Greg
This question applies to both SQL Server 2000 and 2005.
I want to create a stored procedure that only one user at a time can execute. I know I do not want to use sp_getapplock. Does anyone know how can I accomplish this task. If so please provide a small example.
We've had two instances now where when there is a network connection timeout to the mirror from the primary, the primary db server goes to 100% utilization and refuses all connections.
The first time we had to reboot the primary, the 2nd time mirroring picked up again 10 minutes later.
There are two dbs being mirrored, one is 15gig, the other 4gig. Both boxes are running SQL2005 64 bit and Win 2003 64bit.
This happened at 6am and typically there shouldn't be a lot of traffic at that time but here are the error messages in the SQL log below.
We are going to try and move db communications to a separate network and network card - but this looks like either a bug in mirroring or a configuration problem on our end - though it works just fine other times.
Any thoughts/suggestions would be greatly appreciated.
Thanks!
Mark
SQL Error Log:
11/01/2006 06:12:12,Logon,Unknown,The server was unable to load the SSL provider library needed to log in; the connection has been closed. SSL is used to encrypt either the login sequence or all communications<c/> depending on how the administrator has configured the server. See Books Online for information on this error message: 0x2746. [CLIENT: 10.16.7.7] 11/01/2006 06:12:12,Logon,Unknown,Error: 17194<c/> Severity: 16<c/> State: 1. 11/01/2006 06:12:12,Logon,Unknown,The server was unable to load the SSL provider library needed to log in; the connection has been closed. SSL is used to encrypt either the login sequence or all communications<c/> depending on how the administrator has configured the server. See Books Online for information on this error message: 0x2746. [CLIENT: 10.16.7.7] 11/01/2006 06:12:12,Logon,Unknown,Error: 17194<c/> Severity: 16<c/> State: 1. 11/01/2006 06:12:12,Logon,Unknown,The server was unable to load the SSL provider library needed to log in; the connection has been closed. SSL is used to encrypt either the login sequence or all communications<c/> depending on how the administrator has configured the server. See Books Online for information on this error message: 0x2746. [CLIENT: 10.16.7.2] 11/01/2006 06:12:12,Logon,Unknown,Error: 17194<c/> Severity: 16<c/> State: 1. 11/01/2006 06:12:11,spid22s,Unknown,Database mirroring connection error 4 '10054(An existing connection was forcibly closed by the remote host.)' for 'TCP://PYTHAGORAS.test.com:7024'. 11/01/2006 06:12:11,spid22s,Unknown,Error: 1474<c/> Severity: 16<c/> State: 1. 11/01/2006 06:04:53,spid26s,Unknown,Database mirroring is inactive for database 'NewScribe'. This is an informational message only. No user action is required. 11/01/2006 06:04:53,spid26s,Unknown,The mirroring connection to "TCP://PYTHAGORAS.test.com:7024" has timed out for database "NewScribe" after 10 seconds without a response. Check the service and network connections. 11/01/2006 06:04:53,spid26s,Unknown,Error: 1479<c/> Severity: 16<c/> State: 1. 11/01/2006 06:04:53,spid24s,Unknown,Database mirroring is inactive for database 'HL7Transfer'. This is an informational message only. No user action is required. 11/01/2006 06:04:53,spid24s,Unknown,The mirroring connection to "TCP://PYTHAGORAS.test.com:7024" has timed out for database "HL7Transfer" after 10 seconds without a response. Check the service and network connections. 11/01/2006 06:04:53,spid24s,Unknown,Error: 1479<c/> Severity: 16<c/> State: 1.
I have a requirement that requires detection of rows deleted/updated byother processes. My business objects call stored procedures to create,read, update, delete data in a SQL Server 2000 data store. I've donea fair amount of research on concurrency handling in newsgroups andother resources. Below is what I've come up as a standard forhandling concurrency thru stored procedures. I am sharing with everyoneso I can get some comments (pro/con) regarding this approach and see ifanyone can find any holes for this solution.Below is the DDL, DML and a Stored Proc demonstrating the approach. Iam using a rowversion column for concurrency checking. Another approachthat is less intrusive (doesn't require having a rowversion column inall tables) is using checksum. I may eventually use checksum but theprocess flow should be almost identical. Looking forward to anyone'scomments.Thx, BZ--xxxxxxxxxxxxxxxxxxxxxxxxxxx--IF EXISTS (SELECT * FROM sysobjects WHERE type = 'U' AND name ='ApplicationUsers')BEGINPRINT 'Dropping Table ApplicationUsers'DROP Table dbo.ApplicationUsersENDGOPRINT 'Creating Table ApplicationUsers'GOCREATE TABLE dbo.ApplicationUsers(LoginName varchar (20) NOT NULL Primary Key,LoginPassword varchar (50) NOT NULL,LoginAttempts int NOT NULL default(0),EmailAddress varchar(25) NOT NULL Unique,DataVersion rowversion NOT NULL)GOIF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name ='UpdateUser')BEGINPRINT 'Dropping Procedure UpdateUser'DROP Procedure dbo.UpdateUserENDGOPRINT 'Creating Procedure UpdateUser'GOCreate Procedure dbo.UpdateUser@loginName Varchar (20),@loginPassword Varchar (50),@loginAttempts Int,@emailAddress Varchar(25),@dataVersion Rowversion OutputAs/************************************************** ****************************** Name: dbo.UpdateUser** Desc: Updates an Application User instance**** Parameters:** Input** @loginName** @loginPassword** @loginAttempts** @emailAddress** @dataVersion. row version used for concurrency control.**** Output** @dataVersion. updated row version used for concurrencycontrol.**** Return** 0 for Success. Error code if any are encountered** 66661 if current row version doesn't match provided version** 66666 if expected row is not found**************************************************** *****************************/Set NoCount OnDeclare@err Int,@rowCount Int,@tranCount Int--Transaction HandlingSelect @tranCount = @@TRANCOUNTIf (@tranCount=0)Begin Tran LocalTranElseSave Tran LocalTranUpdatedbo.ApplicationUsersSetLoginPassword = @loginPassword,LoginAttempts = @loginAttempts,EmailAddress = @emailAddressWhereLoginName = @loginNameAndDataVersion = @dataVersion--Check for errors and rowCount (Should have updated 1 row)Select @err = @@ERROR, @rowCount = @@ROWCOUNTIf (@err != 0) GOTO ErrHandlerIf (@rowCount != 1) GOTO ConcurrencyHandler--Set dataversion output parameterSelect@dataVersion = DataVersionFromdbo.ApplicationUsersWhereLoginName = @loginName/*If we got this far then there were no errorsIf this proc started transaction then commit it,otherwise return and let caller handle transaction*/If (@TranCount = 0)Commit Tran LocalTranReturn 0/*Rollback local transaction if an error was encountered.Return code is used to communicate error number.*/--Handle Concurrency ErrorsConcurrencyHandler:Rollback Tran LocalTranIf Exists (Select * From dbo.ApplicationUsers where LoginName =@loginName)Return 66661 --Row version doesn't match provided versionElseReturn 66666 --Row not found--Handle Other ErrorsErrHandler:Rollback Tran LocalTranReturn @err --Return Err NumberGOPRINT 'Inserting Test Data...'--Add Test DataInsert Into dbo.ApplicationUsers(LoginName, LoginPassword, LoginAttempts, EmailAddress)Values('blackmamba', 'Pwd1', default, 'bm@DIVAS.com')Insert Into dbo.ApplicationUsers(LoginName, LoginPassword, LoginAttempts, EmailAddress)Values('GoGo', 'Pwd2', default, 'gogo@crazy88.com')GO/*Call UpdateUser Stored Proc with current rowversion*/Declare @retVal int, @rowvrsn rowversion--Get Current Row Versionselect @rowvrsn = DataVersion from dbo.ApplicationUsers where LoginName= 'blackmamba'Exec @retVal = dbo.UpdateUser @loginName = 'blackmamba', @loginPassword= 'UpdatedPwd', @loginAttempts = 0, @emailAddress = 'bm@DIVAS.com',@dataVersion = @rowvrsn outputPrint @retVal --Should be 0 for successGO/*Call UpdateUser Stored Proc with out of date rowversion (simulateupdate by other process)*/Declare @retVal int, @rowvrsn rowversion--Get Current Row Versionselect @rowvrsn = DataVersion from dbo.ApplicationUsers where LoginName= 'blackmamba'--Simulate update by other processUpdate dbo.ApplicationUsers Set LoginPassword = LoginPassword whereLoginName = 'blackmamba'--Update User with out of date RowversionExec @retVal = dbo.UpdateUser @loginName = 'blackmamba', @loginPassword= 'UpdatedPwdVersion2', @loginAttempts = 0, @emailAddress ='bm@DIVAS.com', @dataVersion = @rowvrsn outputPrint @retVal --Should be 66661 for rowversion mismatchGO/*Call UpdateUser Stored Proc with out of date rowversion (simulatedelete by other process)*/Declare @retVal int, @rowvrsn rowversion--Get Current Row Versionselect @rowvrsn = DataVersion from dbo.ApplicationUsers where LoginName= 'blackmamba'--Simulate delete by other processDelete From dbo.ApplicationUsers where LoginName = 'blackmamba'--Update User with out of date RowversionExec @retVal = dbo.UpdateUser @loginName = 'blackmamba', @loginPassword= 'UpdatedPwdVersion2', @loginAttempts = 0, @emailAddress ='bm@DIVAS.com', @dataVersion = @rowvrsn outputPrint @retVal --Should be 66666 for row deleted by other process
I am working on application developed in ASP.NET 2.0 that uses lots of stored procedures from the SQL Server 2000 backend database.When the app is under load you occasionally see incorrect data returned to the page after running stored procedures.
All the stored procedures have been tested and appear to be fine. it's as if under load the returned data from the stored procedures is getting 'mixed' with another concurrent session. Please let me know what could be the reason behind it
I'm using a SQL-2005 DB to manage TFS Build Information. I need to create a SOAP web service call in response to an INSERT in the Builds table. I am, however, thoroughly confused about the most efficient way to do this. The best I can come up with is to create a CLR function that takes the build number from the DB Insert statement, creates the XML and sends the msg to my already published (and already being used) WebService. The CLR function would be called in a trigger set of by the insert.
I don't suppose there is a native way to generate outbound SOAP msgs based upon DML events?
When you begin a dialog, you do so between source and target. A conversation is begun on both source and target, and messages flow between the two. What would cause messages to build up on the source in sys.transmission_queue and not get transmitted to the target, with no error in the transmission_status column of sys.transmission_queues? The dialogs on the source have a state of 'co', indicating that messages should be flowing....
I checked the status of the queue I am having a problem with in sys.service_queues; all my queues have the is_receive_enabled and is_enqueue_enabled set to 1. I altered the state of the endpoint on each server to started, even though they were already started. I visited remus's blog and went down the checklist of things to look for when troubleshooting dialogs.
I attached the profiler to both source and target. Didnt see anything on the source to indicate an error (textdata simply said conversing for EventClass Broker:Conversation, and nothing for EventClass Broker:MessageClassify)
On the target I see stuff related to service broker, but no errors.
I created new dialogs between the source and the target and they are working fine.
What else do I need to check? Is there any way to see what sender conversation maps to which target conversation? Is there anyway to move messages from one conversation to another conversation (not to another conversation group)?
In my office computer network system (LAN), my Windows XP Pro PC has SQL Server Express and VB 2005 Express installed and I was granted to have the Administrator priviledge to access SQL Server Express. I tried to create a SQLCLR project in my terminal PC. 1) I tried to set up a remote connection to SQL Server Express in the following way: SQL Server EXpress => SQL Server Surface Area Configuration. In the Surface Area Configuration for Service and Connection - local, I clicked on Remote Connection of Database Engine, SQLEXPRESS and I had a "dot" on "Local and remote connections" and "Using TCP/IP only". Then I clicked on "Apply" and "OK" buttons. Then I went to restart my database engine in SQL Server Management. When I went to check SQL Server 2005 Surface Area Configuration, I saw the arrow is pointing to "Service", not to "Remote Connections"!!!??? Is it right/normal? Please comment on this matter and tell me how I can have "Remote Connecton" on after I selected it.
2) After I restarted the database engine (I guess!!), I executed the following project code (copied from a book) in my VB 2005 Express:
//////////////--Form9.vb---/////////////////
mports System.Data.SqlClient
Imports System.Data
Public Class Form9
Dim cnn1 As New SqlConnection
Private Sub Form5_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Compute top-level project folder and use it as a prefix for
'the primary data file
Dim int1 As Integer = InStr(My.Application.Info.DirectoryPath, "bin")
Dim strPath As String = Microsoft.VisualBasic.Left(My.Application.Info.DirectoryPath, int1 - 1)
Dim pdbfph As String = strPath & "northwnd.mdf"
Dim cst As String = "Data Source=.sqlexpress;" & _
"Integrated Security=SSPI;" & _
"AttachDBFileName=" & pdbfph
cnn1.ConnectionString = cst
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & _
"is not valid and will be skipped.")
End Try
Loop
'Invoke the WriteToServer method fo the sqc1 SqlBulkCopy
'object to populate FromExcel table in the database with
'the FromExcel DataTable in the project
Try
cnn1.Open()
Using sqc1 As SqlBulkCopy = New SqlBulkCopy(cnn1)
sqc1.DestinationTableName = "dbo.FromExcel"
sqc1.WriteToServer(FromExcel)
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
cnn1.Close()
End Try
'Read the FromExcel table and display results in
'a message box
Dim strQuery As String = "SELECT * " & _
"FROM dbo.FromExcel "
Dim str1 As String = ""
Dim cmd1 As New SqlCommand(strQuery, cnn1)
cnn1.Open()
Dim rdr1 As SqlDataReader
rdr1 = cmd1.ExecuteReader()
Try
While rdr1.Read()
str1 += rdr1.GetString(0) & ", " & _
rdr1.GetString(1) & ", " & _
rdr1.GetSqlInt32(2).ToString & ControlChars.CrLf
End While
Finally
rdr1.Close()
cnn1.Close()
End Try
MessageBox.Show(str1, "FromExcel")
End Sub
End Class ////////////////////////////////////////////////////////////////////////////// I got the following error messages: SecurityException was unhandled Request for the permission of type 'System. Security. Permissions.FileIOPermission,mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'failed that is pointing to the code statement "Dim int1 As Integer = InStr (My.Application.Info.DirectoryPath, "bin")." Troubleshooting tips: Store application data in isolated storage. When deploying an Office solution, check to make sure you have fulfilled all necessary requirments. Use a certificate to obtain the required permission(s). If an assembly implementing the custom security references other assemblies, add the referenced assemblies to the full trust assembly list. Get general help for the exception.
I am a new Microsoft VS.NET Express user to do the SQL Server 2005 Express and VB 2005 Express programming by using the example of a tutorial book. Please help and tell me what is wrong in my SQLCLR sep-up and project coding and how to correct the problems.
I have some code I build 2 weeks ago which Iāve been running daily but itās suddenly stopped working with the following error.
āThe table "tbl_Intraday_Tmp" has been created, but its maximum row size exceeds the allowed maximum of 8060 bytes. INSERT or UPDATE to this table will fail if the resulting row exceeds the size limitā When I google this there seems to be a related to tables with vast numbers of columns.
My table tbl_Intraday_tmp is relatively small. It has 7 columns. 1 of varchar(5), 3 of decimal(9,3) and 2 of decimal(18,0). The bit Iām puzzled with is it was working and stopped.
I donāt recall changing anything but I wouldnāt rule that out. I āve inspected the source files and I donāt believe they have changed either.
Hi all - I'm trying to optimized my stored procedures to be a bit easier to maintain, and am sure this is possible, not am very unclear on the syntax to doing this correctly. For example, I have a simple stored procedure that takes a string as a parameter, and returns its resolved index that corresponds to a record in my database. ie exec dbo.DeriveStatusID 'Created' returns an int value as 1 (performed by "SELECT statusID FROM statusList WHERE statusName= 'Created') but I also have a second stored procedure that needs to make reference to this procedure first, in order to resolve an id - ie: exec dbo.AddProduct_Insert 'widget1' which currently performs:SET @statusID = (SELECT statusID FROM statusList WHERE statusName='Created')INSERT INTO Products (productname, statusID) VALUES (''widget1', @statusID) I want to simply the insert to perform (in one sproc): SET @statusID = EXEC deriveStatusID ('Created')INSERT INTO Products (productname, statusID) VALUES (''widget1', @statusID) This works fine if I call this stored procedure in code first, then pass it to the second stored procedure, but NOT if it is reference in the second stored procedure directly (I end up with an empty value for @statusID in this example). My actual "Insert" stored procedures are far more complicated, but I am working towards lightening the business logic in my application ( it shouldn't have to pre-vet the data prior to executing a valid insert). Hopefully this makes some sense - it doesn't seem right to me that this is impossible, and am fairly sure I'm just missing some simple syntax - can anyone assist?
I get the following error and have been trying to figure out why I keep getting it. Initially, I had placed my project under wwwroot folder and ran it under IIS and it gave this error. Then I moved it to my local C drive and same thing. I am sharing this project with two other co-workers and all our config files and code files are same...they don't get this error but I do. I checked that SQL Server Client Network Utility has TCP/IP and the 'Named Pipes' enabled. I thought maybe I have setting in the Visual Studio 2005 that I'm not aware of that's causing this problem...it can't be the server since my co-workers aren't having this error and can't be anything in the code since all of us are sharing this project through vss. I dont' think using different version of .net framework can create this error. I changed the version from 2.0 to use 1.1x and it gave same error... Any help would be greatly appreciated. Thanks in advance.
Server Error in '/RBOdev' Application.
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace:
[SqlException (0x80131904): An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)] System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +739123 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188 System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject) +685966 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +109 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +383 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +181 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +130 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +496 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105 System.Data.SqlClient.SqlConnection.Open() +111 System.Web.DataAccess.SqlConnectionHolder.Open(HttpContext context, Boolean revertImpersonate) +84 System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation) +197 System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider.GetConnectionHolder() +16 System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider.LoadPersonalizationBlobs(WebPartManager webPartManager, String path, String userName, Byte[]& sharedDataBlob, Byte[]& userDataBlob) +195 System.Web.UI.WebControls.WebParts.PersonalizationProvider.LoadPersonalizationState(WebPartManager webPartManager, Boolean ignoreCurrentUser) +95 System.Web.UI.WebControls.WebParts.WebPartPersonalization.Load() +105 System.Web.UI.WebControls.WebParts.WebPartManager.OnInit(EventArgs e) +497 System.Web.UI.Control.InitRecursive(Control namingContainer) +321 System.Web.UI.Control.InitRecursive(Control namingContainer) +198 System.Web.UI.Control.InitRecursive(Control namingContainer) +198 System.Web.UI.Control.InitRecursive(Control namingContainer) +198 System.Web.UI.Control.InitRecursive(Control namingContainer) +198 System.Web.UI.Control.InitRecursive(Control namingContainer) +198 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +692
Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832