I'm new at the forum. I have a problem.
I made a progress db and I instaled the application on the windows server 2008 (small business). I have 5 computers in the office and I want to share the db so all users can in the same time use the application I have made.At first the users loged on to server over remote desktop connection with their user accounts, and there was no problem with starting the app at the same time on all accounts, it worked OK, but the problem is that the maximum number of users is 3.Now, I want the users to be able to use the application without the need to connect directly to the server but just to start the app start shortcut on their pc desktops.I have tried to do that but I can start the application from just one computer, when I try to start it from the other one I get the error "Could not connect to server for database upitnik, errno 0. (1432)" and then I do the proshut, then the application opens on the other pc... and I can not find a solution for my problem...
1. I have maped the shared db folder on the local machines under letter U.2. In the target area of the start shortcut is "C:\PROGRESS\OpenEdge\bin\prowin32.exe -p U:\w-upitnik-start.p -basekey INI -d dmy -T %TEMP%"3. In the start procedure "w-upitnik-start.p" is the next code:
DOS SILENT "net USE U: /DELETE".
DOS SILENT "net USE U: \\192.168.1.201\upitnik".
DOS SILENT "C:\PROGRESS\OpenEdge\bin\proserve" "U:\upitnik\upitnik.db -N tcp -H localhost -S 7777".
CONNECT upitnik -H localhost -S 7777 -N tcp.
PROPATH = ENTRY(1,PROPATH) + ",U:\upitnik," + PROPATH.
I've tried to put the -H 192.168.1.201 intead of -H localhost but I get the message that the host is used by the server....
Help me if you can please.What am I missing???
There are a lot of problems with this setup. But here are my suggestions:
You should run proserve 1x on the server - it looks like your launching the server for every connection, which would be bad.
-H is used for the server IP - not the client - so should never be localhost. Even if I were running a program from the server I would use the servername.
This should be your server .p - run from the server only - using task scheduler if you want.
DOS SILENT "C:\PROGRESS\OpenEdge\bin\proserve" "whatever-the-local-drive-and-folder-are\upitnik\upitnik.db -N tcp -H localhost -S 7777".
Note: you can leave localhost - or use server name - or IP of server. If you run this from server you will have no problems. You don't want the client to be starting the server.
This should be your client .p
DOS SILENT "net USE U: 192.168.1.201\upitnik".
/* you should probably change the line below to RUN persistent */
RUN w-upitnik.w PERSISTENT.
/* otherwise you would disconnect before your app gets a chance to run */
There are maybe 10 other suggestion people could offer to you - but get it running first then we'll go from there.
Thanks for the welcome and for the advice. Now, I have done all the things you have written to me and some + but I had no luck... I've done some print screens so you can see.On picture no 1 you can see I typed in the proenv "proserve U:\upitnik.db -H 192.168.1.90 -S 7777" as you can see.On picture no 2 you can see I typed in proenv "proserve U:\upitnik.db -H predsednistvo -S 7777" as you can see and with that I managed to open the database in multi-user mode, but thats the part where I had no problem previously.
Then I typed on the client pc in the shortcut In the target location this "C:\PROGRESS\OpenEdge\bin\prowin32.exe -db upitnik -H predsednistvo -S 7777 -N tcp -p u:\w-upitnik.w" that is on picture no 3. But I got the same error as before picture no 4 "Coult not connect to server for database upitnik, errno 0. (1432)"
Also I have tried next thing:I have typed in the start procedure w-start-upitnik.p this code DOS SILENT "C:\PROGRESS\OpenEdge\bin\proserve" "U:\upitnik.db -N tcp -H predsednistvo -S 7777".That also opened the database in multi-user mode. After that I typed on the client pc start procedure this code below I got the error message.
DOS "net USE u: /DELETE". DOS "net use u: \\PREDSEDNISTVO\upitnik". /* DOS "C:\PROGRESS\OpenEdge\bin\proserve" "U:\upitnik.db -H predsednistvo -S 7777 -N tcp". */ PROPATH = ENTRY(1,PROPATH) + ",U:\," + PROPATH. CONNECT upitnik -H predsednistvo -S 7777 -N tcp. RUN w-upitnik.w PERSISTENT. DISCONNECT upitnik. DOS "net USE U: /DELETE".
Well that's about it... I don't know what to do... I don't know is it possible that the problem is in some permissions on the server but I gave all the permissions to the user account of the client.
Any further suggestion?
ok let's change tactics. You are still launching the database remotely with proserve, which I don't recommended. In your proserve command there should be no "U" drive.
This is a warning instead of a hard error, but I wanted your to run proserve from the server, and using the local drives. Local drives are c, d etc.
You have the working directory as %TEMP% in one of your examples. You should be using the U: drive as your working directory for clients.
Your database should not be accessible to clients. From the server only.
Clients connect using port 7777 only.
So let's make a db.pf for your clients to use. This will have your connection settings. We'll worry about the 3 users later.
(Btw will you need 5 users to connect at the same time? - no matter this will do the same thing - once a user closes your .w app, it should free up the connection)
-db upitnik -S 7777 -H predsednistvo -N tcp
save both db.pf and startclient.pf in your U: drive
on the clients who want to connect and run your .w, make a file called client.bat
net use u: /DELETEnet use u: \\PREDSEDNISTVO\upitnik
net use u: /DELETE
on your server - you should be serving the databases locally. So if your progress install directory (aka DLC) is
and your db directory is
- you should create a .bat file in the .db directory
c:\Progress\Openedge\bin\proserve c:\openedge\db\upitnik -S 7777 -H predsednistvo -N tcp
you should run this once and the server and leave it. I have databases up 300+ days. I only shut them down if I need to install a service pack.
knock off all those remote DOS commands and mapped drive stuff. This isn't MS Access, it's a real db. ^^
First the answer to your questin, yes I will need 5 clients to connect and use the application in the same time.
I put the db file on C drive of the server.
I have made the dizi.bat file for server start with this line = C:\PROGRESS\OpenEdge\bin\proserve C:\OpenEdge\WRK\upitnik\upitnik.db -S 7777 -H predsednistvo -N tcp
And that worked fine.
I made the .pf files as you told me and put them in the file where the database is
db.pf = -db upitnik -S 7777 -H predsednistvo -N tcp -T %temp%
startclient.pf = -l 500 -pf db.pf -p w-upitnik.w
I made the client.bat file on the client pc with these lines = net use u: /DELETE net use u: \\PREDSEDNISTVO\upitnik
net use u: /DELETE
When I started the client.bat I got error like in pic. no 1 and when I pushed the OK button pic. no 2 and that was the end.
I have checked few times have I have done something wrong, misspelt something but no, I checked the permisions I gave to the client and there were full access permisions.
Then I tried the client.bat on the server/
At first I got the error like in pic. no 3.
Afther that I changed the ------ %temp% ----- part with the ----- C:\OpenEdge\WRK\upitnik ----- and it worked, but as I have said on the server and not on the client.
And btw the server is not Windows server 2008 it is 2003.... I don't know if that influences anything.
I told you %TEMP% but we don't use that - you were right to use a different directory for temp files
>Afther that I changed the
I am sorry but I can only see the part of the message.
I told you %TEMP% but we don't use that - you were right to use a different directory for temp files>Afther that I changed the
Are there any more tips that you can tell me?
I am really sorry but this is the first time I am doing something like this... I mean making this kind of environment on server for local clients, I usually made applications for one user or applications that were on servers and that the clients used them through remote desktop connection.
So I appreciate all the help I can get.
/* resending - I replied via email which doesn't always work */
>Afther that I changed the ------ %temp% ----- part with the ----- C:\OpenEdge\WRK\upitnik ----- and it worked, but as I have said on the server and not on the client.
On the clients -
Replace the %TEMP% with C:\temp or something like that. Normally you want your temp files to be local to the client - so any temp directory on the C drive should be fine.
Try it again afterwards and report back results.
That should get it working on the clients
I just did that and I got the same error msg on the client as on the pic. no. 1 in the previous post
sorry I didn't see your image until just now. I don't like logging on to progress.com so I was trying to do this via email only.
That's good - that you have that error.
- man I hate this website - I have to open up another window to see your earlier messages, so that I can respond. bleh.
ok change the client batch file to this:
OK I have done that.
net use u: /DELETEnet use u: \\SRVDS\upitnik ---------------- Btw dont be confused with this change from PREDSEDNISTVO to SRVDS it is the real deal everithing else is the same.
Tried it on two clients and the results are errors again.
On the first one is the error like on pic. no. 2
On the second one is the error like on pic. no. 3
I think I am on a good path of fining the solution, but I will know that tomorrow. I will let you know, thanks very much.
It works, thank you very much!
Daniel, you're welcome. I'm glad you got it up and running!