Error publishing webapp updates from PDSOE

Posted by ssouthwe on 14-Oct-2019 16:01

PDSOE/PASOE 12.0 (But also happened frequently in 11.7.4)

PAS dev instance is local.

This happens frequently enough to seriously impact my productivity.  After making some changes to some source code in PDSOE, The IDE will suddenly have some difficulty publishing the update to the local PAS instance.  It will try over and over and never recover.

You then have to go to the server in the Servers view, and remove the service.  That's difficult because you only have a few seconds to do it successfully, otherwise you get a message about the "file" having changed since it was opened.  So, you get maybe 5 seconds to delete it.

Then when you re-add it, you get a pop-up dialog that says:

"Problem in OpendEdge [sic] Explorer: Instance target directory already exists."

Whenever this has happened, it has been a real struggle to get PDSOE resyncronized with the instance, sometimes requiring completely removing the server from PDSOE.  In some cases it has gotten the instance so hosed that I just had to start from scratch.  Every time it happens, I lose at least an hour.

Other developers have told me not to bother, but I can't help but think that we should be able to reliably use the tool.

My questions:

1. Is there some particular action to avoid to prevent PDSOE from doing this?

2. When this happens, what is the best way to proceed to get PDSOE resynced to the instance?

3. Is there something that can be done in the next version to make this less fragile, so that it recovers itself without having to do all of this?

Wishlist:

4. Could we have a way to have PDSOE synchronize the whole codebase to the PAS instance without having to define an ABL WebSpeed Service? It doesn't move any files unless you define a service.

5. Can the timing of updates be adjusted, or set such that PDSOE sends the files immediately after saving them?

6. When defining a new Server in PDSOE, it only shows a choice of the ABL Applications that exist on the instance.  The ABL application is never going to be named whatever the instance might be, but by default that's the only one listed.  You don't show other ABL applications until one is manually deployed with tcman. Can you let the user give an ABL Application name and have it create that in the instance?

Update: After completely undeploying the app from the server, it seems PASOE has completely corrupted the conf/openedge.properties file.

All Replies

Posted by egarcia on 14-Oct-2019 17:30

Hello,

Quick reply:

> Other developers have told me not to bother, but I can't help but think that we should be able to reliably use the tool.

There should certainly be a way to reliably use the tool. Please log issues that you find with Technical Support.

A one point in time, I experimented with a generic service using WebHandlers:

- community.progress.com/.../2677

In essence, I worked with PAS without having to go through all the publishing process. The generic service only needed to be published once. Also, you could use a standalone instance of PASOE for development.

> 5. Can the timing of updates be adjusted, or set such that PDSOE sends the files immediately after saving them?

You can double-click oepas1 in the Servers view to access a view with an Overview of the server. There you can expand Publishing and change the settings for the Publishing interval. Is this what you are looking for?

I hope this helps.

Posted by ssouthwe on 15-Oct-2019 13:56

Thanks Edsel.  I'm going to just give up on that tool for now, and use robocopy for development sync.  If I get in on the next beta release, maybe I'll be able to get some time to see if it's fixed.

PDSOE so hosed my instance that I just had to completely toss it and start over, generate new war files, and redeploy.  I can't afford to lose several hours every week rebuilding my instance.

Regarding a generic service - I think that's the best way to go.  It's a good way to avoid having to reconfigure and restart PAS every time you add a new endpoint. I'm not using BE or JSDO, but it's useful with generic webhandlers too.

Posted by Peter Judge on 15-Oct-2019 14:04

We do ship a generic webhandler in the form of the Data Object Handler; for doc see docs.progress.com/.../Use-a-Data-Object-Handler.html  . Basically you need to deploy some JSON files and your "business logic" code and it mostly just works.

Posted by Peter Judge on 15-Oct-2019 14:04

We do ship a generic webhandler in the form of the Data Object Handler; for doc see docs.progress.com/.../Use-a-Data-Object-Handler.html  . Basically you need to deploy some JSON files and your "business logic" code and it mostly just works.

Posted by ssouthwe on 15-Oct-2019 16:24

Man, I wish I had known about this before I had to roll my own.

I did look at your write-up, but it seems that it got cut off.  It shows an entity: {} operation handler, but then the document ends before it can show what that is supposed to contain. I'd like to give it a try when I have some time.

My version operates off of having a "handlers" directory for all webhandlers.  Putting a class in that directory that is a "Progress.Web.IWebHandler" automatically makes it available for use without any need for another config file.  If the webhandler is a "system.IHasPathHandler" then the generic handler interrogates the webhandler to determine what path parameters it should make available.

But back to the subject of this post:  If PDSOE is going to synchronize to the instance, it needs to do so even if the developer has not defined any "services".  Remember that we're going to have a lot of people using this for classic WebSpeed apps, where that is not a concept.  Right now, if you define a service (even an empty one), it will attempt to sync any file (even those not related to the service) into the instance. So I've had to create fake "services" even when I don't need them.

Posted by Peter Judge on 15-Oct-2019 17:12

I believe that later in the doc it describes what's meant to be in there.
 
I did a talk on this in SA earlier this year that should give an overview … slides are at http://pugsa.org/wp-content/uploads/2019/03/PJ_pasoe_doh.pdf .
 
 
> Remember that we're going to have a lot of people using this for classic WebSpeed apps, where that is not a concept.  Right now, if you
>define a service (even an empty one), it will attempt to sync any file (even those not related to the service) into the instance. So I've had to
> create fake "services" even when I don't need them.
 
Agreed.
 
 

This thread is closed