Solved

Scripting.Dictionary in Application

Posted on 2001-08-01
10
303 Views
Last Modified: 2007-12-19
I'd like to create Scripting.Dictionary object in Application_OnStart() in order to get rid of endless calls to database for persistent enough information.
But it fails in accordance with MSDN docs and in fact.
Is there relaible way to create this object for Application?

TIA.
0
Comment
Question by:OMC2000
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
10 Comments
 
LVL 7

Expert Comment

by:John844
ID: 6341786
I would not even try to create this object an application level of scope.  You are begging for trouble if you do.

You might can store the contents of the recordsets in a multidimensional array using rs.getrows().

John
0
 
LVL 1

Expert Comment

by:pjtt
ID: 6341889
John844 is right. And this especially applies to the dictionary object, which good ol' Microsoft never quite got the threading model right for. That's one way to bring your server to its knees. Storing state information can be a pain sometimes, but there's a huge difference in performance between storing it in the database as opposed to an object in the application or multiple session variables.

Peter Tracey
Developer
http://www.25online.com/peter
0
 
LVL 2

Expert Comment

by:enkay022798
ID: 6342311
I disagree with not using Dictionery objects at the application level. We used it vastly in one of my previous projects and never ran into any serious problems.

FOr the threading model to work just go into the registry and set the threading model for the Dictionery object to "Both".

All the best !
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 15

Author Comment

by:OMC2000
ID: 6344409
enkay, the replacement of the "Apartment" with "Both" enables Scripting.Dictionary on Session level, but I still can't create this object on Application level.
What've I missed?
0
 
LVL 15

Author Comment

by:OMC2000
ID: 6344566
enkay, the replacement of the "Apartment" with "Both" enables Scripting.Dictionary on Session level, but I still can't create this object on Application level.
What've I missed?
0
 
LVL 2

Expert Comment

by:enkay022798
ID: 6344824
>>but I still can't create this object on Application level.

There shouldnt be a problem... where are you creating the object... what happens when it fails ? Do you get an error of any kind ?
0
 
LVL 15

Author Comment

by:OMC2000
ID: 6344959
The following code in global.asa:

<SCRIPT LANGUAGE="JavaScript" RUNAT="Server">
...
function Application_OnStart() {
  var c = Server.CreateObject("Scripting.Dictionary");
  Application("eee") = c; // line 92
...
}
...
</SCRIPT>

causes the following error on the first call of any page:

"Application object error 'ASP 0197 : 80004005'

Disallowed object use

/DutchSite/global.asa, line 92

Cannot add object with apartment model behavior to the application intrinsic object.
"
0
 
LVL 2

Accepted Solution

by:
enkay022798 earned 100 total points
ID: 6344976
Have you rebooted after changing the registry entry ? If the model is Both then why are you getting an error saying it is apartment threaded ?

Microsoft is sometimes strange ... any change to registry should be followed by a reboot.
0
 
LVL 15

Author Comment

by:OMC2000
ID: 6345101
Thanks a lot, it really required reboot. I forgot that specific for IIS and other MS Stuff.
0
 
LVL 2

Expert Comment

by:enkay022798
ID: 6345534
Glad you got it working :)
0

Featured Post

Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question