Resolved Error when try Connect database from .pf file in AppServer

Anderson Clayton

New Member
Hi folks, may someone help me? it must be pretty simple, but i've been pass all day stuck on this. I created a new appserver in OE 11.7 by Admin server (localhost:9090) and i trying to connect a copy sports database just using the "Server startup parameters" with a .pf file. The .pf file content is "-db C:/tmp/wrk/test", where "test" is the name and location of my copy sports database. When i start my appserver, everything seens to be fine, but a few minutes after that, the log file shows up whith the following error: "** Could not connect to server for database test, errno 0. (1432)". I've been searching trought the google but nothing solved my issue.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Hi Anderson,

It seems your client is attempting a TCP connection to the database. Based solely on the information you have provided, it should be making a shared memory connection and you shouldn't see that error message.
  • Which OpenEdge product licenses do you have installed? Please list the product names.
    • You can get this from the "License info" shortcut in the Progress group in the Start menu.
  • I assume the client and database are on the same machine. Is this correct?
  • Are both the database and the client using the same OpenEdge installation?
  • Are there any other parameters in that client .pf file?
  • Is there any other .pf file in use for this client? E.g. %DLC%\startup.pf
    • If so, please provide their contents.
  • Does the database contain auto-connect information?
  • Are there any messages in the database log (C:\tmp\wrk\test.lg) at the time of your failed client connection?
 

Anderson Clayton

New Member
Hi Anderson,

It seems your client is attempting a TCP connection to the database. Based solely on the information you have provided, it should be making a shared memory connection and you shouldn't see that error message.
  • Which OpenEdge product licenses do you have installed? Please list the product names.
    • You can get this from the "License info" shortcut in the Progress group in the Start menu.
  • I assume the client and database are on the same machine. Is this correct?
  • Are both the database and the client using the same OpenEdge installation?
  • Are there any other parameters in that client .pf file?
  • Is there any other .pf file in use for this client? E.g. %DLC%\startup.pf
    • If so, please provide their contents.
  • Does the database contain auto-connect information?
  • Are there any messages in the database log (C:\tmp\wrk\test.lg) at the time of your failed client connection?
Hi Rob, thanks for reply: About your questions:

Products Licenses: OE Enterprise RDBMS, OE DataServer for Orac, OE DataServer MS SQL S, OE Studio, Client Networking, Query/RESULTS, OE Application Svr Ent.

I assume the client and database are on the same machine. Is this correct?: Yes, same machine.
Are both the database and the client using the same OpenEdge installation?:
Yes, same installation.
Are there any other parameters in that client .pf file?: No, the full content in the .pf file is "-db C:/tmp/wrk/test", that's all.
Is there any other .pf file in use for this client? E.g. %DLC%\startup.pf: Yes, the content is:
-cpinternal ISO8859-1
-cpstream ISO8859-1
-cpcoll Basic
-cpcase Basic
-d mdy
-numsep 44
-numdec 46

Does the database contain auto-connect information?: Idk how can i check this :-(, sorry, i am newler on it.
Are there any messages in the database log (C:\tmp\wrk\test.lg) at the time of your failed client connection?:
No.

Thanks again for trying to help me, i appreciate.









 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Idk how can i check this :-(, sorry, i am newler on it.
If this is a sports database you created yourself, then the answer is no. :) "Auto-connect" is a way of providing client connection information in the database, and it can make the client connection process a little opaque.

The client (AppServer) is configured in %DLC%\properties\ubroker.properties. It contains collections of key-value pairs, divided into different sections for the types of objects the admin server governs (AppServers, WebSpeed, NameServers, databases, etc.). This is the data you see in the web UI of OpenEdge Explorer (the localhost:9090 URL you specified).

Can you look in the appropriate section of this file for the AppServer's client startup parameters? The parameter name is "srvrStartupParam".

Also, how did you configure and start your database? Via the admin server, or just manually at the proenv command line with a .pf and a batch file or command line? Can you provide the database broker startup parameters that are relevant to client/server connections?
 

Anderson Clayton

New Member
If this is a sports database you created yourself, then the answer is no. :) "Auto-connect" is a way of providing client connection information in the database, and it can make the client connection process a little opaque.
Thanks for explain me Rob.

here its the properties file content:

[UBroker.AS.aquiles]
appserviceNameList=aquiles
brkrDebuggerKeyAlias=default_server
brkrLoggingLevel=3
brkrNetbiosEnable=0
brokerLogFile=@{WorkPath}\aquiles.broker.log
controllingNameServer=NS1
environment=aquiles
keyAlias=default_server
mqBrokerLogFile=@{WorkPath}\aquiles.mqbroker.log
mqServerLogFile=@{WorkPath}\aquiles.mqserver.log
operatingMode=State-aware
portNumber=2000
PROPATH=@{WinChar Startup\PROPATH};@{WorkPath};C:\Tmp\wrk\propath
srvrLogFile=@{WorkPath}\aquiles.server.log
srvrStartupParam=-pf C:\Tmp\wrk\connect.pf
uuid=33011b777t5666af2:4d09h958:1786e0b7669:1452

i started by admin server, and the database broker startup parameters idk where is it.

Thanks on more time.
 

Anderson Clayton

New Member
The database broker parameters can be found in the various sections of %DLC%\properties\conmgr.properties.
#
# Connection Manager Properties File
#
%% Juniper Properties File
%% version 1.1
%% 01-Apr-90 4:02:09 PM

#
# The following are optional configuration
# properties and their default values.
# The legacy option, if applicable,
# is listed after the second comment.
# Property values set at this level become
# the default values for all configuration
# subgroups.
#
[configuration]
# afterimagebuffers=5 # -aibufs
# afterimageprocess=false # n/a
# afterimagestall=true # -aistall
# asynchronouspagewriters=1 # n/a
# beforeimagebufferedwrites=false # -r
# beforeimagebuffers=5 # -bibufs
# beforeimageclusterage=60 # -G
# beforeimagedelaywrites=3 # -Mf
# beforeimageprocess=true # n/a
# blocksindatabasebuffers=0 # -B (calculated as 8*(-n))
# casetablename=basic # -cpcase
# collationtable=basic # -cpcoll
# conversionmap=convmap.cp # -convmap
# crashprotection=true # -i
# databasecodepage=basic # -cpdb
# directio=false # -directio
# hashtableentries=0 # -hash (calculated as (-B)/4)
# internalcodepage=iso8859-1 # -cpinternal
# locktableentries=10000 # -L
# logcharacterset=iso8859-1 # -cplog
# maxservers=4 # -Mn
# maxusers=20 # -n
# nap=1 # -nap
# napmax=1 # -napmax
# pagewritermaxbuffers=25 # -pwwmax
# pagewriterqueuedelay=100 # -pwqdelay
# pagewriterqueuemin=1 # -pwqmin
# pagewriterscan=1 # -pwscan
# pagewriterscandelay=1 # -pwsdelay
# semaphoresets=1 # -semsets
# sharedmemoryoverflowsize=0 # -Mxs
# spinlockretries=0 # -spin
# sqlyearoffset=1950 # -yy
# watchdogprocess=true # n/a

# The following are optional database
# properties and their default values.
# Property values set at this level become
# the default values for all database
# subgroups.
#
[database]
# autostart=false # autostart the defaultconfiguration?
# databasename=demo # absolute or relative path + database name

# The following are optional server group
# properties and their default values.
# The legacy option, if applicable,
# is listed after the second comment.
# Property values set at this level become
# the default values for all servergroup
# subgroups.
#
[servergroup]
# host=localhost # -H
# initialservers=0 # n/a
# maxclientsperserver=0 # -Ma (calculated value)
# maxdynamicport=5000 # -maxport (5000 for NT; 2000 for UNIX)
# messagebuffersize=350 # -Mm (4gl only)
# minclientsperserver=1 # -Mi
# mindynamicport=3000 # -minport (3000 for NT; 1025 for UNIX)
# networkclientsupport=true # false for self-service
# numberofservers=0 # -Mpb
# port=0 # -S ; Must be non-zero
# # when networkclientsupport=true
# prosqltrc=nnnnnnnnnnn # turn on various levels of SQL tracing
# reportinginterval=1 # -rpint (4gl only)
# serverexe=<4gl server location> # _mprosrv (4gl only)
# type=both # n/a

This is the content of conmgr.properties
 

Anderson Clayton

New Member
Is this the file that contains "-db C:/tmp/wrk/test"? And nothing else?
Thats right Rob.


Is there a srvrStartupParam line in any other section of uboker.properties, apart from [UBroker.AS.aquiles]?:

[Adapter]
srvrStartupParam=

[UBroker]
srvrStartupParam=-p web/objects/web_disp.p -cpstream iso8859-1 -weblogerror

[UBroker.AS]
srvrStartupParam=

[UBroker.AS.aquiles]
srvrStartupParam=-pf C:\Tmp\wrk\connect.pf

[UBroker.AS.asbroker1]
srvrStartupParam=-pf C:\Tmp\wrk\connect.pf

[UBroker.AS.icfrepos]
srvrStartupParam=-pf "C:\dlc117\as.pf"

[UBroker.MS]
srvrStartupParam=-svub -S X -N TCP -U X -P X -hs 0 -s 40

[UBroker.MS.mssbroker1]
srvrStartupParam=-svub -S X -N TCP -U X -P X -hs 0 -s 40

[UBroker.OR]
srvrStartupParam=-svub -S X -N TCP -U X -P X -hs 0 -s 40


[UBroker.WS]
srvrStartupParam=-p web\objects\web-disp.p -weblogerror

[UBroker.WS.wsdynamics1]
srvrStartupParam=-p web\objects\web-disp.p -icfparam ICFSESSTYPE=ICFWS -weblogerror


Here its all values to the srvrStartupParam in all sections that ubroker.properties

Thanks Rob.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Also, how did you configure and start your database?
i started by admin server, and the database broker startup parameters idk where is it.
To be clear, when you say "i started by admin server", do you mean that is how you started the database? Or were you referring to how you started the AppServer? Outside of the admin server, a database is typically opened in multi-user mode via a command line or script that invokes a proserve or _mprosrv.exe command.

Looking at the database log, can you confirm that it is currently online in multi-user mode? Alternatively, try this at a proenv prompt:
proutil c:\tmp\wrk\test -C busy
You should see something like this:
Code:
OpenEdge Release 11.7... 
** The database test is in use in multi-user mode. (276)

This is the content of conmgr.properties
As you can see, all of the lines in this file are comments, as they begin with "#". This is a generic file that doesn't actually contain any reference to your "test" database. So we don't yet know how this database is configured, if at all.
 

Anderson Clayton

New Member
To be clear, when you say "i started by admin server", do you mean that is how you started the database? Or were you referring to how you started the AppServer? Outside of the admin server, a database is typically opened in multi-user mode via a command line or script that invokes a proserve or _mprosrv.exe command.

Looking at the database log, can you confirm that it is currently online in multi-user mode? Alternatively, try this at a proenv prompt:
proutil c:\tmp\wrk\test -C busy
You should see something like this:
Code:
OpenEdge Release 11.7...
** The database test is in use in multi-user mode. (276)
1617392800187.png

This is the result from proenv Rob. And about your question, when i said "started by admin" its only that i click the button below:

1617392931472.png

Thanks Rob.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
So now we know your database wasn't started in multi-user mode. You don't want it to be started in single-user mode when you are working with AppServer, as the AppServer broker may try to start more than one AppServer agent client process.

Stop the AppServer process. Exit out of any process that may be accessing the database (e.g. _progres.exe, _prowin32.exe, etc.).

Then start the database in multi-user mode. The minimal command for this is proserve c:\tmp\wrk\teste.
Then try to start your AppServer client again.

But first note the following:
The .pf file content is "-db C:/tmp/wrk/test
This path, in addition to being wrong for using Unix path separators on Windows (though Progress corrects for this), contains the wrong database name. Your proutil command specifies the database name as "teste" whereas your .pf points to "test".
 

Anderson Clayton

New Member
So now we know your database wasn't started in multi-user mode. You don't want it to be started in single-user mode when you are working with AppServer, as the AppServer broker may try to start more than one AppServer agent client process.

Stop the AppServer process. Exit out of any process that may be accessing the database (e.g. _progres.exe, _prowin32.exe, etc.).

Then start the database in multi-user mode. The minimal command for this is proserve c:\tmp\wrk\teste.
Then try to start your AppServer client again.

But first note the following:

This path, in addition to being wrong for using Unix path separators on Windows (though Progress corrects for this), contains the wrong database name. Your proutil command specifies the database name as "teste" whereas your .pf points to "test".
Rob, to put database in multi-user it works as you can see bellow, Great!

1617394707611.png

But now, when i open a editor and try a code to test my connection the following error appear, as you can see, the customer table still not avail.

1617394676508.png

Here is the programs that i use to test:

1617394956313.png1617394980665.png

exchanging the for each code to a simple message in raiselimit.p i can see the message content in the server log file, that means the only problem is my connection right?
 

Anderson Clayton

New Member
Rob, to put database in multi-user it works as you can see bellow, Great!

View attachment 2343

But now, when i open a editor and try a code to test my connection the following error appear, as you can see, the customer table still not avail.

View attachment 2342

Here is the programs that i use to test:

View attachment 2344View attachment 2345

exchanging the for each code to a simple message in raiselimit.p i can see the message content in the server log file, that means the only problem is my connection right?

I tried a new test, my pf file its now this way: "-db C:\Tmp\wrk\teste -S 22029 -H localhost -N tcp"

and now i got the following message:

1617396944197.png
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
But now, when i open a editor and try a code to test my connection the following error appear, as you can see, the customer table still not avail.
This is now a different client and a different issue. You haven't said how you launched this Procedure Editor client or how you attempted to connect it to the database. The compile error seems to indicate the client is not connected to the database. Either that, or you are connected and the database does not have a customer table. But if this is a copy of sports and you haven't removed the customer table, then you aren't connected to the database.
 

Anderson Clayton

New Member
This is now a different client and a different issue. You haven't said how you launched this Procedure Editor client or how you attempted to connect it to the database. The compile error seems to indicate the client is not connected to the database. Either that, or you are connected and the database does not have a customer table. But if this is a copy of sports and you haven't removed the customer table, then you aren't connected to the database.
This procedure editor client belongs to the same installation that i launched the appserver. And my client does not have connected in any database. I tried to connect in teste.db from client but it didnt works.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
This procedure editor client belongs to the same installation that i launched the appserver. And my client does not have connected in any database. I tried to connect in teste.db from client but it didnt works.
The procedure editor may be in the same installation but that doesn't mean it knows about or is connected to this database. That code (for each customer) won't work until you connect a database with a customer table from within that procedure editor. You could do that programmatically (via an ABL connect statement), interactively (by launching Tools | Data Administration and then Database | Connect), or by adding -db C:\Tmp\wrk\teste to the command line you used to launch your procedure editor.
 

Anderson Clayton

New Member
The procedure editor may be in the same installation but that doesn't mean it knows about or is connected to this database. That code (for each customer) won't work until you connect a database with a customer table from within that procedure editor. You could do that programmatically (via an ABL connect statement), interactively (by launching Tools | Data Administration and then Database | Connect), or by adding -db C:\Tmp\wrk\teste to the command line you used to launch your procedure editor.
Now it works, thank you very much for help me Rob.
 
Top