i96nds
5th March 2002, 22:25
Let me tell you the whole story. We have a large Baan instalation, with more than 10 companies. There are people from several countries working on this server. We have 4 package combination for the live companies, so there are package combinations that have several companies on.
We need to do some cleaning periodically in the database, because the tablespace get fragmented after a while. The size of the companies is growing quite fast (with so many "hungry" users...). So, we need to dump the company, fill the new ora_storage parameters (a biger INIT), coalesce the tablespaces, upload the data.
Of course, nobody should be working in that company while we do this. But it is not easy to keep informed hundreds of people from several countries.... It happened that people were working...
The major problem is that we cannot afford that all users should be logged out! While we reorganize a company, ALL other companies should be available.
How can I find out which users are working in a certain company at a certain moment? Or, how can I find out in which company a user is at a certain moment?
I can not use the default company of the user at a certain moment because the user may have switched the company.
Let's have an example. User AAA is authorised to use the companies:
100, 200, 300.
We want to reorganize company 100, which is the default company for user AAA.
Suppose we have few super users, these can be informed not to use the company 100. The problems are with normal users.
One ideea we had was to search in the table with company authorisations (for normal users, of course) and to find all users that are authorised tu use that company, say 100. Then we create a SQL script that does a
REVOKE r_baan to AAA , and to all users in the same category. Another script will do a GRANT r_baan to AAA, after the activity of reorganizing the company is OK.
Problem: I need that user AAA should be able to use companies 200 and 300 while I reorganize 100.... This cannot be done with the previos ideea which "locks" the user at Oracle level.
Another idea was to copy the table "Authorizations by company" to another table, detele the records containing company 100, do a convert to runtime for all users. At the end, load back the table, as it was, and again Convert to DD for all users.
Disadvantage:
If user AAA has as default company company 100, and I delete his authorization for company 100, is is not quite good, since a user should be allowed to use his default company...
It is also inacceptable to change the default company for 400 users and then to set it back...
Also... I hope nobody runs the Convert to RDD in this hours of maintanance....
Any suggestion will be highly appreciated. Please feel free to correct my mistakes, or comment upon what I have posted here.
Regards,
We need to do some cleaning periodically in the database, because the tablespace get fragmented after a while. The size of the companies is growing quite fast (with so many "hungry" users...). So, we need to dump the company, fill the new ora_storage parameters (a biger INIT), coalesce the tablespaces, upload the data.
Of course, nobody should be working in that company while we do this. But it is not easy to keep informed hundreds of people from several countries.... It happened that people were working...
The major problem is that we cannot afford that all users should be logged out! While we reorganize a company, ALL other companies should be available.
How can I find out which users are working in a certain company at a certain moment? Or, how can I find out in which company a user is at a certain moment?
I can not use the default company of the user at a certain moment because the user may have switched the company.
Let's have an example. User AAA is authorised to use the companies:
100, 200, 300.
We want to reorganize company 100, which is the default company for user AAA.
Suppose we have few super users, these can be informed not to use the company 100. The problems are with normal users.
One ideea we had was to search in the table with company authorisations (for normal users, of course) and to find all users that are authorised tu use that company, say 100. Then we create a SQL script that does a
REVOKE r_baan to AAA , and to all users in the same category. Another script will do a GRANT r_baan to AAA, after the activity of reorganizing the company is OK.
Problem: I need that user AAA should be able to use companies 200 and 300 while I reorganize 100.... This cannot be done with the previos ideea which "locks" the user at Oracle level.
Another idea was to copy the table "Authorizations by company" to another table, detele the records containing company 100, do a convert to runtime for all users. At the end, load back the table, as it was, and again Convert to DD for all users.
Disadvantage:
If user AAA has as default company company 100, and I delete his authorization for company 100, is is not quite good, since a user should be allowed to use his default company...
It is also inacceptable to change the default company for 400 users and then to set it back...
Also... I hope nobody runs the Convert to RDD in this hours of maintanance....
Any suggestion will be highly appreciated. Please feel free to correct my mistakes, or comment upon what I have posted here.
Regards,