how to connect visual studio (connect string c# ) on a remote aix 6.1 progress version 9.1a with only 4gl

PascalMBOUM

New Member
no i don't need
i'm sure that less than 400 users simultaneously connections is ok .let say 300 simultaneously connections will be ok.
That is two different answers to the same question.

To configure the brokers appropriately, you need to decide:
  • Maximum concurrent 4GL remote (TCP) clients
  • Maximum concurrent SQL clients
  • Maximum connections overall, including remote 4GL and SQL clients, self-service 4GL clients, utilities, page writers, etc.
  • Maximum concurrent 4GL remote (TCP) clients = will be 400 to keep
  • Maximum concurrent SQL clients = will be 200
  • Maximum connections overall, including remote 4GL and SQL clients, self-service 4GL clients, utilities, page writers, etc. = more than 600 i guess if i understood .
Thanks!
 

PascalMBOUM

New Member
That is two different answers to the same question.

To configure the brokers appropriately, you need to decide:
  • Maximum concurrent 4GL remote (TCP) clients
  • Maximum concurrent SQL clients
  • Maximum connections overall, including remote 4GL and SQL clients, self-service 4GL clients, utilities, page writers, etc.
if have understood:
  • Maximum concurrent 4GL remote (TCP) clients = 400 connections
  • Maximum concurrent SQL clients = 200 connections
  • Maximum connections overall, including remote 4GL and SQL clients, self-service 4GL clients, utilities, page writers, etc. >600 connections .
 

TomBascom

Curmudgeon
That's an awful lot of connections for a database as poorly configured as this one is but I suppose that we can save performance considerations for later.

For 400 4GL connections I suggest:

-Mpb 40 -Ma 10 -Mi 1

In English that is 40 "remote servers" for this broker with each server supporting 10 connections and connections assigned "round robin"

For 200 SQL connections:

-Mpb 20 -Ma 10 -Mi 1

To do that you need the initial -Mn (total number of servers across all "login brokers") to be at least the sum of the -Mpb parameters plus a little bit, so -Mn 60 is a good value. You also need -n to be large enough to accommodate all of the servers (-Mn 60) plus all of the connections (the sum of all of the ( -Ma * -Mpb ) combinations plus any local users plus a bit so 700 is a good value.

You should also always specify the -ServerType as either "4GL" or "SQL".

You should have distinct service names and port numbers for the 4GL and SQL brokers. Ideally these are already setup in /etc/services. You are already using names for the 4GL services so you should just need to lookup existing names for SQL services (that might have been created when somebody previously attempted to get SQL going) or just assign some new ones.

Each broker should also have a distinct -minport and -maxport range that is a bit "wider" than the -Mpb. (I usually just round up to the next multiple of 100.)

To start a database with that configuration use the following three commands rather than a single "proserve":

Code:
proserve dbname -n 700 -Mn 60 # any other database startup parameters, like "-L"...
proserve dbname  -m3 -Mpb 40 -Ma 10 -Mi  1 -H localhost -S 4gl-serviceName -ServerType 4GL -minport 10000 -maxport 10099
proserve dbname  -m3 -Mpb 20 -Ma 10 -Mi 10 -H localhost -S sql-serviceName -ServerType SQL -minport 10200 -maxport 10299

You should then be able to see that there is a "sqlsrv2" process running and test connections with "sqlexp" as previously described.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Not to be pedantic, but just to correct the record...

To do that you need the initial -Mn (total number of servers across all "login brokers") to be at least the sum of the -Mpb parameters plus a little bit, so -Mn 60 is a good value.
-Mn should be a minimum of (sum of all login brokers' -Mpb values) + (count of all secondary brokers). In this case, 40+20+1=61.

You also need -n to be large enough to accommodate all of the servers (-Mn 60) plus all of the connections (the sum of all of the ( -Ma * -Mpb ) combinations plus any local users plus a bit so 700 is a good value.
Not that a value of 700 would be inappropriate here, but -n does not have to accommodate the server count. It includes everything but the servers and brokers, plus one reserved slot for a proshut. The number of _connect records is (-Mn) + (-n) + 2.
 

PascalMBOUM

New Member
That's an awful lot of connections for a database as poorly configured as this one is but I suppose that we can save performance considerations for later.

For 400 4GL connections I suggest:

-Mpb 40 -Ma 10 -Mi 1

In English that is 40 "remote servers" for this broker with each server supporting 10 connections and connections assigned "round robin"

For 200 SQL connections:

-Mpb 20 -Ma 10 -Mi 1

To do that you need the initial -Mn (total number of servers across all "login brokers") to be at least the sum of the -Mpb parameters plus a little bit, so -Mn 60 is a good value. You also need -n to be large enough to accommodate all of the servers (-Mn 60) plus all of the connections (the sum of all of the ( -Ma * -Mpb ) combinations plus any local users plus a bit so 700 is a good value.

You should also always specify the -ServerType as either "4GL" or "SQL".

You should have distinct service names and port numbers for the 4GL and SQL brokers. Ideally these are already setup in /etc/services. You are already using names for the 4GL services so you should just need to lookup existing names for SQL services (that might have been created when somebody previously attempted to get SQL going) or just assign some new ones.

Each broker should also have a distinct -minport and -maxport range that is a bit "wider" than the -Mpb. (I usually just round up to the next multiple of 100.)

To start a database with that configuration use the following three commands rather than a single "proserve":

Code:
proserve dbname -n 700 -Mn 60 # any other database startup parameters, like "-L"...
proserve dbname  -m3 -Mpb 40 -Ma 10 -Mi  1 -H localhost -S 4gl-serviceName -ServerType 4GL -minport 10000 -maxport 10099
proserve dbname  -m3 -Mpb 20 -Ma 10 -Mi 10 -H localhost -S sql-serviceName -ServerType SQL -minport 10200 -maxport 10299

You should then be able to see that there is a "sqlsrv2" process running and test connections with "sqlexp" as previously described.
sorry for take so much times to reply . ok i tried to look on " /etc/services" i found a group of 4gl-services under the commet #Services progress (see screen capture #1:) and i added the SQL-services just after. I stop the database using my shutbbj script then i tried to start one ( the fbbj92)
.i moved where the fbbj92.db file locate the run this:
proserve fbbj92 -n 700 -Mn 61
proserve fbbj92 -m3 -Mpb 40 -Ma 10 -Mi 1 -H localhost -S fbbj92-srv -ServerType 4GL -minport 10000 -maxport 10099
proserve fbbj92 -m3 -Mpb 20 -Ma 10 -Mi 10 -H localhost -S fbbj92-srvsql -ServerType SQL -minport 10200 -maxport 10299
then i look at sqlsrv2 process . i i found nothing running
ps : i got a warning that i didn't gave a value for the option -e.
see screen capture #2

thanks!
 

Attachments

  • screen Capture services.jpg
    screen Capture services.jpg
    136.9 KB · Views: 7
  • screen Capture proserve.jpg
    screen Capture proserve.jpg
    88.8 KB · Views: 6

Stefan

Well-Known Member

Rob Fitzpatrick

ProgressTalk.com Sponsor
Even if there hadn't been any errors with the proserve commands, initially you wouldn't see any sqlsrv processes. The proserve commands start database brokers, which are _mprosrv processes. Remote servers are started on demand, when a remote client connects to them. The SQL server executable is _sqlsrv2 (assuming it exists in 9.1A!). You won't see such a process until a SQL client connects to the SQL broker, causing a SQL server to be spawned.
 
I think it could work without the "-ServerType" (to avoid the "warning") , you always specify the good "-S " for your connection so they will be done on the good dedicated broker.

"-S fbbj92-srv " for the 4GL connections and " -S fbbj92-srvsql " for the SQL connections ,
 

TomBascom

Curmudgeon
Like the others said, 9.1a apparently doesn't have the -ServerType option. Sorry about that, I got tricked into thinking that it must be there by the log message "Ce broker supporte et le groupe de serveur 4GL et SQL. (8865)"

Have I mentioned that you really ought to upgrade this system?
 

TomBascom

Curmudgeon
So just remove the "-ServerType 4GL" and "-ServerType SQL" parameters but continue to start distinct brokers.

Even though you cannot enforce it with -ServerType, you still want to have two distinct brokers, one for 4gl and one for sql. You will need to enforce it by not telling the 4gl users about the SQL port and vice versa. So long as users respect that one port is for 4gl users and the other is for SQL users you will be ok. A classic case of "security through obscurity".

If they get mixed you run the risk that users will be unable to connect because users of the other connection type have consumed all of the available "remote servers" (once a remote server is launched it supports just one type of connection).
 
So just remove the "-ServerType 4GL" and "-ServerType SQL" parameters but continue to start distinct brokers.

Even though you cannot enforce it with -ServerType, you still want to have two distinct brokers, one for 4gl and one for sql. You will need to enforce it by not telling the 4gl users about the SQL port and vice versa. So long as users respect that one port is for 4gl users and the other is for SQL users you will be ok. A classic case of "security through obscurity".

If they get mixed you run the risk that users will be unable to connect because users of the other connection type have consumed all of the available "remote servers" (once a remote server is launched it supports just one type of connection).
Hi Tom,
They have to specify the -S XXXX to connect one of the broker
If they specify "-S fbbj92-srv " for the 4GL connections and " -S fbbj92-srvsql " for the SQL connections , there is no mixed .
 

TomBascom

Curmudgeon
Sure. And as long as nobody finds out about the other port and tries to abuse it everything will be fine.

I'm just saying: "don't trust the users to keep it straight".
 

PascalMBOUM

New Member
I'm just saying: "don't trust the users to keep it straight".
[/QUOTE]
it works ! i typed these:
proserve /d4/base/fbbj/fbbj92/principale/fbbj92 -n 700 -Mn 61
proserve /d4/base/fbbj/fbbj92/principale/fbbj92 -m3 -Mpb 40 -Ma 10 -Mi 1 -H localhost -S fbbj92-srv -minport 10000 -maxport 10099
proserve /d4/base/fbbj/fbbj92/principale/fbbj92 -m3 -Mpb 20 -Ma 10 -Mi 10 -H localhost -S fbbj92-srvsql -minport 10200 -maxport 10299

see screen capture #1
Now i have issue with launching sqlexplorer :
i try to launch it locally by ssh (screen capture #2) then remotely by proenv (screen capture #3 ) and by prowin32 ( the screen Capture #4) it failed.
i provided sqlexpl.log:

[10/10/12 16:02:29]
[10/10/12 16:02:29]=== Start logging. Local time: 10/10/12 16:02:29. ===
[10/10/12 16:02:29]
[10/10/12 16:02:29] [3] [SQLExplorer] Default properties will be used.
[10/10/12 16:02:29] [3] [SQLExplorer] Setting Connect to jdbc:jdbcprogress:T:localhost:2083:fbbj92
[10/10/12 16:02:29] [3] [SQLExplorer] === SQLExplorer starting. ===
[10/10/12 16:02:29] [3] [SQLExplorer] ### ARGS: /d4/base/fbbj/fbbj92/principale/fbbj92 -S 2083 -user root

[10/10/12 16:02:29] [3] [SQLExplorer] Can't format message: "En cours de connection de lutilisateur "{0}" à lURL "jdbc:jdbcprogress:T:localhost:2083:fbbj92"... (8920)" Args: null
[10/10/12 16:02:29] [3] [SQLExplorer] Exception: java.lang.NullPointerException
[10/10/12 16:02:29] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.common.message.ProMessageFormat.format(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.common.message.ProMessageFormat.format(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.common.exception.ExceptionMessageAdapter.getMessage(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.common.log.LogSystem.writeIt(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.common.log.Subsystem.write(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.common.log.Subsystem.log(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.common.log.Subsystem.log(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.sql.explorer.SQLConnect.openConnection(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at com.progress.sql.explorer.SQLProcessor.run(Compiled Code)
[10/10/12 16:02:29] [3] [SQLExplorer] at java.lang.Thread.run(Compiled Code)

[10/10/12 16:02:29] [3] [SQLExplorer] Loading JDBC driver com.progress.sql.jdbc.JdbcProgressDriver.
[10/10/12 17:31:57]
[10/10/12 17:31:57]=== Start logging. Local time: 10/10/12 17:31:57. ===
[10/10/12 17:31:57]
[10/10/12 17:31:57] [3] [SQLExplorer] Default properties will be used.
[10/10/12 17:31:57] [3] [SQLExplorer] === SQLExplorer starting. ===
[10/10/12 17:31:57] [3] [SQLExplorer] ### ARGS: /d4/base/fbbj/fbbj92/principale/ -S 2280 -user root
[10/10/12 17:31:57] [3] [SQLExplorer] === SQLExplorer ending. ===
[10/10/12 17:32:15]
[10/10/12 17:32:15]=== Start logging. Local time: 10/10/12 17:32:15. ===
[10/10/12 17:32:15]
[10/10/12 17:32:15] [3] [SQLExplorer] Local SQLExplorer.properties file will be used.
[10/10/12 17:32:15] [3] [SQLExplorer] Setting Connect to jdbc:jdbcprogress:T:localhost:2280:fbbj92
[10/10/12 17:32:15] [3] [SQLExplorer] === SQLExplorer starting. ===
[10/10/12 17:32:15] [3] [SQLExplorer] ### ARGS: /d4/base/fbbj/fbbj92/principale/fbbj92 -S 2280 -user root

[10/10/12 17:32:15] [3] [SQLExplorer] Can't format message: "En cours de connection de lutilisateur "{0}" à lURL "jdbc:jdbcprogress:T:localhost:2280:fbbj92"... (8920)" Args: null
[10/10/12 17:32:15] [3] [SQLExplorer] Exception: java.lang.NullPointerException
[10/10/12 17:32:15] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.common.message.ProMessageFormat.format(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.common.message.ProMessageFormat.format(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.common.exception.ExceptionMessageAdapter.getMessage(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.common.log.LogSystem.writeIt(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.common.log.Subsystem.write(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.common.log.Subsystem.log(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.common.log.Subsystem.log(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.sql.explorer.SQLConnect.openConnection(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at com.progress.sql.explorer.SQLProcessor.run(Compiled Code)
[10/10/12 17:32:15] [3] [SQLExplorer] at java.lang.Thread.run(Compiled Code)

[10/10/12 17:32:15] [3] [SQLExplorer] Loading JDBC driver com.progress.sql.jdbc.JdbcProgressDriver.
[10/10/12 17:32:15] [3] [SQLExplorer] Connect exception: java.sql.SQLException: [JDBC Progress Driver]:Error in Network Daemon
[10/10/12 17:32:15] [0] [*UnexpectedError*] * recorded as exception #1 in file SQLExplorer.exceptions.
[10/10/12 17:32:15] [3] [SQLExplorer] === SQLExplorer ending. ===
[10/10/12 17:32:59]
[10/10/12 17:32:59]=== Start logging. Local time: 10/10/12 17:32:59. ===
[10/10/12 17:32:59]
[10/10/12 17:32:59] [3] [SQLExplorer] Local SQLExplorer.properties file will be used.
[10/10/12 17:32:59] [3] [SQLExplorer] Setting Connect to jdbc:jdbcprogress:T:localhost:2283:fbbj92
[10/10/12 17:32:59] [3] [SQLExplorer] === SQLExplorer starting. ===
[10/10/12 17:32:59] [3] [SQLExplorer] ### ARGS: /d4/base/fbbj/fbbj92/principale/fbbj92 -S 2283 -user root

[10/10/12 17:32:59] [3] [SQLExplorer] Can't format message: "En cours de connection de lutilisateur "{0}" à lURL "jdbc:jdbcprogress:T:localhost:2283:fbbj92"... (8920)" Args: null
[10/10/12 17:32:59] [3] [SQLExplorer] Exception: java.lang.NullPointerException
[10/10/12 17:32:59] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at java.text.MessageFormat.format(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.common.message.ProMessageFormat.format(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.common.message.ProMessageFormat.format(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.common.exception.ExceptionMessageAdapter.getMessage(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.common.log.LogSystem.writeIt(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.common.log.Subsystem.write(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.common.log.Subsystem.log(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.common.log.Subsystem.log(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.sql.explorer.SQLConnect.openConnection(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at com.progress.sql.explorer.SQLProcessor.run(Compiled Code)
[10/10/12 17:32:59] [3] [SQLExplorer] at java.lang.Thread.run(Compiled Code)

[10/10/12 17:32:59] [3] [SQLExplorer] Loading JDBC driver com.progress.sql.jdbc.JdbcProgressDriver.
[10/10/12 17:50:08] [3] [SQLExplorer] === SQLExplorer ending. ===
and sqlexplorer.exception:
====== Start exception logging == "SQLExplorer.exceptions" opened == Wed Oct 10 17:32:15 CDT 2012 ======


**** 1 ****

Exception at Wed Oct 10 17:32:15 CDT 2012: java.sql.SQLException
Message (throw): ### Exception caught in SQLExplorer constructor. ###
Message (excp): [JDBC Progress Driver]:Error in Network Daemon
Stack Trace:
java.sql.SQLException: [JDBC Progress Driver]:Error in Network Daemon
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(Compiled Code)
at com.progress.sql.jdbc.JdbcProgress.createSQLException(Compiled Code)
at com.progress.sql.jdbc.JdbcProgress.standardError(Compiled Code)
at com.progress.sql.jdbc.JdbcProgress.SQLDriverConnect(Compiled Code)
at com.progress.sql.jdbc.JdbcProgressConnection.initialize(Compiled Code)
at com.progress.sql.jdbc.JdbcProgressDriver.connect(Compiled Code)
at java.sql.DriverManager.getConnection(Compiled Code)
at java.sql.DriverManager.getConnection(Compiled Code)
at com.progress.sql.explorer.SQLConnect.openConnection(Compiled Code)
at com.progress.sql.explorer.SQLProcessor.run(Compiled Code)
at java.lang.Thread.run(Compiled Code)
and SQLEXPLOER.properties
thanks!
 

Attachments

  • Screen Capture proserve.png
    Screen Capture proserve.png
    53.6 KB · Views: 9
  • Screen Capture locally on server by ssh.jpg
    Screen Capture locally on server by ssh.jpg
    55.5 KB · Views: 9
  • screen capture sqlexp remote by proenv.png
    screen capture sqlexp remote by proenv.png
    24.8 KB · Views: 8
  • screen capture sqlexp remote by prowin32.png
    screen capture sqlexp remote by prowin32.png
    9 KB · Views: 8
  • screen capture sqlexplorer.propreties.png
    screen capture sqlexplorer.propreties.png
    34.4 KB · Views: 10

PascalMBOUM

New Member
should i change the port on the SQLexplorer.properties file (replace this one in screen capture with with the one i use for sqlserver type port 2262 ?)
1695139419764.png

thanks!
 

TomBascom

Curmudgeon
This stuff was all 25 years ago... our memories are "dim".

I believe that the properties file is just defaults. The -S that you provide on the sqlexp command line will override the one in the properties file.

Speaking of command lines, your most recent example is not properly formed. You are missing "-db fbbj92" and have, instead, provided the full path for some unknown reason. The command line should be:

Code:
sqlexp -char -db fbbj92 -S 2262 -H localhost -user root -pass ""

If that still results in an error the sqlexp.log might tell us something interesting. (You might want to truncate that before trying again so that we get a clean log.)

Stefan's point about ODBC vs JDBC might also be relevant. You could test that idea by trying to connect using an ODBC driver from a Windows desktop somewhere.
 

PascalMBOUM

New Member
This stuff was all 25 years ago... our memories are "dim".

I believe that the properties file is just defaults. The -S that you provide on the sqlexp command line will override the one in the properties file.

Speaking of command lines, your most recent example is not properly formed. You are missing "-db fbbj92" and have, instead, provided the full path for some unknown reason. The command line should be:

Code:
sqlexp -char -db fbbj92 -S 2262 -H localhost -user root -pass ""

If that still results in an error the sqlexp.log might tell us something interesting. (You might want to truncate that before trying again so that we get a clean log.)

Stefan's point about ODBC vs JDBC might also be relevant. You could test that idea by trying to connect using an ODBC driver from a Windows desktop somewhere.
tryin with root and empty password:
1695229033448.png
nothing written on sqlexp.log
then leopold with a password:
1695229033463.png
1695229340138.png
thanks
 

PascalMBOUM

New Member
i found this book when we look at page 390 section 18-6 Database server network parameter:
1695232832993.png
may be we forgot something about the java class to use when we start the sqlserver type and is the reason why i got this error:

PROGRESS Version 9.1A05 as of Tue Mar 28 12:05:59 EST 2000
En cours de connection de lutilisateur "{0}" Ó lURL "jdbc:jdbcprogress:T:192.168
.20.101:2262:fbbj92"... (8920)
error in tcp bind 10061
Erreur: [JDBC Progress Driver]:Error in Network Daemon. (8933)
Voir les fichiers "sqlexp.log" et "SQLExplorer.exceptions" pour plus de dÚtails.
(8950)
 

Attachments

  • PROGRESS DATABASE ADMIN GUIDE AND REF.PDF
    3.5 MB · Views: 3
Top