ASP error in pm.asp line 192 (second try - Please help)

R

Raul Rodriguez

I posted this question already but nobody could answer me. Please forgive for
doing it again, but it's very important for my company. We have been
searching for this error with different engines (Google, MSN, etc) and in
different newsgroups but we didn't find any solution. Some people had the
same problem but they never got an answer. :-(

This managed group is my last chance!

We have a "legacy" ASP application that is showing a strange behaviour. You
can go to a page 20, 30 or 50 times and it works. But then it shows an error
"800a0005 Invalid procedure call or argument /_ScriptLibrary/pm.asp, line
192". When this error comes then the page enters a strange loop. When you go
the next time it works, if you go to the page again it doesn't work, the next
time it works and so on. After some time without working it seems to "repair"
itself. Maybe the IIS process is being recycled or something like this and
now it works again till 50 times before starting the loop again.

As it seems it has something to do with the "Interdev Extensions" from
Microsoft.
The line 192 is trying to create a DERuntime object.

//**********************
// function _SOM_createDE()
// Create the data environment object as DE
//**********************
function _SOM_createDE()
{
if (!this._bDECreated)
{
DE = Server.CreateObject('DERuntime.DERuntime');
DE.Init(Application('DE'));
this._bDECreated = true;
}
}

As I said: the strange thing is that it works till 50 times but then it fails!
The environment is a Windows XP machine with SP2 installed. We have been
able to reproduce it in two different machines and accessing Oracle 9 and MS
SQL 2000. In many other machines it's working with no problems.

Thank you in advance
Raul
 
J

Jevon

Have you been able to reproduce this error on a Server box? E.g. Windows
2000, Windows 2003. If it as important for your company as you say, you
should be using one of these, rather than Windows XP which is designed as a
client machine; it may have a version of IIS on it, but that doesn't make it
suitable for production usage.

Regarding the actual problem, forgive my lack of knowledge as I'm generally
ASP.Net focussed these days, but is pm.asp a script file your company have
created, or does it come with Interdev? If the latter, have you checked if
there is a newer version? If the former, my understanding of
Server.CreateObject is that calls should be in the form:
Set <VariableName> = Server.CreateObject("<ObjectToInstantiate>")
rather than
<VariableName> = Server.CreateObject("<ObjectToInstantiate>")
as you have currently. However, even then I'm not convinced this is the
problem. Are you absolutely certain that line 192 is the CreateObject line,
and not the Init line afterwards?

Jevon
 
R

Raul Rodriguez

Thank you for your time, Jevon!
Have you been able to reproduce this error on a Server box? E.g. Windows
2000, Windows 2003. If it as important for your company as you say, you
should be using one of these, rather than Windows XP which is designed as a
client machine; it may have a version of IIS on it, but that doesn't make it
suitable for production usage.

The problem is that these machines are used by our sales force. They go to
the customers and show them our software on their laptops and they use
Windows XP. The software is working fine on many of them, but sudenly one of
these laptops started to malfunction as I explained. The strange thing
(Murphy?) is that one of our customers deployed our solution 2 days later on
another Windows XP and they got the same behaviour. Now our product manager
is afraid that this could happen to potentially hundred other customers.
Without an explanation for this "bug" we cannot be sure that this could
happen to many other rollouts. :-(
Regarding the actual problem, forgive my lack of knowledge as I'm generally
ASP.Net focussed these days, but is pm.asp a script file your company have
created, or does it come with Interdev? If the latter, have you checked if
there is a newer version?

Yes, we have got the same "problem". Our programmers are now using ASP.NET
and we got this "old" modules that we need to install / sell till we rewrite
them using .NET.
The pm.asp file is something that gets installed when you use Interdev. The
newest version we found is to install the Service Pack 5 for Visual Studio 6.
Are you absolutely certain that line 192 is the CreateObject line,
and not the Init line afterwards?

Uuuuuuuuppppppsss!! You are right!! Yes, it is the Init line!! I wrote it
wrong. We looked in the MSDN site for information about the DE object and
this Init method but we couldn't find anything that could help us.

Thank you again, Jevon
 
J

Jevon

Raul Rodriguez said:
Thank you for your time, Jevon!

No problem!
Uuuuuuuuppppppsss!! You are right!! Yes, it is the Init line!! I wrote it
wrong. We looked in the MSDN site for information about the DE object and
this Init method but we couldn't find anything that could help us.

So it's definitely
DE.Init(Application('DE'));
at fault.

My only real suggestion here is to investigate Application('DE') - when is
this set? If it's null/empty/not set, that could be causing your problem as
the "signature" for the Init function would be different, hence your
"Invalid procedure call or argument". Does that make sense? I doubt it's a
concurrency issue as from your description the problem happens under low
loads. Maybe for some reason the application is reset? Or your code uses the
DE object/variable somewhere and doesn't release it properly? This might
explain the work/not work cycle.
 
R

Raul Rodriguez

Jevon said:
So it's definitely
DE.Init(Application('DE'));
at fault.

My only real suggestion here is to investigate Application('DE') - when is
this set? If it's null/empty/not set, that could be causing your problem as
the "signature" for the Init function would be different, hence your
"Invalid procedure call or argument".

This Application('DE') gets never set in our code. The Interdev "runtime"
sets it in the global.asa like this:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
'==Visual InterDev Generated - startspan==
Set DE = Server.CreateObject("DERuntime.DERuntime")
Application("DE") = DE.Load(Server.MapPath("Global.ASA"),
"_private/DataEnvironment/DataEnvironment.asa")
'==Visual InterDev Generated - endspan==
End Sub
</SCRIPT>

So it's been initialized on Application_OnStart and never changed again! And
as I said, the strange thing is that it works till 50 times before it goes
into the "strange" loop.
 
J

Jevon

Raul Rodriguez said:
This Application('DE') gets never set in our code. The Interdev "runtime"
sets it in the global.asa like this:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
'==Visual InterDev Generated - startspan==
Set DE = Server.CreateObject("DERuntime.DERuntime")
Application("DE") = DE.Load(Server.MapPath("Global.ASA"),
"_private/DataEnvironment/DataEnvironment.asa")
'==Visual InterDev Generated - endspan==
End Sub
</SCRIPT>

So it's been initialized on Application_OnStart and never changed again!
And
as I said, the strange thing is that it works till 50 times before it goes
into the "strange" loop.

I'm afraid I'm out of ideas then. Sorry! My last suggest would be to contact
Microsoft directly, but that might cost you.

Jevon
 
R

Raul Rodriguez

I'm afraid I'm out of ideas then. Sorry! My last suggest would be to contact
Microsoft directly, but that might cost you.

Thank you for your interest
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top