[VB6/IIS] App.Major onder IIS veroorzaakt rare problemen

Pagina: 1
Acties:

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Topicstarter
(overleden)
Laat ik zélf nog eens een topic openen in PRG :P

Zojuist was het hier paniek in de tent. Onze website ging opeens om de zoveel seconden onderuit, en bleef dat doen tijdens enkele uren (terwijl ik in paniek aan 't zoeken was wat er aan de hand was :X )

De error was telkens "Can't Create ActiveX object", en als doorgewinterd ASP/VB-er weet ik dan precies wat er loos is; het vreemde was echter dat bij een refresh (F5) alles weer doodleuk werkte. Echter, onze site was ook nogal wat aan de trage kant viel me op.

Nu blijkt, na wat onderzoek, het volgende: Gisteren heb ik een nieuwe .dll live gegooid die onze communicatie met verschillende databases verzorgt. In die dll is weinig veranderd, maar daar ga je dan toch in zoeken...

Wat blijkt? Ik had in de main class een property bij gemaakt om de versie van de DLL op te vragen:
Visual Basic 6:
1
2
3
4
5
6
7
8
9
10
11
12
13
Private m_strVersion as String

...

Private Sub Class_Initialize()
  ...
  m_strVersion = App.Major & "." & App.Minor & "." & App.Revision
  ...
End Sub

Public Property Get Version() as String
  Version = m_strVersion
End Property


En die versie werd ergens in de HTML weggeschreven tussen <! -- comment tags -->

Geloof het of niet, maar ik heb er bovenstaande code uit gesloopt en de nieuwe .dll live gegooid en voila! Probleem opgelost. Nu zul je denken dat ik gek ben (ik ook :P ) maar het blijkt toch echt aan App.major / App.minor / App.revision te liggen; zodra ik die gebruik en de .dll wordt wat vaak aangeroepen (tijdens piekuren dus / onder "stress") dan klapt IIS er uit :X

Ik heb even gegoogled maar kon er niet veel over vinden; dit is het enige dat ik kon vinden:
soortgelijke conclusies, maar een post uit 2002.

Ik moet het nog even op onze testserver zien te reproduceren maar het lijkt er toch verdacht veel op dat 't hier mee te maken heeft; het was, op een string-constant wijziging na, de enige wijziging in de DLL. Ook lees ik in voorgenoemde usenet post dezelfde symptomen: site traag, regelmatig "can't create activex" errors.

De "can't create ActiveX" lijkt me overigens dan wel logisch, omdat class_initialize failed; maar dat doet 'ie dus niet consequent, maar af en toe :?
Iemand enig idee waar 't probleem zou kunnen zitten in App.major? Doet dat spul iets dat niet thread-safe is ofzo? (Lijkt me zoiets te zijn).

Het gaat overigens over IIS 6 op W2K3 SP1 met VB6 SP6(a)

[ Voor 13% gewijzigd door RobIII op 12-10-2006 15:14 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • mulder
  • Registratie: Augustus 2001
  • Nu online

mulder

ik spuug op het trottoir

Vage shit, wat ik op inet las is dat de App.Major uit de EXE(in dit geval DLL) word gelezen met een API call, misschien zijn het dan 'in use' issues?(hier en hier)

oogjes open, snaveltjes dicht


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Topicstarter
(overleden)
Tja, zoiets verwacht ik ook. Vage shit is het zeker ;)
Ik ben momenteel met een Test-dll aan de slag gegaan op onze productieserver om te kijken of ik het probleem kan reproduceren. Vooralsnog lukt dat niet (reproduceren) met een "lege" test-dll met maar 1 enkel property er in; maar de "defecte" dll doet 't ook niet op onze testserver. Ik test dus nog even verder...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij