(DataServer dev ?): Insert transaction causing page locks

bigelliot

New Member
First of all, I would like to introduce myself. I'm not a Progress developer or dba. I'm not a SQL Server developer or DBA, either. However, I am a business intelligence manager and because my company doesn't have enough of either of the above, I've learned quite bit through the age-old trial by fire method. I just finished reading Progress's "Progress DataServer for MS SQL Server Guide" and it didn't really answer the questions I have. I'm hoping that someone here might have some insight they don't mind sharing with a newbie.

Here's what we're trying to accomplish:

I work for a manufacturing company that uses Progress (running on AIX) as it's shop floor database. This is all well and good, and it's stable as a rock. However, I'm in charge of providing adequate shop floor reporting (via the web) and using ODBC (Merant SequeLink) is really a poor solution for a variety of performance and security reasons I'm sure you can imagine. Historically, we've used ODBC anyway, but only insofar as it was necessary for SQL Server to connect directly to Progress and execute scheduled DTS packages to pull and transform records as necessary. This didn't work very well, either, and because of the ODBC performance we weren't able to get all of the production data -- just a small subset.

Jump forward three years.

Now we're trying to use the Progress DataServer to replicate data from the production Progress database into MS SQL Server, in very close to real time. This shouldn't be a problem at all, even with the volume of data we're looking at (some plants generate >1m records/day).

The problem we're having is that whenever we turn on the replication trigger it creates thousands of page locks in SQL Server for each transaction. Our Progress developer swears he set the NOLOCK (Read Uncommitted) parameter in the ODBC connection, and I believe him. Neither of us is having any luck figuring out what's causing these locks. They're released as soon as the transaction completes, but even having a transaction take as long as .5-.75 seconds is unacceptable.

If necessary I can try to provide more specific information, but since I really don't have a very technical grasp on the actual 4GL, I'll need to be told what you'd like to see.

I'll appreciate any help anyone can provide, and will sing your praises around the world until the end of time... or the next time this breaks, whichever occurs first.:D

Thanks in advance,
Elliot
 
Elliot,

Hopefully someone here will be able to help you with this issue, but DataServer questions (which belong in the Deployment>Dataservers section incidentally) don't always get a strong response on this forum.

If you don't get much feedback here, you may like to try the senior Progress Users forum which deals with Dataserver issues:

http://www.peg.com/lists/servers/web/

Sample post:

http://www.peg.com/lists/servers/web/msg00879.html

In the meantime, here's my (grasping at knowledgebase straws) 2 pennies worth:

You haven't stated which Progress version you are on. If it is pre 9.1D there is an issue with SQL INSERT triggers handling ROWID/RECIDs incorrectly, causing lock contention.

Here are the knowledgebase entries which describe the problem - perhaps it is related, but unfortunately I do not have the Dataserver experience to help you.

KB P27459
Title: "Receiving error 2624 with FOR EACH ... NO-LOCK accessing SQL Server database"

http://tinyurl.com/8vkwc


KB P62712
Title: "How to manually replace pre-9.1D insert triggers with 9.1D insert triggers?"

http://tinyurl.com/b3pxx


If you do post further information, here or elsewhere, you will need the versions and service levels of all software involved in the transfer.

Good luck,

Lee
 
Thanks, Lee. It is in fact 9.1D. I'll read those links and fwd to our Progress developer. In the meantime, is there a moderator around who could transfer this thread to the appropriate forum (oops)?
 
Click the 'Contact Us' link at the bottom of the page.

Although, you might get more response if you leave it here :).

You should definitely try the Peg though if you don't get much response here - there are some very knowledgeable people there - then there is always Progress Tech Support.
 
Back
Top