Re: Deploying over IIS and VB
From: sb (orzo617_at_hotmail.com)
Date: 03/24/04
- Next message: docdwarf_at_panix.com: "Re: Deploying over IIS and VB"
- Previous message: sb: "Re: Deploying over IIS and VB"
- In reply to: Peter E. C. Dashwood: "Re: Deploying over IIS and VB"
- Next in thread: Chris Glazier: "Re: Deploying over IIS and VB"
- Reply: Chris Glazier: "Re: Deploying over IIS and VB"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 24 Mar 2004 11:09:02 -0800
dashwood@enternet.co.nz (Peter E. C. Dashwood) wrote in message news:<b3638c46.0403210635.59a62084@posting.google.com>...
> orzo617@hotmail.com (sb) wrote in message news:<e66a875b.0403201400.5c5ee637@posting.google.com>...
> > Hello,
> >
> > I have Cobol Dlls written in Net Express Cobol and precompiled using
> > oracle 9i compiler. I am trying to deploy these so IIS web server.
> > The basic architecture is the following:
> >
> > IIS spawns DLLHost.exe --> calls VB.dll (COM+ Object) --> Cobol.dll.
> >
> > I have very little/no knowledge of Cobol but need to use this
> > Cobol.dll as a lot of business logic is written in it.
> >
> > VB dll is compiled as apartment threaded, multiuse.
> > Cobol dll is compiled as shared, multithreaded.
> >
> > Problem:
> > When servicing one request from a browser, everything seems to work
> > fine. But when I issue two or more request concurrently or very close
> > to each other, I get error message "error '800706be'" Which in
> > Microsoft world translates to "Procedure call failed." Can someone
> > enlighten me as to what is going on here?
>
> There is a whole lot of stuff you haven't mentioned.
>
> Is this running as CGI or ASAPI code on IIS? (CGI is not
> multi-threaded, no matter how you compile it...)
>
> Are you using MTS to handle the database COMMIT and ROLLBACK? (if you
> are, you need a transaction context as well as an object context; if
> you're not, you may be in trouble with synchronising).
>
> What settings do you have in component services for the COM+
> component?Try "REQUIRES New transaction". If this fails, experiment
> with the other settings for this parameter.
>
> > I had thought that DLLHost
> > would have a separate copy of Cobol.dll for each request coming in.
>
> No. But if it has the right transaction and object contexts it can
> behave as though it does. It looks as though the COBOL .dll is not a
> COM server in its own right, but is simply called from the VB COM
> server. This is fraught. No new instances can be instantiated and it
> is little wonder you are having trouble when you try concurrent
> threads. The VB COM+ server needs to get a new instance of the COBOL
> .dll each time it (VB) is instantiated. It can only do this if the
> COBOL .dll is also a COM server (or it is able to multiply instantiate
> the object context it is running in). If the DB access is carried out
> in the COBOL .dll, don't be surprised if everything grinds to a halt.
>
> The problem is not with compile options, it is with design.
>
> > But it seems as though it only keeps on copy to service requests. So
> > I suspect this is a cobol dll compilation issue. But I am at loss;
> > agin no knowledge of COBOL!
> >
>
> Your best chance of a quick fix is to tweak DLLHOST.EXE, using the
> component services on the server. In particular, see if you can get
> the VB COM+ server to run in a MTS environment, and try different
> settings of the transaction support parameter for the COM+ server.
>
> The real solution is to rebuild (not re-compile) the COBOL application
> so it is a true COM+ server. Then VB can instantiate it any time it
> needs to.
>
> I have had some very painful experience implementing COM+ with IIS and
> the real solution is to make COBOL another COM+ server just like
> everything else. Once you do this, it works beautifully. Both IIS and
> COM+ are good technologies. I don't know how MF supports the building
> of COM servers in COBOL, as I use Fujitsu, but I should think there
> will be equivalent functionality.
>
> There is not enough hard information here to properly diagnose your
> problem, but on the evidence, it would seem that a standard COBOL .dll
> is being used with an OO COM+ component written in VB. This is like
> tying an anchor to a cat and wondering why it can't get over the wall.
> The COBOL needs to be OO and wrapped as a standard COM server.
> Specifying "multithreading" at compile time is not enough in and of
> itself, to get multiple instances. Without this capability, your
> application will only ever be good for one thread.
>
> Hope this helps.
>
> I am no longer frequenting CLC (I look in occasionally) but would be
> interested to hear how you get on.
>
> Pete.
>
> > As I need to get this completed SOON I would appreciate ANY
> > pointers/help/suggestion with this matter.
> > Thank you
> > SB
Pete,
Thank you for you suggestions with this matter. I realize now I may
have to go the OO Cobol route. But still need to find out how to
pre-compile OO Cobol with Oracle Precompiler.
Saurabh.
- Next message: docdwarf_at_panix.com: "Re: Deploying over IIS and VB"
- Previous message: sb: "Re: Deploying over IIS and VB"
- In reply to: Peter E. C. Dashwood: "Re: Deploying over IIS and VB"
- Next in thread: Chris Glazier: "Re: Deploying over IIS and VB"
- Reply: Chris Glazier: "Re: Deploying over IIS and VB"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|