There seems to be issues with trapping errors related to shared variables in PAS OE v12.1.
Our converted legacy webpseed application had many global shared and shared variables. This was causing unknown "unable to run web object" errors, I've looked at all the logs generated by the PAS Application and there is no reference of any error, even when changing logging level to 4 and adding things like 4gltrtace.
Are there any known issue related to shared but not global shared variables - is it possible there is something else in the configuration I'm missing that would allow the cause of these errors to be reported?
These are defined at the agent startup proc as new shared and shared inside programs many levels deep. Changing them to new global shared seems to fix the issue, but I am trying to remove all use of these shared variables and have only the required ones be passed down as param through the chain. unfortunately we have 1000s of programs to update and review. All appears good but in some cases the program will succefully complete and generate value HTML output, yet it also tacks and "unable to run web object" at the very bottom after referencing the same program that sucessfully generated all the output.
If they're defined in the agent startup procedure, then only the ABL Session that happened to run the agent startup procedure will have them defined. Instead, they should be defined in the session startup procedure (which is run whenever an ABL Session is created). However, if they are not global shared, none of them will be seen at all because the session startup procedure is not part of the call-stack when you run a request.
I'm not as concerned with where they need to be setup as - They are only needed at the agent level, but I've tried putting them in the session startup also with the same result. In the end I'm working towards removing them so they won't be required in either. The real concern is that when an error does occur it isn't getting logged.
I see webspeed outputting: unable to run Web object 'myProgramName.p' but nothing I can find is saying why that happened.
In the case where I included a NO-UNDO on a shared definition I would get this error and nothing else.
Once that was corrected it was able to run the program to completion and generate a full page of output.
Most programs work as expected now, except for ones that call even older legacy character code we've been bringing forward that has it's own shared variable use. In a handful of those programs it does complete but after the usual html output from webspeed it also tacks on unable to run Web object 'myProgramName.p' below.
I'm just looking to figure out what might be preventing these errors from getting to the logs as it is making it very difficult to find where in the long chain of calls the issue is actually happening.
I upped the logging level and get the following output:
----------------------------------------------------
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000002 AS Server Message state = MSGSTATE_INITRQ
2019-11-04T08:57:34.035-0500 20382154 59834633 3 AS-10 ROOT:w:00000003 AS requestID= ROOT:w:00000003
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: Open4GLWriteLast 2501. (8401)
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: Open4GLWrite 2501. (8402)
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: cso4GL: Before loadProc() (8458)
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: STATELESS: locating proxy-id 558792390 (Progress.Web.InternalWebHandler:HandleRequest) for operation 16 (8458)
2019-11-04T08:57:34.035-0500 20382154 59834633 3 AS-10 ROOT:w:00000003 AS -- TRACE: SINGLETON Non-Void Method 'Progress.Web.InternalWebHandler:HandleRequest' START (Proxy 558792390).
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: STATELESS: located proxy-id 558792390 (Progress.Web.InternalWebHandler:HandleRequest) for operation 16 (8458)
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: cso4GL: After successful loadProc() (8458)
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: Set open 4GL server state to 2. (8400)
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: cso4GL: In execProc() - before execution. (8458)
2019-11-04T08:57:34.035-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: STATELESS: running stateless internal function on proxy-id 558792390 (8458)
2019-11-04T08:57:34.037-0500 20382154 59834633 1 AS-10 ROOT:w:00000003 LogMgrWrtr [OE.W.InternalWebRouter DEBUG] Request for path "/web/wam_tmpl/catalog_product.p" using template "" and handler "OpenEdge.Web.CompatibilityHandler"
2019-11-04T08:57:34.038-0500 20382154 59834633 1 AS-10 ROOT:w:00000003 LogMgrWrtr [OE.W.InternalWebRouter DEBUG] Debug mode: OFF
2019-11-04T08:57:34.040-0500 20382154 59834633 1 AS-10 ROOT:w:00000003 LogMgrWrtr [OE.W.InternalWebRouter DEBUG] Handler instance OpenEdge.Web.CompatibilityHandler_1116 used for handler OpenEdge.Web.CompatibilityHandler
2019-11-04T08:57:34.333-0500 20382154 59834633 1 AS-10 ROOT:w:00000003 -- (Procedure: 'wam_tmpl/catalog_product.p' Line:15036) End of catalog_product.p's finally block
2019-11-04T08:57:34.336-0500 20382154 59834633 3 AS-10 ROOT:w:00000003 AS -- TRACE: SINGLETON Non-Void Method (Proxy 558792390) END SUCCESS.
2019-11-04T08:57:34.336-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: cso4GL: In execProc() - successful execution. (8458)
2019-11-04T08:57:34.336-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: cso4GL: In execCall() - execProc() success. (8458)
2019-11-04T08:57:34.336-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: Set open 4GL server state to 3. (8400)
2019-11-04T08:57:34.339-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS Server Message state = MSGSTATE_SENDRESP
2019-11-04T08:57:34.339-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: Set open 4GL server state to 1. (8400)
2019-11-04T08:57:34.339-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS -- TRACE: open4GLRead 59. (8403)
2019-11-04T08:57:34.339-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS Server Message state = MSGSTATE_FINISHRQ
2019-11-04T08:57:34.345-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS Server Message state = MSGSTATE_IDLE
2019-11-04T08:57:34.524-0500 20382154 59834633 4 AS-10 ROOT:w:00000003 AS Server Message state = MSGSTATE_INITRQ
-------------------------------------------
This is the logging error that I'm not sure about:
2019-11-04T08:37:59.724-0500 20382154 59834633 1 AS-10 ROOT:w:00000001 LogMgrWrt r INFO: Current session client type MULTI-SESSION-AGENT does not support named logs
I'm not sure where in the config it would be set to use a named log, or if this is even related - is this just something that it does when running in compatibility mode?
that error seems to be pretty common in other peoples log posts on here but never seems to get mentioned directly in any thread.
This logging issues seems to be exclusively a problem for shared variable errors as I do get all other log messages I am expecting.
If you have any recommendations for what could be wrong with the config I'd be happy to hear them
This is the line
2019-11-04T08:57:34.037-0500 20382154 59834633 1 AS-10 ROOT:w:00000003 LogMgrWrtr [OE.W.InternalWebRouter DEBUG] Request for path "/web/wam_tmpl/catalog_product.p" using template "" and handler "OpenEdge.Web.CompatibilityHandler"
That section of my config looks like:
[wam18.ROOT.WEB]
defaultCookieDomain=
wsRoot=/static/webspeed
srvrDebug=0
defaultHandler=OpenEdge.Web.CompatibilityHandler
adapterEnabled=1
defaultCookiePath=
srvrAppMode=production
I have run through many different guides on setting on a PAS OE instance to run a legacy webpseed app, none seemed to cover everything required to get it running.
This version was created from the openedge management web interface.
We only have 1 app running and it is just plain old webspeed with &out's - no web services, no REST, no spring security or any other tomcat functions that aren't mandatory.
I'm not sure what the Template is supposed to be setup as in this case or where to find information on how it should be configured.
Do you have an recommendations on where to find current up to date documentation?
I've tried looking through www.progress.com/documentation but the links from there for openedge and PAS don't ever seem to get into much technical details, just lots of short little articles.
The best I could find is the openedge.properties.README file and it seems that the handler# values are only required for custom URIs? But we are only using the default OpenEdge.Web.CompatibilityHandler (/web) so none of those other handler# values are required?
[mention:9e4ee96fac634b8f91b580e1fb4f7e71:e9ed411860ed4f2ba0265705b8793d05] any updates or recommendations?
@adamy You are correct in that all classic webspeed pages can be served through the CompatibilityHandler and the defaultHandler configuration.
This is the logging error that I'm not sure about:
2019-11-04T08:37:59.724-0500 20382154 59834633 1 AS-10 ROOT:w:00000001 LogMgrWrt r INFO: Current session client type MULTI-SESSION-AGENT does not support named logs
I'm not sure where in the config it would be set to use a named log, or if this is even related - is this just something that it does when running in compatibility mode?
This message comes from the logging component ; you can ignore it.
I've tried looking through www.progress.com/documentation but the links from there for openedge and PAS don't ever seem to get into much technical details, just lots of short little articles.
There's often linked content but the UX isn't good - opening the Table of Contents can help with related stuff.
You will see the error message in a couple of circumstances - can't find the .P on PROPATH , or can't run it. I"m not sure if that's the case. There's a "logNote" function that may record the reason why, but I don't know the Classic WebSpeed code well enough to tell you how to configure it.