OpenEdge 10.2B on Windows X64

FocusIT

Member
We are upgrading a site from 9.1D09 x86 to 10.2B05 x64. Both client and server OS is Windows, currently XP for clients and 2003 for database server. Does anyone have any deployment advice for how to get the database running on Windows 2008R2 SP1 x64 and the clients to remain on XP? We are still in the test phase, but live deployment is scheduled for Easter this year.

BACKGROUND:
The application itself is relatively basic, it runs as a simple client/server (no AppServers) with both GUI and CHUI client screens. Client is run from a desktop shortcut calling prowin32.exe, .ini and .pf. One set of application code is compiled on the server running the database. All machines including the server use the same set of compiled code, clients get access to it via a network share and it is run locally in shared memory for batches on the server. This has worked fantastically for nearly 7 years, but now needs upgrading to 10.2B before the 32-bit database limits are reached.

PROBLEMS:
How do we compile and run r-code on the server for batches? Only the RDMS license can be installed from the 64-bit Progress install file. OE Studio will not install which means we need to compile from a development server which pushes compile time up to 6 hours when it took only 40 minutes on the database server in shared memory (this simply seems down to the horse power difference between an enterprise specced server and a developer PC). How do we run batches in shared memory on the server? _progres.exe does not seem to want to run anything, every startup procedure I try throws an error even _desk.r which is bundled with the x64 RDBMS install. Can I install 32-bit OE Studio on the database server without destroying the 64-bit RDBMS installation? It currently seems like I will need two sets of application code, one server side in 64-bit r-code and one client side in 32-bit, is this correct?

Has anyone else achieved this with a basic client/server application? Do I need x64 OE Development Server, not sure what it is but it keeps cropping up in the Progress KB.

Thanks in advance.

Andrew Bremner
 

Stefan

Well-Known Member
1. it may be worth your while to upgrade to OpenEdge 11 - r-code should be portable between 32-bit and 64-bit again
2. if not, you must compile x64 r-code with an x64 character client (_progres) and you must compile 32-bit r-code with as you normally do
3. if the 'distance' to the database server is an issue you could consider an empty schema database on the client that needs to compile with prowin32.
 

FocusIT

Member
I think I know the source of the error now at least, its 'Invalid version, <version> (expected <version>) in object file <file-name>. (2888)
** Unable to run startup procedure <name>. (492)' . The startup procedure was _desk.r which is a GUI client, but saying that it wont run with prowin32.exe on the x64 server either. It is almost like _desk.r is compiled in x64 so wont now run under either. Am I missing something?

Next question is how do I compile character programs to x64 format using _progres? Is this what the x64 Development Server is used for? I can split the application into client programs and batch jobs if required, but the batch jobs which are all character based ideally need to run locally on the database server in shared memory. Is this going to be possible?
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
OE Development Server is a developer version of the AppServer, which is limited in various ways; it's really not for deployment. What you want for compilation is 4GL Development System.

So if you're going to be on 10.x and have 32-bit remote clients and 64-bit on the DB server, you'll need both a 32-bit and a 64-bit compiler, and obviously different propaths for the clients on each side, pointing at their respective r-code directories.
 

TomBascom

Curmudgeon
The GUI client is 32 bit only. There is no 64 bit GUI client. Prowin32 will run on a 64 bit OS but it is a 32 bit executable. Offhand I don't recall if prowin32 is even included in the W64 Progress install. If it is you would only be able to use it via -H & -S. It would not be able to make a shared memory connection to the db.

The 64 bit Windows Progress executables are server executables. There is no 64 bit GUI client. On the 64 bit Windows server you need 64 bit r-code and you run it with _progres or _proapsv. Not prowin32. Server code has no GUI so the r-code is portable from UNIX. You could compile it on a 64 bit Linux server, if you have one, and port it from there. Or you could purchase a single 4gl compiler license for your server.
 

FocusIT

Member
Thanks for all the help. I have put an order in for a 4GL Development System license so we can compile to x64 r-code. Progress themselves offered an alternative using the 32-bit version of xcode in OE Studio to encrypt the source code and a compiler program which can then be run using 64-bit _progres. It looked like a bit of hack to me so going for the recommended solution here.

It seems unfair to have to purchase yet another license when we have already purchased OE Studio, Client Networking and x64 RDBMS. But needs must.

I discussed the option of going straight to OE11 with the end user, but they are risk averse and don't want to be an early adopter. Wait till SP1 was their immediate response and to be honest I kind of agree. Please don't flame me for it. :)
 
Top