ODBC Connection to Progress fails to open PROMSGS

using a Merant 3.70 32-bit Progress ODBC driver, i can append data to an existing table structure manually through a SQL Server DTS package.  if i try to schedule it as a job within the SQL Server Agent, it fails.  Does anyone know how the ODBC is trying to open PROMSGS and what permissions it needs to have?  Suggestions? ---ssam

following is the actual error message:

DTSRun:  Loading...   DTSRun:  Executing...   DTSRun OnStart:  Copy Data from Results to [SytelineImport].[dbo].[custaddr] Step   DTSRun OnError:  Copy Data from Results to [SytelineImport].[dbo].[custaddr] Step, Error = -2147467259 (80004005)      Error string:  [MERANT][ODBC PROGRESS driver]msgOpen: unable to open message file: PROMSGS      Error source:  Microsoft OLE DB Provider for ODBC Drivers      Help file:        Help context:  0      Error Detail Records:      Error:  -2147467259 (80004005); Provider Error:  0 (0)      Error string:  [MERANT][ODBC PROGRESS driver]msgOpen: unable to open message file: PROMSGS      Error source:  Microsoft OLE DB Provider for ODBC Drivers      Help file:        Help context:  0      DTSRun OnFinish:  Copy Data from Results to [SytelineImport].[dbo].[custaddr] Step   DTSRun:  Package execution complete.  Process Exit Code 1.  The step failed.
Who is Participating?
jgilligan1Connect With a Mentor Commented:
Well, there are at least a couple of problems.

1. You do not have your environment variables set, depending on how your doing your ODBC connect, you need to specifify at least a couple of variables ahead of your active DB session.

1. DLC=/usr/dlc91x/ (wherever you have progress installed)
2. PROMSG=$DLC/promsgs - this typically is under your DLC directory and points to a storage file which controlls the error messages that progress reports on.

Other than that, as far as permissions are concerned, you don't need to have anything other that read only. But as far as access to the database you may also wish to set that to read only as well.

If that doesn't show you any love, you may consider the PEG (http://www.peg.com) , it may be a faux pas to mention it here but this is a usergroup which is very small but has some excellent progress experts (many of whom work for Progress itself) , You'd be hard pressed to find a more competent group than those guys when it comes to Progress.

Hope that helps,

Joe Gilligan
Perpetual student.
I can tell you with 100 percent certainty that jgilligan1's answer is correct, except that you are using a Windows OS, so rather than the /usr reference, your path is going to be c:\progress\something...  Same will hold true for the PROMSGS path.

Good luck,

The only other thing I might add is two more environment variables:


These will be the same values as the DLC and PROMSGS variables.

I have found this has solved my previous Merant 3.7 ODBC connection funnies!



Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Geepers, Sorry about the Unix/Dos issue. I work in a bunch of different OS's and forget myself alot.

Hopefully, the environment issues will resolve the problem but it may not completely do so if there are some other issues.


Joe G.
ssamAuthor Commented:
jgilligan1 was essentially correct;  the solution was actually, though, an update/upgrade to the client installed on the box where the SQL server resided.
I have exactly the same problem and all my environment variables are set up correctly. (DLC, IDLC, PROMSGS, IPROMSGS).

What do you mean by "client update/upgrade"?
It's possible that there is a problem with the ODBC not being completely compatible with the specific version of Progress. What versions/platform of each are you using?


Joe G.
Progress version is 9.1C on unix.
SQL Server instance is installed on Windows Server 2003.
Merant 3.7 is also installed on Windows Server 2003 ( the same server).

If I test the connection manually from ODBC utility, it connects correctly.

If I run DTS package manually, it runs fine. The only time I have a problem if it is run as a job. That's when I get the PROMSGS error.
When you say a job, do you mean a cron/batch job from Unix?

No, I mean a Job within SQL Server Agent. If you look at the very first original question on this thread, it explains my problem exactly. I am running a DTS package in SQL Server, moving data from Progress to SQL, using DSN with Merant 3.70 driver.

When I schedule a DTS package to run in SQL Server Agent, it makes it a job. That job fails with  the error described above.
Ok. So does the promsgs file exist in the proper spot? I have also seen instances where this kind of message crops of when the Progress running on the workstation is not installed properly or rather it is copied rather than installed.

Joe G.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.