In PASOE it is sometimes necessary to turn on enhanced logging to find out what is going wrong in an application.
I was having trouble making "dynamic" changes to the PASOE logging mechanism. I was referred by Irfan to a property, allowRuntimeUpdates that can be set to "1" in openedge.properties (image):
Has anyone else had a chance to try this in the context of PASOE? Supposedly if it is set to "1" then you can make changes to your logging preferences on the fly (change logging from "1" to "4" and back again).
I don't find any documentation that describes the purpose of "allowRuntimeUpdates" for PASOE. Because of the generic way that property is named, it could do just about anything. But I have heard rumor that it will monitor specifically for properties such as the logging level and will make changes go into effect.
In fact, I have been able to confirm that when I change logging levels, the agent log will at least notify me as follows:
[19/01/23@11:50:12.501-0500] P-021572 T-025152 1 AS-Admin -- Logging level set to = 4
[19/01/23@11:50:12.501-0500] P-021572 T-025152 1 AS-Admin MSAS csMtDynamicPropertiesUpdate("agentLoggingLevel" : "4") OK
... however, the behavior of the change within the actual agent processes and sessions is not consistent. Sometimes my logging level change goes into effect and sometimes it does not. I often find myself stopping agent processes via OEE before the change will go into effect.
That isn't the end of the world. This is certainly a better feature than having to stop the entire PASOE instance as I had to do in the past. But it would be nice to know what is the intended behavior of this property, allowRuntimeUpdates, and whether it requires ABL application agents to be manually stopped (as I'm currently doing today).
I have another update from Progress tech support about the "dynamic" updates to logging configuration in PASOE.
This information can be found in the KB:
Apparently the dynamic updates will be fixed once again after we upgrade to OE 11.7.6. In the meantime there is a workaround that involves a new property called "defrdlogentrytypes". Even though Irfan has told us we cannot use that "deferred logging" feature in 11.7.5, we can in the very least set the property to the empty value in order to get our "dynamic" updates working again as before. Here is the excerpt from the KB.
For OpenEdge 11.7.5 please follow the steps:
1. Add the property defrdlogentrytypes= in the "AppServer.SessMgr".
Note: the property has empty value.
2. Restart the OpenEdge PAS instance for the changes to the Agents configuration to take effect.
3. Check if the functionality allowRuntimeUpdates works as expected.
Hope this is clear. I'm extremely happy to have my dynamic logging back again. Note that sometimes you have to kill an individual _mproapsv to get it to "see" that logging configuration has changed... but at least you don't have to restart the entire PASOE instance!
Unfortunately the "allowRuntimeUpdates" stopped working in 11.7.5.
I suppose this may be why that property was undocumented in the first place... so the related behavior was free to change from one version to the next. As things work now in 11.7.5 we can no longer change the logging level (or log entry types) within OEE and expect them to immediately take effect. It looks like we must now restart the entire PASOE instance first.
When we try to make the change to logging on the fly, we no longer see the message about dynamic properties updates. IE. this doesn't appear in the logs anymore if we try to change the logging level:
MSAS csMtDynamicPropertiesUpdate("agentLoggingLevel" : "4") OK
It is very unfortunate because changing the logging level dynamically was a pretty critical way of troubleshooting an intermittent error in the ABL logic.
Please log a bug through support. Its a bug.
OK, I've reported it. Thanks for confirming.
It would be nice if "allowRuntimeUpdates" was less ambiguous. I take it to mean that PASOE will allow me to change logging on the fly. But others may use it for purposes that I'm not aware of. It would be interesting to know what exactly can be dynamically changed without restarting the PASOE instance.
Even in versions of OE when "allowRuntimeUpdates" worked, I believe that it wouldn't always take effect unless agent processes were restarted. (But at least that is better than restarting the entire PASOE instance.)
"Unfortunately the "allowRuntimeUpdates" stopped working in 11.7.5."
Does this only impact PASOE or does it also impact the classic appserver in 11.7.5?
>> Does this only impact PASOE or does it also impact the classic appserver in 11.7.5?
Yes, apparently the "allowRuntimeUpdates" feature has stopped working in "classic" appserver as well. We had relied on that "runtime updates" feature for changing the logging of ABL activity in an appserver agent. Now it is quite a bit more challenging to enable and disable logging.
My support engineer said this about "classic" appserver:
"At this point Classic AppServer is also affected and Progress Development Team is fixing it."
Note that this hasn't made it into the KB yet, although she said she was going to add it there. I was waiting for the KB, before replying to this thread but I haven't seen the KB yet and I wanted to give you an update before I forget.
Also please note that the KB seems to say that the PASOE version of the feature ("allowRuntimeUpdates") was working in 11.7.2 (see KB 000070223). That may have been true at one time. But the information is incomplete because the feature broke again in 11.7.5 and it appears that it will remain broken until the next service pack comes around again (11.7.6).
Hope this is clear.