We have several OpenEdge databases within our company and we want to access all these databases with ODBC connections. It means that we also need to have a SQL server, in addition to the existing ABL server. I have several open questions that I wanted to share with you:
1) Is it a good idea to have ABL and SQL requests accessing the same database or is it better to create a database copy that we use with a server SQL only ? But this means that we duplicate the data on a regular basis.
2) If the requests (SQL & ABL) access the same database, is it a good practice to have a secondary broker for SQL requests ?
3) Because we prioritize ABL (application) requests, is it possible to stop the secondary broker (SQL type) without stopping the primary broker (ABL type) ? For example, if a SQL user is launching a huge SQL query and it has an impact on our operationnal database.
4) If we open the database in both mode (SQL & ABL), I suppose it is a good practice (if possible) to create a new SQL user (different than ABL) that has READ-ONLY privileges on the database.
Thanks for sharing your knowledge with me.
2) yes. or maybe 2 secondary brokers if you have two classes of users with different requirements.
3) no, not in a practical way.
4) yes. also accounts that are sql only.
> is it possible to stop the secondary broker (SQL type) without stopping the primary broker (ABL type) ?
Stop the servers spawn by broker: promon/R&D/4/7/7. Terminate a server
Stop the secondary login broker: kill -15 <pid>
Above promon's menu shows the login brokers but it ignores the requests to terminate them.
Will you expound on the statement "A sql-only user has no effect on ABL usage or ABL behavior."
Does this statement extend to impacts due to load? Does heavy SQL read only activity impact performance on the ABL side?
if you add general _user records to a database that has none, then that
causes a change in 4GL behaviour due to different authentication.
When you add _user records that are marked as ³sql only², this does not
How about when you have both _user and sql only users in the same database?
Thank you. I think my imagination ran away with me. Of course that makes sense.
I use login brokers (4GL and SQL) practice that George shared with me many years ago. It is to set a dummy login broker, the one port number I do not disclose to public, with the main preserve command. And then set up additional login brokers (preserve -m3), one for 4GL only and one for SQL only. That way I can stop either one 4GL or SQL (with kill -15) if I need to. If I stop all login brokers I bring database in kind of restricted mode.
Just curious, why do you want/need to specify -S with your primary broker?
I think you are right, I do not need to specify -S with primary broker then.
I haven't done this (three-broker configuration) myself but I like the approach. I think I will do this in future.
IMHO, it's a good idea to start the primary database borker with the -Mn twice larger than the sum of the -Mpb. Just to be able to restart any login broker while keeping the existent sessions connected to the database.