473,396 Members | 1,774 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Weird License Issue (plus update blocking)

SQL Server 2000 Enterprise Edition
Access 2000 Front End

One of our clients has recently been experiencing problems with an app
that has run satisfactorily (though slowly) for some time. To
overcome the slowness, they have installed a new server with SQL
Server 2000 Enterprise Edition with 'Log Shipping' enabled (to provide
a subsidiary database on which reports can be run) but although the
speed issue is resolved, there are hitherto unencountered blocking and
locking issues when running updates on a particular table (updates
time out, typically when running on > 3 client machines, but don't
when running on < 3 client machines).

Having exhausted most possibilities, we wondered if it was a licensing
issue, so we fired up the License Server.

This appears to be trying to tell us that SQL Server 7.0 was installed
sometime in July. There is no mention made of SQL 2000.

In fact, the machine in question has never had SQL Server 7.0
installed, and SQL 2000 was installed earlier this month, not in July.

Anyone any ideas? For what it's worth, I have scripted the table and
the blocking stored procedures below.

Many thanks in advance

Edward

/* Table */
/****** Object: Table [recall].[tblApplicant_Callback] Script
Date: 12/09/2003 12:15:19 ******/
if exists (select * from dbo.sysobjects where id =
object_id(N'[recall].[tblApplicant_Callback]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [recall].[tblApplicant_Callback]
GO

/****** Object: Table [recall].[tblApplicant_Callback] Script
Date: 12/09/2003 12:15:22 ******/
CREATE TABLE [recall].[tblApplicant_Callback] (
[fldCallbackID] [int] IDENTITY (1, 1) NOT NULL ,
[fldCampaignID] [int] NULL ,
[fldApplicantID] [int] NULL ,
[fldApplicantCampaignID] [int] NULL ,
[fldScriptID] [int] NULL ,
[fldCallBack] [datetime] NULL ,
[fldTitle] [varchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldSurname] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[fldFirstName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldPostCode] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldAddress1] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldAddress2] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldTown] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldCounty] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[fldTelephoneNo_1] [varchar] (20) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[fldTelephoneNo_2] [varchar] (20) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[fldTelephoneNo_3] [varchar] (20) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[fldNotes] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldReason] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[fldAttempts] [smallint] NULL ,
[fldInvited] [tinyint] NULL ,
[fldResult] [tinyint] NULL ,
[fldEventSession] [int] NULL ,
[fldUnabletoAttend] [bit] NOT NULL ,
[fldEntered] [datetime] NULL ,
[fldEnteredBy] [varchar] (6) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldLock] [bit] NOT NULL ,
[upsize_ts] [timestamp] NULL ,
[fldCallPeriod1] [tinyint] NOT NULL ,
[fldCallPeriod1_From] [datetime] NULL ,
[fldCallPeriod1_To] [datetime] NULL ,
[fldCallPeriod2] [tinyint] NOT NULL ,
[fldCallPeriod2_From] [datetime] NULL ,
[fldCallPeriod2_To] [datetime] NULL ,
[fldLastedCalled] [datetime] NULL ,
[fldDeadlineDate] [datetime] NULL ,
[fldFax] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldMobile] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldEmail] [char] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldHouseNo] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[fldLockDate] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [recall].[tblApplicant_Callback] WITH NOCHECK ADD
CONSTRAINT [aaaaatblApplicant_Callback_PK] PRIMARY KEY CLUSTERED
(
[fldCallbackID]
) WITH FILLFACTOR = 90 ON [PRIMARY]
GO

ALTER TABLE [recall].[tblApplicant_Callback] WITH NOCHECK ADD
CONSTRAINT [DF__Temporary__fldAt__3FD07829] DEFAULT (0) FOR
[fldAttempts],
CONSTRAINT [DF_tblApplicant_Callback_fldUnabletoAttend] DEFAULT (0)
FOR [fldUnabletoAttend],
CONSTRAINT [DF_tblApplicant_Callback_fldLock] DEFAULT (0) FOR
[fldLock],
CONSTRAINT [DF_tblApplicant_Callback_fldCallPeriod1] DEFAULT (1) FOR
[fldCallPeriod1],
CONSTRAINT [DF_tblApplicant_Callback_fldCallPeriod2] DEFAULT (1) FOR
[fldCallPeriod2]
GO

CREATE INDEX [fldFirstName] ON
[recall].[tblApplicant_Callback]([fldFirstName]) WITH FILLFACTOR = 90
ON [PRIMARY]
GO

CREATE INDEX [fldSurname] ON
[recall].[tblApplicant_Callback]([fldSurname]) WITH FILLFACTOR = 90
ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod1_From] ON
[recall].[tblApplicant_Callback]([fldCallPeriod1_From]) WITH
FILLFACTOR = 90 ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod1_To] ON
[recall].[tblApplicant_Callback]([fldCallPeriod1_To]) WITH FILLFACTOR
= 90 ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod2_From] ON
[recall].[tblApplicant_Callback]([fldCallPeriod2_From]) WITH
FILLFACTOR = 90 ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod2_To] ON
[recall].[tblApplicant_Callback]([fldCallPeriod2_To]) WITH FILLFACTOR
= 90 ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod1] ON
[recall].[tblApplicant_Callback]([fldCallPeriod1]) ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod2] ON
[recall].[tblApplicant_Callback]([fldCallPeriod2]) ON [PRIMARY]
GO
/* Stored Procedure 1 */
CREATE PROCEDURE recall_Update_ResumeCallback_Changes
@CallbackID int,
@CampID int,
@CallBackDate datetime,
@Title varchar(4),
@FirstName varchar(50),
@Surname varchar(50),
@Postcode varchar(10),
@HomeTel varchar(20),
@Mobile varchar(20),
@WorkTel varchar(20),
@Notes text,
@CallPeriod1 tinyint,
@CallPeriod1_From datetime,
@CallPeriod1_To datetime,
@CallPeriod2 tinyint,
@CallPeriod2_From datetime,
@CallPeriod2_To datetime,
@LastCalledDate datetime,
@Attempts smallint,
@HouseNo varchar(25)
AS
BEGIN
UPDATE recall.tblApplicant_Callback with (rowlock)
SET
fldCampaignID=@CampID,
fldCallBack=@CallBackDate,
fldTitle=@Title,
fldFirstName=@FirstName,
fldSurname=@Surname,
fldPostcode=@Postcode,
fldTelephoneNo_1=@HomeTel,
fldTelephoneNo_2=@Mobile,
fldTelephoneNo_3=@WorkTel,
fldNotes=@Notes,
fldCallPeriod1=@CallPeriod1,
fldCallPeriod1_From=@CallPeriod1_From,
fldCallPeriod1_To=@CallPeriod1_To,
fldCallPeriod2=@CallPeriod2,
fldCallPeriod2_From=@CallPeriod2_From,
fldCallPeriod2_To=@CallPeriod2_To,
fldLastedCalled=@LastCalledDate,
fldAttempts=@Attempts,
fldHouseNo=@HouseNo
WHERE (fldCallbackID= @CallbackID)
END
GO

/* Stored Procedure 2 */
CREATE PROCEDURE recall_Update_Campaign_Telescreening_Resume_Lock
@CallbackID int,
@Lock bit
AS
BEGIN
UPDATE recall.tblApplicant_Callback with (rowlock)
SET fldLock = @Lock
WHERE (fldCallbackID = @CallbackID)
END
GO
Jul 20 '05 #1
2 1980
How much space have you allocated for the DB to grow.
I have one DB that requires 50% because of the rate the data comes in.
So look at how much free space there is on the main DB and the log file.
"Edward" <te********@hotmail.com> wrote in message
news:25**************************@posting.google.c om...
SQL Server 2000 Enterprise Edition
Access 2000 Front End

One of our clients has recently been experiencing problems with an app
that has run satisfactorily (though slowly) for some time. To
overcome the slowness, they have installed a new server with SQL
Server 2000 Enterprise Edition with 'Log Shipping' enabled (to provide
a subsidiary database on which reports can be run) but although the
speed issue is resolved, there are hitherto unencountered blocking and
locking issues when running updates on a particular table (updates
time out, typically when running on > 3 client machines, but don't
when running on < 3 client machines).

Having exhausted most possibilities, we wondered if it was a licensing
issue, so we fired up the License Server.

This appears to be trying to tell us that SQL Server 7.0 was installed
sometime in July. There is no mention made of SQL 2000.

In fact, the machine in question has never had SQL Server 7.0
installed, and SQL 2000 was installed earlier this month, not in July.

Anyone any ideas? For what it's worth, I have scripted the table and
the blocking stored procedures below.

Many thanks in advance

Edward

/* Table */
/****** Object: Table [recall].[tblApplicant_Callback] Script
Date: 12/09/2003 12:15:19 ******/
if exists (select * from dbo.sysobjects where id =
object_id(N'[recall].[tblApplicant_Callback]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [recall].[tblApplicant_Callback]
GO

/****** Object: Table [recall].[tblApplicant_Callback] Script
Date: 12/09/2003 12:15:22 ******/
CREATE TABLE [recall].[tblApplicant_Callback] (
[fldCallbackID] [int] IDENTITY (1, 1) NOT NULL ,
[fldCampaignID] [int] NULL ,
[fldApplicantID] [int] NULL ,
[fldApplicantCampaignID] [int] NULL ,
[fldScriptID] [int] NULL ,
[fldCallBack] [datetime] NULL ,
[fldTitle] [varchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldSurname] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[fldFirstName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldPostCode] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldAddress1] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldAddress2] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldTown] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldCounty] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[fldTelephoneNo_1] [varchar] (20) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[fldTelephoneNo_2] [varchar] (20) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[fldTelephoneNo_3] [varchar] (20) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[fldNotes] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldReason] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[fldAttempts] [smallint] NULL ,
[fldInvited] [tinyint] NULL ,
[fldResult] [tinyint] NULL ,
[fldEventSession] [int] NULL ,
[fldUnabletoAttend] [bit] NOT NULL ,
[fldEntered] [datetime] NULL ,
[fldEnteredBy] [varchar] (6) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[fldLock] [bit] NOT NULL ,
[upsize_ts] [timestamp] NULL ,
[fldCallPeriod1] [tinyint] NOT NULL ,
[fldCallPeriod1_From] [datetime] NULL ,
[fldCallPeriod1_To] [datetime] NULL ,
[fldCallPeriod2] [tinyint] NOT NULL ,
[fldCallPeriod2_From] [datetime] NULL ,
[fldCallPeriod2_To] [datetime] NULL ,
[fldLastedCalled] [datetime] NULL ,
[fldDeadlineDate] [datetime] NULL ,
[fldFax] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldMobile] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldEmail] [char] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fldHouseNo] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[fldLockDate] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [recall].[tblApplicant_Callback] WITH NOCHECK ADD
CONSTRAINT [aaaaatblApplicant_Callback_PK] PRIMARY KEY CLUSTERED
(
[fldCallbackID]
) WITH FILLFACTOR = 90 ON [PRIMARY]
GO

ALTER TABLE [recall].[tblApplicant_Callback] WITH NOCHECK ADD
CONSTRAINT [DF__Temporary__fldAt__3FD07829] DEFAULT (0) FOR
[fldAttempts],
CONSTRAINT [DF_tblApplicant_Callback_fldUnabletoAttend] DEFAULT (0)
FOR [fldUnabletoAttend],
CONSTRAINT [DF_tblApplicant_Callback_fldLock] DEFAULT (0) FOR
[fldLock],
CONSTRAINT [DF_tblApplicant_Callback_fldCallPeriod1] DEFAULT (1) FOR
[fldCallPeriod1],
CONSTRAINT [DF_tblApplicant_Callback_fldCallPeriod2] DEFAULT (1) FOR
[fldCallPeriod2]
GO

CREATE INDEX [fldFirstName] ON
[recall].[tblApplicant_Callback]([fldFirstName]) WITH FILLFACTOR = 90
ON [PRIMARY]
GO

CREATE INDEX [fldSurname] ON
[recall].[tblApplicant_Callback]([fldSurname]) WITH FILLFACTOR = 90
ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod1_From] ON
[recall].[tblApplicant_Callback]([fldCallPeriod1_From]) WITH
FILLFACTOR = 90 ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod1_To] ON
[recall].[tblApplicant_Callback]([fldCallPeriod1_To]) WITH FILLFACTOR
= 90 ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod2_From] ON
[recall].[tblApplicant_Callback]([fldCallPeriod2_From]) WITH
FILLFACTOR = 90 ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod2_To] ON
[recall].[tblApplicant_Callback]([fldCallPeriod2_To]) WITH FILLFACTOR
= 90 ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod1] ON
[recall].[tblApplicant_Callback]([fldCallPeriod1]) ON [PRIMARY]
GO

CREATE INDEX [fldCallPeriod2] ON
[recall].[tblApplicant_Callback]([fldCallPeriod2]) ON [PRIMARY]
GO
/* Stored Procedure 1 */
CREATE PROCEDURE recall_Update_ResumeCallback_Changes
@CallbackID int,
@CampID int,
@CallBackDate datetime,
@Title varchar(4),
@FirstName varchar(50),
@Surname varchar(50),
@Postcode varchar(10),
@HomeTel varchar(20),
@Mobile varchar(20),
@WorkTel varchar(20),
@Notes text,
@CallPeriod1 tinyint,
@CallPeriod1_From datetime,
@CallPeriod1_To datetime,
@CallPeriod2 tinyint,
@CallPeriod2_From datetime,
@CallPeriod2_To datetime,
@LastCalledDate datetime,
@Attempts smallint,
@HouseNo varchar(25)
AS
BEGIN
UPDATE recall.tblApplicant_Callback with (rowlock)
SET
fldCampaignID=@CampID,
fldCallBack=@CallBackDate,
fldTitle=@Title,
fldFirstName=@FirstName,
fldSurname=@Surname,
fldPostcode=@Postcode,
fldTelephoneNo_1=@HomeTel,
fldTelephoneNo_2=@Mobile,
fldTelephoneNo_3=@WorkTel,
fldNotes=@Notes,
fldCallPeriod1=@CallPeriod1,
fldCallPeriod1_From=@CallPeriod1_From,
fldCallPeriod1_To=@CallPeriod1_To,
fldCallPeriod2=@CallPeriod2,
fldCallPeriod2_From=@CallPeriod2_From,
fldCallPeriod2_To=@CallPeriod2_To,
fldLastedCalled=@LastCalledDate,
fldAttempts=@Attempts,
fldHouseNo=@HouseNo
WHERE (fldCallbackID= @CallbackID)
END
GO

/* Stored Procedure 2 */
CREATE PROCEDURE recall_Update_Campaign_Telescreening_Resume_Lock
@CallbackID int,
@Lock bit
AS
BEGIN
UPDATE recall.tblApplicant_Callback with (rowlock)
SET fldLock = @Lock
WHERE (fldCallbackID = @CallbackID)
END
GO

Jul 20 '05 #2
Edward (te********@hotmail.com) writes:
One of our clients has recently been experiencing problems with an app
that has run satisfactorily (though slowly) for some time. To
overcome the slowness, they have installed a new server with SQL
Server 2000 Enterprise Edition with 'Log Shipping' enabled (to provide
a subsidiary database on which reports can be run) but although the
speed issue is resolved, there are hitherto unencountered blocking and
locking issues when running updates on a particular table (updates
time out, typically when running on > 3 client machines, but don't
when running on < 3 client machines).

Having exhausted most possibilities, we wondered if it was a licensing
issue, so we fired up the License Server.


Licensing is not likely to be an issue in this case.

Why your procedure blocks, I cannot tell. To resolve blocking situations
it helps to find out who is blocking whom and what the blocker is up to.
I have a procedure on my web site, which is good this kind of task.
See http://www.algonet.se/~sommar/sqlutil/aba_lockinfo.html.

One thing you should check is whether the table has any triggers.

--
Erland Sommarskog, SQL Server MVP, so****@algonet.se

Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techinf...2000/books.asp
Jul 20 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: redneck_kiwi | last post by:
Hi all: I have a really weird problem. I am developing a customer catalog system for my company and as such have delved into sessions for authentication and access levels. So far, I have managed...
8
by: madcap | last post by:
Hi, Our company was looking for contract programmer to develop an internet/intranet application. We were approached by a freelancer who have quite a lot experience and his resume was...
5
by: BaWork | last post by:
I have a web form where a client can select which site members to send an email to. This form is populated from the contents of the member table, so the form can have 0-x names listed on it...
0
by: P Pulkkinen | last post by:
Dear all, sorry, i know this code is far little too long to debug here, but there is really annoying logical error. If someone debugs this, I really offer warm virtual handshake. What this...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.