[Openroad-users] Debugging App Server

Neil.Warnock at luminary.co.uk Neil.Warnock at luminary.co.uk
Mon Nov 20 23:08:27 EST 2006


Hi Martin,
 
Slide 40 of this highlights the grief associated with the build-deploy-test-edit-> cycle.
 
http://www.iua.org.uk/conference/Autumn2005/NeilWarnock_1005.pdf
 
WRT your specific problem, here are some tips to consider:
 
a) For maximum concurrent performance don't use stateful services unless you really need them (as discussed at length in earlier postings) but it's probably too late for that decision to be reversed for many.
 
b) If you really need client session state in the 4GL service, again for maximum concurrent performance don't expose stateful services to the client - front them with stateless services and have a dedicated state service that these front services call into to restore the state before continuing doing <stuff>. Keeping the state data to a minimum will improve performance and keep traffic down. 
 
b) If using stateful services AND you want to use the RP_LOCAL testing trick, you may have to make minor amends to the service's client code, for example because both client and server are now sharing the same memory space (and included apps can cause the old chestnut "Class X is not a subclass of Class X" error).  Also, the StartGhost will not have executed at AppServer startup (because it didn't start up!). That's why you are getting the error below. The internal Stored Object Manager (STOB), which manages server side session context objects gets initialised from the StartGhost, but the StartGhost hasn't executed, so a call to DefineBPM which uses the STOB then cries foul because it hasn't been initialised.
 
Judicious use of #IFDEF might be useful here if you don't want to keep amending code when going from RP_LOCAL to RP_SHARED.
 
c) Make sure you test properly in true appserver mode once you are done!
 
HTH,

Neil Warnock 
Luminary Solutions 
Tel: +44 (0)870 757 40 90  
Mob: +44 (0)771 265 0291  
Email: Neil.Warnock at luminary.co.uk 

For more information on Luminary go to http://www.luminary.co.uk <http://www.luminary.co.uk/>  
  

 

  _____  

From: openroad-users-bounces at peerlessit.com [mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Martin Pomej
Sent: 17 November 2006 06:41
To: 'Kim Ginnerup'; OpenROAD Users
Subject: Re: [Openroad-users] Debugging App Server


Hi Kim,
 
Therefore do you have to remove 'DefineBPM' statements and the b_osca parameter when calling the SCP?
 
Or is it as simple as making the type = RP_LOCAL, including the ASA application and hitting the 'Go' button?
 
I ask the above as I've changed the type to RP_LOCAL and getting the following error:
    Fatal error: (-501) uc_osca.Validate: A Context Id has not been allocated
    uc_stob_mgr.GetNextStobId: STOB manager has not been initialised in thisapplication

Regards, 
Martin. 

 

  _____  

From: Kim Ginnerup [mailto:kgi at bording.dk] 
Sent: Friday, 17 November 2006 17:11
To: martin.pomej at myworkplace.com.au; International OpenROAD Users
Subject: SV: [Openroad-users] Debugging App Server



What you can do is to database include the appserver in a client app.

Set the type to RP_LOCAL. 

When you use RP_LOCAL, all call4gl statement are done as normal callproc,

Now you can debug it as a normal app.

If you do not have a client then just make one, it only cost you a procedure and a few lines of code.

I find it a better solution to build an external client than changing the apsserver code, you'll never know what you brake,

Or what you leave behind after the test.

 

Kim

  _____  

Fra: openroad-users-bounces at peerlessit.com [mailto:openroad-users-bounces at peerlessit.com] På vegne af Martin Pomej
Sendt: 17. november 2006 03:22
Til: OpenROAD Users
Emne: [Openroad-users] Debugging App Server

 

Hello OR world,

 

When using the RemoteServer.Initiate method the documentation states the following re the type parameter:

 

The RP_LOCAL type is useful for development and debugging. When initiated
in RP_LOCAL mode, all Call4GL calls on the RemoteServer object are forwarded
to a local instance of the named 4GL procedure (within the current application or
its included applications) and not sent to an Application Server.

 

Does this mean that I can use the debugger and step through the code on the App Server end?

I've set the type to RP_LOCAL and nothing appears to be different.

 

Currently when I have a logic bug I have to set about a million trace messages all through the method(s) that are involved to 'see' what is happening and this is extremely painful.

 

Am I debugging App Server the hard way, or is it just the way things are?

 

Any light shed on this would be much appreciated.

Regards, 
Martin Pomej 
MyWorkplace Solutions Pty Ltd 
Ph:     1300 733 731 
Mob:    0414 230 845 
Em:     martin.pomej at myworkplace.com.au 
Making Service our Priority 
www.myworkplace.com.au <http://www.myworkplace.com.au/>  

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://peerlessit.com/pipermail/openroad-users/attachments/20061120/d0434b04/attachment.html 


More information about the Openroad-users mailing list